第二章
前趋图是一个有向无循环图,记为DAG(Directed Acyclic Graph),用于描述进程之间执行的前后关系
进程的描述
1 进程的定义
(1) 进程是程序的一次执行。
(2) 进程是一个程序及其数据在处理机上顺序执行时所发生的活动。
(3) 进程是程序在一个数据集合上运行的过程,它是系统进行资源分配和调度的一个独立单位。
(4) 进程是进程实体的运行过程,是系统进行资源分配和调度的一个独立单位。
(5) 进程是一个具有一定独立功能的程序关于某个集合的一次运行活动。(我国78年庐山研讨会)
2 进程同程序的比较
- 进程是动态的,程序是静态的
- 进程是暂时的,程序是永久的
- 进程与程序的组成不同
- 进程与程序的对应关系
3. 进程的特征
- 结构特征:由程序段、数据段、进程控制块三部分组成(进程实体);
- 动态性:进程的实质是程序的一次执行过程;
- 并发性:多个进程可同存于内存中,能在一段时间内同时运行;
- 独立性:独立运行的基本单位,独立获得资源和调度的基本单位;
- 异步性:各进程按各自独立的不可预知的速度向前推进。
进程的基本状态及转换
1. 进程的三种基本状态
- 就绪状态(Ready):进程已获得除 CPU 以外的所有必要资源,只要得到 CPU,便可立即执行。
- 执行状态(Runing):进程已得到 CPU,其程序正在 CPU 上执行。
- 阻塞状态(Blocked):正在执行的进程因某种事件(如 I/O 请求)的发生而暂时无法继续执行,只有等相应事件完成后,才能去竞争 CPU。
2 挂起
- 引入挂起状态的原因
- 终端用户的请求
- 父进程请求
- 负荷调节的需要
- 操作系统的需要
进程的数据结构
1、进程的组成
PCB,程序,数据,工作区
2. 进程控制块
进程控制块的作用是使一个在多道程序环境下不能独立运行的程序(含数据),成为一个能独立运行的基本单位,一个能与其它进程并发执行的进程。或者说,OS是根据PCB来对并发执行的进程进行控制和管理的。
- 进程与PCB是一一对应的。
- PCB应常驻内存。
3.进程控制块的信息
进程标志符,处理机信息,进程调度信息,进程控制信息
4 进程控制块的组织方式
- 单一队列方式 :所有进程的PCB通过链表组成一个单一队列,适用于进程数目不多的系统。
- 链接方式: 相同状态的进程PCB组成一个链表,不同状态对应多个不同的链表。
- 索引方式:对具有相同状态的进程,分别设置各自的PCB索引表,表明PCB在PCB表中的地址。
进程控制原语
进程控制是进程管理中最基本的功能,它用于创建和撤消进程,并对进程在整个生命周期中各种状态之间的转换进行有效控制。
进程控制是由操作系统的内核通过原语来实现的。
原语:系统状态下执行的某些具有特定功能的程序段称为原语。 (原语的执行具有原子性,执行时不可分割)。
进程的控制主要包括:
创建进程、阻塞进程、唤醒进程、挂起进程、激活进程、终止进程、撤销进程等
进程同步的基本概念
进程同步
进程同步是指对多个相关进程在执行次序上进行协调。
进程同步的主要任务是使并发执行的诸进程之间能有效的共享资源和相互合作,从而使程序的执行具有可再现性。
1 两种形式的制约关系
直接相互制约关系
同步关系,相互合作关系。
间接相互制约关系
互斥关系,资源共享关系
2 临界资源
一次仅允许一个进程访问的资源。
3 临界区
进程中访问临界资源的那段代码称为临界区。
4 同步机制应遵循的原则
用来实现互斥的同步机制必须遵循下述四条准则:
(1) 空闲让进
(2) 忙则等待
(3) 有限等待
(4) 让权等待
经典进程的同步问题
生产者—消费者问题
哲学家进餐问题
读者-写者问题
进程通信的类型
进程之间互相交换信息的工作称为进程通信。
- 低级通信:归结为进程之间的互斥和同步,一般只传送少量信息(信号量)。缺点:效率低,通信对用户不透明。
- 高级通信:能够高效传输大量数量数据的通信方式。又分为三类:共享存储器系统、消息传递系统、管道通信系统。
高级通信系统
-
共享存储器系统
相互通讯的进程通过共享数据结构和共享存储区进行通讯,可进一步分为
- 基于共享数据结构的通信方式
进程之间通过某种数据结构,如缓冲池进行通信,属于低级通信方式。如生产者-消费者问题中的有界缓冲区。 - 基于共享存储区的通信方式
为了传送大量信息,在存储器中划出一块共享存储区,诸进程可通过对共享存储区进行读或写来实现通信,属高级通信方式。
- 基于共享数据结构的通信方式
-
消息传递系统
- 使用最广泛的一种进程通信机制。
- 进程间的数据交换以消息或报文为单位,程序员直接利用一组通信命令(原语)来实现通信。
- 操作系统隐藏了通信的实现细节,简化了通信程序编制的复杂性。
通信方式:
- 直接通信
- 间接通信
-
管道通信
线程
操作系统中引入进程的目的,是为了使多个程序能并发执行,以提高资源利用率和系统吞吐量,那么,在操作系统中再引入线程,则是为了减少程序在并发执行时所付出的时空开销,使OS具有更好的并发性。
属性
① 进程是一个可拥有资源的独立单位;
② 进程同时又是一个可独立调度和分派的基本单位。
与进程比较
线程又称为轻型进程(Light-Weight Process)或进程元,传统进程称为重型进程(Heavy-Weight Process)。
线程的状态及控制块
运行 堵塞 就绪
控制块:将所有用于控制和管理线程的信息记录在线程控制块中。
内容
1)一个被称为线程ID(thread ID,线程标识符)的唯一标识符;
2)一组寄存器,包括程序计数器、状态寄存器、通用寄存器中的内容;
3)线程运行状态
4)优先级
5)线程专有存储区
6)信号屏蔽
7)堆栈指针 用于保存局部变量和返回地址