欢迎来到淘文阁 - 分享文档赚钱的网站! | 帮助中心 好文档才是您的得力助手!
淘文阁 - 分享文档赚钱的网站
全部分类
  • 研究报告>
  • 管理文献>
  • 标准材料>
  • 技术资料>
  • 教育专区>
  • 应用文书>
  • 生活休闲>
  • 考试试题>
  • pptx模板>
  • 工商注册>
  • 期刊短文>
  • 图片设计>
  • ImageVerifierCode 换一换

    linux系统分析之进程线程.pdf

    • 资源ID:74650508       资源大小:190.95KB        全文页数:6页
    • 资源格式: PDF        下载积分:15金币
    快捷下载 游客一键下载
    会员登录下载
    微信登录下载
    三方登录下载: 微信开放平台登录   QQ登录  
    二维码
    微信扫一扫登录
    下载资源需要15金币
    邮箱/手机:
    温馨提示:
    快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
    如填写123,账号就是123,密码也是123。
    支付方式: 支付宝    微信支付   
    验证码:   换一换

     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    linux系统分析之进程线程.pdf

    1.什么是进程进程是处于执行期的程序以及它所包含的所有资源的总称,包括虚拟处理器,虚拟空间,寄存器,堆栈,全局数据段等。在 Linux 中,每个进程在创建时都会被分配一个数据结构,称为进程控制块(Process Control Block,简称 PCB)。PCB 中包含了很多重要的信息,供系统调度和进程本身执行使用。所有进程的 PCB 都存放在内核空间中。PCB 中最重要的信息就 是进程 PID,内核通过这个 PID 来唯一标识一个进程。PID 可以循环使用,最大值是 32768。init 进程的 pid 为 1,其他进程都是 init 进程的 后代。除了进程控制块(PCB)以外,每个进程都有独立的内核堆栈(8k),一个进程描述符结构,这些数据都作为进程的控制信息储存在内核空间中;而进程的用户空间主要存储代码和数据。2)进程的创建进程是通过调用:fork(),:vfork()和:clone()系统调用创建新进程。在内核中,它们都是调用 do_fork 实现的。传统 的 fork 函数直接把父进程的所有资源复制给子进程。而 Linux 的:fork()使用写时拷贝页实现,也就是说,父进程和子进程共享同一个资源拷贝,只有当数据发生改变时,数据才会发生复制。通常的情况,子进程创建后会立即调用 exec(),这样就避免复制父进程的全部资源。三者的区别如下::fork():父进程的所有数据结构都会复制一份给子进程(写时拷贝页)。:vfork():只复制 task_struct 和内核堆栈,所以生成的只是父进程的一个线程(无独立的用户空间)。:clone():功能强大,带了许多参数。:clone()可以让你有选择性的继承父进程的资源,既可以选择像:vfork()一样和父进 程共享一个虚拟空间,从而使创造的是线程,你也可以不和父进程共享,你甚至可以选择创造出来的进程和父进程不再是父子关系,而是兄弟关系。3.进程的撤销进程通过调用 exit()退出执行,这个函数会终结进程并释放所有的资源。父进程可以通过 wait4()查询子进程是否终结。进程退出执行后处于僵 死状态,直到它的父进程调用 wait()或者 waitpid()为止。父进程退出时,内核会指定线程组的其他进程或者 init 进程作为其子进程的新父进 程。当进程接收到一个不能处理或忽视的信号时,或当在内核态产生一个不可恢复的 CPU 异常而内核此时正代表该进程在运行,内核可以强迫进程终止。4.进程管理内核把进程信息存放在叫做任务队列(task list)的双向循环链表中(内核空间)。链表中的每一项都是类型为 task_struct,称为进程描述符结构(processdescriptor),包含了一个具体进程的所有信息,包括打开的文件,进程的地址空间,挂起的信号,进程的状态等。Linux 通过 slab 分配器分配 task_struct,这样能达到对象复用和缓存着色(通过预先分配和重复使用 task_struct,可以避免动态分配和释放所带来的资源消耗)。内核把所有处于 TASK_RUNNING 状态的进程组织成一个可运行双向循环队列。调度函数通过扫描整个可运行队列,取得最值得执行的进程投入执行。避免扫描所有进程,提高调度效率。5.进程的内核堆栈Linux 为每个进程分配一个 8KB 大小的内存区域,用于存放该进程两个不同的数据结构:thread_info 和进程的内核堆栈。进程处于内核态时使用不同于用户态堆栈,内核控制路径所用的堆栈很少,因此对栈和描述符来说,8KB 足够了。什么是线程什么是线程Linux 线程是一类特殊的进程,拥有各自的 task_struct,内核并没有特别的调度算法和数据结构来表征线程,而仅仅是作为一个普通的进程,只是和其他进程共享进程空间。也就是说,如果程序运行于多线程环境,编写程序时必须检查一下项目:是否使用了不可重入的系统函数,例如字符串分割函数:strtok();是否已经对全局变量或静态变量进行了加锁;第三方库是否支持多线程。注:想要从核心获取线程 id,应当使用 current-pid。在核心里 pid 对进程而言是进程号,对于线程是线程号。同一进程的不同线程 的 pid 是不同的,但同一进程的不同线程有统一的 tgid,所以像 getpid(),kill()等这种系统调用返回的都是 tgid 的值。线程的调度线程的调度如果系统只有一个 CPU,则它根本不可能真正同时进行一个以上的线程,它只能把 CPU 运行时间划分成若干个时间片,再将时间片分配给各个线程执行,在一个时间片的线程代码运行时,其它线程处于挂起状态,这种方式称之为并发(Concurrent)。因为 I/O 操作速度远远慢于 CPU 处理速度,键鼠输入、硬盘读写、网络传输等速度远慢于内存读写速度,而内存速度又远慢于 CPU 缓存速 度,所以有效的利用I/O 操作间隙时的 CPU,成为早期单核并发机制的来由。在并发环境下,CPU 以”挂起-执行-挂起”的异步方式以很 小的时间片分别运行各个线程,既让每个线程都得到合理的 CPU 资源,避免等待处理速度较慢的设备,又给用户以每个线程都在运行的错觉。在这种环境中,多线 程程序真正改善的是系统的响应性能和程序的友好性。内核线程内核线程内核线程是独立运行在内核空间的标准进程,它和普通进程的区别是内核线程没有独立的地址空间,它的代码段和数据都在内核空间里,但可以被调度,被抢占。内核线程可以创建新的内核线程。一般情况下,内核线程会将它在创建时得到的函数永远执行下去,这个函数通常由一个循环构成(内核线程 0)。在需要的时候,这个内核线程被唤醒,和执行,在完成任务以后,它会自动休眠。注:可以把内核想象成有很多内核线程在内核空间上同时运行的集合体。内核线程内核线程 0 0内核线程 0 是在系统初始化阶段由 start_kernel()函数从无到有创建的一个内核线程,创建的内容包括进程描述符、内核态堆栈、mm、fs、files、signals等。内核线程 0 最后的初始化工作是创建 init 内核线程,此后运行 cpu_idle,线程 0 成为 idle 线程。进程进程 1 1当调度程序选择到 init 线程时,init 线程开始执行 init()函数。init()函数最后调用 execve()系统调用装入可执行程序 init。自此,init 内核线程变成一个普通的进程,即 init 进程,进程号为 1,是其他所有用户进程的父进程。init进程从不终止,因为它创建和监 控操作系统外层的所有进程的活动。

    注意事项

    本文(linux系统分析之进程线程.pdf)为本站会员(qwe****56)主动上传,淘文阁 - 分享文档赚钱的网站仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知淘文阁 - 分享文档赚钱的网站(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    关于淘文阁 - 版权申诉 - 用户使用规则 - 积分规则 - 联系我们

    本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

    工信部备案号:黑ICP备15003705号 © 2020-2023 www.taowenge.com 淘文阁 

    收起
    展开