![](https://csdnimg.cn/release/download_crawler_static/30932419/bg1.jpg)
Linux 进程管理实验
一、实验内容:
1. 利用bochs观测linux0.11 下的 PCB进程控制结构。
2. 利用bochs观测linux0.11 下的 fork.c 源代码文件,简单分析其中
的重要函数。
3. 在fork.c 适当位置添加代码,以验证 fork 函数的工作原理。
二、Linux 进程管理机制分析
Linux 有两类进程:一类是普通用户进程,一类是系统进程,它
既可以在用户空间运行, 又可以通过系统调用进入内核空间, 并在内
核空间运行;另一类叫做内核进程,这种进程只能在内核空间运行。
在以 i386 为平台的 Linux 系统中,进程由进程控制块,系统堆栈,用
户堆栈,程序代码及数据段组成。 Linux 系统中的每一个用户进程有
两个堆栈: 一个叫做用户堆栈, 它是进程运行在用户空间时使用的堆
栈;另一个叫做系统堆栈, 它是用户进程运行在系统空间时使用的堆
栈。
1.Linux 进程的状态:
Linux 进程用进程控制块的 state 域记录了进程的当前状态, 一个 Linux
进程在它的生存期中,可以有下面 6种状态。
1.就绪状态 (TASK_RUNNING) :在此状态下,进程已挂入就绪队列,
进入准备运行状态。
2.运行状态 (TASK_RUNNING) :当进程正在运行时,它的 state域中
的值不改变。但是 Linux会用一个专门指针 (current) 指向当前运行的