计算机操作系统-汤小丹第4版复习讲义教程第2章进程
第2章__进程管理ppt课件计算机操作系统汤小丹梁红兵版

– 间断性、失去封闭性、不可再现性
第2 章
进程管理
2.1.3程序并发执行的特性
(1)程序结果的不可再现性。并发程序执行时,结果 随执行的相对速度不同而变化,在不同的时间运行,结 果各不相同。 (2)独立性和制约性。独立性是指每一个程序都是一
个相对独立的实体,用以实现不同的功能。
(3)程序执行的间断性。并发执行的程序之间存在着 相互制约的关系,这就意味着程序执行时间会不连贯。
进程管理
运行态(Running) :进程已获得必要的资源,并占有处理机,处理机正在 执行该进程的程序。
就绪态(Ready) :进程等待系统为其分配 CPU,而 CPU被其他进程占用, 所以暂时不能运行,但此时进程已经具备了执行的所有条件。
阻塞态(Blocked):也可称为等待态、挂起态或睡眠态等,此时进程因等待 某个事件而暂时不能运行,例如等待某个I/O事件的完成,或等待使用某个资源 等。
调度信息:标识进程的优先级,进程正在等待的 事件等。
数据结构信息:标识进程间的联系,如指向该进 程的父进程控制块的指针,指向该进程的子进程列表 的指针等。
第2 章
进程管理
队列指针:在该单元存放下一个进程的PCB的块首址,将处于 同一状态的进程链接成一个队列,便于对进程实施管理。 位置信息:记录进程在内存中的位置和大小信息,如程序段指 针,数据段指针。 通信信息:指进程相互通信时所需的信息,如消息队列 ( 记录 可消费资源的列表)指针,进程间的互斥和同步机制。 特权信息:记录进程访问内存的权限。 存储信息:记录进程在辅存中的位置及大小。 资源占有使用信息:标识进程的可重用资源和可消费资源,是 对进程占有和使用CPU及I/O设备的情况记录。
数目 一个系统中,数十个、数 百个甚至数千个 • 链接组织方式 把具有同一状态的PCB链 接成一个队列; 就绪队列、若干个阻塞队 列、空队列.
汤小丹《计算机操作系统》官方课件 第四版

汇报人: 202X-01-05
contents
目录
• 计算机操作系统概述 • 进程管理 • 内存管理 • 文件系统 • 设备管理
计算机操作系统概
01
述
操作系统的定义与功能
总结词
操作系统的定义与功能
详细描述
操作系统是计算机系统的核心软件,负责管理计算机硬件和软件资源,提供用户与计算机之间的接口。操作系统 的功能包括进程管理、内存管理、文件管理、设备管理和用户界面管理等。
操作系统的分类
总结词
操作系统的分类
详细描述
根据不同的分类标准,操作系统可以分为多种类型。根据运行环境,操作系统可以分为单机操作系统 和网络操作系统;根据功能,操作系统可以分为批处理操作系统、分时操作系统、实时操作系统和通 用操作系统;根据规模,操作系统可以分为个人操作系统和多用户操作系统等。
进程管理
内存管理
03
内存管理的概念与功能
内存管理概念
内存管理是操作系统中用于管理计算 机内存的子系统,负责分配和回收内 存空间,以及管理内存中的数据。
内存管理功能
内存管理的主要功能包括内存分配、 内存回收、地址转换和内存保护等。
内存的分配策略
静态分配
在程序运行前,系统根据程序的大小 和需求一次性分配所需的内存空间, 程序运行期间不再进行内存的重新分 配。
文件的访问控制机制
文件的访问控制机制包括访问控制表(ACL)、能力表( Capabilities)等,用于限制用户对文件的访问权限。
文件的访问安全
文件的访问安全是指通过访问控制机制来确保文件的安全性和完整 性,防止未经授权的访问和修改。
设备管理
《操作系统-汤小丹-第四版》第2章

共享性的概念与实现方法
共享性Байду номын сангаас念
指系统中的资源(如硬件、软件和数 据)可以被多个并发执行的程序共同 使用。
实现方法
采用虚拟技术将物理资源转化为逻辑 资源,通过资源分配和回收算法实现 资源的共享使用。
并发与共享的关系
文件系统的层次模型是指将文件系统的功能划分为多个层次,每一层都建立在下一层的基础上,并向上一层 提供服务。这种层次结构有利于文件系统的设计和实现。
文件系统的实现
文件系统的实现包括文件系统的数据结构和算法设计,以及文件系统的代码实现。在实现过程中,需要考虑 文件系统的效率、可靠性、安全性等因素。
文件系统的性能优化
线程状态
就绪状态、运行状态、阻塞状态。
线程同步与通信
互斥锁、条件变量、信号量等机 制。
处理器的调度与分配
调度策略
先来先服务、优先级调度、时间片轮转等。
分配方式
非抢占式、抢占式。
调度与分配的实现
通过硬件和软件的支持,如时钟中断、进程切换等机制。
内核的功能与结构
内核功能
进程管理、内存管理、设备管 理、文件管理、网络通信等。
04
05
手工操作阶段
批处理系统阶段 分时系统阶段
实时系统阶段
网络操作系统和 分布式操…
此阶段没有操作系统,用 户直接控制计算机硬件进 行操作。
为了解决人机矛盾及CPU 和I/O设备之间速度不匹配 的矛盾,出现了批处理系 统。
为了满足用户同时、交互 地使用计算机的需求,出 现了分时系统。
为了满足实时控制和实时 信息处理的需求,出现了 实时系统。
【操作系统】《计算机操作系统》汤小丹第2章进程的描述和控制

【操作系统】《计算机操作系统》汤⼩丹第2章进程的描述和控制博主:海底淤泥1.什么是前趋图?为什么要引⼊前趋图? 前趋图:⼀个有向⽆循环图,它⽤于描述进程之间的先后顺序 作⽤:更好描述程序的顺序和并发执⾏情况2.试画出下⾯四条语句的前趋图S1:a=x+y S2:b=z+1 S3:c=a-b S4:w=c+1 S1->S3 S2->S3 S3->S43.为什么程序并发执⾏会产⽣间断特征? 程序在并发执⾏时,由于它们共享系统资源,以及为完成同⼀项任务相互合作,⾄使在这些并发程序之间形成了相互制约的关系4.程序并发执⾏时为什么会失去封闭性和可再现性? 失去封闭性:当系统存在着多个可以并发执⾏的程序时,系统中的各种资源将为它们所共享,⽽这些资源的状态也由这些程序来改变,导致其中任意程序运⾏时,其环境都必然会受到其他程序的影响。
失去可再现性:程序并发执⾏时,由于失去了封闭性,其计算结果必然将与并发程序的执⾏速度有关,从⽽使程序的执⾏失去了可再现性5.在操作系统中为什么要引⼊进程的概念?它会产⽣什么影响? 为了使程序并发执⾏,并且可以对并发执⾏的程序加以描述和控制,⼈们引⼊了“进程”的概念。
影响:使程序并发执⾏,进程实体和其他进程实体并发执⾏6.试从动态性、并发性、和独⽴性上⽐较进程和线程 动态性:进程实体有⼀定⽣命期,是动态的;⽽程序是⼀组有序指令集合,并存放在某种介质上,其本⾝不具有活动意义,是静态的 并发性:进程可以并发执⾏,没有PCB的程序是不能并发执⾏的 独⽴性:进程实体是⼀个能独⽴运⾏,独⽴获得资源和独⽴接受调度的基本单位。
未建⽴PCB的程序不能作为⼀个独⽴的单位参与运⾏7.试说明PCB的作⽤具体表现在什么⽅⾯,为什么说PCB是进程存在的唯⼀标志? PCB描述进程是基本情况和活动过程,进⽽控制和管理进程。
创建进程:创建进程实体的PCB 撤销进程:撤销进程实体的PCB8.PCB提供了进程管理和进程调度所需要的哪些信息?1.进程标识符2.处理机状态3.进程调度信息4.进程控制信息9.进程控制块的组织⽅式有哪⼏种?1.线性⽅式2.连接⽅式3.索引⽅式10.何谓操作系统内核?内核的主要功能是什么? 通常将⼀些硬件紧密相关的模块、各种常⽤设备的驱动程序以及运⾏频率较⾼的模块,都安排在紧靠硬件的软件层次中,将它们常驻内存,被称为操作系统内核 功能:1.对重要软件进⾏保护,防⽌遭到其他程序的破坏 2.提⾼OS的运⾏效率11.试说明进程在三个基本状态之间转换的经典原因 就绪->执⾏:进程调度 执⾏->就绪:时间⽚完 执⾏->阻塞:I/O请求 阻塞->就绪:I/O完成12.为什么要引⼊挂起状态?该状态有哪些性质? 原因:1.终端⽤户的需要 2.⽗进程的请求 3.负荷调节的需要 4.操作系统的需要 性质:1.若程序正在执⾏,将暂停执⾏ 2.若原本处于就绪状态,则该程序不接受调度13.在进⾏进程切换时,所要保存的处理机状态信息有哪些?1.通⽤寄存器2.指令计数器3.程序状态字PSW4.⽤户栈指针14.试说明引起进程创建的主要事件。
汤小丹计算机操作系统官方通用课件第四版计算机操作系统 通用课件

THANK YOU
感谢观看
避免死锁、检测并恢复 死锁、预防死锁。
按顺序申请资源、请求 和持有、预先分配、静 态重分配。
检测死锁、停止进程、 撤销进程、恢复进程。
避免“请求和持有”、 避免“不剥夺”。
03
内存管理
内存的基本概念
内存
01
计算机中重要的硬件资源之一,用于存储运行中的程
序和数据。
内存种类
02 RAM、ROM、Cache等。
设备管理主要是对计算机设备进行管理,包括设备的分配、使 用、维护等。
02
进程管理
进程的基本概念
1 2
进程
程序关于某个数据集合上的一次运行活动,是系 统进行资源分配和调度的基本单位。
进程的特征
独立性、并发性、异步性、结构特征。
3
进程的状态
就绪状态、等待状态、运行状态、结束状态。
进程的创建和终止
进程的创建
内存共享
02
03
内存锁定
多个程序可以共享一些公共的内 存区域,ቤተ መጻሕፍቲ ባይዱ实现数据交换和协作 。
一些关键数据和代码可以被锁定 在内存中,防止被其他程序修改 或破坏。
04
文件系统
文件的基本概念
文件
文件是计算机中存储信息的单位,由数据项、 数据格式和数据结构组成。
文件类型
根据使用需求和存储内容,文件可分为文本文 件、二进制文件、图像文件等。
01
02
03
虚拟内存
通过将内存分为多个逻辑 分区,实现了一种类似于 硬盘的内存管理方式。
页面置换算法
当内存空间不足时,操作 系统会将一些不常用的页 面置换到硬盘上,以释放 内存空间。
页面调度
操作系统第四版汤小丹期末复习重点

第一章操作系统答:操作系统是一组能有效组织和管理计算机软硬件资源、合理调度作业、方便用户使用的程序的集合,是配置在计算机硬件上的第一层软件,是对硬件系统的首次扩充。
作为用户与计算机硬件系统的接口;作为计算机系统资源的管理者:实现对计算机资源的抽象方便性、有效性、可扩展性和开放性。
(使用编译指令或OS提供的命令操纵系统)(提高系统的吞吐量、系统资源利用率)(可添加或修改功能、模块)(能遵循世界标准规范,兼容性强)不断提高计算机利用率、方便用户、器件的不断更新换代、计算机体系结构的不断发展。
处理机管理、存储器管理、设备管理、文件管理并发、共享、虚拟、异步。
答:并发性是指多个事件在同一时间间隔内发生;并行性是指多个事件在同一时刻发生。
答:指系统中的资源可供内存中的多个并发执行的进程共同使用。
在一段时间内只允许一个进程访问资源;允许多个进程在一段时间内“同时”访问资源,“同时”指的是宏观意义,在微观上是交替访问的答:把通过某种技术将一个物理实体变为若干个逻辑上的对应物的功能称为“虚拟”。
利用某设备为一用户服务的空闲时间,转去为其他用户服务,使设备得到最充分的利用。
(虚拟处理机、虚拟设备。
虚拟为n个,平均速度W 1/n)利用存储器的空闲时间分区域存放和运行其他的多道程序,以此提高内存的利用率。
(虚拟后,平均内存W 1/n)答:指进程以人们不可预知的速度向前推进。
答:将一批作业以脱机方式(使用外围机,脱离主机)输入在磁带上,使作业在监督程序的控制下一个个连续处理。
提高系统资源利用率和系统吞吐量。
内存中只有一道程序,系统资源浪费。
单道性、顺序性、自动性。
答:将作业输入在外存,排成后备队列,并在由于某程序I/O 操作而暂停执行时的CPU 空闲时间,按照一定算法,调度后备队列的另一个程序运行,使多道程序交替运行,保持CPU处于忙碌状态。
进一步提高系统资源利用率和系统吞吐量。
资源利用率高、系统吞吐量达。
平均周转时间长、无交互能力。
汤子瀛《计算机操作系统》(第4版)笔记和课后习题考研真题详解

汤子瀛《计算机操作系统》(第4版)笔记和课后习题(含考研真题)详解完整版>精研学习wang>无偿试用20%资料
全国547所院校视频及题库资料
考研全套>视频资料>课后答案>往年真题>职称考试
第1章操作系统引论
1.1复习笔记
1.2课后习题详解
1.3考研真题详解
第2章进程的描述与控制
2.1复习笔记
2.2课后习题详解
2.3考研真题详解
第3章处理机调度与死锁
3.1复习笔记
3.2课后习题详解
3.3考研真题详解
第4章存储器管理
4.1复习笔记
4.2课后习题详解
4.3考研真题详解
第5章虚拟存储器
5.1复习笔记
5.2课后习题详解
5.3考研真题解
第6章输入输出系统
6.1复习笔记
6.2课后习题详解
6.3考研真题详解
第7章文件管理
7.1复习笔记
7.2课后习题详解
7.3考研真题详解
第8章磁盘存储器的管理
8.1复习笔记
8.2课后习题详解
8.3考研真题详解
第9章操作系统接口
9.1复习笔记
9.2课后习题详解
9.3考研真题详解
第10章多处理机操作系统10.1复习笔记
10.2课后习题详解10.3考研真题详解
第11章多媒体操作系统11.1复习笔记
11.2课后习题详解11.3考研真题详解
第12章保护和安全12.1复习笔记
12.2课后习题详解12.3考研真题详解。
计算机操作系统(第四版)汤晓丹著复习摘记

和平均周转时间都尽可能短。2.系统吞吐量高,指单位时间内系统所完成的作业数,与处 理的作业从平均长度有关。3.处理机使用率高。分时系统的目标: 1.响应时间快,从用户提 交一个请求开始到显示出处理结果为止。2.均衡性好,指系统响应时间的快慢与用户请求 服务的复杂性相适应。实时系统的目标: 1.截止时间短,2.可预测性。 3.2.3 先来先服务 FCFS 和短作业优先 SJF 调度算法 FCFS:系统按照作业到达的先后次序进 行调度。主要用于与其他调度算法结合,形成一种更为有效的调度算法,如可以把进程按 优先级设置多个队列,每个队列采用 FCFS。SJF: 作业时间短,优先级高。[缺点:]1.必须 预知作业的运行时间。2.对长作业非常不利。3.无法时间人机交互。4.不能保证紧迫作业及 时执行。 3.2.4 优先级调度算法 PSA 和高响应比优先调度算法 HRRN PSA:根据作业或进程的紧迫 程度设置的优先级进行调度。HRRN:是既考虑了作业的等待时间,又考虑了运行时间的 调度算法[优点:]既照顾了短作业,又不使长作业的等待时间过长,改善了处理机调度的性 能。优先权=(等待时间+要求服务时间)/要求服务时间=响应时间/要求服务时间。1.如果作 业等待时间相同,则要求服务时间越短,优先权越高,有利于短作业。2.当要求服务时间 相同,优先权取决于响应时间。3.对于长作业,优先级随着等待时间的增加而提高。[缺点:] 调度前需要做响应比计算,增加系统开销。 3.3.1.1 进程调度的任务 1.保存处理机的现场信息。2.按某种算法选取进程。3.把处理器 分 配给进程。3.3.1.2 进程调度机制 1.排队器,事先将系统中的所有就绪进程按照一定的策略 排成一个或多个队列。2.分派器,将处理机分配个新选出的进程。3.上下文切换器,分派处 理器时,新选进程的 CPU 现场信息装入到处理器的各个寄存器中;阻塞进程时,将处理器 寄存器中的现场信息保存到进程 PCB 中。3.3.1.3 进程调度方式 1.非抢占方式:把处理机 分配给进程后,只有当进程运行结束或者阻塞时,才将处理机分配给其他进程。[优点:]实 现简单,系统开销小。适用于大多数批处理系统。2.抢占方式,允许调度程序根据某种原 则,去暂停某个正在执行的进程,将处理机分配个另一个进程。抢占原则 1.优先权原则, 2.短进程优先原则,3.时间片原则。 3.3.2 转轮调度算法 基本原理:基于时间片的调度算法,让就绪队列上的每个进程每次仅 运行一个时间片,保证就绪队列中的所有进程在确定的时间内,都能获得一个时间片的处 理机时间。进程切换时机:1.时间片未用完,进程已经结束。2.时间片已用完。时间片大小 的确定:一个较为可取的时间片是略大于一个典型交互所需要的时间,使大多数交互进程 能在一个时间片内完成,从而获得很小的响应时间。 3.3.3 优先级调度算法 1.非抢占式优先级调度算法。 2.抢占式优先级调度算法。 优先级类型: 1.静态优先级,在创建进程时确定,整个运行期间不会改变。2.动态优先级,进程创建初期 赋予一个优先级,随着进程的推进或等待时间的增加而改变,以便获得更好的调度性能。 3.3.4 多队列调度算法 将不同类型或性质的进程固定分配在不同的就绪队列中,不同的就 绪队列采用不同的调度算法。 3.3.5 多级反馈队列调度算法 事先不需要知道各种进程所需的执行时间,还可以较好的满 足各类进程的需求。调度机制:1.设置多个队列,为每个队列赋予不同的优先级。优先级 越高,时间片越小。2.每个队列都采用 FCFS 算法。3.按队列优先级调度。调度程序首先调 度最高优先级队列中的进程运行,第一队列空闲时才调度第二队列。调度算法的性能:如 果规定第一个队列的时间片略大于多数人机交互的处理时间,便能较好满足各类用户的需 求。终端用户作业在第一队列时间片中完成,短批处理用户的周转时间较短,长批处理用 户不用担心长期得不到处理。 3.3.6 基于公平原则的调度算法 保证调度算法 不是保证优先运行,而是明确的性能保证, 每个相同类型的进城获得相同相同的运行时间。公平分享调度算法 调度的公平性针对用 户,使所有用户能获得相同的处理机时间,或所要求的时间比例。调度是以进程为基本单 位的,必须考虑到每个用户的进程数。 3.5.2 计算机系统中的死锁 死锁是源于多个进程对资源的争夺,对不可抢占资源争夺,对 可消耗资源的争夺和进程推进顺序不当时,会引起死锁。 3.5.3 死锁的定义,必要条件和处理方法 死锁的定义:如果一组进程中的每个进程都在等 待仅由该组进程中的其他进程才能引发的事件, 那么该组进程时死锁的。 死锁的必要条件: 1.互斥条件,在一段时间内,某资源只能被一个进程占用。2.请求和保持条件,进程已经保 持了一些资源,又请求新的资源,却被其他进程占用,此时进程被阻塞。3.不可占用条件, 进程已获得的资源在未使用完之前不能被抢占。4.循环等待条件,发生死锁时必然存在一个 进程-资源的循环链,即每个进程都在等待另一个进程的资源释放。处理死锁的方法:1.预 防死锁,通过设置限定条件,破坏产生死锁四个必要条件中的一个或几个。易实现。2.避 免死锁,在资源的动态分配中,用某种方法防止系统进入不安全状态,从而避免死锁的发 生,例如使用银行家算法。3.检测死锁,事先不采取任何措施,通过检测机构及时的检测 出死锁的发生,然后采取措施解脱死锁。4.解除死锁,当检测到系统已发生死锁,撤销一 些进程,回收资源,并将资源分配各阻塞状态中的进程,解除死锁。 3.6 死锁的预防 破坏请求和保持条件: 1.一次性地申请进程在整个运行过程中所需要的全 部资源,进程在整个运行期间,不会再提出资源请求。[缺点:1.资源被严重浪费,严重恶化 了资源的利用率。2.使进程经常发生饥饿现象。],2.允许一个进程获得运行初期所需资源 化后开始运行。在运行过程中初步释放自己使用完毕的资源,申请新的资源。能使进程更 快的完成任务,提高设备的利用率,减少进程发生饥饿的几率。破坏不可抢占条件: 当一 个已经保持了某些不可被抢占资源的进程,提出新的资源请求而不能满足时,必须释放自 己所有的资源,以后需要时再申请。[缺点:可能使进程无限推迟执行,延长了进程的周转 时间,增加系统开销,降低吞吐量。] 破坏循环条件: 对系统所有资源进行线性编号,规 定每个进程都按照资源编号顺序请求资源。进程必须释放所有具有相同或者更高序号的资 源后才能申请较低序号的资源。[缺点:各类资源的序号必须相对稳定,限制了新设备的增 加。作业使用的资源顺序和资源编号不一致。限制用户自主,简单的编程。] 3.7 避免死锁 系统安全状态: 指系统能按照某种进程推进顺序为每个进程分配所需资源, 直至满足每个进程对资源的最大需求,使每个进程都可顺利的完成,此时为一个安全资源 分配序列。有安全序列则为安全状态。避免死锁的实质在于在进行资源分配时,是系统不 进入不安全状态。 3.8 死锁的检测与解除 死锁检测:1.资源分配图,用圆圈代表一个进程,用方框代表一类 资源,请求边是从进程指向资源,分配边是从资源指向进程。2.死锁定理:当且仅当某一 状态时的资源分配图是不可简化的。 简化的方法: 1).在资源分配图中找到不阻塞也不独立 的进程结点 P1,正常情况下该结点是可以获得资源顺利执行完并释放所有资源的。去除该 结点的请求边和分配边,使其孤立。2).P1 释放资源后,P2 才可以继续运行,消除 P2 的请 求边和分配边,使其孤立。3).若能够消除所有进程结点的请求边和分配边,则该资源分配 图是可简化的,反之不能简化,就会产生死锁。 3.死锁检测的数据结构: 类似于银行家算法的数据结构。 死锁解除: 解除死锁的方法有两种,1 是抢占资源,从一个或多个进程中抢占足够数量的 资源,分配给死锁进程,以解除死锁状态。2 是终止进程,终止一个或多个死锁的进程, 知道打破死锁环路。终止的方法有:1).终止所有死锁进程,2).逐个终止死锁进程。 终止进程时要考虑的因素:1).进程的优先级大小,2).进程执行的时间,还要执行的时间, 3).进程使用的资源,还需要的多少资源,4).进程是交互式还是批处理式 代价最�
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
对于进程的定义,从不同的角度可以有不同的定义,其 中较典型的定义有:
(1) 进程是程序的一次执行。 (2) 进程是一个程序及其数据在处理机上顺序执行时所 发生的活动。 (3) 进程是具有独立功能的程序在一个数据集合上运行 的过程,它是系统进行资源分配和调度的一个独立单位。
进程与程序的主要区别
1)程序是指令的有序集合,其本身没有任何运行的含 义,它是一个静态的概念。而进程是程序在处理机上 的一次执行过程,它是一个动态概念。
图2-6 进程的五种基本状态及转换
2.2.3 挂起操作和进程状态的转换 1. 挂起操作的引入:使正在执行的进程暂停执行; 引入挂起操作的原因,是基于系统和用户的如下需要: (1) 终端用户的需要。 (2) 父进程请求。 (3) 负荷调节的需要。 (4) 操作系统的需要。
与挂起原语Suspend相应的是激活原语Active
如图2-9所示,OS管理的这些数据结构一般分为以下四 类:内存表、设备表、文件表和用于进程管理的进程表,通 常进程表又被称为进程控制块PCB。
图2-9 操作系统控制表的一般结构
2. 进程控制块PCB的作用 (1) 作为独立运行基本单位的标志。 (2) 能实现间断性运行方式。 (3) 提供进程管理所需要的信息。 (4) 提供进程调度所需要的信息。 (5) 实现与其它进程的同步与通信。
图2-5 进程的三种基本状态及其转换
3. 创建状态和终止状态 1) 创建状态 如前所述,进程是由创建而产生。创建一个进程是个很 复杂的过程,一般要通过多个步骤才能完成:如首先由进程 申请一个空白PCB,并向PCB中填写用于控制和管理进程的 信息;然后为该进程分配运行时所必须的资源;最后,把该 进程转入就绪状态并插入就绪队列之中。但如果进程所需的 资源尚不能得到满足,比如系统尚无足够的内存使进程无法 装入其中,此时创建工作尚未完成,进程不能被调度运行, 于是把此时进程所处的状态称为创建状态。
图2-4 四条语句的前趋关系
2. 程序并发执行时的特征 在引入了程序间的并发执行功能后,虽然提高了系统的 吞吐量和资源利用率,但由于它们并发执行, 由此会给程序 并发执行带来新的特征。 (1) 间断性。 (2) 失去封闭性。 (3) 不可再现性。
2.2 进 程 的 描 述
2.2.1 进程的定义和特征 1. 进程的定义 在多道程序环境下,程序的执行属于并发执行,此时它
3. 进程控制块中的信息 在进程控制块中,主要包括下述四个方面的信息。 1) 进程标识符 进程标识符用于唯一地标识一个进程。一个进程通常有 两种标识符: (1) 外部标识符。 (2) 内部标识符。
2) 处理机状态 处理机状态信息也称为处理机的上下文,主要是由处理 机的各种寄存器中的内容组成的。
3) 进程调度信息 在OS进行调度时,必须了解进程的状态及有关进程调度 的信息,这些信息包括:① 进程状态,指明进程的当前状态, 它是作为进程调度和对换时的依据;② 进程优先级,是用于 描述进程使用处理机的优先级别的一个整数,优先级高的进 程应优先获得处理机;③ 进程调度所需的其它信息,它们与 所采用的进程调度算法有关,比如,进程已等待CPU的时间 总和、进程已执行的时间总和等;④ 事件,是指进程由执行 状态转变为阻塞状态所等待发生的事件,即阻塞原因。
2.1.1 前趋图 为了能更好地描述程序的顺序和并发执行情况,我们先
介绍用于描述程序执行先后顺序的前趋图。所谓前趋图 (Precedence Graph),是指一个有向无循环图,可记为 DAG(Directed Acyclic Graph),它用于描述进程之间执行的 先后顺序。图中的每个结点可用来表示一个进程或程序段, 乃至一条语句,结点间的有向边则表示两个结点之间存在的 偏序(Partial Order)或前趋关系(Precedence Relation)。
图2-3 程序并发执行时的前趋图
由图2-3可以看出,存在前趋关系Ii→Ci,Ii→Ii+1,Ci→Pi, Ci→Ci+1,Pi→Pi+1,而Ii+1和Ci及Pi-1是重叠的,即在Pi-1和Ci以 及Ii+1之间,不存在前趋关系,可以并发执行。
对于具有下述四条语句的程序段:
S1: a :=x+2 S2: b :=y+4 S3: c :=a+b S4: d :=c+b 可画出图2-4所示的前趋关系。可以看出:S3必须在a和b 被赋值后方能执行;S4必须在S3之后执行;但S1和S2则可以 并发执行,因为它们彼此互不依赖。
进程(或程序)之间的前趋关系可用“→”来表示,如果 进程Pi和Pj存在着前趋关系,可表示为Pi→Pj,表示在Pj开始 执行之前Pi 必须完成。此时称Pi是Pj的直接前趋,而称Pj是Pi 的直接后继。
应当注意,前趋图中是不允许有循环的,否则必然会产 生不可能实现的前趋关系。如图2-1(b)所示的前趋关系中就 存在着循环它一方面要求在S3开始执行之前,S2必须完成, 另一方面又要求在S2开始执行之前,S3必须完成。显然,这 种关系是不可能实现的。
2)程序的是永久存在的。而进程则是有生命期的,它 因创建而产生,因调度而执行,因得不到资源而暂停 ,因撤消而消亡。
3)程序仅是指令的有序集合。而进程则由程序段、相 关数据段、进程控制块(PCB)组成。
2. 进程的特征 进程和程序是两个截然不同的概念,除了进程具有程序 所没有的PCB结构外,还具有下面一些特征: (1) 动态性。 (2) 并发性。 (3) 独立性。 (4) 异步性。
们将失去其封闭性,并具有间断性,以及其运行结果不可再 现性的特征。由此决定了通常的程序是不能参与并发执行的, 否则,程序的运行也就失去了意义。为了能使程序并发执行, 并且可以对并发执行的程序加以描述和控制,人们引入了 “进程”的概念。
例如,有两个程序A 和B,它们共享一个变量N。程序A 每 执行一次时,都要做N:=N+1 操作;程序B每执行一次时,都 要执行Print(N)操作,然后再将N 置成“0”。程序A和B以不 同的速度运行。这样,可能出现下述三种情况(假定某时刻 变量N 的值为n)。 (1) N:=N+1 在Print(N)和N:=0之前,此时得到的N值分别为 n+1,n+1,0。 (2) N:=N+1 在Print(N)和N:=0之后,此时得到的N值分别为n ,0,1。 (3) N:=N+1 在Print(N)和N:=0之间,此时得到的N值分别为n ,n+1,0。
4) 进程控制信息 是指用于进程控制所必须的信息,它包括:① 程序和数 据的地址,进程实体中的程序和数据的内存或外存地(首)址, 以便再调度到该进程执行时,能从PCB中找到其程序和数据; ② 进程同步和通信机制,这是实现进程同步和进程通信时必 需的机制,如消息队列指针、信号量等,它们可能全部或部 分地放在PCB中;③ 资源清单,在该清单中列出了进程在运 行期间所需的全部资源(除CPU以外),另外还有一张已分配 到该进程的资源的清单;④ 链接指针,它给出了本进程 (PCB)所在队列中的下一个进程的PCB的首地址。
2. 三种基本状态的转换 进程在运行过程中会经常发生状态的转换。例如,处于 就绪状态的进程,在调度程序为之分配了处理机之后便可执 行,相应地,其状态就由就绪态转变为执行态;正在执行的 进程(当前进程)如果因分配给它的时间片已完而被剥夺处理 机暂停执行时,其状态便由执行转为就绪;如果因发生某事 件,致使当前进程的执行受阻(例如进程访问某临界资源, 而该资源正被其它进程访问时),使之无法继续执行,则该 进程状态将由执行转变为阻塞。图2-5示出了进程的三种基 本状态,以及各状态之间的转换关系。
2.2.4 进程管理中的数据结构 1. 操作系统中用于管理控制的数据结构 在计算机系统中,对于每个资源和每个进程都设置了一
个数据结构,用于表征其实体,我们称之为资源信息表或进 程信息表,其中包含了资源或进程的标识、描述、状态等信 息以及一批指针。通过这些指针,可以将同类资源或进程的 信息表,或者同一进程所占用的资源信息表分类链接成不同 的队列,便于操作系统进行查找。
S2→S3,S3→S2
图2-1 前趋图
2.1.2 程序顺序执行 1. 程序的顺序执行 通常,一个应用程序由若干个程序段组成,每一个程序
段完成特定的功能,它们在执行时,都需要按照某种先后次 序顺序执行,仅当前一程序段执行完后,才运行后一程序段。 例如,在进行计算时,应先运行输入程序,用于输入用户的 程序和数据;然后运行计算程序,对所输入的数据进行计算; 最后才是运行打印程序,打印计算结果。我们用结点(Node) 代表各程序段的操作(在图2-1中用圆圈表示),其中I代表输 入操作,C代表计算操作,P为打印操作,用箭头指示操作的 先后次序。
2.2.2 进程的基本状态及转换 1. 进程的三种基本状态 由于多个进程在并发执行时共享系统资源,致使它们在
运行过程中呈现间断性的运行规律,所以进程在其生命周期 内可能具有多种状态。一般而言,每一个进程至少应处于以 下三种基本状态之一:
(1) 就绪(Ready)状态。 (2) 执行(Running)状态。 (3) 阻塞(Block)状态。
4. 进程控制块的组织方式 在一个系统中,通常可拥有数十个、数百个乃至数千个 PCB。为了能对它们加以有效的管理,应该用适当的方式将 这些PCB组织起来。目前常用的组织方式有以下三种。 (1) 线性方式,即将系统中所有的PCB都组织在一张线性表中, 将该表的首址存放在内存的一个专用区域中。该方式实现简 单、开销小,但每次查找时都需要扫描整张表,因此适合进 程数目不多的系统。图2-10示出了线性表的PCB组织方式。
图2-2 程序顺序执行的前趋图
2. 程序顺序执行时的特征 由上所述可以得知,在程序顺序执行时,具有这样三个 特征:① 顺序性:指处理机严格地按照程序所规定的顺序执 行,即每一操作必须在下一个操作开始之前结束;② 封闭性: 指程序在封闭的环境下运行,即程序运行时独占全机资源, 资源的状态(除初始状态外)只有本程序才能改变它,程序一 旦开始执行,其执行结果不受外界因素影响;③ 可再现性: 指只要程序执行时的环境和初始条件相同,当程序重复执行 时,都可获得相同的结果。