目录
第二章进程管理
一.进程概念、特征及状态
二.进程的组成以及上下文
三.进程的创建与销毁
四.进程的阻塞与唤醒
五.进程的挂起与激活
六.进程的并发执行(考试重点)
七.进程的互斥(考试重点)
八.进程的同步(考试重点)
九.进程通信
1.进程的概念
进程(process)是一个具有一定独立功能的程序在一个数据集合上的一次动态执行过程
它是系统进行资源分配和调度的基本单位
2.进程的特征
结构特征:进程地址空间的结构划分,如程序段、数据段、核心段和PCB等,也称为“进程映像”。
动态性:进程具有动态的地址空间,地址中间的大小和内容都是动态变化的。
并发性:指多个进程实体同存于内存中,且能够在一段时间内同时运行。
独立性:各进程的地址空间相互独立,除非采用进程间通信手段,否则不能相互影响。
异步性:指进程以各自独立的、不可预知的速度向前推进。
3.进程的三大基本状态
就绪状态(Ready) :进程已获得除处理器外的所需资源,等待分配处理器资源,只要分配了处理器进程就可执行的状态。
执行状态(Running):
用户态(目态)
系统态(内核态、管态)
阻塞状态(Blocked):当进程由于等待I/O操作或进程同步等条件而暂停运行时,它处于阻塞状态。在条件满足之前,即使把处理器分配给该进程,它也是无法继续执行的。也称为“等待状态”、“封锁状态”、“睡眠状态”。
4.进程状态的转换
调度运行(Dispatch):从就绪进程表中选择—个进程,进入运行状态;
超时(Timeout):由于用完时间片或高优先级进程就绪等原因导致进程暂停运行;
事件等待(Event Wait):进程要求的事件未出现而进入阻塞。可能的原因包括:申请系统服务或资源、通信、I/O操作等;
事件出现(Event Occurs):进程等待的事件出现;如操作完成、申请成功等。
5.具有挂起状态的进程状态图
1.进程的组成
(1)程序段:进程执行时的程序代码
(2)数据段:进程执行时所需要的数据
(3)进程控制块(PCB):进程存在的标志性数据结构
2.进程控制块PCB
(1)作用
当操作系统要调度某进程执行时,要从该进程的PCB中查出其现行状态及其优先级。
在调度到某进程后,要根据其PCB中所保存的处理机状态信息,设置该进程恢复运行的现场,并根据其PCB中的程序和数据的内存始址,找到其程序和数据。
进程在执行过程中,当需要和与之合作的进程实现同步、通信或访问文件时,也都需要访问PCB。
当进程由于某种原因而暂停执行时,又须将其执行断点的处理机环境保存在PCB中。
(2)特征
PCB是系统感知进程存在的唯一标志。
PCB可以被操作系统中的多个模块读或修改,如调度程序、资源分配程序、中断处理程序、监督和分析程序等。
PCB全部或部分常驻内存。
系统将所有的PCB组织成若干个链表(或队列),存放在操作系统中专门开辟的PCB区内。
PCB中包含有进程的描述信息、控制信息以及资源信息,是进程动态特征的集中反映。
创建一个进程时首先创建其对应的PCB,当一个进程完成功能后,系统释放其PCB,进程随之消亡。
系统根据PCB感知进程的存在,通过PCB中所包含的各项变量的变化,掌握进程所处的状态,系统通过修改PCB中相应项的值来调整进程状态和控制进程的活动。
(3)进程控制块中的信息
1)进程描述信息
2)处理机状态信息:
①通用寄存器:又称为用户可视寄存器,它们是用户程序可以访问的,用于暂存信息, 在大多数处理机中,有 8~32 个通用寄存器,在RISC结构的计算机中可超过 100 个;
②指令计数器:其中存放了要访问的下一条指令的地址;
③程序状态字PSW:其中含有状态信息,如条件码、执行方式、 中断屏蔽标志等;
④用户栈指针:指每个用户进程都有一个或若干个与之相关的系统栈,用于存放过程和系统调用参数及调用地址。栈指针指向该栈的栈顶。
3)进程控制信息
①程序和数据的地址: 是指进程的程序和数据所在的内存或外存地(首)址,以便再调度到该进程执行时,能从PCB中找到其程序和数据;
②进程同步和通信机制:指实现进程同步和进程通信时必需的机制, 如消息队列指针、信号量等,它们可能全部或部分地放在PCB中;
③资源清单:是一张列出了除CPU以外的、进程所需的全部资源及已经分配到该进程的资源的清单;
④链接指针:它给出了本进程(PCB)所在队列中的下一个进程的PCB的首地址。
4)进程调度信息
①进程状态:指明进程的当前状态,作为进程调度和对换时的依据;
②进程优先级:用于描述进程使用处理机的优先级别的一个整数,优先级高的进程应优先获得处理机;
③进程调度所需的其它信息:它们与所采用的进程调度算法有关,比如,进程已等待CPU的时间总和、 进程已执行的时间总和等;
④事件:是指进程由执行状态转变为阻塞状态所等待发生的事件,即阻塞原因。
3.进程上下文
(1)定义
进程执行活动全过程的静态描述。包括计算机中与执行该进程有关的各寄存器的值、程序段在经过编译之后形成的机器指令代码集(正文段)、数据集、各种堆栈和PCB结构。
(2)进程上下文的内容
*进程的用户地址空间内容
正文段
数据集
堆栈
*处理器中寄存器内容
*该进程相关的核心数据结构
4.进程空间
(1)定义:进程中所有能使用的地址集合。所有程序的执行都在自己的进程空间中进行。用户程序、进程的各种控制表格都按一定结构排列在进程空间中
进程创建过程:
进程终止过程:
根据被终止进程的标识符,从PCB集合中检索出该进程的PCB,从中读出该进程的状态。
若被终止进程正处于执行状态,应立即终止该进程的执行,并置调度标志为真,用于指示该进程被终止后应重新进行调度。
若该进程还有子孙进程,还应将其所有子孙进程予以终止,以防他们成为不可控的进程。
将被终止进程所拥有的全部资源,或者归还给其父进程, 或者归还给系统。
将被终止进程(它的PCB)从所在队列(或链表)中移出, 等待其他程序来搜集信息。
进程阻塞过程
进程唤醒过程
进程的挂起过程:
进程的激活过程
1.并发执行的概念
一组在逻辑上相互独立的程序或程序段在执行过程中,其执行时间在宏观上相互重叠。(强调时间段)
指从宏观上看,在一段时间内有多个程序处于运行状态。
2.程序并发执行的特征
①独立性
每道程序逻辑上完全独立,不存在相互制约的关系。
②随机性
程序的开始执行、输入输出、完成时间都是随机的。
③资源共享
系统内的所有资源都是被所有并发进程所共享,正是由于资源共享,导致了对程序推进速度的制约。
3.程序并发执行所带来的影响
提高了系统处理能力和系统资源的利用率。
会导致系统资源的共享与竞争,从而影响程序的推进速度。
为操作系统和用户程序开发带来一定的难度
4.程序并发执行所带来的问题
•间断(异步)性
•失去封闭性
•失去可再现性
1.与互斥相关的概念
(1)间接制约
由共享公有资源而造成的对并发进程执行速度的制约称为间接制约。
(2)直接制约
一组在异步环境下的并发进程,各自的执行结果互为对方的执行条件,从而限制各进程的执行速度的过程称为并发进程的直接制约。
(3)临界资源
在一段时间内只允许一个进程使用的资源。
(4)临界区
每个进程中访问临界资源的那段程序代码。
2.互斥的概念与特征
(1)概念:
互斥是并发执行的多个进程由于竞争同一资源而产生的相互排斥的关系。
不允许两个以上的共享某资源的并发进程同时进入临界区。
(2)特征:
互斥进程彼此在逻辑上是完全无关的
它们的运行不具有时间次序的特征
3.互斥遵循的准则(重点)
4.进程互斥的实现 (重点)
•软件实现方法
•硬件实现方法 :硬件指令
•信号量机制实现进程互斥(重点)
(1)信号量(semaphore)是由OS提供的管理公有资源的有效手段,信号量代表可用资源实体的数量。
(2)定义:除赋初值外仅能由原语(P、V操作)对其操作的整型变量
•P、V原语实现进程互斥(重点)
(1)PV操作实现互斥的方法:
①定义信号量,必须说明其所代表的资源
②设定信号量的初值:1
③在进入临界区前执行:P(信号量)操作
④在退出临界区前执行:V(信号量)操作
1.进程同步:指一组并发执行的进程由于相互合作,共同完成某种任务,因而相互等待,使得各进程按照一定的速度执行的过程
2.同步进程之间的关系
同步进程间具有相互合作关系
在执行时间上必须按一定的顺序协调进行
3.进程同步的原则
4.进程同步的实现(考试重点)
(1)用消息通信实现进程同步
如果对一个消息或事件赋予唯一的消息名,则可用过程wait(消息名)来表示进程等待合作进程发来的消息,而用过程 signal(消息名)来表示向合作进程发送消息。
wait(消息名):若消息名为true,退出wait(),否则等待,直到消息名为true。
signal(消息名):向合作进程发消息,并将消息变量置为true。
(2)用P、V实现进程同步(重点)
PV实现进程同步范例以及经典算法(点击)
1.概念
所谓进程通信是指进程之间的信息交换。进程之间所交换的信息量,少则是一个状态或数值,多则是成千上万个字节。
2.分类
按通信量分类:低级通信、高级通信
按通信过程中是否有第三方作为中转:直接通信、间接通信
3.通信方式(考试重点)
(1)共享存储器系统:相互通信的进程共享某些数据结构或共享存储区,进程之间能够通过这些空间进行通信。
(2)消息传递系统
①直接通信:发送进程利用操作系统所提供的发送命令,直接把消息发送给目标进程。要求发送进程和接收进程都以显示方式提供对方的标识符。
②间接通信(采用消息邮箱进行通信):进程之间的通信需要通过作为共享数据结构的实体(也称为信箱或邮箱),该实体用来暂时存放发送给目标进程的消息;接收进程从该实体中取出发送给自己的消息。
此信箱只允许核准的目标用户随时读取,可以实现实时通信,也可实现非实时通信。
(3)管道系统
1)“管道”的定义:指用于连接一个读进程和一个写进程以实现他们之间通信的一个共享文件,又名“pipe”文件。管道在物理上 由文件高速缓冲区构成。
2)管道通讯机制
①互斥。即当一个进程正在对管道执行读/写操作时,其他进程必须等待。
②同步。指当写(输入)进程把一定数量的数据写入管道后便去睡眠等待,直到读(输出)进程取走数据后,再把它唤醒。当读进程读一空管道时,也应睡眠等待,直到写进程将数据写入管道后,才将之唤醒。
③确定对方是否存在,只有确定了对方已经存在时,才能进行通信。