正文
1. 程序顺序执行的特征
前驱图是一个有向无循环图,由结点和有向边组成,结点代表各程序段的操作,而结点建的有向边表示两个程段操作之间的前驱关系(->)。程序段 Pi 和 Pj 的前驱关系表示成 Pi -> Pj,其中,Pi 是 Pj 的前驱,Pj 是 Pi 的后继,其含义是 Pi 执行结束后 Pj 才能执行。
如下图所示为 3 个程序段,其中输入是计算的前驱(计算是输入的后继),输入结束才能进行计算;计算是输出的前驱,计算结束才能进行输出。
程序顺序执行时的主要特征包括顺序性、封闭性和可再现性。
2.进程控制块(PCB)
进程是程序的一次执行,该程序可以和其他程序并发执行。进程通常是由程序、数据和进程控制块(Process Control Block,PCB)组成的。
PCB 是进程存在的唯一标志,其主要内容如下所示:
信息 | 含义 |
进程标识符 | 标明系统中的各个进程 |
状态 | 说明进程当前的状态 |
位置信息 | 指明程序及数据在主存或外存的物理位置 |
控制信息 | 参数、信号量、消息等 |
队列指针 | 链接同一状态的进程 |
优先级 | 进程调度的依据 |
现场保护区 | 将处理机的现场保护到该区域,以便再次调度时能继续正确运行 |
其他 | 因不同的系统而异 |
3. 原语(Primitive)
原语(Primitive)是指由若干条机器指令组成的,用于完成特定功能的程序段。原语的特点是在执行时不能被分割,即原子操作要么都做,要么都不做。内核中所包含的原语主要有进程控制原语、进程通信原语、资源管理原语以及其他方面的原语。
属于进程控制方面的原语有进程创建原语
、进程撤销原语
、进程挂起原语
、进程激活原语
、进程阻塞原语
以及进程唤醒原语
等。不同的操作系统内核所包含的功能不同,但大多数操作系统的内核都包含支撑功能和资源管理的功能。
4. 高级通信原语
为了提高信号通信的效率,传递大量数据,降低程序编制的复杂度,系统引入了高级通信方式。高级通信方式主要分为共享存储模式
、消息传递模式
和管道通信
。
- 共享存储模式。相互通信的进程共享某些数据结构(或存储区)实现进程之间的通信。
- 消息传递模式。进程间的数据交换以消息为单位,程序员直接利用系统提供的一组通信命令(原语)来是实现通信,如 Send(A)、Receive(A)。
- 管道通信。所谓管道,是指用于连接一个读进程和一个写进程,以实现它们之间通信的共享文件(pipe 文件)。向管道(共享文件)提供输入的发送进程(即写进程),以字符流的形式将大量的数据送入管道;而接收进程可从管道接收大量的数据。由于它们通信时采用管道,所以称为管道通信。