




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1
计算机操作系统钱斌dnhistory@内容回顾介绍了几种常用的操作系统:DOS、Windows、Unix及Linux2第一章:操作系统概述操作系统的定义操作系统的特征操作系统的发展操作系统的分类操作系统的结构(包括内核体系结构)3进程的基本概念进程的控制进程的同步经典进程的同步问题进程的通信线程第二章进程管理4第二章进程管理2.1进程的引入--并发活动操作系统的特性之一是并发与共享,即在系统中(内存)同时存在几个相互独立的程序,这些程序在系统中既交叉地运行,又要共享系统中的资源,这就会引起一系列的问题,包括:对资源的竞争、运行程序之间的通信、程序之间的合作与协同等符。要解决这些问题,用程序的概念已经不能描述程序在内存中运行的状态,必须引入新的概念--进程。5阅读菜谱准备原料烹制菜肴饭菜阅读洗衣机手册准备衣服、洗衣粉设定参数,洗衣服干净衣服程序输入运行输出分时切换洗衣进程做饭进程程序输入运行输出62.1并发活动--进程的引入
程序的顺序执行
一、概念一个程序由若干个程序段组成,而这些程序段的执行必须是顺序的,这种程序执行的方式就称为程序的顺序执行。例如:
7程序的顺序执行
二、程序顺序执行的特点1.顺序性处理机严格按照程序所规定的顺序执行,即每个操作必须在下一个操作开始之前结束。2.封闭性
程序一旦开始执行,其计算结果不受外界的影响,当程序的初始条件给定之后,其后的状态只能由程序本身确定,即只有本程序才能改变它。3.可再现性
程序执行的结果与初始条件有关,而与执行时间无关。即只要程序的初始条件相同,它的执行结果是相同的,不论它在什么时间执行,也不管计算机的运行速度。8
2程序的并发执行例:在系统中有n个作业,每个作业都有三个处理步骤,输入数据、处理、输出,即Ii,Ci,Pi(i=1,2,3,...,n)。
这些作业系统中,有些操作必须在其它操作之前执行,这是有序的,但有些操作是可以同时执行的。例如:
I1、C1、P1的执行必须严格按照I1,C1,P1的顺序,而P1与I2,C1与I2,I3与P1是可以同时执行的。9程序的并发执行—前驱图表示例如:
I1、C1、P1的执行必须严格按照I1,C1,P1的顺序,而P1与I2,C1与I2,I3与P1是可以同时执行的。10并发活动--进程的引人
程序的并发执行程序并发执行(定义)
若干个程序段同时在系统中运行,这些程序的执行在时间上是重迭的,一个程序段的执行尚未结束,另一个程序段的执行已经开始,即使这种重迭是很小的,也称这几个程序段是并发执行的。11并发活动--进程的引人
程序的并发执行程序并发执行的描述
cobeginS1;S2;S3;...;SNcoend;Si(i=1,2,3,...,n)表示n个语句(程序段),这n个语句用cobegin和coend括起来,表示这n个语句是可以并发执行的。co是concurrent的头两个字符。这是Dijkstra提出的。12
程序并发执行的描述假设有一个程序由S0~Sn+1个语句,其中S1~Sn语句是并发执行的,程序如下:
S0;
cobeginS1;S2;S3;...;SNcoend;Sn+1;13一、一个循环程序顺序执行的抄写例子算法1:输入:f输出:g{
while(f不为空)
{input;output;}}由这个程序完成誊抄工作是不会出错的。14
并发执行实行--誊抄
二、两个程序并发执行完成抄写
设有一台标准输入设备(键盘),和一台标准输出设备(显示器或打印机),输入程序负责从标准设备中读取一个字符,送缓冲区中。输出程序从缓冲区中取数据,送标准设备输出。15二、两个程序并发执行完成誊抄算法:2{cobeginwhile(不为结束符)/*输入程序段*/
{input;/*从标准输入设备读入一个数据*/
send;/*将读入的数据送到bufferf*/}while(buffer不为空)/*输出程序段*/
{receive;/*从bufferf中取数据*/
output;/*送打印机输出*/
}
coend}16二、两个程序并发执行完成誊抄这两个程序段并发执行时可能出现如下情况:1、输出程序运行的速度比输入程序快时,有些输出会重复;如输入送入了一个字符“A”,输出取出打印“A”,当输入还未送入新的数据,输出程序已执行,又取出“A”打印,这样“A”的输出就重复了,出错。2、输入程序执行的速度比输出程序快时,有些数据会丢失;如输入程序送入一个字符“B”,紧接着(当输出程序还未取走字符“B”)又送入字符“N”,这时输出程序取走的是“N”,“B”就丢失了。17程序并发执行的特点一、间断性程序在并发执行时,由于它们共享系统资源,以及为完成同一项任务而相互合作,致使在这些并发执行的程序之间,形成了相互制约的关系。相互制约将导致并发程序具有“执行—暂停—执行”这种间断性的活动规律。18程序并发执行的特点二、失去了程序的封闭性
如果程序执行的结果是一个与时间无关的函数,即具有封闭性。若一个程序的执行可改变另一个程序的变量,象二个并发程序完成誊抄的例子,程序执行的结果不仅依赖于程序的初始条件,还依赖于程序执行时的相对速度,在这种情况下就失去了程序的封闭性。
19程序并发执行的特点三、不可再现性:P35例,设N的初值为n。有2个循环程序A和B,它们共享一个变量N,程序A每执行一次时,都要做N=N+1;B则每次要执行Print(N),然后再做N=0.某时刻变量N的值为n;若程序A,B以不同的速度运行有三种不同的输出结果20进程概念(process)
1进程的定义
在多道程序设计的环境下,为了描述程序在计算机系统内的执行情况,必须引新的概念--进程。进程的概念来自于麻省理工的MULTICS、IBM的TSS/360,在IBM的OS/360/370系统中也曾叫过任务(task)。21进程的定义(枚举法)行为的一个规则叫做程序,程序在处理机上执行时所发生的活动称为进程(Dijkstra)。进程是这样的计算部分,它是可以和其它计算并行的一个计算。(Donovan)进程(有时称为任务)是一个程序与其数据一道通过处理机的执行所发生的活动。(Alan.C.Shaw)进程是执行中的程序。(KenThompsonandDennisRitchie)教材上给出的进程的定义:
进程,是进程实体的运行过程,是系统进行资源分配和调度的一个独立单位。22
进程与程序的区别与联系(进程的特点)1、动态性:程序是指令的集合,可以作为软件资料长期保存,是静态的概念。进程是程序在处理机上的一次执行的过程,进程是有生命周期的:创建-撤销,产生-消亡,是动态的概念。2、并发性:进程是一个独立的运行单位,能与其它进程并行(并发)活动。而程序则不能。只有建立了进程,才能并发执行。3、独立性:进程是竞争计算机系统有限资源的基本单位,也是进行处理机调度的基本单位。独立运行,独立获得资源4、异步性。进程按照各自独立的不可预知的速度向前推进。5、进程的组成包括程序和数据,还有进程控制块PCB。23
进程的状态一、进程的基本状态进程在系统中的活动规律是:执行暂停执行(在校学生,吃饭->学习->睡觉三种状态)进程的三种基本状态:
运行状态就绪状态
等待状态(又称阻塞、挂起、睡眠)24
一、进程的基本状态1、就绪状态(Ready)
存在于处理机调度队列中的那些进程,它们已经准备就绪,一旦得到CPU,就立即可以运行,这些进程所取的状态为就绪状态。(有多个进程处于此状态)2、运行状态(Running)
当进程由调度/分派程序分派后,得到CPU控制权,它的程序正在运行,该进程所处的状态为运行状态。(在单CPU系统中,总只有一个进程处于此状态)3、阻塞状态(Block)
若一个进程正在等待某个事件的发生(如等待I/O的完成),而暂停执行,这时,即使给它CPU时间,它也无法执行,则称该进程处于阻塞状态。25
二、进程状态变迁图进程的状态不是固定不变的,而是在不断变换。运行Running被调度时间片用完,中断资源释放或事件完成阻塞Blocked等待资源和事件进程占有处理机,处理机正在执行该进程的程序。进程已获得除处理机外的所需资源,等待分配处理机执行。也叫等待、挂起、睡眠态,此时进程因等待某种条件(如I/O操作或进程同步)无法运行。引起进程阻塞的原因很多,系统将根据不同的阻塞原因将进程插入某个相应的阻塞队列中。就绪Ready26
进程的状态变化的原因运行阻塞等待某事件的发生(如等待I/O完成)阻塞就绪事件已经发生(如I/O完成)运行
就绪时间片到(例如,两节课时间到,下课)新建进程就绪新创建的进程进入就绪状态就绪运行当处理机空闲时,由调度(分派)程序从就绪进程队列中选择一个进程占用CPU。增加“创建”、“终止”状态27运行就绪阻塞被调度时间片用完,中断资源释放或事件完成等待资源和事件创建创建完毕终止结束执行五种进程状态转换28进程并发执行示例例:
假设内存中有3个进程A、B、C,他们的程序代码已全部装入内存。若A、C两进程需要执行12条指令,B进程需要执行4条指令,且B进程执行到第4条指令处必须等待I/O观察ProgramCounter内容的变化,理解进程并发过程中状态的切换。293个进程全部装入内存,准备并发执行303个进程的执行代码在内存中的地址31处理机执行这3个进程的轨迹(见图3.3,P104)323进程状态转换33其状态转换的队列结构()34增加“挂起”状态挂起状态(被换出内存的状态)引入原因终端用户请求父进程请求负荷调节需要操作系统需要355状态进程转换图活动就绪静止就绪活动阻塞静止阻塞激活挂起激活挂起释放释放挂起请求I/O执行36五状态进程模型:增加了“挂起”操作
(5种状态)执行状态:占用处理机(单处理机环境中,某一时刻仅一个进程占用处理机)活动就绪状态:准备执行静止就绪状态:从活动就绪挂起活动阻塞状态:等待某事件发生才能执行,如等待I/O完成等静止阻塞状态:从阻塞状态挂起37进程实体描述在系统中一个进程实体存在:进程控制块(数据结构)
进程的执行程序(一个可执行文件)进程总是位于某个队列(就绪、等待某事件队列)
处于某种状态(运行、就绪、等待)占用某些系统资源(内存,打开某些文件、处理机、外设)38进程的组成PCBProcessControlBlock
灵魂,进程存在的唯一标志。数据程序
程序:描述了进程要完成的功能,是进程执行时不可修改的部分。数据:进程执行时用到的数据(用户输入的数据、常量、静态变量)。工作区
工作区:参数传递、系统调用时使用的动态区域(堆栈区)。实体39
进程描述进程控制块
PCB(ProcessControlBlock)
存放进程的管理和控制信息的数据结构称为进程控制块。它是进程管理和控制的最重要的数据结构,在创建时,建立PCB,并伴随进程运行的全过程,直到进程撤消而撤消。PCB就象我们的户口。40
进程控制块PCB内容
1、进程标识符name
每个进程都必须有一个唯一的标识符,可以是字符串,也可以是一个数字。UNIX系统中就是一个整型数。在进程创建时由系统赋予。
2、进程当前状态status
说明进程当前所处的状态。为了管理的方便,系统设计时会将相同的状态的进程组成一个队列,如就绪进程队列,等待进程则要根据等待的事件组成多个等待队列,如等待打印机队列、等待磁盘I/O完成队列等等。41进程控制块
PCB内容3、当前队列指针next
登记与本进程处于同一队列的下一个进程的PCB的地址。42
进程控制块PCB内容4、总链指针all-q-next5、执行程序开始地址start-addr6、进程优先级priority
进程的优先级反映进程的紧迫程序,通常由用户指定和系统设置。UNIX系统采用用户设置和系统计算相结合的方式确定进程的优先级。43
进程控制块PCB内容7、CPU现场保护区cpustatus
当进程因某种原因不能继续占用CPU时(等待打印机),释放CPU,这时就要将CPU的各种状态信息保护起来,为将来再次得到处理机恢复CPU的各种状态,继续运行。例如,我们下课,这时我要记住这次讲到什么地方,下次课接着讲。8、通信信息communicationinformation
是指某个进程在运行的过程中要与其它进程进行通信,该区记录有关进程通信方面的信息。44
进程控制块PCB内容9、家族联系processfamily
有的系统允许一个进程可创建自已的子进程,子进程还可以创建,一个进程往往处在一个家族之中,就需要记录进程在家族中位置的信息。10、占有资源清单own-resource
进程占用系统资源的情况,不同的系统的处理差别很大,UNIX系统中就没有此项。45进程控制块PCB组织方式链接方式索引方式46进程控制块PCB组织方式链接方式
执行指针就绪队列指针阻塞队列指针空闲队列指针...PCB1PCB2PCB3PCB4PCB6PCB7PCB8PCB9PCB543087901链接方式47进程控制块PCB组织方式索引方式执行指针就绪队列指针阻塞队列指针...PCB1PCB2PCB3PCB4PCB6PCB7PCB8PCB9PCB5482.2进程控制
进程控制的概念
进程是有生命周期的,产生、运行、暂停、终止。对进程的这些操作叫进程控制。
进程控制的职责是对系统中全部进程实施有效的管理,它是处理机管理的部分(另一部分是进程调度),当系统允许多进程并发执行时,为了实现共享、协调并发进程的关系,处理机管理必须提供对进程实行有效的管理。492.2进程控制
进程控制的概念
进程控制包括:
进程创建、进程撤消、
进程阻塞、
进程唤醒。
这些操作都要对应地执行一个特殊的程序段(操作系统核心程序),同时系统也通过系统调用给用户提供进程控制的功能。教材上叫原语(一种特殊的系统调用)。502.2进程控制
进程控制的概念运行状态
等待状态
进程阻塞等待状态
就绪状态进程唤醒新建进程置为就绪状态
进程创建进程终止(消亡)
进程撤消就绪状态
运行状态
进程调度512.2进程控制
进程控制的概念
在UNIX系统中进程控制的系统调用有:
fork()创建子进程
sleep()进程睡眠
exit()进程自已终止(自杀)
wait()(父)等待子进程终止
wakeup()
进程唤醒
522.2进程控制
进程创建
在UNIX系统中用户键入一个命令(如date,ps,ls),shell就创建一个进程。
一个程序(可执行的)如果可分成几个程序段,并且这些程序段可并发执行,用户程序可使用创建程序的系统调用创建多个进程,每个进程执行一个程序段。例如,放VCD程序。进程创建类似于人出生后要到派出所报户口。532.2进程控制
进程创建创建事由在终端上交互式的登录作业调度提供服务由系统内核创建新进程应用请求由请求的应用程序自行创建新进程542.2进程控制
进程创建进程创建系统调用:
create(name,priority,start-addr)UNIX系统:
fork()552.2进程控制
进程创建后队列的变化图562.2进程控制
进程撤消
进程完成其任务,希望终止时,调用撤消进程的系统调用(进程撤消原语)撤消进程。相当于一个人死亡后,家人要去派出所消户口。
在一般操作系统中进程撤消的系统调用是:kill
UNIX系统中是exit()。
终止事由:正常结束异常结束外界的干预57终止流程:
OS通过调用进程终止原语完成进程的终止。第一步:根据被终止进程的标识符,从PCB集合中查找对应进程控制块并读出该进程的状态;第二步:若被终止进程正处于执行状态,则终止该进程的执行,并设置调度标志为真,用于指示该进程被终止后应重新进行调度,选择一新进程,把处理机分配给它。第三步:若进程还有子孙进程,应将其所有子孙进程终止,以防它们成为不可控制的。第四步:将进程所占有的全部资源释放(还给父进程或系统),释放进程控制块(若该进成为执行态,要进行进程调度)。第五步:将被终止进程(它的PCB)从所在队列(或链表)中移出,等待其他程序来收集相关信息。582.2进程控制
进程撤消592.2进程控制
进程撤消602.2进程控制
进程挂起
当一个处在运行状态的进程,因等待某个事件的发生(如等待打印机)而不能继续运行时,将调用进程挂起系统调用,把进程的状态置为阻塞状态,并调用进程调度程序(等于让出处理机)。在UNIX系统中进程挂起调用sleep(chan,pri)。612.2进程控制
进程挂起
进程从运行状态转换成阻塞状态是由进程挂起原语实现的,因此,调用进程挂起操作是在进程处于运行状态下执行的。它的执行将引起等待某事件的队列的改变.
例如,进程是因等待打印机而进入阻塞状态,则该进程将加入到等待打印机的队列。进程挂起系统调用的算法和队列变化如下。622.2进程控制
进程挂起进程挂起的内部调用形式(UNIX系统):
sleep(chan,pri)
其中:chan进程挂起(睡眠)的原因;
pri进程被唤醒后的优先级
一般调用形式:
susp(chan)
其中:chan进程等待的原因632.2进程控制
进程挂起642.2进程控制
进程挂起652.2进程控制
进程唤醒
一个正在运行的进程会因等待某事件(例如,等待打印机)的发生,由运行状态转换成阻塞状态,当它等待的事件发生后,这个进程将由阻塞状态转换成就绪状态。这种转换由进程唤醒操作完成。
调用进程唤醒操作一般在中断处理、进程通信等过程中。例如,打印机完成中断处理程序,在完成了打印完成的操作后,就去检查等待打印机的队列,若不为空,则调用进程唤醒操作,唤醒一个(或多个)等待打印机的
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 跨国商标保护与维权合作协议
- 2025届小学毕业典礼主持词-剩下的话留给盛夏
- 生物制药技术秘密保护与市场调研合作协议
- 网络小说改编影视作品优先权转让协议
- 网络文学版权注册处租赁与著作维护协议书
- 高效节能工业设备租赁融资担保服务协议
- 船舶仪器校准检测与航行安全协议
- 生物样本库建设与人才培养合作协议
- 快递业员工协议书
- 自驾去西藏免责协议书
- 田亩转户协议书
- 2025年MySQL开发趋势试题及答案研究
- 违约就业协议书
- 《人工智能通识导论(慕课版)》全套教学课件
- 烘培创业合伙协议书
- 2025年信息系统管理知识考试试题及答案
- 马法理学试题及答案
- 2025年全国保密教育线上培训考试试题库附完整答案(夺冠系列)含答案详解
- 视频制作拍摄服务方案投标文件(技术方案)
- 量子计算中的量子比特稳定性研究-全面剖析
- 构建健全企业资金体系
评论
0/150
提交评论