linux内核设计与实现【第三版】摘记----第三章:进程管理
2014-03-02 13:10
288 查看
进程:
现代操作系统中,进程提供两种虚拟机制:虚拟处理器和虚拟内存。【在线程之间可以共享虚拟内存,但却都各自拥有虚拟处理器】进程:是处于执行期的程序以及相关的资源的综合。
多个进程可能运行的是同一段程序,比如一个电灯的程序,可以通过创建线程来实现重复的电灯操作。
使用exec()这组函数可以在fork之后创建新的地址空间,并把程序载入其中。fork实际上是由clone系统调用实现。
使用exit系统调用退出执行,即使他会终结进程并将其占用的资源释放掉,但他仍是一个僵死进程,一些关于这个进程的描述符还是保存着,直到它的父进程调用wait()或waitpid()为止。
进程描述符以及任务结构:
待。。。。继续因为linux实现使用的是队列而不是UNIX那样的静态数组,所以,就把内核存放进程的列表叫做任务队列,是一个双向循环链表。
链表中的每一项都是一个类型为task_struct叫做进程描述符的结构体。
进程描述符包括一个进程的所有信息。
分配进程描述符:
linux通过slab分配器分配task_struct结构体,2.6以前的内核task_struct结构体存放在各个内核栈的尾端。这样做是为了让那些像X86那样寄存器少的硬件体系结构能够通过栈指针来计算出task_struct的具体位置,从而减少了寄存器的额外开销。由于现在使用slab分配器动态的生成task_struct结构体,现在只需要在栈底(对于向下增长的栈)或者栈顶(对于向上增长的栈)创建一个新的结构体structthread_info这个里面存放着task_struct的指针,但这个对于X86的体系结构比较适宜,对于linux体系结构不需要这个,他可以通过指定寄存器来提高访问task_struct结构体的速度。
进程描述符的存放:
相关文章推荐
- linux内核设计与实现笔记之第三章进程管理
- Linux内核设计与实现-第三章 进程管理
- 进程管理(Linux内核设计与实现 整理)
- Linux内核设计与实现 学习笔记(二)进程管理
- Linux内核设计与实现(三) linux进程管理 之 进程创建-2
- Linux内核设计与实现笔记--chapter3 进程管理
- Linux内核设计与实现----进程管理
- 《Linux内核的设计与实现》读书笔记(三)---进程管理
- Linux内核设计与实现----进程管理
- linux内核设计与实现 进程管理 访问子进程的方法详解
- linux内核设计与实现(三) linux进程管理 之 进程描述—1
- linux内核设计与实现(进程管理、进程调度读书笔记)
- Linux内核设计与实现之进程管理
- linux内核设计与实现【第三版】摘记----第一章:linux内核简介
- Linux内核设计与实现——读书笔记2:进程管理
- 【Linux内核设计与实现】进程管理
- linux内核设计与实现【第三版】摘记----第二章:从内核出发
- 每日阅读3之内核设计与实现(第三版)4.5——linux调度实现之进程选择
- Windows 进程管理工具的设计与实现
- Linux内核设计与实现(5)---进程调度