linux内核实现机制概述

linux内核实现机制概述

ID:22817870

大小:383.92 KB

页数:14页

时间:2018-10-31

linux内核实现机制概述_第1页
linux内核实现机制概述_第2页
linux内核实现机制概述_第3页
linux内核实现机制概述_第4页
linux内核实现机制概述_第5页
资源描述:

《linux内核实现机制概述》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库

1、Linux2.6内核分析Linux内核主要由5个模块构成,分别是:进程调度模块、内存管理模块、虚拟文件系统模块、进程间通信模块。Linux经常使用散列表来实现高速缓存,高速缓存是需要快速访问的信息。—、进程进程的模型包括进程控制块(PCB)、程序部分和数据集合三部分。1、进程控制块PCBPCB是进程存在的唯一标识。PCB按功能分主要包含以下四部分:进程标示符、处理机状态、进程调度信息、进程控制信息。(1)进程标示符:唯一标识一个进程。(2)处理机状态:有处理机的各种寄存器中的内容组成,寄存器包括通用寄存器、指令寄存器、程序状态字PSW、和

2、用户栈指针。当初立即被屮断时,进程运行信息必须保存在PCB中,以便运行时从断点继续执行。(3)进程调度信息:存放进程状态、进程优先级、进程调度所需其他信息(如调度算法,进程已运行时间,等待CPU时间)、时间或阻塞原因。(4)进程控制信息:包拈程序和数据的内存或者外存地址,进程同步和通信机制,资源清单(除CPU以外进程所需的全部资源以及已经分配的资源)、链接指针(下一进程PCB地址)。Linux的进程控制块PCB使用一个成为task_struct的结构体来描述。该结构体中定义了进程的几种状态:(1)TASK_RUNNING状态。Linux的

3、进程运行状态包栝实际的运行和就绪状态,对两者的区分是根据当前是否占有CPU,结构体屮current变量可以区分两者。(2)TASKJNTERRUPTIBLE状态。即可屮断的等待状态,当进程在等待某个事件和某个资源,可中断等待状态的进程可以被信号唤醒而进入就绪状态等待调度。(3)TASKJJNINTERRUPTIBLE状态。即不可屮断等待状态,该状态进程由于硬件不能满足,不能被信号唤醒,必须等到得到所等待的资源之后才能被唤醒。(4)TASK_ZOMBIE状态。即僵死状态,终止进程所占有的资源全部释放之后,还保存着PCB信息,这种占有PCB但

4、已被撤销的进程处于僅死状态(如僅死进程)。(5)TASK_STOPPED状态。即暂停状态,一般都是有运行状态转换来,正等待某种特殊处理,如调试跟踪的程序。(6)TASK_DEAD状态。新增加的状态,指已经退出但是不需要父进程回收的进程。Linux內核创建一个进程时,首先会新建一个空的task_struct结构体,并将相应信息填入结构体屮,然后将该结构体的指针添加进task数组,这个数组大小由NR_TASK(默认一般为512)指定。调度程序一直维持着一个current指针,它指向当前正在运行的程序。Task[O]必须指向init_task进

5、程(0号进程)。Linux中,内核将所有struct_task结构体以两种方式组织:(1)哈希表,将进程的PID作为哈希算法的输入,可以用一个给定PID快速查找到进程,通过find_task_pid()来定位相应进程。Linux2.6内核分析Linux内核主要由5个模块构成,分别是:进程调度模块、内存管理模块、虚拟文件系统模块、进程间通信模块。Linux经常使用散列表来实现高速缓存,高速缓存是需要快速访问的信息。—、进程进程的模型包括进程控制块(PCB)、程序部分和数据集合三部分。1、进程控制块PCBPCB是进程存在的唯一标识。PCB按功

6、能分主要包含以下四部分:进程标示符、处理机状态、进程调度信息、进程控制信息。(1)进程标示符:唯一标识一个进程。(2)处理机状态:有处理机的各种寄存器中的内容组成,寄存器包括通用寄存器、指令寄存器、程序状态字PSW、和用户栈指针。当初立即被屮断时,进程运行信息必须保存在PCB中,以便运行时从断点继续执行。(3)进程调度信息:存放进程状态、进程优先级、进程调度所需其他信息(如调度算法,进程已运行时间,等待CPU时间)、时间或阻塞原因。(4)进程控制信息:包拈程序和数据的内存或者外存地址,进程同步和通信机制,资源清单(除CPU以外进程所需的全

7、部资源以及已经分配的资源)、链接指针(下一进程PCB地址)。Linux的进程控制块PCB使用一个成为task_struct的结构体来描述。该结构体中定义了进程的几种状态:(1)TASK_RUNNING状态。Linux的进程运行状态包栝实际的运行和就绪状态,对两者的区分是根据当前是否占有CPU,结构体屮current变量可以区分两者。(2)TASKJNTERRUPTIBLE状态。即可屮断的等待状态,当进程在等待某个事件和某个资源,可中断等待状态的进程可以被信号唤醒而进入就绪状态等待调度。(3)TASKJJNINTERRUPTIBLE状态。即

8、不可屮断等待状态,该状态进程由于硬件不能满足,不能被信号唤醒,必须等到得到所等待的资源之后才能被唤醒。(4)TASK_ZOMBIE状态。即僵死状态,终止进程所占有的资源全部释放之后,还保存着P

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。