操作系统 第二章 进程的描述与控制(2)-进程的描述
计算机操作系统
读书笔记
操作系统 第二章 进程的描述与控制(2)-进程的描述
前言
传统的OS中,为提高资源利用率和系统吞吐量,通常采用多道程序技术,将多道程序同时装入内存,使之并发运行,此时作为资源分配和独立运行的基本单位都是进程,OS的四大特征也都是基于进程而形成的。所以进程是极其重要的,本章将对其进行详细阐述。
操作系统的主要作用:管理好这些设备,提高它们的利用率和系统的吞吐量。
进程的描述
一、进程的定义和特征
问题:
① 有些语句/程序段可以并发
② 有些语句/程序段不可以并发
③ 对不可以并发的程序段如果并发可能产生错误结果
④ 如何使程序正确的并发执行
引入进程的目的:使程序正确的并发执行。
进程是可以并发的,程序是顺序的
相关概念:
-
进程实体:
程序段、相关的数据段和 PCB(Process Control Block)三部分便构成了进程实体。 -
进程:
进程的实质是进程实体的一次执行过程,是系统进行资源分配和调度的一个独立单位。
进程较典型的进程定义有:
-
① 进程是程序的一次执行。
-
② 进程是一个程序及其数据在处理机上顺序执行时所发生的活
动。 -
③ 进程是程序在一个数据集合上运行的过程,它是系统进行资源分配和调度的一个独立单位。
二、 进程的特征
(1)动态性:进程的实质是进程实体的一次执行过程,因此,动态性是进程的最基本的特征。动态性还表现在:“它由创建而产生,由调度而执行,由撤消而消
亡”。
(2)并发性:多个进程实体同存于内存中,且能在一段时间内同时运行。
(3)独立性:独立运行、独立分配资源和独立接受调度。
(4)异步性:进程按各自独立的、不可预知的速度向前推进。
三、进程的基本状态及转换
3.1 进程的三种基本状态
(1)就绪状态(Ready): 分配到除 CPU 之外的所有必要资源。只要获得 CPU 使用权,便可立即执行。
(2)执行状态(Run): 获得 CPU 使用权,正在执行。
(3)阻塞状态(Block):正在执行时由于发生某事件而暂停执行,放弃 CPU 使用权。
- Note:
① 在一个系统中处于就绪状态的进程可能有多个,通常将它们排成一个队列,称为就绪队列。
② 在单处理机系统中,只有一个进程处于执行状态;在多处理机系统中,则有多个进程处于执行状态。
③ 致使进程阻塞的典型事件有:请求 I/O,申请缓冲空间等。通常将这种处于阻塞状态的进程也排成一个队列,即为阻塞队列。有的系统则根据阻塞原因的不同而把处于阻塞状态的进程排成多个阻塞队列。
3.2 三种基本状态的转换
3.3 创建状态和终止状态
(1)创建状态:进程刚建立,还未进入就绪队列。
(2)终止状态:进程已(正常或异常)结束,已从就绪队列中移出,但尚未撤销。暂留,以便其他进程收集该进程的有关信息。
3.4 挂起操作和进程状态的转换
**挂起操作:**当对某个进程进行挂起操作是,该进程将暂不接受调度,不能参与对 CPU 使用权的竞争,即处于相对静止的状态。
与挂起操作对应的操作是激活操作。
挂起是把进程从内存移到外存的一个操作,为了释放更多的内存空间,内存的资源
引入挂起状态的原因
① 终端用户的请求
当终端用户在自己的程序运行期间发现有可疑问题时,希望暂时将自己的程序静止下来。
② 父进程请求
父进程需要考查和修改子进程
③ 负荷调节的需要
在实时系统中为了调整工作负荷可将不重要的进程挂起
④ 操作系统的需要
如检查运行中的资源使用情况
引入挂起原语操作后三个进程状态的转换
在引入挂起状态后,又将增加挂起状态(又称为静止状态)和非挂起状态(又称为活动状态)的相互转换。
活动就绪(Readya):未被挂起的就绪状态。
静止就绪(Readys):活动就绪时被 Suspend 挂起后,此时它不再接受进程调度,不再竞争 CPU 的使用权。
活动阻塞(Blockeda):未被挂起的阻塞状态。
静止阻塞(Blockeds):活动阻塞时被 Suspend 挂起后。
活动指的是进程还在内存当中的。
引入挂起操作后五个进程状态的转换
四、进程控制块-PCB
进程表又称为进程控制块(Porcess Control Block,PCB)
4.1 进程控制块 PCB 的作用
使一个在多道程序环境下不能独立运行的程序(含数据),成为一个能独立运行的基本单位,一个能与其它进程并发执行的进程。或者说,OS 是根据 PCB 对并发执行的进程进行控制和管理的。
PCB 中记录了操作系统所需的、用于描述进程的当前情况以及控制进程运行的全部信息。
PCB 的具体作用:
-
(1) 作为独立运行基本单位的标志。
-
(2) 能实现间断性运行方式。
-
(3) 提供进程管理所需要的信息。
-
(4) 提供进程调度所需要的信息。
-
(5) 实现与其它进程的同步与通信。
4.2 进程控制块中的信息
-
(1)进程标识符
进程标识符用于惟一地标识一个进程。一个进程通常有两种标识
符:
① 内部标识符。系统每一个进程赋予一个惟一的数字标识符。
② 外部标识符。由创建者提供,通常是由字母、数字组成。
-
(2)处理机状态
处理机状态信息主要是由处理机的各种寄存器中的内容组成的。
-
(3)进程调度信息
进程状态、进程优先级、进程调度所需的其他信息、事件(阻塞原
因)等。
-
(4)进程控制信息
指用于进程控制所需的信息,包括:
① 程序和数据的地址
② 进程同步和通信机制,如消息队列指针、信号量等。
③ 资源清单,在该清单中列出了进程在运行期间所需的全部资源(除 CPU 以外),另外还有一张已分配到该进程的资源的清单;
④ 链接指针,本进程(PCB)所在队列中的下一个进程的 PCB 的首地址。
4.3 进程控制块的组织方式
系统中众多的 PCB 如何组织才能进行有效的管理?
(1)线性方式
系统中所有的 PCB 都组织在一张线性表中,将该表的首址存放在内存的一个专用区域中。
特点:实现简单、开销小,但每次查找时都需要扫描整张表,因此
适合进程数目不多的系统
(2)链接方式
把具有相同状态进程的 PCB 分别通过 PCB 中的链接字链接成一个队列。
(3)索引方式
系统根据所有进程状态的不同,建立几张索引表,例如,就绪索引表、阻塞索引表等,并把各索引表在内存的首地址记录在内存的一些专用单元中。
在每个索引表的表目中,记录具有相应状态的某个 PCB 在PCB 表中的地址。
总结
期待大家和我交流,留言或者私信,一起学习,一起进步!