1.进程
进程是一个具有一定独立功能的程序的一次运行活动,同时也是资源分配的最小单元。
2.进程的组织
2.1 线性方式
把所有PCB组织在一张线性表中,将该表的首地址存放在内存的一个专用区域中,每次查找是需要扫描全表,适用于系统中进程数目不多的情况。
2.2 链接方式
把具有同一状态的 PCB,用其中 的链接字链接成一个队列,PCB存储在一个连续的存区。
2.3 索引方式
各个索引表在内存单元中的首地址也记录在内存中的专用单元中,用添加索引表的方式记录具有相应状态下的某个PCB在PCB表中的地址。
3.进程的转换
3.1 三态模型
一个进程从创建而产生至撤销而消亡的整个生命周期,可以用一组状态加以刻划,根据三态模型,进程的生命周期可分为如下三种进程状态:
1. 运行态(running):占有处理器正在运行
2. 就绪态(ready):具备运行条件,等待系统分配处理器以便运行
3. 等待态(blocked):不具备运行条件,正在等待某个事件的完成
运行状态的进程将由于出现等待事件而进入等待状态,当等待事件结束之后等待状态的进程将进入就绪状态,而处理器的调度策略又会引起运行状态和就绪状态之间的切换。
引起进程状态转换的具体原因如下:
- 运行态—→等待态:等待使用资源;如等待外设传输;等待人工干预。
- 等待态—→就绪态:资源得到满足;如外设传输结束;人工干预完成。
- 运行态—→就绪态:运行时间片到;出现有更高优先权进程。
- 就绪态—→运行态:CPU 空闲时选择一个就绪进程。
3.2 五态模型
在一个实际的系统里进程的状态及其转换比上节叙述的会复杂一些,例如引入专门的新
建态(new)和终止态(exit )
状态转换图如下所示:
建态对应于进程刚刚被创建的状态。创建一个进程要通过两个步骤,
1. 为一个新进程创建必要的管理信息,
2. 让该进程进入就绪态。此时进程将处于新建态,它并没有被提交执行,而是在等待操作系统完成创建进程的必要操作。需要注意的是,操作系统有时将根据系统性能或主存容量的限制推迟新建态进程的提交
引起进程状态转换的具体原因如下:
- NULL—→新建态:执行一个程序,创建一个子进程。
- 新建态—→就绪态:当操作系统完成了进程创建的必要操作,并且当前系统的性能和虚拟内存的容量均允许。
- 运行态—→终止态:当一个进程到达了自然结束点,或是出现了无法克服的错误,或是被操作系统所终结,或是被其他有终止权的进程所终结。
- 终止态—→NULL:完成善后操作。
- 就绪态—→终止态:未在状态转换图中显示,但某些操作系统允许父进程终结子进程。
- 等待态—→终止态:未在状态转换图中显示,但某些操作系统允许父进程终结子进程。
4.进程是如何调度的
与其他的操作系统不同的是,安装了Linux系统后,用户常用的一些办公软件、图形处理工具、多媒体播放软件和网络工具等都已无需安装。而对于程序开发人员来说,Linux更是一个很好的操作平台,在Linux 的软件包中,包含了多种程序语言与开发工具,如gcc、cc、C++、Tcl/Tk、Perl、Fortran77 等。