进程
概念
1. 程序和进程的区别?
程序:是静态的,就是个存放在磁盘里的可执行文件,即一系列的指令集合。如: QQ.ext
进程:是动态的,是程序的一次执行过程。同一个程序多次执行会对应多个进程。
组成
① 进程控制快PCB。是进程存在的唯一标志!当进程被创建时,操作系统为其创建PCB,进程结束时,会收回其PCB。(进程描述信息、进程控制和管理信息、资源分配清单、处理机相关信息)。进程的管理者(操作系统)所需的数据都在PCB中
② 程序段。程序的代码(指令序列)
③ 数据段。运行过程中产生的各种数据(如:程序中定义的变量)
进程是进程实体(由①②③组成)的运行过程,是系统进行资源分配和调度的一个独立单位。
2. 进程与进程实体关系
答:进程实体由PCB、程序段、数据段组成,是静态的;进程是动态的,进程实体反应了进程在某一时刻的状态。
特征(相比于程序)
① 动态性(进程的最基本特征),进程是程序一次执行的过程,是动态地产生、变化和消亡的
② 并发性,内存中有多个进程实体,各进程可并发执行。
③ 独立性(进程能独立运行、独立获得资源、独立接收调度的基本单位)
④ 异步性(各进程以不可预知的速度向前推进,可能导致运行结果的不确定性)
⑤ 结构性。每个进程都会配置一个PCB。结构上看,进程由程序段、数据段、PCB组成。
状态转换
5种状态
① 创建状态(new):操作系统为新进程分配资源、创建PCB。
② 就绪状态(ready):进程已处于准备运行状态,即进程获得了除了处理器之外的一切所需资源,一旦得到处理器资源(处理器分配的时间片)即可运行。CPU×,其他资源√。
③ 运行状态(running):进程正在处理器上运行(单核 CPU 下任意时刻只有一个进程处于运行状态)。CPU√,其他资源√。
④ 阻塞状态(waiting):又称为等待状态,进程正在等待某一事件而暂停运行如等待某资源为可用或等待 IO 操作完成。即使处理器空闲,该进程也不能运行。CPU×,其他资源×。
⑤ 终止状态(terminated):操作系统回收进程的资源、撤销PCB。
3. 状态间的转换
① 就绪态-->运行态:进程被调度
② 运行态-->就绪态:时间片到,或CPU被其他高优先级进程抢占。
③ 运行态-->阻塞态:等待系统资源分配,或等待某事件发生(进程主动的行为)。
④ 阻塞态-->就绪态:资源分配到位,等待的事件发生(进程被动的行为)。
⑤ 创建态-->就绪态:系统完成创建进程的相关工作。
⑥ 运行态-->终止态:进程运行结束,或运行过程中遇到不可修复的错误。
4. 进程不能由阻塞态直接转换为运行态,也不能由就绪态直接转换为阻塞态。为什么?
答:因为进入阻塞态是进程主动请求的,必然需要进程在运行时才能发出这样的请求。
进程的组织
① 链式组织:按照进程状态将PCB 分为多个队列;操作系统持有指向各队列的指针
② 索引方式:根据进程状态不同,建立几张索引表。(了解)
进程控制
概念:进程控制就是要实现进程状态的转换。
实现:通过原语实现。原语用开中断和关中断来实现,是一种特殊的程序,其执行必须一气呵成,不可中断。
相关原语:进程的创建、终止、阻塞与换醒(须成对出现)、切换
进程原语做的三类事情:
① 更新PCB中的信息(修改进程状态、保存/恢复运行环境);② 将PCB插入合适的队列;