设计一个若干并发进程的进程调度程序

合集下载

计算机专业基础综合(进程管理)模拟试卷7

计算机专业基础综合(进程管理)模拟试卷7

计算机专业基础综合(进程管理)模拟试卷7(总分:64.00,做题时间:90分钟)一、<B>单项选择题1-40小题。

下列每题给出的四个选项中,只有一个选项是最符合题目要求的。

</B>(总题数:22,分数:44.00)1.下列选项中,导致创建新进程的操作是( )。

I.用户登录成功Ⅱ.设备分配Ⅲ.启动程序执行A.仅I和ⅢB.仅Ⅱ和ⅢC.仅I和Ⅲ√D.I、Ⅱ、Ⅲ用户登录成功、启动程序执行均会导致创建新进程,而设备分配则不会。

2.下列选项中,操作系统提供给应用程序使用的接口是( )。

A.系统调用√B.中断C.库函数D.原语在现代操作系统中,操作系统提供了包括系统调用、命令接口、图形接口等方便用户使用系统资源的接口,在上述接口中,只有系统调用是提供给程序使用的。

3.下列进程调度算法中,综合考虑了进程等待时间和执行时间的是( )。

A.时间片轮转调度算法B.最短进程优先调度算法C.先来先服务调度算法D.高响应比优先调度算法√在若干进程调度算法中,时间片轮转调度算法考虑的是时间分配上的均衡,最短进程优先调度算法主要考虑的是短作业的等待时间,先来先服务调度算法考虑的是到达顺序的合理性,而只有高响应比优先调度算法做到了综合考虑进程等待时间和执行时间。

4.单处理机系统中,可并行的是( )。

I.进程与进程Ⅱ.处理机与设备Ⅲ.处理机与通道Ⅳ.设备与设备A.I、Ⅱ和ⅢB.I、Ⅱ和ⅣC.I、Ⅲ和ⅣD.Ⅱ、Ⅲ和Ⅳ√在单处理机系统中,仅有一个处理机,所以在一个特定的时刻只能有一个进程能够获得处理机的使用权,因而排除选项A、B和C,只有选项D是合理的答案。

5.如果有一个进程从运行状态变成等待状态,或完成工作后就撤销,则必定会发生( )。

A.进程切换√B.存储器再分配C.时间片轮转D.死锁此题主要考查进程切换的相关内容。

进程调度将从就绪队列中另选一个进程占用处理机。

使一个进程让出处理要,由另一个进程占用处理机的过程称为进程切换。

一个有N个进程并发执行的进程调度程序

一个有N个进程并发执行的进程调度程序

一个有N个进程并发执行的进程调度程序。

进程调度算法:采用最高优先数优先的调度算法(即把处理机分配给优先数最高的进程)和先来先服务算法。

#include "stdio.h"#include <stdlib.h>#include <conio.h>#define getpch(type) (type*)malloc(sizeof(type))#define NULL 0struct pcb { /* 定义进程控制块PCB */char name[10];char state;int super;int ntime;int rtime;struct pcb* link;}*ready=NULL,*p;typedef struct pcb PCB;void sort() /* 建立对进程进行优先级排列函数*/{PCB *first, *second;int insert=0;if((ready==NULL)||((p->super)>(ready->super))) /*优先级最大者,插入队首*/{p->link=ready;ready=p;}else /* 进程比较优先级,插入适当的位置中*/{first=ready;second=first->link;while(second!=NULL){if((p->super)>(second->super)) /*若插入进程比当前进程优先数大,*/{ /*插入到当前进程前面*/p->link=second;first->link=p;second=NULL;insert=1;}else /*向后移动指针*/{first=first->link;second=second->link;}}/* 插入进程优先数最低,则插入到队尾*/if(insert==0) first->link=p;}}void input() /* 建立进程控制块函数*/{int i,num;printf("\n 请输入进程号?");scanf("%d",&num);for(i=0;i<num;i++){printf("\n 进程号No.%d:\n",i);p=getpch(PCB);printf("\n 输入进程名:");scanf("%s",p->name);printf("\n 输入进程优先数:");scanf("%d",&p->super);printf("\n 输入进程运行时间:");scanf("%d",&p->ntime);printf("\n");p->rtime=0;p->state='w';p->link=NULL;sort(); /* 调用sort函数*/}}int space(){int l=0; PCB* pr=ready;while(pr!=NULL){l++;pr=pr->link;}return(l);}void disp(PCB * pr) /*建立进程显示函数,用于显示当前进程*/ {printf("\n qname \t state \t super \t ndtime \t runtime \n");printf("|%s\t",pr->name);printf("|%c\t",pr->state);printf("|%d\t",pr->super);printf("|%d\t",pr->ntime);printf("|%d\t",pr->rtime);printf("\n");}void check() /* 建立进程查看函数*/{PCB* pr;printf("\n **** 当前正在运行的进程是:%s",p->name); /*显示当前运行进程*/disp(p);pr=ready;printf("\n ****当前就绪队列状态为:\n"); /*显示就绪队列状态*/while(pr!=NULL){disp(pr);pr=pr->link;}}void destroy() /*建立进程撤消函数(进程运行结束,撤消进程)*/{printf("\n 进程[%s] 已完成.\n",p->name);free(p);}void running() /* 建立进程就绪函数(进程运行时间到,置就绪状态*/{(p->rtime)++;if(p->rtime==p->ntime)destroy(); /* 调用destroy函数*/else{(p->super)--;p->state='w';sort(); /*调用sort函数*/}}void main() /*主函数*/{int len, h=0;char ch;input();len=space();while((len!=0)&&(ready!=NULL)){ch=getchar();h++;printf("\n The execute number:%d \n",h);p=ready;ready=p->link;p->link=NULL;p->state='R';check();running();printf("\n 按任一键继续......");ch=getchar();}printf("\n\n 进程已经完成.\n");ch=getchar();}。

“操作系统概论”习题解答之并发进程

“操作系统概论”习题解答之并发进程

“操作系统概论”习题解答之并发进程第7章习题解答1.什么叫并发进程?答:在多道程序设计系统中,作为单个作业可以同时执行,而每一个作业又需要有多个进程的协作来完成。

因此,系统会同时存在着许多进程,在单处理器的情况下,这些进程轮流的占用处理器,即一个进程的工作没有全部完成之前,另一个进程就开始工作,我们说这些可同时执行的进程具有并发性,并且把可同时执行的进程称为“并发进程”。

2.临界区是怎样定义?对临界区的管理应符合哪些要求?答:并发进程中与共享变量有关的程序段称为“临界区”。

对若干个并发进程共享某一变量的相关临界区得管理有三点要求:①一次至多一个进程能够进入临界区,当有进程在临界区执行时,其他想进入临界区执行的进程必须等待。

②不能让一个进程无限制的在临界区执行,即任何一个进入临界区的进程必须有限的时间内退出临界区。

③不能强迫一个进程无限期等待键入它的临界区,即有进程退出临界区时应让一个等待进入临界区的进程进入它的临界区执行。

3.采用PV操作作为同步机构时,假定与某共享变量相关的信号量S的值可在[-1,l]之间,问S的初值是哪个值?当S=-1,S=0,S=l时它们各自的物理含义是什么?答:S的初值是 1.S=-l,表示有一个进程在等待进入临界区执行。

S=0,表示已有一个进程在临界区执行,这时若有进程想进入临界区则必须等待。

S=l,表示无进程在临界区执行,若有进程想进入临界区则可以立即进入。

4.A、B两个火车站之间是单轨连接的,现有许多列车同时到A站,须经A再到达B站,列车出B站后又可分路行驶(如图7-2)为保证行车安全,请你当调度时,你将如何调度列车?请你用PV操作为工具设计一个能实现你的调度方案的自动调度系统。

答:当A、B两站之间无列车停驶时,可让到达A站的一列车进人A、B站之间行驶。

当A石站之间有列车在行驶时,则到达A站者必须在站外等待。

当有列车到达B站后,让等在A站外的一列车进入。

用一个信号量S来控制到达A站的列车能否进入单轨道行驶,S的初始值为l.列车到达A站后,先执行P(S),若无列车在A、B站之间行驶,则执行P(S)后立即进人单轨道行驶,到达B站后,执行V(S),可释放一个等待进入的列车进入行驶。

计算机操作系统习题及答案

计算机操作系统习题及答案

第一章操作系统引论一、单项选择题1.操作系统是一种__________。

A.通用软件 B.系统软件C.应用软件 D.软件包2,操作系统的__________管理部分负责对进程进行调度。

A.主存储器 B.控制器C.运算器D.处理机3.操作系统是对__________进行管理的软件。

A.软件B.硬件C,计算机资源 D.应用程序4.从用户的观点看,操作系统是__________。

A.用户与计算机之间的接口B.控制和管理计算机资源的软件C.合理地组织计算机工作流程的软件D.由若干层次的程序按一定的结构组成的有机体5,操作系统的功能是进行处理机管理、_______管理、设备管理及文件管理。

A.进程 B.存储器C.硬件 D.软件6,操作系统中采用多道程序设计技术提高CPU和外部设备的_______。

A.利用率 B.可靠性C.稳定性 D.兼容性7.操作系统是现代计算机系统不可缺少的组成部分,是为了提高计算机的_______和方便用户使用计算机而配备的一种系统软件。

A. 速度B.利用率C. 灵活性 D.兼容性8.操作系统的基本类型主要有_______。

A.批处理系统、分时系统及多任务系统B.实时操作系统、批处理操作系统及分时操作系统C.单用户系统、多用户系统及批处理系统D.实时系统、分时系统和多用户系统9.所谓_______是指将一个以上的作业放入主存,并且同时处于运行状态,这些作业共享处理机的时间和外围设备等其他资源。

A. 多重处理 B.多道程序设计C. 实时处理 D.并行执行10. _______操作系统允许在一台主机上同时连接多台终端,多个用户可以通过各自的终端同时交互地使用计算机。

A.网络 D.分布式C.分时 D.实时11.如果分时操作系统的时间片一定,那么_______,则响应时间越长。

A.用户数越少B.用户数越多C.内存越少 D. 内存越多12,分时操作系统通常采用_______策略为用户服务。

A.可靠性和灵活性 B.时间片轮转C.时间片加权分配 D,短作业优先13. _______操作系统允许用户把若干个作业提交给计算机系统。

第3章处理机调度与死锁-选择题

第3章处理机调度与死锁-选择题

第3章处理机调度与死锁(处理机调度)-选择题1.时间片轮转调度算法是为了()A.多个用户能及时干预系统B.使系统变得高效C.优先级较高的进程得到及时响应D.需要CPU时间最少的进程最先做2.在单处理器多进程系统中,进程什么时候占用处理器及决定占用时间的长短是由()决定的A.进程相应的代码长度B.进程总共需要运行的时间C.进程特点和进程调度策略D.进程完成什么功能3.()有利于CPU繁忙型的作业,而不利于I/O繁忙型的作业。

A.时间片轮转调度算法B.先来先服务调度算法C.短作业(进程)优先算法D.优先权调度算法4.下面有关选择进程调度算法的准则中,不正确的是()A.尽快响应交互式用户的请求B.尽量提高处理器利用率C.尽可能提高系统吞吐量D.适当增长进程就绪队列的等待时间5.设有4个作业同时到达,每个作业的执行时间均为2h,它们在一台处理器上按单道式运行,则平均周转时间为()A.1hB.5hC.2.5hD.8h6.若每个作业只能建立一个进程,为了照顾短作业用户,应采用();为了照顾紧急作业用户,应采用();为了能实现人机交互,应采用();而能使短作业、长作业和交互作业用户都满意,应采用()A.FCFS调度算法B.短作业优先调度算法C.时间片轮转调度算法D.多级反馈队列调度算法E.剥夺式优先级调度算法7.()优先级是在创建进程时确定的,确定之后在整个运行期间不再改变A.先来先服务B.动态C.短作业D.静态8.现在有三个同时到达的作业J1、J2和J3,它们的执行时间分别是T1、T2、T3且T1<T2<T3。

系统按单道方式运行且采用短作业优先调度算法,则平均周转时间是()A.T1+T2+T3B.(3T1+2T2+T3)/3C.(T1+T2+T3)/3D.(T1+2T2+3T3)/39.设有三个作业,其运行时间分别是2h、5h、3h,假定它们同时到达,并在同一台处理器上以单道方式运行,则平均周转时间最小的执行顺序是()A.J1,J2,J3B.J3,J2,J1C.J2,J1,J3D.J1,J3,J210. 【2013统考真题】某系统正在执行三个进程P1、P2和P3,各进程的计算(CPU时间和I/O 时间比例如下表所示进程计算时间I/O时间P1 90% 10%P2 50% 50%P3 15% 85%提高系统资源利用率,合理的进程优先级设置应为()A.P1>P2>P3B. P3>P2>P1C. P2>P1=P3D. P1>P2=P311.采用时间片轮转调度算法分配CPU时,当处于运行态的进程完一个时间片后,它的状态是()状态A.阻塞B.运行C.就绪D.消亡12.一个作业8:00到达系统,估计运行时间为1h。

2022年东北大学软件工程专业《操作系统》科目期末试卷A(有答案)

2022年东北大学软件工程专业《操作系统》科目期末试卷A(有答案)

2022年东北大学软件工程专业《操作系统》科目期末试卷A(有答案)一、选择题1、下列选项中,操作系统提供给应用程序的接口是()。

A.系统调用B.中断C.库函数D.原语2、处理外部中断时,应该山操作系统保存的是()A.程序计数器(PC)的内容B.通用寄存器的内容C.快表(TLB)中的内容D.Cache中的内容3、为多道程序提供的共享资源不足时,可能会产生死锁。

但是,不当的()也可能产生死锁。

A.进程调度顺序B.进程的优先级C.时间片大小D.进程推进顺序4、有若干并发进程均将一个共享变量count的值加1一次,那么有关count中的值的说法正确的是()。

I.肯定有不正确的结果II.肯定有正确的结果,III.若控制这些并发进程互斥执行count加1操作,count中的值正确A. I和IIIB.II和IIIC.IIID. I、II和III的说法均不正确5、死锁与安全状态的关系是()。

A.死锁状态有可能是安全状态B.安全状态有可能成为死锁状态C.不安全状态就是死锁状态D.死锁状态一定是不安全状态6、下列关于SPOOLing技术的叙述中,错误的是()A.需要外存的文持B.需要多道程序设计技术的支持C.可以让多个作业共享一台独占设备D.由用户作业控制设备与输入/输出之间的数据传送7、 I/O中断是CPU与通道协调I作的种于段,所以在()时,便要产生中断。

A.CPU执行“启动I/O”指令而被通道拒绝接收B.通道接受了CPU的启动请求C.通道完成了通道程序的执行D.通道在执行通道程序的过程中8、操作系统为了管理文件,设计了文件控制块(FCB),文件控制块的建立是().A.在调用create()时B.在调用open()时C.在调用read()时D.在调用write()9、文件系统用位图法表示磁盘空间的分配情况,位图存于磁盘的32~127号块中,每个盘块占1024B.盘块和块内字节均从0开始编号。

假设要释放的盘块号为409612,则位图中要修改的位所在的盘块号和块内字节序号分别是()。

操作系统模拟题+答案

操作系统模拟题+答案

操作系统模拟题+答案一、单选题(共100题,每题1分,共100分)1、分布式操作系统与网络操作系统本质上的不同之处在于()。

A、实现各台计算机之间的通信B、共享网络上的资源C、满足较大规模的应用D、系统中若干台计算机相互协作完成同一任务正确答案:D2、下列选项中,会导致进程从运行态变为就绪态的事件是()。

A、启动I/O设备B、申请内存失败C、执行wait操作D、被高优先级进程抢占正确答案:D3、单处理机上,将执行时间有重叠的几个程序称为()。

A、多道程序B、并行程序C、顺序程序D、并发程序正确答案:D4、采用多道程序设计后,可能()。

A、缩短对用户请求的响应时间B、延长了每道程序执行时间C、缩短了每道程序执行时间D、降低了系统资源的利用率正确答案:B5、设系统缓冲区和用户缓冲区均采用单缓冲,从外设读入1个数据块到系统缓冲区的时间为100,从系统缓冲区读入1个数据块到用户工作区的时间为5,对用户工作区中的1个数据块进行分析的时间为90。

进程从外设读入并分析2个数据块的最短时间是()。

A、300B、200C、295D、390正确答案:A6、在()的情况下,系统出现死锁。

A、计算机系统发生了重大故障B、资源数大大小于进程数、进程同时申请的资源数大大超过资源总数C、有多个阻塞的进程正在等待键盘的输入D、若干进程因竞争资源而无休止地相互等待他方释放已占有的资源正确答案:D7、存放当前从主存储器读出的指令的寄存器是()。

A、通用寄存器B、指令寄存器C、限长寄存器D、基址寄存器正确答案:B8、进程间的同步与互斥,分别表示了各进程间的()。

A、相互独立与互相制约B、协作与竞争C、不同状态D、动态性与独立性正确答案:B9、在()时候,CPU响应中断。

A、指令执行中B、指令执行结束C、CPU空闲时D、任何时候正确答案:B10、处于静止阻塞状态的进程,在进程等待的事件发生后,应转换为()。

A、执行B、活动阻塞C、活动就绪D、静止就绪正确答案:D11、通常不采用()方法来解除死锁。

进程调度

进程调度

引起进程调度的主要因素有:(1)一个进程运行完毕。

(2)一个正在运行的进程被阻塞。

(3)在抢占式调度中,一个高优先级的进程被创建。

(4)在抢占式调度中,一个高优先级进程由阻塞唤醒。

(5)在轮转式调度中,正垢进程运行完进程调度的概念无论是在批处理系统还是分时系统中,用户进程数一般都多于处理机数、这将导致它们互相争夺处理机。

另外,系统进程也同样需要使用处理机。

这就要求进程调度程序按一定的策略,动态地把处理机分配给处于就绪队列中的某一个进程,以使之执行。

进程有四个基本属性1.多态性从诞生、运行,直至消灭。

2.多个不同的进程可以包括相同的程序3.三种基本状态它们之间可进行转换4.并发性并发执行的进程轮流占用处理器进程的三种基本状态:1.等待态:等待某个事件的完成;2.就绪态:等待系统分配处理器以便运行;3.运行态:占有处理器正在运行。

运行态→等待态往往是由于等待外设,等待主存等资源分配或等待人工干预而引起的。

等待态→就绪态则是等待的条件已满足,只需分配到处理器后就能运行。

运行态→就绪态不是由于自身原因,而是由外界原因使运行状态的进程让出处理器,这时候就变成就绪态。

例如时间片用完,或有更高优先级的进程来抢占处理器等。

就绪态→运行态系统按某种策略选中就绪队列中的一个进程占用处理器,此时就变成了运行态进程调度的分级高级、中级和低级调度作业从提交开始直到完成,往往要经历下述三级调度:高级调度:(High-Level Scheduling)又称为作业调度,它决定把后备作业调入内存运行;低级调度:(Low-Level Scheduling)又称为进程调度,它决定把就绪队列的某进程获得CPU;中级调度:(Intermediate-Level Scheduling)又称为在虚拟存储器中引入,在内、外存对换区进行进程对换。

进程调度的方式进程调度有以下两种基本方式:非剥夺方式分派程序一旦把处理机分配给某进程后便让它一直运行下去,直到进程完成或发生某事件而阻塞时,才把处理机分配给另一个进程。

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

操作系统实验报告指导:琚耀操作系统实验题1:设计一个若干并发进程的进程调度程序一、实验目的二、实验要求用高级语言编写和调试一个进程调度程序,以加深对进程的概念及进程调度算法的理解.三、实验内容进程调度算法:采用最高优先数优先的调度算法(即把处理机分配给优先数最高的进程)和先来先服务算法。

每个进程有一个进程控制块( PCB)表示。

进程控制块可以包含如下信息:进程名、优先数、到达时间、需要运行时间、已用CPU时间、进程状态等等。

进程的优先数及需要的运行时间可以事先人为地指定(也可以由随机数产生)。

进程的到达时间是程输入的时间。

进程的运行时间以时间片为单位进行计算。

每个进程的状态可以是就绪 W(Wait)、运行R(Run)、或完成F(Finish)三种状态之一。

就绪进程获得 CPU后都只能运行一个时间片。

用已占用CPU时间加1来表示。

如果运行一个时间片后,进程的已占用 CPU时间已达到所需要的运行时间,则撤消该进程,如果运行一个时间片后进程的已占用CPU时间还未达所需要的运行时间,也就是进程还需要继续运行,此时应将进程的优先数减1(即降低一级),然后把它插入就绪队列等待CPU。

每进行一次调度程序都打印一次运行进程、就绪队列、以及各个进程的 PCB,以便进行检查重复以上过程,直到所要进程都完成为止。

四、实验算法流程:调度算法的流程图如下 :2011 信管专业C:\iknow\docshare\data\cur_work\199703291.doc 日期:2013 -11-25五、实验程序清单:(参考某资料)#include "stdio.h"#include <stdlib.h>#include <conio.h>#define getpch(type) (type*)malloc(sizeof(type))#define NULL 0struct pcb { /* 定义进程控制块PCB */char name[10];char state; 状态int super; 优先级int ntime; 运行时间int rtime; 已运行时间struct pcb* link;}*ready=NULL,*p;typedef struct pcb PCB;char sort() /* 建立对进程进行优先级排列函数*/{ PCB *first, *second;int insert=0;if((ready==NULL)||((p->super)>(ready->super))) /*优先级最大者,插入队首*/ { p->link=ready;ready=p;}else /* 进程比较优先级,插入适当的位置中*/{ first=ready;second=first->link;while(second!=NULL){ if((p->super)>(second->super)) /*若插入进程比当前进程优先数大,*/ { /*插入到当前进程前面*/p->link=second;first->link=p;second=NULL;insert=1;}else /* 插入进程优先数最低,则插入到队尾*/{ first=first->link;second=second->link;}}if(insert==0) first->link=p;}}char input() /* 建立进程控制块函数*/{ int i,num;//clrscr(); /*清屏*/printf("\n 请输入被调度的进程数目:");scanf("%d",&num);for(i=0;i<num;i++){ printf("\n 进程号No.%d:\n",i);p=getpch(PCB);printf("\n 输入进程名:");scanf("%s",p->name);printf("\n 输入进程优先数:");scanf("%d",&p->super);printf("\n 输入进程运行时间:");scanf("%d",&p->ntime);printf("\n");p->rtime=0;p->state='w';p->link=NULL;sort(); /* 调用sort函数*/ } }int space(){ int l=0; PCB* pr=ready;while(pr!=NULL){ l++;pr=pr->link; }return(l); }char disp(PCB * pr) /*建立进程显示函数,用于显示当前进程*/{ printf("\n qname \t state \t super \t ndtime \t runtime \n"); printf("|%s\t",pr->name);printf("|%c\t",pr->state);printf("|%d\t",pr->super);printf("|%d\t",pr->ntime);printf("|%d\t",pr->rtime);printf("\n");}char check() /* 建立进程查看函数 */{ PCB* pr;printf("\n **** 当前正在运行的进程是:%s",p->name); /*显示当前运行进程*/ disp(p);pr=ready;printf("\n ****当前就绪队列状态为:\n"); /*显示就绪队列状态*/while(pr!=NULL){ disp(pr);pr=pr->link;}}char destroy() /*建立进程撤消函数(进程运行结束,撤消进程)*/{ printf("\n 进程 [%s] 已完成.\n",p->name);free(p);}char running() /* 建立进程就绪函数(进程运行时间到,置就绪状态*/ { (p->rtime)++;if(p->rtime==p->ntime)destroy(); /* 调用destroy函数*/else{(p->super)--;p->state='w';sort(); /*调用sort函数*/ }}main() /*主函数*/{ int len,h=0;char ch;input();len=space();while((len!=0)&&(ready!=NULL)){ ch=getchar();h++;printf("\n The execute number:%d \n",h); p=ready;ready=p->link;p->link=NULL;p->state='R';check();running();printf("\n 按任一键继续......");ch=getchar();}printf("\n\n 进程已经完成.\n");ch=getchar();}六、运行结果分析结果分析:根据上述输入的三个进程的信息可以得到:优先级最高的是进程mhy,所以最先调度进程mhy,它的状态为运行态,需要执行的时间为2。

而当前就绪队列状态为:进程cj的优先级比较高,处于就绪队列前面,而进程zzq的优先级是三者中最低的,所以处于就绪队列的最后。

而此时这两个进程的状态都为就绪态。

结果分析:当进程mhy执行了一个时间片之后而它已占用CPU时间已达到所需要的运行时间,则将它的优先级减1之后,再将三个进程按优先级的大小排列,从中选择优先级大的进程进入运行状态,则该次进入运行态的是进程cj。

结果分析:当进程mhy的CPU占用时间等于它需要的执行时间时,进程mhy调度完成。

则这时进程调度中还有两个进程:进程cj和进程zzq。

结果分析:当调度进程中只剩下进程cj和进程zzq时,这时根据进程优先级的大小,进程zzq将进入运行态。

结果分析:当进程zzq完成调度时,进程调度程序中直剩下进程cj了,这时进程cj将进入运行态,而当前就绪队列将为空。

结果分析:当进程cj的CPU占用时间等于所需要的执行时间时,进程cj调度完成,则这时进程调度中已经没有需要调度的进程了,则整个进程调度完成。

七、总结与体会本次试验采用最高优先数优先的调度算法和先来先服务算法,开始给每一个进程设定一个优先级数,先进行优先级数高的进程调度,在调度一个进程时,其他进程处于就绪状态,遇到优先级数相同的,进行FCFS算法。

通过做本次试验,让我对进程调度算法有了更深入的认识,尽管在程序代码上遇到了很大困难,最终通过参考资料解决,使我认识到还要在这方面进行努力以弥补自己的不足。

相关文档
最新文档