操作系统原理PrincipleofOperatingSystem精品课程兰州理工大学计算机与通信学院第2章进程管理2.1进程的引入2.2进程的描述与控制2.3线程2.4进程同步2.5经典进程同步问题2.6进程通信2.7死锁问题2.8Windows进程管理本章主要内容操作系统原理PrincipleofOperatingSystem精品课程2020年9月14日星期一兰州理工大学计算机与通信学院2.1进程的引入2.1.1程序的顺序执行与并发执行2.1.2进程的概念2.1.3进程的状态2.1.4进程的管理操作系统原理PrincipleofOperatingSystem精品课程2020年9月14日星期一兰州理工大学计算机与通信学院1.程序的顺序执行程序的顺序执行是指必须严格地按照某种次序逐个地执行,即只有当一个操作结束后,才能开始后继操作。操作系统原理PrincipleofOperatingSystem精品课程2020年9月14日星期一兰州理工大学计算机与通信学院程序顺序执行的特征执行的顺序性环境的封闭性结果的确定性过程的可再现性操作系统原理PrincipleofOperatingSystem精品课程2020年9月14日星期一兰州理工大学计算机与通信学院2.程序的并发执行操作系统中引入并发程序设计技术后,程序的执行不再是顺序的,一个程序未执行完而另一个程序已投入运行,程序外部的顺序特性消失,程序与程序的执行不再一一对应。操作系统原理PrincipleofOperatingSystem精品课程2020年9月14日星期一兰州理工大学计算机与通信学院程序段的并发执行I1I2I3C1C2C3P1P2P3操作系统原理PrincipleofOperatingSystem精品课程2020年9月14日星期一兰州理工大学计算机与通信学院程序并发执行的特征执行的间断性环境的不封闭性结果的不确定性过程的不可再现性操作系统原理PrincipleofOperatingSystem精品课程2020年9月14日星期一兰州理工大学计算机与通信学院2.1进程的引入2.1.1程序的顺序执行与并发执行2.1.2进程的概念2.1.3进程的状态2.1.4进程的管理操作系统原理PrincipleofOperatingSystem精品课程2020年9月14日星期一兰州理工大学计算机与通信学院1.进程的定义进程的多种定义中能反映进程实质的定义有:是程序的一次执行。计算机中正在运行的程序的一个实例。可以分配给处理机并由处理机执行的一个实体。是一个可并发执行的具有独立功能的程序关于某个数据集合的一次执行过程,也是操作系统进行资源分配和保护的基本单位。操作系统原理PrincipleofOperatingSystem精品课程2020年9月14日星期一兰州理工大学计算机与通信学院2.进程的类型从操作系统角度,可将进程分为系统进程和用户进程两大类。系统进程系统进程属于操作系统的一部分,它们运行操作系统程序,完成操作系统的某些功能,也被称作守护(daemon)进程操作系统原理PrincipleofOperatingSystem精品课程2020年9月14日星期一兰州理工大学计算机与通信学院用户进程用户进程运行用户程序,直接为用户服务。所谓“用户程序”,不一定是用户自己编写的程序,在操作系统之上运行的所有应用程序都被称作用户进程。操作系统原理PrincipleofOperatingSystem精品课程2020年9月14日星期一兰州理工大学计算机与通信学院3.进程的特征动态性共享性独立性并发性异步性结构性操作系统原理PrincipleofOperatingSystem精品课程2020年9月14日星期一兰州理工大学计算机与通信学院4.进程和程序的关系进程是动态的,程序是静态的进程是暂时的,程序是永久的进程与程序的组成不同一个程序可以对应多个进程,但一个进程只能对应一个程序段操作系统原理PrincipleofOperatingSystem精品课程2020年9月14日星期一兰州理工大学计算机与通信学院2.1进程的引入2.1.1程序的顺序执行与并发执行2.1.2进程的概念2.1.3进程的状态2.1.4进程的管理操作系统原理PrincipleofOperatingSystem精品课程2020年9月14日星期一兰州理工大学计算机与通信学院一个进程从产生到消亡的整个生命周期,有时占有处理机而执行,有时虽然可以运行但分不到处理机,有时虽有空闲处理机但因等待某个事件的发生而无法执行。为了便于管理进程,一般来说,按进程在执行过程中的不同情况可以构造最简单的进程状态模型。操作系统原理PrincipleofOperatingSystem精品课程2020年9月14日星期一兰州理工大学计算机与通信学院1.三状态进程模型就绪运行阻塞调度落选出现等待条件操作系统原理PrincipleofOperatingSystem精品课程2020年9月14日星期一兰州理工大学计算机与通信学院2.五状态进程模型就绪运行阻塞调度落选出现等待条件新建终止释放允许进入操作系统原理PrincipleofOperatingSystem精品课程2020年9月14日星期一兰州理工大学计算机与通信学院3.挂起状态进程模型(Ⅰ)就绪运行阻塞调度落选等待条件满足出现等待条件新建终止释放允许进入挂起挂起激活单挂起状态进程模型操作系统原理PrincipleofOperatingSystem精品课程2020年9月14日星期一兰州理工大学计算机与通信学院3.挂起状态进程模型(Ⅱ)双挂起状态进程模型新建活动就绪挂起就绪挂起阻塞活动阻塞运行终止允许进入挂起释放激活等待条件满足挂起激活等待条件满足挂起出现等待条件落选调度允许进入操作系统原理PrincipleofOperatingSystem精品课程2020年9月14日星期一兰州理工大学计算机与通信学院2.1进程的引入2.1.1程序的顺序执行与并发执行2.1.2进程的概念2.1.3进程的状态2.1.4进程的管理操作系统原理PrincipleofOperatingSystem精品课程2020年9月14日星期一兰州理工大学计算机与通信学院在操作系统中同时存在多个进程,它们又对应着不同的或相同的程序段以及进程运行所需的各种独立的、共享的系统资源。因此进程管理的功能有以下几个方面:进程的控制进程的同步进程的通信进程的调度进程的安全操作系统原理PrincipleofOperatingSystem精品课程兰州理工大学计算机与通信学院第2章进程管理2.1进程的引入2.2进程的描述与控制2.3线程2.4进程同步2.5经典进程同步问题2.6进程通信2.7死锁问题操作系统原理PrincipleofOperatingSystem精品课程2020年9月14日星期一兰州理工大学计算机与通信学院2.2进程的描述与控制2.2.1进程的描述2.2.2进程的控制操作系统原理PrincipleofOperatingSystem精品课程2020年9月14日星期一兰州理工大学计算机与通信学院进程的静态描述由三部分组成:进程控制块、有关程序段和与该程序段相关的数据结构集合。进程的程序部分描述进程所要完成的功能。是进程运行所对应的执行代码,一个进程可以对应一个完整的程序,也可以只对应一个程序中的一部分。数据结构集合是程序在执行时必不可少的工作区和操作对象。进程控制块是记录进程存在、保持进程所需数据集合、完成进程控制的重要结构。操作系统原理PrincipleofOperatingSystem精品课程2020年9月14日星期一兰州理工大学计算机与通信学院1.进程控制块PCBPCB有时也称为进程描述块(ProcessDescriptorBlock),是系统为描述进程而设计的一种数据结构。—个进程只有一个PCB,PCB是进程存在与否的唯一标记,一个进程的PCB结构都是全部或部分常驻内存的。PCB基本内容:标识信息、现场信息、控制信息操作系统原理PrincipleofOperatingSystem精品课程2020年9月14日星期一兰州理工大学计算机与通信学院进程控制块的主要作用有:标识进程的存在。系统创建进程时,就为之创建一个PCB;进程结束时,系统又回收其PCB,进程便随之消亡。为系统控制和管理进程提供所需的一切信息。操作系统原理PrincipleofOperatingSystem精品课程2020年9月14日星期一兰州理工大学计算机与通信学院2.PCB的组织方式在一个系统中,通常可拥有数十个、数百个甚至上千个PCB。为了有效地进行进程管理,系统必须对进程进行合理的组织。顺序表定义一个PCB结构数组。这种方式不区分进程状态,将所有PCB连续地存放在内存区中。操作系统原理PrincipleofOperatingSystem精品课程2020年9月14日星期一兰州理工大学计算机与通信学院索引表系统根据进程的状态,分别为具有相同状态的PCB建立一张索引表。通常,PCB表采用静态存储分配方案,定义为PCB结构数组;各种索引表采用动态存储分配方案,索引表中存入相应PCB数组元素的下标值。操作系统原理PrincipleofOperatingSystem精品课程2020年9月14日星期一兰州理工大学计算机与通信学院链表系统根据PCB的状态,把相同状态的PCB链接成一个PCB链表队列,这样,可形成就绪进程队列、阻塞进程队列等。对就绪进程队列,可根据其优先级的不同,将优先级高的PCB排在前面。此外,系统也可以根据阻塞原因的不同,形成等待各种外设I/O操作完成的队列、等待各种事件发生的队列。操作系统原理PrincipleofOperatingSystem精品课程2020年9月14日星期一兰州理工大学计算机与通信学院3.进程上下文进程上下文是进程执行活动全过程的静态描述。它包括系统中与执行该进程有关的各种寄存器的值,进程段在经过编译之后形成的机器指令代码集(或称正文段)、数据集及各种堆栈值和PCB结构。操作系统原理PrincipleofOperatingSystem精品课程2020年9月14日星期一兰州理工大学计算机与通信学院4.进程空间每一个进程都有自己的地址空间,该空间称为进程空间或虚空间,进程空间又划分为用户空间和系统空间两部分。用户程序在用户空间执行,操作系统内核程序则在进程的系统空间内执行。操作系统原理PrincipleofOperatingSystem精品课程2020年9月14日星期一兰州理工大学计算机与通信学院2.2进程的描述与控制2.2.1进程的描述2.2.2进程的控制操作系统原理PrincipleofOperatingSystem精品课程2020年9月14日星期一兰州理工大学计算机与通信学院进程控制,是指系统使用一些具有特定功能的程序段来创建进程、撤消进程以及完成进程各状态间的转换。这些程序段是机器指令的延伸,由若干条机器指令构成,用以完成特定功能,且在管态下执行,执行过程中是不可分割的,不允许被中断,并且它是顺序执行的(不允许并发),我们把这样的程序段叫作原语。操作系统原理PrincipleofOperatingSystem精品课程2020年9月14日星期一兰州理工大学计算机与通信学院用于进程控制的原语有:创建原语撤销原语阻塞原语唤醒原语挂起原语和激活原语操作系统原理PrincipleofOperatingSystem精品课程兰州理工大学计算机与通信学院第2章进程管理2.1进程的引入2.2进程的描述与控制2.3线程2.4进程同步2.5经典进程同步问题2.6进程通信2.7死锁问题操作系统原理PrincipleofOperatingSystem精品课程2020年9月14日星期一兰州理工大学计算机与通信学院2.3线程2.3.1线程的引入2.3.2线程的状态2.3.3线程的并发执行2.3.4用户级线程和内核级线程2.3.5线程的描述与控制操作系统原理PrincipleofOperatingSystem精品