操作系统实验6设备管理spooling

合集下载

操作系统第6章(设备管理习题与解答)

操作系统第6章(设备管理习题与解答)

第6章设备管理习题与解答6.1 例题解析例6.2.1 何谓虚拟设备?请说明SPOOLing系统是如何实现虚拟设备的。

解本题的考核要点是虚拟设备的实现方法。

虚拟设备是指利用软件方法,比如SPOOLing系统,把独享设备分割为若干台逻辑上的独占的设备,使用户感受到系统有出若干独占设备在运行。

当然,系统中至少一台拥有物理设备,这是虚拟设备技术的基础。

SPOOLing系统又称“假脱机I/O系统”,其中心思想是,让共享的、高速的、大容量外存储器(比如,磁盘)来模拟若干台独占设备,使系统中的一台或少数几台独占设备变成多台可并行使用的虚拟设备。

SPOOLing系统主要管理外存上的输入井和输出井,以及内存中的输入缓冲区和输出缓冲区。

其管理进程主要有输入和输出进程,负责将输入数据装入到输入井,或者将输出井的数据送出。

它的特点是:提高了 I/O操作的速度;将独占设备改造为共享设备;实现了虚拟设备功能。

例 6.2.2 有关设备管理要领的下列叙述中,( )是不正确的。

A.通道是处理输入、输出的软件B.所有外围设备都由系统统一来管理C.来自通道的I/O中断事件由设备管理负责处理D.编制好的通道程序是存放在主存贮器中的E.由用户给出的设备编号是设备的绝对号解本题的考核要点是设备管理的基本概念。

(1) 通道是计算机上配置的一种专门用于输入输出的设备,是硬件的组成部分。

因此A是错误的。

(2) 目前常见I/O系统其外部设备的驱动和输入输出都由系统统一管理。

因此B是对的。

(3) 设备管理模块中的底层软件中配有专门处理设备中断的处理程序。

通道中断属于设备中断的一种。

因此C是对的。

(4) 通道设备自身只配有一个简单的处理装置(CPU),并不配有存储器,它所运行的通道程序全部来自内存。

因此D是对的。

(5) 系统在初启时为每台物理设备赋予一个绝对号,设备绝对号是相互独立的。

由用户给出的设备号只能是逻辑编号,由系统将逻辑号映射为绝对号。

因此E是错误的。

操作系统SPOOLing系统实现课程设计心得

操作系统SPOOLing系统实现课程设计心得
操作系统课程设计心得体会
课程设计题目
SPOOLing系统设计与模拟
姓名
学号
班级
102
组别
第二组
专业
网络工程
在这次的操作系统课程设计中,通过查找资料,我对这些知识理解更加深刻。在这次课程设计作业的过程中由于在设计方面我的经验还不是很丰富,理论基础知识把握得有点不牢固,在设计中难免会出现这样那样的困难。苦思冥想一段时间后,在这方面的知识比较缺乏,于是我们查阅网上资源,找到了方法,把任务解决了。这些都暴露出了前期我在这些方面知识的欠缺和经验的不足。对于我来说,收获最大的是方法和能力;那些分析和解决题目的能力。在整个课程设计的过程中,我发现我们学生在经验方面十分缺乏,空有理论知识,没有理性的知识;有些东西可能与实际脱节。但通过这次的课程设计,我们将学习的知识和实际的情况结合了起来,提高了我们对知识的理解,加强了我们对知识的运用能力。总体来说,我觉得像课程设计这种类型的作业对我们的帮助还是很大的,它需要我们将学过的相关知识系统地联系起来,从中暴露出自身的不足,从而使自身的不足的到弥补,提高我们的自身素质和知识。在这次的课程设计中不但加强了我们的动手能力,还巩固了我的知识。而且,通过查找资料补充了对SPOOLing系统整体的设计与人员的分工,我们在设计的过程中培养出了我们的团队精神,同学们共同协作,在今后的学习过程中我们会更加努力和团结。也只有我们在课程设计中团结合作,才能够解决困难,完成课程设计。但是由于知识有限和动手能力不足,难免会出现错误,但在我们通过网络对相应知识的查找和老师的指导下,我们纠正了这些错误。总之这次课程设计获益良多,希望老师以后能多安排这种课程设计,这样才能让我们真正的学以致用,才能给予我们更多的锻炼机会。

操作系统实验6装备管理spooling

操作系统实验6装备管理spooling

可运行状态分成不可运行状态1 和2。分别叙述如下: ①进程执行完毕后应置成“结束状态”。 ②要求输出进程在输出信息时,如发现输出井已满,应置成“不可运行状态
1”。 ③Spooling 进程在输出井空时应置成“不可运行状态2”。 ④Spooling 进程输出一个信息块后,应释放该信息块所占的输出井位置,并将 正在等待输出的进程置成“可运行状态”。 ⑤要求输出进程在输出信息到输出井并形成信息块后,应将Spooling 进程置成 “可运行状态”。
实验五 设备管理(spooling 技术)
实验题目:编写一个Spooling 程序来模拟假脱机输入输出过程
2
一、实验目的
假脱机(Spooling)技术是广泛用于各种系统的一种行之有效的输入输出手段, 这种技术使用比较简单的方法,缓和了处理机与低速输入输出设备速度不匹配 的矛盾,提高设备的利用率。为了更好地掌握这种技术,本实习要求学生独立 地用高级语言编写一个Spooling程序来模拟假脱机输入输出过程。
2
对全部高中资料试卷电气设备,在安装过程中以及安装结束后进行高中资料试卷调整试验;通电检查所有设备高中资料电试力卷保相护互装作置用调与试相技互术关,通系电1,力过根保管据护线生高0不产中仅工资2艺料22高试2可中卷以资配解料置决试技吊卷术顶要是层求指配,机置对组不电在规气进范设行高备继中进电资行保料空护试载高卷与中问带资题负料2荷试2,下卷而高总且中体可资配保料置障试时2卷,32调需3各控要类试在管验最路;大习对限题设度到备内位进来。行确在调保管整机路使组敷其高设在中过正资程常料1工试中况卷,下安要与全加过,强度并看工且25作尽52下可22都能护可地1关以缩于正小管常故路工障高作高中;中资对资料于料试继试卷电卷连保破接护坏管进范口行围处整,理核或高对者中定对资值某料,些试审异卷核常弯与高扁校中度对资固图料定纸试盒,卷位编工置写况.复进保杂行护设自层备动防与处腐装理跨置,接高尤地中其线资要弯料避曲试免半卷错径调误标试高方中等案资,,料要编试求5写、卷技重电保术要气护交设设装底备备置。4高调、动管中试电作线资高气,敷料中课并设3试资件且、技卷料中拒管术试试调绝路中验卷试动敷包方技作设含案术,技线以来术槽及避、系免管统不架启必等动要多方高项案中方;资式对料,整试为套卷解启突决动然高过停中程机语中。文高因电中此气资,课料电件试力中卷高管电中壁气资薄设料、备试接进卷口行保不调护严试装等工置问作调题并试,且技合进术理行,利过要用关求管运电线行力敷高保设中护技资装术料置。试做线卷到缆技准敷术确设指灵原导活则。。:对对在于于分调差线试动盒过保处程护,中装当高置不中高同资中电料资压试料回卷试路技卷交术调叉问试时题技,,术应作是采为指用调发金试电属人机隔员一板,变进需压行要器隔在组开事在处前发理掌生;握内同图部一纸故线资障槽料时内、,设需强备要电制进回造行路厂外须家部同出电时具源切高高断中中习资资题料料电试试源卷卷,试切线验除缆报从敷告而设与采完相用毕关高,技中要术资进资料行料试检,卷查并主和且要检了保测解护处现装理场置。设。备高中资料试卷布置情况与有关高中资料试卷电气系统接线等情况,然后根据规范与规程规定实验环境

计算机操作系统(第二版)课件:SPOOLing系统

计算机操作系统(第二版)课件:SPOOLing系统
1. 什么是SPOOLing系统 2. SPOOLing系统的组成 3. SPOOLing系统的工作过程 4. 共享打印机的实现原理
SPOOLing系统
在联机情况下实现的同时外围操作称为SPOOLing,或称为假脱机操作。
1. 设计思想
预输入
磁盘输Βιβλιοθήκη 井缓输出用户进程输出井
32
5.7 SPOOLing系统
2. SPOOLing系统的组成:
(1)输入井, 输出井 (2)预输入程序:输入进程
缓输出程序:输出进程 (3)井管理程序:输入井读;输出井写
5.7 SPOOLing系统
3. SPOOLing系统的工作原理
5.7 SPOOLing系统
4. 共享打印机的实现
(1)用户进程请求打印: ① 在输出井中申请空闲磁盘空间, 写入打印数据; ② 填写用户请求打印表,插入打印请求队列
(2)打印机空闲时:完成打印工作
5.7 SPOOLing系统
本节知识小结
5.7 SPOOLing系统
2. SPOOLing系统的组成
(1)输入井:模拟脱机输入时的磁盘; 输出井:模拟脱机输出时的磁盘;
(2)预输入程序:输入进程 模拟脱机输入时的外围机;
缓输出程序:输出进程 模拟脱机输出时的外围机;
(3)井管理程序:输入井读;输出井写
磁盘 输入井
输出井
2. SPOOLing系统的组成

操作系统第6章(设备管理习题与解答)

操作系统第6章(设备管理习题与解答)

第6章设备管理习题与解答6.1 例题解析例6.2.1 何谓虚拟设备?请说明SPOOLing系统是如何实现虚拟设备的。

解本题的考核要点是虚拟设备的实现方法。

虚拟设备是指利用软件方法,比如SPOOLing系统,把独享设备分割为若干台逻辑上的独占的设备,使用户感受到系统有出若干独占设备在运行。

当然,系统中至少一台拥有物理设备,这是虚拟设备技术的基础。

SPOOLing系统又称“假脱机I/O系统”,其中心思想是,让共享的、高速的、大容量外存储器(比如,磁盘)来模拟若干台独占设备,使系统中的一台或少数几台独占设备变成多台可并行使用的虚拟设备。

SPOOLing系统主要管理外存上的输入井和输出井,以及内存中的输入缓冲区和输出缓冲区。

其管理进程主要有输入和输出进程,负责将输入数据装入到输入井,或者将输出井的数据送出。

它的特点是:提高了 I/O操作的速度;将独占设备改造为共享设备;实现了虚拟设备功能。

例 6.2.2 有关设备管理要领的下列叙述中,( )是不正确的。

A.通道是处理输入、输出的软件B.所有外围设备都由系统统一来管理C.来自通道的I/O中断事件由设备管理负责处理D.编制好的通道程序是存放在主存贮器中的E.由用户给出的设备编号是设备的绝对号解本题的考核要点是设备管理的基本概念。

(1) 通道是计算机上配置的一种专门用于输入输出的设备,是硬件的组成部分。

因此A是错误的。

(2) 目前常见I/O系统其外部设备的驱动和输入输出都由系统统一管理。

因此B是对的。

(3) 设备管理模块中的底层软件中配有专门处理设备中断的处理程序。

通道中断属于设备中断的一种。

因此C是对的。

(4) 通道设备自身只配有一个简单的处理装置(CPU),并不配有存储器,它所运行的通道程序全部来自内存。

因此D是对的。

(5) 系统在初启时为每台物理设备赋予一个绝对号,设备绝对号是相互独立的。

由用户给出的设备号只能是逻辑编号,由系统将逻辑号映射为绝对号。

因此E是错误的。

操作系统中SPOOLING系统的分析与实现

操作系统中SPOOLING系统的分析与实现
收稿日期: %""% 9 ": 9 !; 作者简介: 蒲在毅 (!;’: 9 ) , 男, 四川渠县人, 四川师范学院计算机科学系助教, 主要从事数据结构、 离散数学和操作系统 万方数据 2 的教学与研究工作
!
=CD
四川师范学院学报 (自然科学版)
CEEF 年
在 !"##$%&’ 技术的支持下, 字符设备经通道和缓冲存贮器 (设在主机内存中) 与块设备相联, 这个块设 备通常叫做辅存; 为了存放从字符设备输入的信息, 或者存放即将输出到字符设备上的信息 (来自内存) , 在 辅存上要分别开辟一固定的区域, 叫 “输入井” (对输入) 和 “输出井” (对输出) 输出井一般是安排在 ( 输入井、 高速的存储设备之中 (例如硬盘的某个分区) ( 其调度和优先级安排是由 !"##$%&’ 系统完成的 ( 当用户向 !"##$%&’ 系统提交输入或输出任务时, !"##$%&’ 系统将其交给相应的输入或输出控制进程 ( 输入控制进程负责启动通道 ) *+, 从低速的输入设备读取数据到输入井中, 而其中涉及的具体硬件的 操作由通道来完成, 在通道完成数据的传送之后, 输入控制程序关闭通道, 并挂起再次等待任务 ( 输出控制进 程则是将输出井中的数据传送至特定的输出设备, 其过程与输入进程相仿 ( !"##$%&’ 系统是一个主动为用户服务的系统 ( 这是因为 !"##$%&’ 系统的程序模块建立了进程— !"-%、 而所有进程都是在 0"1 调度程序的调度下并发地执行的, 只要 !"##$%&’ 系统的进程被调 !".%、 !"-/、 !"./, 度而运行, 它们就要不断地把字符设备上的信息送到输入井或把输出井中的信息送到字符设备上, 而不管用 户进程当前是否提出了这种 2 ) # 要求 ( 直到输入井已满, 输出井已空, 或输入设备已无信息, 它们才进入睡眠 状态等待 ( 同时, 由于块设备是多个进程可以 “同时” 读写的, 于是 !"##$%&’ 便把只能由一个用户独占的字符设备 变成了多用户、 多进程共享的设备, 并使用户产生一个错觉, 好象他们各自都有一台专用的字符设备, 这种感 觉上存在而实际上不存在的字符设备就是所谓虚拟设备 ( 3%45678 9:3%;:<) (

操作系统练习六2020

操作系统练习六2020

操作系统练习六2020一、单项选择题1.下列设备中,不属于独占设备的是()。

选择一项:A. 打印机B. 终端C. 磁带D. 磁盘【解析】独占设备是多个进程不能同时共用的设备。

选项中的打印机、终端和磁带都属于独占设备,只有磁盘是共享设备。

正确答案是:磁盘2.过硬件和软件的功能扩充,把原来独占的设备改造成为能为若干用户共享的设备,这种设备称为()设备。

选择一项:A. 块B. 存储C. 共享D. 虚拟【解析】这是虚拟设备的定义,即通过虚拟技术把独占设备改造为共享设备。

正确答案是:虚拟3.在操作系统中,用户在使用I/O设备时,通常采用()。

选择一项:A. 虚拟设备号B. 设备的相对号C. 设备的绝对号D. 设备名【解析】用户使用的是设备的相对号,再由操作系统转换为设备的绝对号。

正确答案是:设备的相对号4.通道是一种()。

选择一项:A. I/O端口B. 软件工具C. 数据通道D. I/O专用处理机【解析】操作系统中的通道不是指常规意义上的通路,而是专门负责I/O操作的一台小型处理机。

正确答案是:I/O专用处理机5.CPU启动通道后,设备的控制工作由()。

选择一项:A. CPU执行通道程序来控制B. 通道独立执行预先编好的通道程序来控制C. CPU执行程序来控制D. 通道执行用户程序来控制【解析】通道接受CPU委托,独立地执行通道程序完成I/O操作。

正确答案是:通道独立执行预先编好的通道程序来控制6.用户编制的程序与实际使用的物理设备无关是由()功能实现的。

选择一项:A. 设备独立性B. 虚拟设备C. 设备驱动D. 设备分配【解析】与设备无关也称作设备独立性,即用户程序应与实际使用的物理设备无关,由操作系统来解决设备使用问题。

正确答案是:设备独立性7.下列描述中,不是设备管理的功能的是()。

选择一项:A. 完成I/O操作B. 实现缓冲区管理C. 进行设备分配D. 实现中断处理【解析】设备管理主要有4个功能,监视设备、分配设备、完成I/O操作、缓冲管理与地址转换。

计算机系统6

计算机系统6

一、单项选择题题目1正确获得1.00分中的1.00分标记题目题干1.下列设备中,不属于独占设备的是()。

选择一项:A. 打印机B. 终端C. 磁盘D. 磁带反馈Your answer is correct.【解析】独占设备是多个进程不能同时共用的设备。

选项中的打印机、终端和磁带都属于独占设备,只有磁盘是共享设备。

正确答案是:磁盘题目2正确获得1.00分中的1.00分标记题目题干2.过硬件和软件的功能扩充,把原来独占的设备改造成为能为若干用户共享的设备,这种设备称为()设备。

选择一项:A. 块B. 虚拟C. 存储D. 共享反馈Your answer is correct.【解析】这是虚拟设备的定义,即通过虚拟技术把独占设备改造为共享设备。

正确答案是:虚拟题目3正确获得1.00分中的1.00分标记题目题干3.在操作系统中,用户在使用I/O设备时,通常采用()。

选择一项:A. 设备的绝对号B. 设备名C. 设备的相对号D. 虚拟设备号反馈Your answer is correct.【解析】用户使用的是设备的相对号,再由操作系统转换为设备的绝对号。

正确答案是:设备的相对号题目4正确获得1.00分中的1.00分标记题目题干4.通道是一种()。

选择一项:A. I/O专用处理机B. 软件工具C. I/O端口D. 数据通道反馈Your answer is correct.【解析】操作系统中的通道不是指常规意义上的通路,而是专门负责I/O操作的一台小型处理机。

正确答案是:I/O专用处理机题目5正确获得1.00分中的1.00分标记题目题干5.CPU启动通道后,设备的控制工作由()。

选择一项:A. 通道执行用户程序来控制B. CPU执行程序来控制C. 通道独立执行预先编好的通道程序来控制D. CPU执行通道程序来控制反馈Your answer is correct.【解析】通道接受CPU委托,独立地执行通道程序完成I/O操作。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

实验五设备管理(spooling 技术)实验题目:编写一个Spooling 程序来模拟假脱机输入输出过程2一、实验目的假脱机(Spooling)技术是广泛用于各种系统的一种行之有效的输入输出手段,这种技术使用比较简单的方法,缓和了处理机与低速输入输出设备速度不匹配的矛盾,提高设备的利用率。

为了更好地掌握这种技术,本实习要求学生独立地用高级语言编写一个Spooling程序来模拟假脱机输入输出过程。

二、实验要求及实验环境可将Spooling 输入输出程序编制成一个独立的进程与其它要求输入输出的进程并发工作。

Spooling 进程负责从卡片机或光电读带机等设备读入信息送到磁盘或磁鼓的输入井中,或是把磁盘、磁鼓输出井的信息块送到打印机或CRT 等设备输出。

其余进程只要求编写输入输出部分的程序,可不考虑其它操作。

本实验编制一个Spooling 输出进程与另外二个要求输出的进程并发运行。

要求输出进程每运行一次只输出一项信息到输出井,待输出到一个结束标志时,表示一批信息输出完成,在输出井中形成一输出信息块,再由Spooling 进程把整个信息块实际输出到打印机或CRT。

因此,进程的运行必须考虑同步问题。

采用进程的随机调度法模拟Spooling 输出是合适的,因为各进程的输出应是随机的。

(1)进程调度采用随机调度法,二个要求输出进程的调度概率各为45%,Spooling 进程为10%。

(2)可为进程设置三种工作状态:可运行状态,不可运行状态和结束状态。

为了区分要求输出进程和Spooling 进程处于不可运行状态的不同原因,又把不可运行状态分成不可运行状态1 和2。

分别叙述如下:①进程执行完毕后应置成“结束状态”。

②要求输出进程在输出信息时,如发现输出井已满,应置成“不可运行状态1”。

③Spooling 进程在输出井空时应置成“不可运行状态2”。

④Spooling 进程输出一个信息块后,应释放该信息块所占的输出井位置,并将正在等待输出的进程置成“可运行状态”。

⑤要求输出进程在输出信息到输出井并形成信息块后,应将Spooling 进程置成“可运行状态”。

三、设计思想(本程序中的用到的所有数据类型的定义,主程序的流程图及各程序模块之间的调用关系)1.流程图4图假脱机输出系统框图5图请求输出进程程序框图6图Spooling 进程程序框图2.逻辑设计①进程控制块(PCB)对于输出进程和spooling 进程两种不同的进程,采用相同的结构处理,包括进程标识,进程状态,输出缓冲,输出指针,信息块首地址,输出长度等内容。

需要支持在不同状态之间的转换,输出缓冲晴空等操作。

②输出请求块包括要求输出的进程标识,输出长度,输出首地址等内容。

7③输出井使用队列结构模拟。

需要支持队列重整,取队首元素,删除队首元素,在队尾插入等操作,需要使用closed,open 两个指针协助操作。

3、物理设计①进程控制块(PCB)struct info_PCB{long ID;//进程标识long status;//状态long po;//输出指针long head;//信息块首地址long count;//输出长度long wait[1000];//输出缓冲}PCB[4];②输出请求块struct info_block{long ID;//要求输出的进程long len;//输出长度long head;//输出首地址}block[128];③输出井struct info_wall{long num[10000];//输出内容long open,closed;//队列指针}wall[3];四、测试结果实际运行的结果如下:Input the times of user1's output file:4 Input the times of user2's output file:7 Process 2 produces a block 1! Process 1 produces a block 2! Output block 1: (ID=2)1 1 4 8 9 3 7 1 8 32 8 6 2 8 08Process 2 produces a block 3! Process 2 produces a block 4! Output block 2: (ID=1)2 4 5 9 5 9 8 5 4 9 4 8 0Output block 3: (ID=2)7 6 2 8 3 0Process 2 produces a block 5! Process 2 produces a block 6! Output block 4: (ID=2)6 0Process 1 produces a block 7!Process 1 produces a block 8!Output block 5: (ID=2)6 5 1 9 4 0Output block 6: (ID=2)9 4 0Output block 7: (ID=1)2 8 7 5 5 4 2 9 2 1 1 1 5 7 0Process 2 produces a block 9!Process 2 produces a block 10!Output block 8: (ID=1)Process 1 produces a block 11!Output block 9: (ID=2)5 4 9 1 1 4 46 3 2 6 1 2 57 0Output block 10: (ID=2)3 4 2 4 0Output block 11: (ID=1)2 1 8 9 7 8 1 5 4 9345 5 8 1 3 1 4 86 9 4 6 0五、系统不足与经验体会系统的不足包括健壮性尚不够好,界面比较简单,对于模拟过程,输出信息不够详细,对某些规模的的初始化需要修改程序。

经验体会:注意数据达到上限时的情况,对于进程调度,要注意避免没有任何一个进程处于等待状态的情况出现。

六、附录:源代码(带注释)#include <cstdio>#include <cstring>#include <cstdlib>9#include <ctime>struct info_PCB{long ID;//进程标识long status;//状态long po;//输出指针long head;//信息块首地址long count;//输出长度long wait[1000];//输出缓冲}PCB[4];struct info_blocklong ID;//要求输出的进程long len;//输出长度long head;//输出首地址}block[128];struct info_wall{long num[10000];//输出内容long open,closed;//队列指针}wall[3];long K[3],L1,L2[3];long n;void input()//输入函数{printf("Input the times of user1's output file:");scanf("%ld",&K[1]);printf("Input the times of user2's output file:");scanf("%ld",&K[2]);}void init()//初始化函数{L1=10;L2[1]=L2[2]=100;memset(PCB,0,sizeof(PCB));PCB[1].ID=1;PCB[2].ID=2;PCB[3].ID=3;PCB[3].status=2;memset(wall,0,sizeof(wall));10n=0;}void work()//模拟进程调度{long r;long k;long a,b;long i,j;while (PCB[1].status!=3 || PCB[2].status!=3 || PCB[3].status!=3) {r=rand()%100+1;//用随机数模拟进程执行概率if (r<=45){k=1;}elseif (r<=90)k=2;elsek=3;}if (PCB[k].status!=0)continue;switch (k){case 1:case 2://输出进程ka=rand()%10;++PCB[k].po;PCB[k].wait[PCB[k].po]=a;if (a==0){b=wall[k].closed+1;for (i=1;i<=PCB[k].po;i++){wall[k].num[++wall[k].closed]=PCB[k].wait[i];}PCB[k].po=0;11PCB[k].count++;if (PCB[k].count==K[k])//进程执行完毕后应置成"结束状态"。

{PCB[k].status=3;}if (PCB[3].status==2)//要求输出进程在输出信息到输出井并形成信息块后,应将Spooling 进程置成"可运行状态"。

{PCB[3].status=0;}if (L2[k]==0 && PCB[k].status==0)//如果输出井满,将进程置为"不可运行状态1"{PCB[k].status=1;}n++;block[n].ID=k;block[n].head=b;block[n].len=wall[k].closed-b+1;printf("Process %ld produces a block %ld!\n",k,n);}break;case 3://Spooling 进程PCB[3].po++;a=PCB[3].po;printf("Output block %ld: (ID=%ld)\n",a,block[a].ID);for (i=1;i<=block[a].len;i++){printf("%ld ",wall[block[a].ID].num[i+block[a].head-1]); }printf("\n");if (PCB[3].po==n){PCB[3].status=2;//Spooling 进程在输出井空时应置成"不可运行状态2"。

if (PCB[1].status==3 && PCB[2].status==3){PCB[3].status=3;}}break;12}}}int main(){srand(time(NULL));input();init();work();return 0;}。

相关文档
最新文档