多线程1.

news2025/1/15 16:30:17

多线程1

1.如果想对地址空间的堆区做更细腻化的空间管理,怎么办?
搞一个vim_area_struct,他是一个双向链表。每一个节点是一块堆区空间,用链表串起来。
在这里插入图片描述

2.如何管理物理内存?
设定一个数据结构,如,struct page {int flag}; 假如物理内存有4g,每一个结构体为4KB,则变成 struct page mem[100w+],这样对物理内存的管理就变成了对特定数据结构的管理了。
在这里插入图片描述

3.io的基本单位是4KB?
IO的过程是将磁盘的4KB页帧加载到内存的页框,也是4KB。

4.代码的执行流程是什么样的?从虚拟地址和物理内存角度回答? 缺页中断是什么?
第一步代码区的代码通过用户级页表,指向磁盘中的位置,如果此时用户级页表中的标记位显示物理内存没有对应代码位置,则调用io操作,将代码加载到内存中,并将内存中的位置返回到用户级页表的框框里。
在这里插入图片描述
5.地址空间如何映射到物理内存? 页表角度简述
通过两个页表,第一级页表有1024个kv映射关系, v存储的是第二级页表的地址,第二级页表v映射的是物理内存每一个4KB的起始地点,这样一来就可以通过 page start addr + 页内偏移(剩余的12个比特位)取到物理内存。 而两级页表这样设计,既能满足映射关系,又能节省很多内存存储页表的空间。
在这里插入图片描述
6.线程和进程的关系?
线程在进程内部执行,如图 图中的每一个task_struct都可称之为线程,共享同一个进程的不同资源。
线程是OS调度的基本单位
进程是承担系统资源分配的基本实体
在这里插入图片描述

7.Linux和window中的线程有什么区别?
Linux中的线程操作方式,数据结构等等基本和进程一样,巧妙的复用了
window中的线程则是重新设计了一套线程操作方式和数据结构。

8.从用户角度和内核角度说说什么叫进程?
用户角度:进程即是内核数据(地址空间 页表 PCB等等) + 代码和数据
内核角度:进程是承担分配系统资源的基本实体
在这里插入图片描述

9.什么是PCB?
操作系统为了描述进程的信息的一个结构体,Linux里叫task_struct。

10.task_struct是什么?
进程内部的一个执行流。

11.为什么Linux被称之为轻量化进程?
因为线程和进程复用,Linux下的PCB小于等于 其他OS的PCB。

12.如果用户要在Linux中创建线程怎么办?
Linux下是没有真正意义上的线程的,是用进程PCB模拟线程的,所以Linux并不直接提供线程的接口,而是在用户层实现了一套多线程方案,以库的方式即,pthread线程库–原生线程库供用户创建多线程。

13.pthread_creat函数的调用?
该函数的
第一个参数是,线程ID的地址即&tid
第二个参数是,线程的属性,暂时设为nullptr
第三个参数是,函数指针
第四个参数是,回调参数,给到函数指针*thpreadRun中的args。
在这里插入图片描述

14.如何在系统中查看线程的pid?
其中第一行mythread是主线程 因为pid = lwp =24268
在这里插入图片描述
15.线程是如何看待进程中的资源的呢?
线程独自占有的资源有 一组寄存器 栈空间 erron 等等
一起共享的有堆空间(可以将堆地址全局定义) 代码 未初始化和初始化数据 文件描述符等等

16.为什么线程的创建调度的代价比进程小得多?
第一个原因是,线程的创建调度不需要切换地址空间和页表
第二个原因是,CPU中有硬件级内存,根据局部性原理,当线程进行调度的时候,无需再向内存拿信息。而当进程进行调度的时候,由于进程的独立性,当切换的时候,CPU中的硬件级内存cache就失效了,需要重新往内存中拿取相应的信息,所以代价比线程的调度大得多。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/153310.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

电子会议桌牌

产品特色: 低功耗,常规使用3-5年电池寿命支持空中唤醒,刷新快速,几秒钟内看到结果点阵电子纸屏幕,视角接近180基于Web的应用界面,支持跨平台操作安装简单,快速布置电池供电不需要布线双面显示&…

神经网络模型的参数量和FlOPS

一、FLOPS、FLOPs和GFLOPs的概念 FLOPS:注意S是大写,是 “每秒所执行的浮点运算次数”(floating-point operations per second)的缩写。它常被用来估算电脑的执行效能,尤其是在使用到大量浮点运算的科学计算领域中。正…

重装系统把所有盘格式化教程

在使用电脑的过程中,可能会遇到系统重装的问题,但是有些朋友就觉得之前的分区不太合理,就打算全盘格式化重装系统,那小白一键重装系统怎么把所有盘格式化呢?这需要借助U盘或光盘来引导了。下面就来看看操作教程吧。 工具/原料&a…

2.17 STM32 SysTick—系统定时器

文章目录1、简介2、寄存器2.1 SysTick控制和状态寄存器(STK_CTRL)2.2 重载值寄存器(STK_LOAD)2.3 SysTick当前值寄存器 (STK_VAL)2.4 校准寄存器(STK_CALIB)3、SysTick 定时实验3.1 在标准库中3.2 在HAL库中的初始化4、SysTick 定…

driftingblues7靶机(eyes of network漏洞)

环境准备 靶机链接:百度网盘 请输入提取码 提取码:49by 虚拟机网络链接模式:桥接模式 攻击机系统:kali linux 2021.1 信息收集 1.arp-scan -l 2.探测靶机开放端口和服务情况 nmap -p- -A -T4 192.168.1.108 漏洞利用 1.访…

为什么开发者这么看重SQL?看完这些应用场景你就明白了

看到一个有趣的比喻,用来说明SQL与Excel的差别是什么。 如果把SQL比作火车,把Excel更比作卡车。 卡车灵活自由,高速或乡村小道想去哪就去哪,但即便每天不停歇卡车的运载量也不大,而且容易出交通事故。 火车运载量大…

P2P中的NAT穿越(打洞)方案详解

1、内容概述 P2P即点对点通信,或称为对等联网,与传统的服务器客户端模式(如下图“P2P结构模型”所示)有着明显的区别,在即时通讯方案中应用广泛(比如IM应用中的实时音视频通信、实时文件传输甚至文字聊天等…

【Python基础】篇四之while、for循环及其嵌套、continue、break

while循环基本格式:while 条件:条件满足时做的事1条件满足时做的事2条件满足时做的事省略注:只要条件满足就会一直执行while的条件需得到布尔类型,True表示循环继续,False表示循环结束需要设置循环终止条件&#xff0c…

map 源码思考

go 语言中 map 比较的说,和 slice 有什么区别?如果 map 是从 int 到 int 类型的话,差别还真不大。map 的 key 退化为 slice 的下标,而 value 退化为 slice 的值。 但这样也存在很大的弊端:空间浪费严重。假设 map 中只…

虹科分享 | 网络流量监控 | 构建大型捕获文件(Ⅱ)——Pcap分析仪:Allegro网络万用表的Pcap过滤器

上一期我们讨论的是如何使用Wireshark工具进行结构化搜索的技术,这一期我们将为大家进行介绍,我们该如何使用 Allegro 网络万用表来加快 pcap 分析器的工作。 前期回顾:构建大型捕获文件(Ⅰ)——Wireshark过滤器和其他…

VIVO应用商店APP侵权投诉流程

目录一、官方指引二、侵权投诉提交流程一、官方指引 https://dev.vivo.com.cn/documentCenter/doc/34 二、侵权投诉提交流程 登录 vivo 开放平台:https://dev.vivo.com.cn/,点击右下角“工单系统”: 业务类型选 “投诉举报类”&#xff0…

Redis-设置过期时间及淘汰策略

文章目录1. TTL2. 设置过期时间3. 删除过期key4. 淘汰策略Redis-设置过期时间及淘汰策略项目组使用的 Redis 服务器发出了内存不足报警,查了一些资料,记录下。 1. TTL 查看 Redis key 是否过期是 TTL 命令,或者登陆 Redis 客户端&#xff0…

重点算法排序之堆排序(下篇)

文章目录 一、堆排序的概念 1、1 堆的基本概念 1、2 堆的特性 二、堆排序的思路及代码实现 2、1 建堆 2、2 向下调整算法详解 2、3 建完堆后进行堆排序 2、3、1 排升序建大堆 2、3、2 建大堆后进行堆排序 三、堆排序的例题 2、1 例题1:堆排序 2、2 例题2&#x…

HTTP.sys远程代码执行漏洞修复

1.漏洞描述 Http.sys是Microsoft Windows处理HTTP请求的内核驱动程序。HTTP.sys会错误解析某些特殊构造的HTTP请求,导致远程代码执行漏洞。成功利用此漏洞后,攻击者可在System帐户上下文中执行任意代码。由于此漏洞存在于内核驱动程序中,攻击…

VMware下的虚拟机网络设置(NAT、桥接、仅主机)

在入门使用VMware搭建Linux的环境时,对于网络的设置时不可避免的,因为linux搭建完成后,或多或少的回去访问外部资源或者被外部资源访问。这时候设置的虚拟机网络连接方式就显得尤为重要,所以在这里整理了一下虚拟机的三种连接方式…

说说压缩文件“打开密码”的两种模式

我们知道,如果对压缩文件有保密需求,可以给压缩文件设置“打开密码”,通过密码才能查看压缩文件里的内容。那通过WinRAR设置的“打开密码”有两种模式,你知道吗?下面来具体说说。 模式一:可以看到压缩包的…

springboot集成mybatis

springboot集成mybatis 文章目录springboot集成mybatis前言一、初始化项目1.创建项目2.引入依赖3.创建实体类4.修改配置文件二、使用Mybatis1.纯注解方式2.使用xml文件方式三、使用pagehelper分页前言 MyBatis 是一个开源、轻量级的数据持久化框架,是 JDBC 和 Hibe…

赤池信息量准则(AIC)和贝叶斯信息准则(BIC)

一 AIC 赤池信息量准则(Akaike information criterion,AIC)是评估统计模型的复杂度和衡量统计模型“拟合”资料之优良性(Goodness of fit)的一种标准,是由日本统计学家赤池弘次创立和发展的。赤池信息量准则建立在信息熵的概念基…

LeetCode题目笔记——面试题 02.07. 链表相交

文章目录题目描述题目难度——简单方法一:数数,然后遍历代码/C方法二:双指针代码/C代码/Python总结题目描述 给你两个单链表的头节点 headA 和 headB ,请你找出并返回两个单链表相交的起始节点。如果两个链表没有交点&#xff0c…

假期无聊,不如一起刷《剑指offer》(第六天)

剑指 Offer 41. 数据流中的中位数 剑指 Offer 41. 数据流中的中位数 这道题是求数据流的中位数,一般情况我们可以采用排序的方式很轻松的找出中位数。如果我们采用插入排序的话,每次插入数字的时间复杂度大概是O(N),怎么能让这个时间更短呢&a…