文章目录
【王道操作系统】ch2进程与线程-01进程与线程
01 进程的概念、组成和特征
(1)进程的概念
- 程序:静态的,存放在磁盘里的可执行文件,就是一系列的指令集合
- 进程:进程时动态的。进程是进程实体的运行过程,是系统进行资源分配和调度的一个独立单位。
PCB是进程存在的唯一标志。
(进程的调度:操作系统决定让这个进程上CPU运行)
操作系统是进程的管理者,当进程被创建时,操作系统会为该进程分配一个唯一的、不重复的身份证号——PID(Process ID)
- 操作系统需要记录PID、进程所属用户ID(UID)【基本的进程描述信息,让操作系统区分各个进程】
- 记录给进程分配了哪些资源(分配了多少内存、正在使用哪些I/O设备、正在使用哪些文件)【可用于实现操作系统对资源的 管理】
- 记录进程的运行情况(CPU使用时间、磁盘使用情况、网络流量使用情况等)【可用于操作系统对进程的控制、调度】
以上信息都被保存在一个数据结构PCB(Process Control Block)中,即进程控制块。操作系统需要对各个并发运行的进程进行管理,但凡管理时所需要的信息,都会被放在PCB中。
(2)进程(进程实体)的组成
①PCB(给操作系统用的)
PCB是进程存在的唯一标志,当进程被创建时,操作系统为其创建PCB,当进程结束时,会回收PCB。
②程序段(给进程自己用的)和数据段(给进程自己用的)
- 进程:进程时动态的。进程是进程实体的运行过程,是系统进行资源分配和调度的一个独立单位。
PCB是进程存在的唯一标志。
(进程的调度:操作系统决定让这个进程上CPU运行) - 进程实体:一个进程实体(进程映像)由PCB、程序段、数据段组成。进程实体是静态的。可以将进程实体理解为进程在某一时刻的快照,进程实体反映了进程在某一时刻的状态。
例如:一个程序运行多次会对应多个进程。
同时挂3个QQ号会对应三个QQ进程,它们的PCB、数据段各不相同,但是程序段的内容相同,都是运行的相同的QQ程序。
(3)进程的特征
tips:进程是能独立运行、独立获得资源、独立接收调度的基本单位。注意,在引入了线程之后,进程就不再是独立接收调度的基本单位了,但进程仍然是独立获得资源的基本单位
02 进程的状态与转换、进程的组织
(1)进程的状态:创建态、就绪态、阻塞态、终止态
- 创建态:进程正在被创建,操作系统为进程分配资源、初始化PCB
- 就绪态:当进程创建完成后,进入就绪态。处于就绪态的进程已经具备运行条件,但由于没有空闲CPU,暂时不能运行。
- 运行态:如果一个处于就绪态的进程被操作系统调度,这个进程就可以上CPU运行,当一个进程在CPU上运行时就处于运行态。
- 阻塞态:在进程的运行过程中,可能会请求等待某个事件的发生(如等待某种系统资源的分配,或者等待其他进程的响应),在这个事件发生之前,进程无法继续往下执行,此时操作系统会让这个进程下CPU,并让它进入阻塞态。
- 终止态:一个进程可以执行exit系统调用,请求操作系统终止该进程。此时进程会进入终止态,操作系统会让该进程下CPU,并回收内存空间等资源,最后还要回收该进程的PCB。
(2)进程的状态转换模型
(3)进程的组织
①链接方式
②索引方式
两种进程组织方式中,用得比较多的是链接方式。
(4)进程的状态与转换、进程的组织小结
03 进程控制
(1)什么是进程控制
定义:进程控制的主要功能是对系统中的所有进程实施有效的管理,它具有创建新进程、撤销已有进程、实现进程状态转换等功能。
通俗理解:进程控制就是要实现进程的状态转换。
(2)如何实现进程控制——用“原语”实现
计算机进程的控制通常由原语完成。所谓原语,一般是指由若干条指令组成的程序段,用来实现某个特定功能,在执行过程中不可被中断。在操作系统中,某些被进程调用的操作,如队列操作、对信号量的操作、检查启动外设操作等,一旦开始执行,就不能被中断