单道批处理系统设计一个作业调度模拟程序

合集下载

作业调度实验报告

作业调度实验报告

一、根据调度算法设计流程图:实验
步骤
}
}
}
三、整合完成所有程序并实现作业调度(见源代码)。

四、进行调试阶段,对程序修改优化,进行数据测试。

五、实验结果分析
六、总结
实验
WindowsXP和CV++6.0集成开发环境
环境
实验运行的初始界面:
实验结
果与分

测试数据:
a1 1 2 a1
a2 2 3 a2
运行结果:
进行多次循环录入:返回算法选择界面:
测试数据:
b1 2 4 b1
b2 1 3 b2
运行结果:
实验分析和总结:
1)测试的数据必须是符合JCB模块中相同类型的,如在源码中式int类型的,而在测试的时候输入float类型就出错。

2)各个库函数的运用需要掌握相应的功能,否则会照成代码冗余、繁杂、不优化等各种问题。

3)通常在dos下运用的都是英文,而想要用汉字提示就必须考虑一些问题。

在源码中我们用制表符(\t)来控制提示,输出的数字是不能与之对齐的,所以我们要将“\t”改成空格。

4)这编写和调试程序时,为了尽快调通程序应该按照流程图的结构(保证流程图思路是对的情况下)来建立编程思路。

5)此程序也借用了现有的一些代码,并且它还不是最优化的,它还可以进行改进和优化,比如:在回调函数的引用时跳到了另一个页面,见下图:
继续Enter的时候就到下一页:
而不是在同一页面。

6)总之,在编程旅途中是一个很艰辛的过程,要在这里开拓一片蓝天就必须有孜孜不倦的精神。

操作系统原理B卷

操作系统原理B卷

操作系统原理B卷1、要达到文件保密,可以()。

[单选题] *A、隐藏文件目录(正确答案)B、限制文件的使用权限C、设置存取控制表D、定时转储2、解除死锁一般采用终止进程和()两种方法。

[单选题] *A、关闭系统B、抢夺资源(正确答案)C、后退执行D、重新执行进程3、在文件系统中,要求物理块必须连续的物理文件是()。

[单选题] *A、顺序文件(正确答案)B、链接文件C、串联文件D、索引文件4、UNIX系统全部分用C语言写成,具有()。

[单选题] *A、易移植性(正确答案)B、开放性C、可扩展性D、简便性5、操作系统的功能不包括()。

[单选题] *A、CPU管理B、用户管理(正确答案)C、作业管理D、文件管理6、系统功能调用是()。

[单选题] *A、用户编写的一个子程序B、高级语言中的库程序C、操作系统中的一条命令D、操作系统向用户程序提供的接口(正确答案)7、操作系统中,并发性是指()。

[单选题] *A、若干个事件在不同时刻发生B、若干个事件在同一时刻发生C、若干个事件在同一时间间隔内发生(正确答案)D、若干个事件在不同时间间隔内发生8、批处理系统的主要缺点是()。

[单选题] *A、CPU利用率低B、不能并发执行C、缺乏交互性(正确答案)D、以上都不是9、实时操作系统必须在()内响应来自外部的事件。

[单选题] *A、响应时间B、周围时间C、规定时间(正确答案)D、调度时间10、操作系统的进程管理模块并不负责()。

[单选题] *A、进程的创建和删除B、提供死锁处理机制C、实现I/O设备调度(正确答案)D、通过共享内存实现进程间的通信11、当()时,进程从执行状态转变为就绪状态。

[单选题] *A、进程被调度程序选中B、时间片到(正确答案)C、等待某一事件D、等待的事件发生12、进程申请打印输出完成向系统发生中断后,进程的状态变化为()。

[单选题] *A、从就绪到执行B、从执行到就绪C、从等待到就绪(正确答案)D、从执行到就绪13、在进程转换中,下列()转换是不可能发生的。

《操作系统》期中试卷

《操作系统》期中试卷

2013-2014学年第一学期期中考试试题课程名称《操作系统》任课教师签名出题教师签名审题教师签名考试方式(闭)卷适用专业11级计算机各专业考试时间(110 )分钟题号一二三四五六七总分得分评卷人(注:判断题和选择题的答案写在答题纸上)一、单项选择题(每小题2分,共30分)1.批处理系统的主要缺点是。

A.CPU利用率低B.不能并发执行C.缺少交互性D.以上都不是2.进程的时间片结束后,将使进程状态从。

A.运行状态变为就绪状态B.运行状态变为等待状态C.就绪状态变为运行状态D.等待状态变为就绪状态3.判别计算机系统中是否有中断事件发生,通常应是在。

A.进程切换时B.执行完一条指令后C.执行P操作后D.由用户态转入核心态时4.在下列性质中,_____ 不是分时系统的特征。

A.多路性B.交互性C.独占性D.成批性5.操作系统提供给程序员的接口是________。

A.进程B.系统调用C.库函数D.B和C6.进程从运行状态到阻塞状态可能是由于________。

A.进程调度程序的调度B.现运行进程的时间片用完C.现运行进程执行了P操作D.现运行进程执行了V操作7.作业调度程序是从处于状态的作业中选取一个作业并把它装入主存。

A.输入B.后备C.执行D.完成8.在单处理器的多进程系统中,进程什么时候占用处理器和能占用多长时间,取决于。

A.进程相应的程序段的长度B.进程总共需要运行时间多少C.进程自身和进程调度策略D.进程完成什么功能9.在多进程的并发系统中,肯定不会因竞争而产生死锁。

A.打印机B.磁带机C.磁盘D.CPU10.一作业8:00到达系统,估计运行时间为1小时,若10:00开始执行该作业,其响应比是。

A.2 B.1 C.3 D.0.511.一个进程是。

A.由协处理器执行的一个程序B.一个独立的程序C.一个独立的程序 + 数据集D.一个独立的程序 + 数据集 + PCB结构12.若信号S的初值为2,当前值为-1,则表示有_________等待进程。

操作系统概论模拟试题一

操作系统概论模拟试题一

操作系统概论模拟试题一一、单项选择题(每小题1分,共15分)c 1.MS-DOS的引导程序是在磁盘初始化时,由()命令写在软盘或硬盘的0柱0面1扇区上的。

A.CHKDSKB.FDISKC.FORMATD.DISKCOPY2.MS-DOS 5.0开始把()的内存区域作为基本内存区。

A.1MB与2MB之间B.1MB之后C.640KB与1MB之间D.0KB与640KB之间3.MS-DOS中的文件存储结构采用()。

A.顺序结构B.链接结构C.索引结构D.成组链接结构4.与“计算时间”无关的作业调度算法是()算法。

A.先来先服务B.响应比高者优先C.优先数D.可抢占的优先数5.实时系统中的进程调度通常采用()算法。

A.响应比高者优先B.短作业优先C.时间片轮转D.抢占式的优先数高者优先6.在可变分区存储管理中,为了实现主存的空间分配,应设置()来进行管理。

A.页表B.段表C.位示图D.空闲区表7.某系统有同类资源m个供n个进程共享,如果每个进程最多申请k个资源(1<=k<=m),则各进程的最大需求量之和()时系统不会发生死锁。

A.=mB.=m+nC.<m十nD.>m+n8.动态重定位是在()完成的。

A.作业执行前B.作业执行过程中由硬件C.作业执行过程中由OSD.作业执行过程中由用户9.Windows操作系统是由()公司研制的。

A.MicrosoftB.IntelC.HPD.SUN SYSTEM10.进程从等待状态进人就绪状态可能是由于()。

A.现运行进程运行结束B.现运行进程执行P操作C.现运行进程执行了V操作D.现运行进程时间片用完11.在以下的存储管理方案中,能扩充主存容量的是()。

A.固定式分区管理B.可变式分区管理C.页式存储管理D.分页虚拟存储管理12.UNIX文件系统对盘空间的管理采用()。

A.FAT表法B.位示图法C.空闲块链接法D.空闲块成组链接法13.通道在输人输出操作完成或出错时就形成(),等候CPU来处理。

实验二 作业调度实验

实验二 作业调度实验

西北农林科技大学信息工程学院实习报告课程操作系统学院信息工程专业年级软件151 学号2015012893 姓名张鑫周次第八周交报告时间2017.5.5 成绩实验二作业调度实验一. 目的要求:用高级语言编写和调试一个或多个作业调度的模拟程序,以加深对作业调度算法的理解。

二、实验内容:1、编写并调试一个单道处理系统的作业等待模拟程序。

作业等待算法:分别采用先来先服务(FCFS),最短作业优先(SJF)、响应比高者优先(HRN)的调度算法。

流程图如下:1、响应比高者优先算法流程图:开始初始化所有的JBC,使JBC按作业提交的时间的先后顺序排队时间量times=0先计算队列中所有的作业的响应比,总是西选择响应比最高的走也作为此刻要运行的作业,并修改相应的指针,更改时间量的值不空等待队列空?空计算并打印这组作业的平均周转时间及带权平均周转时间结束2、先来先服务调度算法流程图:3、短作业优先算法调度流程图:实验代码如下:#include<stdio.h> #include<stdlib.h> #include<string.h>struct jcb{char name[10];//作业名float arrtime;//提交时间float waitTime;//等待时间float startTime;//开始时间float runTime;//运行时间float finishTime;//完成时间float TAtime; //周转时间float TAWtimei;//带权周转时间float AvgTAtime,AvgTAWtimei;//平均周转时间;平均带权周转时间 float bi;//响应比};jcb JCB[100];int ReadFile(){int m=0;int i=0;FILE *fp; //定义文件指针fp=fopen("3.txt","r"); //打开文件if(fp==NULL){printf("File open error !\n");exit(0);}else{printf("作业名提交时间运行时间\n");while(!feof(fp)){fscanf(fp,"%s%f%f",&JCB[i].name,&JCB[i].arrtime,&JCB[i].runTime); //fscanf()函数将数据读入printf("\n%s%15f%12f",JCB[i].name,JCB[i].arrtime,JCB[i].runTime); //输出到屏幕i++;}fclose(fp); //关闭文件}m=i-1;return m;}//菜单void menu(){printf("\n\n |*************** 作业调度*************|\n");printf("|======================================|\n");printf(" | 0.退出|\n");printf(" | 1.先来先服务 (FCFS) 调度算法|\n");printf(" | 2.短作业优先 (SJF) 调度算法|\n");printf(" | 3.响应比高者优先 (HRRN) 调度算法 |\n");printf("|======================================|\n");}void displayone(float p,char *h,int i,int j){strcpy(h,JCB[i].name);strcpy(JCB[i].name,JCB[j].name);strcpy(JCB[j].name,h);p=JCB[i].arrtime;JCB[i].arrtime=JCB[j].arrtime;JCB[j].arrtime=p;p=JCB[i].runTime;JCB[i].runTime=JCB[j].runTime;JCB[j].runTime=p;p=JCB[i].startTime;JCB[i].startTime=JCB[j].startTime;JCB[j].startTime=p;p=JCB[i].finishTime;JCB[i].finishTime=JCB[j].finishTime;JCB[j].finishTime=p;}void displaytow(int i,int y){printf("\n");printf("作业%s先开始运行\n\n",JCB[0].name);float AvgCycleTime,AvgValueCycleTime,k=0,m=0;//AvgCycleTime为平均周转时间,AvgValueCycleTime为平均带权周转时间for(i=0;i<y;i++){JCB[0].startTime=JCB[0].arrtime;JCB[i].finishTime=JCB[i].startTime+JCB[i].runTime;//结束时间JCB[i+1].startTime=JCB[i].finishTime;JCB[i].waitTime=JCB[i].startTime-JCB[i].arrtime;//等待时间JCB[i].TAtime=JCB[i].finishTime-JCB[i].arrtime;//周转时间 JCB[i].TAWtimei=JCB[i].TAtime/JCB[i].runTime;//带权周转时间k+=JCB[i].TAtime;m+=JCB[i].TAWtimei;}AvgCycleTime=k/y;//平均旋转时间AvgValueCycleTime=m/y;//平均带权旋转时间printf("作业名提交时间开始时间运行时间结束时间等待时间周转时间带权周转时间\n");for(i=0;i<y;i++)printf("%s\t%.2f\t%.2f\t%4.2f\t%6.2f\t%7.2f\t%7.2f\t%8.2f\n\n",JCB[i] .name,JCB[i].arrtime,JCB[i].startTime,JCB[i].runTime,JCB[i].finishTim e,JCB[i].waitTime,JCB[i].TAtime,JCB[i].TAWtimei);printf("平均周转时间为:");printf("%.2f\n\n",AvgCycleTime);printf("平均带权周转时间为:");printf("%.2f\n\n",AvgValueCycleTime);}void FCFS(int y)//先来先服务算法{float p;int i,j;char h[100];for(i=0;i<y;i++){for(j=i+1;j<y;j++){if(JCB[i].arrtime>JCB[j].arrtime){displayone(p,h,i,j);}}}displaytow(i,y);}void SJF(int y)//短作业优先算法{float p;int i,j;char h[100];for(i=0;i<y;i++)//先提交的作业先运行,后面来的作业再比较运行时间长短{for(j=i+1;j<y;j++){if(JCB[i].arrtime>JCB[j].arrtime)//先把作业按提交时间来排序{displayone(p,h,i,j);}}}for(i=1;i<y;i++){for(j=i+1;j<y;j++){if(JCB[i].runTime>JCB[j].runTime)//比较后面来的作业的运行时间{displayone(p,h,i,j);}}}displaytow(i,y);}void HRRN(int y)//响应比高者优先算法{int i,j;float p;char h[100];for(i=0;i<y;i++)//先提交的作业先运行,后面来的作业再比较响应比的大小{for(j=i+1;j<y;j++){if(JCB[i].arrtime>JCB[j].arrtime)//先把作业按提交时间来排序{displayone(p,h,i,j);}}}for(i=0;i<y;i++){JCB[0].startTime=JCB[0].arrtime;JCB[i].finishTime=JCB[i].startTime+JCB[i].runTime;//结束时间JCB[i+1].startTime=JCB[i].finishTime;JCB[i].waitTime=JCB[i].startTime-JCB[i].arrtime;//等待时间JCB[i].TAtime=JCB[i].finishTime-JCB[i].arrtime;//周转时间 JCB[i].bi=JCB[i].TAtime/JCB[i].runTime;//响应比}for(i=1;i<y;i++){for(j=i+1;j<y;j++){if(JCB[i].bi<JCB[j].bi)//比较后面来的作业的响应比{displayone(p,h,i,j);p=JCB[i].bi;JCB[i].bi=JCB[j].bi;JCB[j].bi=p;}}}displaytow(i,y);for(i=1;i<y;i++){printf("%s的响应比为:%.2f\n",JCB[i].name,JCB[i].bi);}}int main(){while(1){int i,x,n;menu();loop1:printf("请选择模块(0~3): ");scanf("%d",&i);if(i==0){exit(0);}elseif(i<=0||i>3){printf("输入有误,请重新输入\n");goto loop1;//无条件转移语句}loop2:printf("原始数据是:\n");n=ReadFile();for(x=0;x<n;x++){printf("\n%s%15f%12f",JCB[i].name,JCB[i].arrtime,JCB[i].runTime);}switch(i){case 0:exit(0);break;case 1:FCFS(n);break;case 2:SJF(n);break;case 3:HRRN(n);break;}}}实验截图说明如下:这是先来先服务算法调度这是最短优先作业调度算法结果这是响应比高者优先调度算法结果2、编写并调度一个多道程序系统的作业调度模拟程序。

【VIP专享】《操作系统》复习题(2013.12.24,题上有答案)

【VIP专享】《操作系统》复习题(2013.12.24,题上有答案)
4、进程互斥是进程同步的一种特殊情况。√
5、在处理死锁的 4 种方法中,预防策略是不允许死锁出现的,而其他 3 种方法都是允许的。为预防死锁,系统必须 使至少产生死锁的 4 个必要条件之一不成立,例如银行家算法就是预防死锁最具代表性的一个算法。
6、若系统内只有一个进程,则不会产生死锁现象。√
7.作业是指计算机CPU 在某段时间内所运行的一组指令。 8.多道程序执行环境意味着有多个不同的操作系统同时管理计算机。 9.存储在外存中的代码称为程序,而存储在内存中的代码称为进程。
15. 下面所列的进程的 3 种基本状态之间的转换不正确的是____________。
A、就绪状态→执行状态 B、执行状态→就绪状态 C、执行状态→阻塞状态 D、就绪状态→阻塞状态
6.培养学生观察、思考、对比及分析综合的能力。过程与方法1.通过观察蚯蚓教的学实难验点,线培形养动观物察和能环力节和动实物验的能主力要;特2征.通。过教对学观方察法到与的教现学象手分段析观与察讨法论、,实对验线法形、动分物组和讨环论节法动教特学征准的备概多括媒,体继课续件培、养活分蚯析蚓、、归硬纳纸、板综、合平的面思玻维璃能、力镊。子情、感烧态杯度、价水值教观1和.通过学理解的蛔1虫.过观适1、察于程3观阅 六蛔寄.内列察读 、虫生出蚯材 让标容生常3根蚓料 学本教活.见了 据身: 生,师的2的、解 问体巩鸟 总看活形线作 用蛔 题的固类 结雌动态形业 手虫 自形练与 本雄学、三动: 摸对 学状习人 节蛔生结、4物、收 一人 后和同类 课虫活构请一并蚯集 摸体 回颜步关 重的动、学、归蚓鸟 蚯的 答色学系 点形教生生让纳在类 蚓危 问。习从 并状学理列学线平的害 题蚯四线人 归、意特出四生形面生 体以蚓、形类 纳大图点常、五观动玻存 表及的鸟请动文 本小引以见引、察物璃现 ,预身类 3学物明 节有言及的导 、巩蚯的上状 是防体之生和历 课什根蚯环学 怎固蚓主和, 干感是所列环史 学么据蚓节二生 样练引要牛鸟 燥染否以举节揭 到不上适动、回 区习导特皮类 还的分分蚯动晓 的同节于物让答 分。学征纸减 是方节布蚓物起 一,课穴并学课 蚯生。上少 湿法?广的教, 些体所居归在生前 蚓回4运的 润;泛益学鸟色生纳.靠物完问 的答蛔动原 的4,处目类 习和活环.近在成题 前蚯虫的因 ?了以。标就 生体的节身其实并 端蚓寄快及 触解上知同 物表内特动体结验总 和的生利慢我 摸蚯适识人 学有容点物前构并结 后生在用一国 蚯蚓于与类 的什,的端中思线 端活人问样的 蚓飞技有 基么引进主的的考形 ?环体题吗十生行能着 本特出要几变以动境,?大 节活的1密 方征本“特节化下物.并会让为珍 近习形理切 法。课生征有以问的引小学什稀 腹性态解的 。2课物。什游题主.出起结生么鸟 面和结蛔关观题体么戏:要蚯哪利明?类 处适构虫系察:的特的特蚓些用确等 ,于特适。蛔章形殊形征这疾板,资 是穴点于可虫我态结式。种病书生料 光居是寄的们结构,五典?小物, 滑生重生鸟内学构,学、型5结的以 还活要生类部习与.其习巩的如鸟结爱 是的原活生结了功颜消固线何类构鸟 粗形因的存构腔能色化练形预适特护 糙态之结的,肠相是系习动防于点鸟 ?、一构现你动适否统。物蛔飞都为结。和状认物应与的。虫行是主构课生却为和”其结病的与题、本理不蛔扁的他构?特环以生8特乐虫形观部特8三征境小理页点观的动位点、梳相组等这;,哪物教相,引理适为方些2鸟,育同师.导知应单面鸟掌类结了;?生学识的位你握日构解2互.生。办特认线益特了通动观手征识形减点它过,察抄;吗动少是们理生蛔报5?物,与的解.参虫一了它和有寄主蛔与结份解们环些生要虫其构。蚯都节已生特对中。爱蚓会动经活征人培鸟与飞物灭相。类养护人吗的绝适这造兴鸟类?主或应节成趣的为要濒的课情关什特临?就危感系么征灭来害教;?;绝学,育,习使。我比学们它生可们理以更解做高养些等成什的良么两好。类卫动生物习。惯根的据重学要生意回义答;的3.情通况过,了给解出蚯课蚓课与题人。类回的答关:系线,形进动行物生和命环科节学动价环值节观动的物教一育、。根教据学蛔重虫点病1.引蛔出虫蛔适虫于这寄种生典生型活的线结形构动和物生。理二特、点设;置2.问蚯题蚓让的学生生活思习考性预和习适。于穴居生活的形态、结构、生理等方面的特征;3.线形动物和环节动物的主要特征。

操作系统作业调度实验报告 多道批处理

操作系统作业调度实验报告 多道批处理

计算机学院计算机科学与技术专业07班姓名 ___ 学号—教师评定_____________________实验题目 __________________ 作业调度______________________一、实验目的本实验要求学生模拟作业调度的实现,用高级语言编写和调试一个或多个作业调度的模拟程序,了解作业调度在操作系统中的作用,以加深对作业调度算法的理解。

二、实验内容和要求1、为单道批处理系统设计一个作业调度程序(1) 、编写并调试一个单道处理系统的作业调度模拟程序。

(2) 、作业调度算法:分别采用先来先服务( FCFS),最短作业优先(SJF)的调度算法。

(3) 、由于在单道批处理系统中,作业一投入运行,它就占有计算机的一切资源直到作业完成为止,因此调度作业时不必考虑它所需要的资源是否得到满足,它所占用的CPU时限等因素。

(4) 、每个作业由一个作业控制块JCB表示,JCB可以包含如下信息:作业名、提交时间、所需的运行时间、所需的资源、作业状态、链指针等等。

作业的状态可以是等待W(Wait)、运行R(Run)和完成F(Finish)三种状态之一。

每个作业的最初状态总是等待W。

(5) 、对每种调度算法都要求打印每个作业开始运行时刻、完成时刻、周转时间、带权周转时间,以及这组作业的平均周转时间及带权平均周转时间,并比较各种算法的优缺点。

2、模拟批处理多道操作系统的作业调度(1)写并调试一个作业调度模拟程序。

(2)作业调度算法:分别采用先来服务( FCFS)调度算法。

(3 )在批处理系统中,要假定系统中具有的各种资源及数量、调度作业时必须考虑到每个作业的资源要求,所需要的资源是否得到满足。

作业调度程序负责从输入井选择若干个作业进入主存,为它们分配必要的资源,当它们能够被进程调度选中时,就可占用处理机运行。

作业调度选择一个作业的必要条件是系统中现有的尚未分配的资源可满足该作业的资源要求。

但有时系统中现有的尚未分配的资源既可满足某个作业的要求也可满足其它一些作业要求,那么,作业调度必须按一定的算法在这些作业中作出选择。

2022年西安工业大学计算机科学与技术专业《操作系统》科目期末试卷B(有答案)

2022年西安工业大学计算机科学与技术专业《操作系统》科目期末试卷B(有答案)

2022年西安工业大学计算机科学与技术专业《操作系统》科目期末试卷B(有答案)一、选择题1、通常对文件系统来说,文件名及属性可以集中在()中以使查询。

A.目录B.索引C.字典D.作业控制块2、下列选项中,不能改善磁盘设备I/O性能的是()。

A.重排I/O请求次序B.在一个磁盘上设置多个分区C.预读和滞后写D.优化文件物理的分布3、关于临界问题的一个算法(假设只有进程P0和P1,能会进入临界区)如下(i为0或1代表进程P0或者P1):Repeatretry:if(turn!=-1)turn=i;if(turn!=i)go to retry;turn=-1;临界区:turn=0;其他区域;until false;该算法()。

A.不能保持进程互斥进入临界区,且会出现“饥饿”B.不能保持进程互斥进入临界区,但不会出现“饥饿”C.保证进程互斥进入临界区,但会出现“饥饿”D.保证进程互斥进入临界区,不会出现“饥饿”4、下面有关选择进程调度算法的准则,错误的是()A.尽量提高处理器利用率B.尽可能提高系统吞吐量C.适当增长进程在就绪队列中的等待时间D.尽快响应交互式用户的要求5、下列关于银行家算法的叙述中,正确的是()A.银行家算法可以预防死锁B.当系统处于安全状态时,系统中…定无死锁进程C.当系统处于不安全状态时,系统中一定会出现死锁进程D.银行家算法破坏了产生死锁的必要条件中的“请求和保持”条件6、()存储管理方式提供一维地址结构。

A.分段B.分页C.分段和段页式D.以上都不对7、在请求分页系统中,页面分配策略与页面置换策略不能组合使用的是()。

A.可变分配,全局置换B.可变分配,局部置换C.固定分配,全局置换D.固定分配,局部置换8、下列选项中,不是操作系统关心的主要问题的是()。

A.管理计算机裸机B.设计、提供用户程序与计算机及计算机硬件系统的接口C.管理计算机中的信息资源D.高级程序设计语言的编译9、下列关于批处理系统的叙述中,正确的是()I.批处理系统允许多个用户与计算机直接交互II.批处理系统分为单道批处理系统和多道批处理系统III.中断技术使得多道批处理系统的1/O设备可与CPU并行工作A.仅II、IIIB.仅IIC.仅I、IID. 仅I、III10、在某页式存储管理系统中,页表内容见表。

操作系统第2阶段试题

操作系统第2阶段试题

操作系统第2阶段试题操作系统第2阶段试题————————————————————————————————作者:————————————————————————————————日期:21江南大学现代远程教育第二阶段练习题考试科目:《操作系统》第5章至第7章(总分100分)______________学习中心(教学点)批次:层次:专业:学号:身份证号:姓名:得分:一、名词解释(12分)1、死锁2、逻辑地址3、物理地址4、地址重定位二、试举例说明死锁?(6分)三、采用静态资源分配预防死锁时,有哪些缺点?(6分)四、有序资源分配法破坏的是产生死锁必要条件中的什么条件?(5分)五、作业调度和进程调度的任务各是什么?(6分)六、进程调度的时机有哪几种?(5分)七、为什么要进行逻辑地址到物理地址的转换?(6分)八、某系统的进程状态变迁图如图所示(该系统的进程调度方式为非剥夺方式),请说明:(20分)(1)一个进程发生变迁3的原因是什么?发生变迁2、变迁4的原因又是什么?(2)下述因果变迁是否会发生,如果有可能的话,在什么情况下发生?(3)(a )2→1;(b )3→2;(c )4→5;(d )4→2;(e )3→5 (4)根据此状态变迁图叙述该系统的调度策略、调度效果。

九、在单道批处理系统中,有下列三个作业用先来先服务调度算法和最短作业优先调度算法运行高优先就绪因I/O 而等待低优先就绪213452进行调度,哪一种算法调度性能好些?请完成下表中未填写的各项。

(8分)十、分区分配方法中的主要缺点是什么?如何克服这一缺点?(6分)十一、如图,主存中有两个空白区,现有这样一个作业序列:作业1 要求50KB 作业2 要求60KB 作业3 要求70KB若用首次适应算法和最佳适应算法来处理这个作业序列,试问哪一种算法可以分配得下,为什么?(10分)十二、选择填空题(10分)1、死锁的四个必要条件是__________、不剥夺条件、__________和环路条件。

操作系统 批处理系统作业调度实验报告

操作系统 批处理系统作业调度实验报告

操作系统批处理系统作业调度实验报告批处理系统的作业调度实验报告年级 2009级学号 2009443004 姓名郭占强成绩专业生物信息学实验地点生科楼409 指导教师王硕实验项目批处理系统的作业调度实验日期 2011年11月18日一、实验目的加深对作业概念的理解;深入了解批处理系统如何组织作业、管理作业和调度作业。

二、实验要求编写程序完成批处理系统中的作业调度,要求采用响应比高者优先的作业调度算法。

实验具体包括:首先确定作业控制块的内容,作业控制块的组成方式;然后完成作业调度;最后编写主函数对所作工作进程测试。

三、实验原理:操作系统根据允许并行工作的道数和一定的算法从系统中选取若干作业把它们装入主存储器,使它们有机会获得处理器运行。

四、实验程序设计#include "string.h"#include<iostream.h>#include<stdio.h>#define n 10 /*假定系统中可容纳的作业数量为n*/typedef struct jcb{char name[4]; /*作业名*/int length; /*作业长度,所需主存大小*/int printer; /*作业执行所需打印机的数量*/int tape; /*作业执行所需磁带机的数量*/int runtime; /*作业估计执行时间*/int waittime; /*作业在系统中的等待时间*/int next; /*指向下一个作业控制块的指针*/}JCB; /*作业控制块类型定义*/int head; /*作业队列头指针定义*/int tape,printer;long memory;JCB jobtable[n]; /*作业表*/int jobcount=0; /*系统内现有作业数量*/shedule( )- 1 -/*作业调度函数*/{float xk,k;int p,q,s,t;do{p=head;q=s=-1;k=0;while(p!=-1){ if(jobtable[p].length<=memory&&jobtable[p].tape<=tape&&jobtable[p] .printer<=printer){ /*系统可用资源是否满足作业需求*/xk=(float)(jobtable[p].waittime)/jobtable[p].runtime;if(q==0||xk>k) /*满足条件的第一个作业或者作业q的响应比小于作业p的响应比*/{k=xk; /*记录响应比*/q=p;t=s;}/*if*/}/*if*/s=p;p=jobtable[p].next; /*指针p后移*/}/*while*/if(q!=-1){ if(t==-1) /*是作业队列的第一个*/head=jobtable[head].next;elsejobtable[t].next=jobtable[q].next;/*为作业q分配资源:分配主存空间;分配磁带机;分配打印机*/memory=memory-jobtable[q].length;tape=tape-jobtable[q].tape;printer=printer-jobtable[q].printer;printf("选中作业的作业名:%s\n",jobtable[q].name);}}while(q!=-1);}/*作业调度函数结束*/main( ){char name[4];int size,tcount,pcount,wtime,rtime;int p;/*系统数据初始化*/memory=65536;tape=4;printer=2;head=-1;printf("输入作业相关数据(以作业大小为负数停止输入):\n");/*输入数据,建立作业队列*/- 2 -printf("输入作业名、作业大小、磁带机数、打印机数、等待时间、估计执行时间\n");scanf("%s%d%d %d %d %d",name,&size,&tcount,&pcount,&wtime,&rtime);while(size!=-1){/*创建JCB*/if(jobcount<n)p=jobcount;else { printf("无法再创建作业\n");break;}jobcount++;/*填写该作业相关内容*/strcpy(jobtable[p].name,name);jobtable[p].length=size;jobtable[p].printer=pcount;jobtable[p].tape=tcount;jobtable[p].runtime=rtime;jobtable[p].waittime=wtime;/*挂入作业队列队首*/jobtable[p].next=head;head=p;/* 输入一个作业数据*/printf("输入作业名、作业大小、磁带机数、打印机数、等待时间、估计执行时间\n");scanf("%s%d%d%d%d%d",name,&size,&tcount,&pcount,&wtime,&rtime);}/*while*/shedule( ); /*进行作业调度*/}/*main( )函数结束*/五、实验结果与分析1. 本程序采用响应比高者优先算法进行作业调度。

(1)先来先服务(FCFS)调度算法.ppt

(1)先来先服务(FCFS)调度算法.ppt
1)静态优先数
静态优先数是在系统创建时确定的,一经确定之后在整 个进程运行期间不再改变,确定静态优先数的有关静特性 是:在有的系统中,分配给作业的优先数还取决于它所占用的内存
的多少,作业越大,占用内存越多,分配给它的优先数越低。显然, 不论是根据作业的执行时间,还是根据作业的大小所确定的优先数, 都有利于短作业。
由于R与要求运行时间成反比,故对短作业是有 利的,另一方面,因R与等待时间成正比,故长 作业随着其等待时间的增长,也可获的较高的 相应比。这就克服了短作业优先数法的缺点, 既照顾了先来者,又优待了短作业,是上述两 种算法的一种较好的折中。
(3)最高响应比作业优先算法(HRN)
作业 进入时刻 运行时间 开始时刻 完成时刻 周转时间 带权周转
A
8:06
42
15
B
8:18
30
60
C
8:30
24
50
D
8:36
24
10
E
8:42
12
20
有用户空间100KB,并规定作业相应程序装入内存 连续区域,并不能被移动,作业与进程均采用 FCFS算法
作业名 进入时间 运行时间(分) 需内存量KB
A
8:06
42
15
B
8:18
30
60
C
8:30
24
50
D
8:36
A
8:06
42
15
B
8:18
30
60
15K
C8:3024 Nhomakorabea50
D
8:36
24
E
8:42
12
10
60K
20

操作系统第二章答案

操作系统第二章答案

第二章一、问答题1、配置在终端上的终端处理程序主要用于实现人机交互,应具有哪些功能?2、什么是系统调用?系统调用与一般过程调用的区别是什么?3、有I/O频繁、I/O与计算机均衡和计算量大的三个作业,它们同时进入主存并行工作,请给每个作业赋于运行优先数,并说明理由。

4、脱机命令接口和联机命令接口有什么不同?5、简述作业的状态有哪些?作业调度是把什么状态的作业调入到内存?6系统调用的执行过程大体上分成哪三步?7、命令解释程序有哪两种处理方法?8、解释作业和作业调度,作业调度选择作业的必要条件是什么?9、操作系统提供哪些便于用户控制交互式作业的使用接口?10、一个具有分时兼批处理功能的操作系统应怎样调度和管理作业?为什么?二、计算题和证明1、某系统采用不能移动已在主存储器中作业的可变分区方式管理主存储器,现有供用户使用的主存空间100K,系统配有4台磁带机,有一批作业见表。

表该系统采用多道程序设计技术,对磁带机采用静态分配,忽略设备工作时间和系统进行调度所花的时间,请分别写出采用优先数算法(数字越小优先级别越高)响应比高者优先算法、短作业优先算法、先来先服务算法选中作业执行的次序。

1, 2, 4, 5, 32、试证明短作业优先调度算法能达到最短平均周转时间。

证明:假定t个作业的执行时间分别是t1, t2, t3, ....,t n,则总的周转时间为T=t l+(t l+t2) ------ (t l+t2 ---------- t n) (t1<t2<t3v....vt n)=n t1+( n-1)t2+....+t n即t l, t l,…….,t l,坛….…,t2, t3,.……,t3,坛.……,t n-1, t n-1, t n之和,此序列表示为X X1 , X2, X3, .. , X n(n+1)/2,若任意其他执行序列,则其周转时间为S=S1 +(S1 +S2)+ …+(S 1+S2+ …+S n)即S1, .........S1, .................. , S, S2, ....... , S2, .......... S3, , S3, S2, , S n-1, S n-1, S n 之和,将此序歹U按照数大小进行排列,得到序列丫表示为y1, y2,y3,……,y n(n+1)/2,因为t1vt2vt3v....vtn,所以在序列X和丫的前n项肯定满足X i <y i,因为丫序列中最短的时间值(等于b的值)不会多于n个,所以从第n+1项开始其值必大于等于t2,因此在序列X和丫的前n+1, 2n-1项肯定满足X i <y i,因为丫序列中最短的时间值和次短值(等于t1或t2的值)不会多于2n-1个,所以从第2n 项开始其值必大于等于t3,因此在序列X和丫的前2n,3n-3项肯定满足X i < y i, 依次类推得到,每项都满足X i < y i, i=1 , 2, 3,…,n(n+1)/2因此短作业优先调度算法平均周转时间最短3、有一个多道程序设计系统,采用不允许移动的可变分区方式管理主存中的用户空间,设用户空间为100K,主存空间的分配算法为最先适应分配算法,进程假定所有作业都是计算型作业且忽略系统调度时间,请写出采用"计算时间短的作业优先算法"时作业的装入主存时间、开始执行时间、完成时间、周转时间以及它们的平均周转时间。

模拟批处理多道操作系统的作业调度

模拟批处理多道操作系统的作业调度

石家庄经济学院实验报告(学院)系: 信息工程学院专业: 网络工程**: ***班级: 网络2班学号: ****************: ***日期:2010 年 1月 22 日printf("第%d个作业:状态:",i+1);scanf("%s",&w[i].state);printf("第%d个作业:主存:",i+1);scanf("%d",&w[i].store);printf("第%d个作业:磁带:",i+1);scanf("%d",&w[i].tape);}2、算法设计:(1)算法选择函数:int choice()函数功能:根据要求选择FCFS或SFJ。

入口参数:c出口参数:i流程图见图1图1 作业调度算法选择流程图(2)先来先服务函数(FCFS):int FCFS()函数功能:FCFS的运算过程入口参数:F出口参数:j或-1流程图见图2所示:图2 先进先出算法流程图(3)短作业优先服务函数(SFJ):int SFJ()函数功能:SFJ的运算过程入口参数:S出口参数:j或-1流程图见图3所示:图3 短作业优先算法流程图(4)随机数算法操作函数功能:输入随机数模拟处理器调度入口参数:time_t和k出口参数:p和q流程图:无(5)撤离作业算法操作函数功能:主存中的作业按运行的时间来决定撤离的先后次序入口参数:h 和l出口参数:H和L流程图见图4所示:图4 撤离作业算法流程图(6)主功能函数:void Administer()函数功能:实现函数要求。

入口参数:无出口参数:无流程图见图5所示:图5 主功能算法流程图2.随机函数不大于0.5,转入主存3.随机数大于0.5,查看主存,并按先进先出算法调度4. .随机数大于0.5,查看主存,并按短作业优先服务算法调度5.显示五个作业的信息状态6. .随机函数不大于0.5,转入主存,并根据已在主存中的作业需运行的时间来决定撤离的先后次序7. 显示五个作业的信息状态六.设计总结通过此次实验不仅巩固了作业调度还把处理器调度算法进一步熟练运用了。

批处理系统的作业调度java

批处理系统的作业调度java

实验批处理系统的作业调度一、实验目的(1)加深对作业概念的理解;(2)深入了解批处理系统如何组织作业、管理作业和调度作业。

二、预备知识(1).三、实验内容编写程序完成批处理系统中的作业调度,要求采用响应比高者优先的作业调度算法。

实验具体包括:首先确定作业块的内容和组成方式;然后完成作业调度;最后编写主函数,对所做工作进行测试。

import java.util.Scanner;public class JCB {public String name; //作业名public int length; //作业长度public int print; //打印机数量public int tape; //磁带机数量public int runTime;public int waitTime;public int next; //指针}class Action{public final int n=10; //后备队列中JCB的最大数量JCB[] jTable=new JCB[n]; //作业表public int jCount; //作业表中当前作业数量public int head; //作业表头指针//初始化函数public void Init(){head=-1;jCount=0;}//入队函数public void pushQueue(JCB jcb){if(jCount>=n){System.out.println("队列已满!不能再加入!");return ;}if(head==-1)head=0;// System.out.println(jTable[jCount]);jTable[jCount]=new JCB();jTable[jCount].length=jcb.length;jTable[jCount].name=;jTable[jCount].print=jcb.print;jTable[jCount].tape=jcb.tape;jTable[jCount].runTime=jcb.runTime;jTable[jCount].waitTime=jcb.waitTime;jTable[jCount].next=-1;jCount++;}//出队函数public void popQueue(int num){if(jCount==0){System.out.println("空的队列!不能出队!");return ;}if(num>=jCount){System.out.println("队列中不存在该元素!");return ;}if(jCount==1){head=-1;jTable[0].next=-1;jCount=0;}else{jTable[num-1].next=jTable[num].next;jTable[num].next=-1;jCount--;}}public int memory=64*1024; //主存大小64MBpublic int tape=4; //磁带机数量public int print=2; //打印机数量//作业调度函数public void dispatch(){int currJcb,maxJcb;double currJcbRate,maxJcbRate;while(head!=-1){currJcb=maxJcb=head;currJcbRate=maxJcbRate=0;//找出响应比最大的作业while(true){//找出满足资源的作业if(jTable[currJcb].length<=memory&&jTable[currJcb].tape<=tape&&jTable [currJcb].print<=print){//计算响应比currJcbRate=(double)jTable[currJcb].waitTime/jTable[currJcb].runTime;if(currJcbRate>maxJcbRate){maxJcbRate=currJcbRate;maxJcb=currJcb;}}if(jTable[currJcb].next==-1){break;}else{currJcb=jTable[currJcb].next;}}//输出响应比最大的作业、分配资源if(maxJcbRate!=0){memory-=jTable[maxJcb].length;tape-=jTable[maxJcb].tape;tape-=jTable[maxJcb].print;System.out.println("选中的作业的作业名为:"+jTable[maxJcb].name);popQueue(maxJcb);}}}public static void main(String[] args) {String name;int length;int print;int tape;int runTime;int waitTime;int count; //记录输入作业数量JCB jcb =new JCB(); //临时作业变量System.out.println("请输入作业相关信息,以作业名为Q为输入结束。

操作系统选综合练习

操作系统选综合练习

第一章作业一、计算题内存中有三个作业按照A---B---C的优先级次序执行,CPU计算和外设操作如下表所示:请给出多道程序运行的时间关系图,完成这三个程序共用去多少时间?分单通道和双通道讨论?比单道方式节约多少时间?(MS)二、简述题1、什么是操作系统?2、操作系统有哪些特征?3、如何理解操作系统的不确定性?4、操作系统有哪些分类?5、如何理解多道并发?6请简述操作系统的引导过程7、云操作系统如何理解?8、什么是多核计算机,什么是网络操作系统?第二章作业一、基本理论题1、进程,线程,管程之间的区别与联系?2、什么是原语?3、什么是进程调度?4、内核功能有哪些?5、信号量怎么理解?6、举例说明死锁?7、系统调用怎么理解?8、临界区,临界资源?9、进程创建的步骤?10、进程状态切换的原因有哪些?11、什么是挂起?12、如何理解多核与多线程?13、互斥与同步?14、死锁产生的原因与条件?15、什么是死锁定理?16、如何理解银行家算法?17、高级调度,中级调度,低级调度如何理解?18 、CPU 的核心态如何理解?二、算法题1、分析生产者与消费者模型中的互斥与同步关系,设计恰当的信号量,给出P-v 代码的实现2、设计恰当的信号量实现读者---写者模型中的互斥与同步,要求分别给出读优先,写优先,读写公平的代码设计3、哲学家进餐模型的互斥如何实现,请用两种不同的算法实现,分别给出代码设计4、桌子上有一只盘子最多可容纳两个水果每次只能放入或取出一个水果。

爸爸专向盘子中放苹果apple 妈妈专向盘子中放橘子orange两个儿子专等吃盘子中的橘子两个女儿专等吃盘子中苹果。

请用P, V操作来实现爸爸、妈妈、儿子、女儿之间的同步与互斥关系。

5、三个进程共用两个缓冲区S和T, GET负责送数据到S, COPY负责从S中复制数据,把复制好的数据送入到T中,PUT负责把T中的数据打印,要求S 和T 反复循环使用,请给出正确的P---v 代码设计三、计算题1、P 和Q 两个进程优先级相同,信号量S1=S2=0 并发执行后的X=? Y=? Z=?VOID P(VOID ) { Y=1;Y=9;Y+=3;V(S1); Z=Y+1;P(S2);Y+=Z;}VOID Q( VOID) { X=1;Y=8;Y+=5;P(S1);X+=Y;V(S2);Z+=X;}2、有三种类型的资源,5个进程,A资源的数量17, B的数量5个,C的数量20个, 在T 时刻系统状态如下所示:1、T时刻是否安全,若是给出安全序列2、T时刻P2请求(0,3,4)能否分配为什么?3、在(2)的基础上P4请求(2,0,1)能否分配为什么?4、在(3)的基础上P1请求(0,2,0)能否分配为什么?3、某系统有R1, R2, R3共三种资源,T0时刻P1, P2, P3, P4四个进程对资源的占用和需求情况如下所示:系统的可用资源(2,1,2)1、用向量或矩阵表达系统中各种资源总数和此时各个进程对资源的需求数量如果此时P1和P2都发出REQUEST(1,0,为了保证系统的安全性应该如何分配资源给这两个进程,说明原因2、如果(2)中两个请求立即得到满足后,系统此时是否处于死锁状态。

批处理系统的作业调度

批处理系统的作业调度

批处理系统的作业调度一、实验目的1.加深对作业概念的理解。

2.深入了解批处理系统如何组织作业、管理作业和调度作业。

二、实验预备知识1.作业的概念。

2.作业的创建。

3.作业的调度。

三、实验内容编写程序完成批处理系统中的作业调度,要求采用响应比高者优先的作业调度算法。

实验具体包括:首先确定作业控制块的内容,作业控制块的组成方式;然后完成作业调度;最后编写主函数对所做工作进行测试。

四、提示与讲解操作系统根据允许并行工作的道数和一定的算法从系统中选取若干作业把它们装入主存储器,使它们有机会获得处理器运行,这项工作被称为“作业调度”。

实现这部分功能的程序就是“作业调度程序”。

作业调度的实现主要有两个问题,一个是如何将系统中的作业组织起来;另一个是如何进行作业调度。

为了将系统中的作业组织起来,需要为每个进入系统的作业建立档案以记录和作业相关的信息,例如作业名、作业所需资源、作业执行时间、作业进入系统的时间、作业信息存储器中的位置、指向下一个作业控制块的指针等信息。

这个记录作业相关信息的数据块称为作业控制块(JCB),并将系统中等待作业调度的作业控制块组织成一个队列,这个队列称为后备队列。

一个作业全部信息进入系统后,就为其建立作业控制块,并挂入后备队列。

当进行作业调度时,从后备队列中查找选择作业。

由于实验中没有实际作业,作业控制块中的信息内容只使用了实验中需要的数据。

作业控制块中首先应该包括作业名;其次是作业所需资源,根据需要,实验中只包括需要主存的大小(采用可移动的动态分区方式管理主存,作业大小就是需要主存的大小)、需要打印机的数量和需要磁带机的数量;采用响应比作业调度算法,为了计算响应比,还需要有作业的估计执行时间、作业在系统中的等待时间;另外,指向下一个作业控制块的指针必不可少。

实验中,作业控制块及队列的数据结构定义如下:typedef struct jcb {char name[4]; //作业名int length; //作业长度,所需主存大小int printer; //作业执行所需打印机的数量int tape; //作业所需磁带机的数量int runtime; //作业估计执行时间int waittime; 作业在系统中的等待时间int next; //指向下一个作业控制块的指针}JCB //作业控制块类型定义存放作业控制块的区域:define n 10 //假定系统中可容纳的作业数量为nJCB jobtable[10]; //作业表int jobcount ; //系统内现有作业数量将作业控制块组织成一个队列,实验中采用静态链表的方式模拟作业的后备队列,如下图所示。

操作系统实验报告-批处理系统的作业调度

操作系统实验报告-批处理系统的作业调度
#include
#include
#include
#include
#include
#include
typedefcharstring[10];/*//定义string为含有10个字符元素的字符数组类型*/
structtask{
stringname;/*作业号*/
intarrtime;/*作业抵达时间*/
操作系统实验报告-批处理系统的作业调度
实验一批处理系统的作业调度
(1)加深对作业概念的理解。
(2)深入细致介绍批处理系统如何非政府作业、管理作业和调度作业。
编写程序完成批处理系统的作业调度,要求采用响应比优先调度算法。
最低积极响应比优先法(hrrn)就是对fcfs方式和sjf方式的一种综合均衡。hrrn调度策略同时考量每个作业的等待时间长短和估算须要的继续执行时间长短,从中挑选出积极响应比最低的作业资金投入继续执行。
printf("%9s%9d%9d%9d%9d%9d%9d\n",
jcb[i].name,jcb[i].arrtime,jcb[i].sertime,
jcb[i].begtime,jcb[i].fintime,jcb[i].turtime,jcb[i].wtutime);
voidcheck()
intstatime,endtime,sumturtime=0.0,sumwtutime=0.0,aveturtime,avewtutime;intcurrent=0,times=0,pre=0;
printf("-------------------------------------------------------------------------\n");

单道批处理系统和多道批处理系统

单道批处理系统和多道批处理系统

单道批处理系统和多道批处理系统单道批处理系统1.单道批处理系统单道批bai处理系统的⼯作原理:内存中du只允许存放⼀个作业,当前正在运zhi⾏的作业驻留内存,执⾏顺dao序是先进先出.在单道批处理系统中,⼀个作业单独进⼊内存并独占系统资源,直到运⾏结束后下⼀个作业才能进⼊内存,当进⾏I操作时,CPU处等待状态。

其⽬的是减少作业间转换时的⼈⼯操作,从⽽减少CPU的等待时间。

它的特征是内存中只允许存放⼀个作业,即当前正在运⾏的作业才能驻留内存,作业的执⾏顺序是先进先出,即按顺序执⾏。

2.单道批处理系统的缺点单道批处理系统最主要的缺点是,系统中的资源得不到充分的利⽤。

这是因为在内存中仅有⼀道程序,每逢该程序在运⾏中发出I/O请求后,CPU便处于等待状态,必须在其I/O完成后才继续运⾏。

⼜因I/O设备的低速性,更使CPU的利⽤率显著降低。

多道批处理系统1.多道程序设计的基本概念引⼊⽬的:单道批处理系统中,任意时刻只允许⼀道作业在内存中运⾏,资源利⽤率低,为了提⾼系统资源利⽤率和系统吞吐量,引⼊了多道程序设计技术。

多道:允许多个程序同时存在于主存中,按照某种原则分派处理机,逐个执⾏这些程序。

2.多道批处理系统的特征多道性⽆序性调度性作业调度进程调度3.多道批处理系统的优缺点资源利⽤率⾼系统吞吐量⼤平均周转时间长⽆交互能⼒适合⼤型科学计算、数据处理4.多道批处理系统需要解决的问题处理机管理问题分配与回收提⾼利⽤率内存管理问题分配与回收信息保护I/O设备管理问题分配与使⽤提⾼利⽤率⽂件管理问题⽅便使⽤保证数据的安全性与⼀致性作业管理问题根据作业类型进⾏作业组织⽤户与系统接⼝提供⽤户与OS间的接⼝5.操作系统操作系统是⼀组能有效地组织和管理计算机的硬件和软件资源,合理地对各类作业进⾏调度,以及⽅便⽤户使⽤的程序的集合。

(完整版)操作系统短作业优先调度算法汇总,推荐文档

(完整版)操作系统短作业优先调度算法汇总,推荐文档
3
五、主要数据结构及其说明
算法的基本概念和原理:本次课程设计主要是采用短作业优先算法进程的 进程调度过程。短作业优先调度算法,是指对短作业或短进程优先调度的算法。 他们可以分别用于作业调度和进程调度,短作业优先的调度算法是从后备队列 中选择一个或若干个估计运行时间最短的作业,将他们调入内存运行。而短进 程优先调度算法则是从就绪队列中选出一个估计运行时间最短的进程,将处理 机分配给他,使它立即执行并一直执行到完成,或发生某事件而被阻塞放弃处 理机时再度重新调度。本程序采用了非抢占式短作业优先调度。而非抢占式这 种方式,一旦把处理机分配给某进程后,便让该进程一直执行,直至该进程完 成或发生某事件而被阻塞时,才再把处理机分配给其它进程,决不允许某进程 抢占已经分配出去的处理机。这种调度方式的优点是实现简单,系统开销小, 适用于大多数的批处理系统环境。但它难以满足紧急任务的要求——立即执行, 因而可能造成难以预料的后果。因此,在要求比较严格的实时系统中,不宜采 用这种调度方式。本课程设计主要是在满足要求多道单处理机的情况下进行短 作业的优先调度。
4
达的,那么首先执行该进程;之后就比较进程的服务时间,谁的服务时间短就 先执行谁(如果服务时间相同则看它们的到达时间,到达时间短的先执行);如 果到达时间和服务时间相同,则按先来先服务算法执行。
六、程序运行结果
1 进入操作界面如下 2 输入进程的信息
3 各时刻进程的状态
5
6
4 进程信息
5 平均带权周转时间界面
float run_time;
run_time=Process[i].WholeTime;
j=1;
while((j<N)&&(Process[i].ArrivalTime==Process[j].ArrivalTime)) //判断是
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
单道批处理系统设计一个作业调度模拟程序
————————————————————————————————作者:
————————————————————————————————日期:
操作系统
课程设计说明书
题目:为单道批处理系统设计一个作业调度模拟程序
院系:计算机科学与工程学院
专业班级:计算机
学号:
学生姓名:
4.代码实现ﻩ8
4.1高响应比算法8
4.2最短作业优先算法8
4.3先来先服务算法ﻩ9
5.运行结果与分析ﻩ11
5.2选择先来先服务算法进行作业调度11
5.3选择最短作业优先算法进行作业调度ﻩ12
5.4选择高响应比优先算法进行作业调度13
7.附录ﻩ16
参考文献ﻩ
1.需求分析
1.1问题描述
为单道批处理系统设计一个作业调度模拟程序。
关键词:作业调度,先来先服务(FCFS),最短作业优先(SJF),响应比高者优先(HRN)
目 录
1.需求分析1
1.2功能分析及描述ﻩ1
1.3开发语言选择1
2.概要设计ﻩ2
2.2功能模块的描述ﻩ2
2.3功能模块结构图示ﻩ2
3.1作业控制块JCB的数据结构类型4
3.2先来先服务算法设计ﻩ4
3.4响应比高者优先算法设计ﻩ6
图2-1作业调度模拟程序系统功能结构图
2.2功能模块的描述
各模块的功能介绍如下:
(1)建立作业:输入作业数,建立一组作业,并对所建立的这组作业进行初始化,用以模拟作业调度。初始化的内容包括作业名,作业要求运行的时间,其中,作业进入系统的时间由系统默认设置。
(2)选择作业:程序通过先来先服务调度算法、短作业优先调度算法和高响应比优先调度算法对建立的一组作业进行选择,决定把哪个作业从外存调入内存中。
应将哪些作业从外存调入内存,取决于所采用的调度算法。最简单的是先来先服务调度算法,这是指讲最早进入外存的作业最先调入内存;较常用的一种是短作业优先调度算法,这是将外存上最短的作业最先调入内存;此外,还有基于响应比高者优先的调度算法,根据作业的等待时间和要求服务时间的和与要求服务时间之比可计算出响应比。
指导教师:
计算机科学与工程学院计算机科学与技术系
学 号
学生姓名
专业(班级)
计算机09-3班
设计题目
为单道批处理系统设计一个作业调度模拟程序






使用MicrosoftVisual C++ 6.0编辑器编写,利用c语言开发的基于单道批处理系统的一个作业调度模拟程序,完成该课程设计需要掌握先来先服务(FCFS),最短作业优先(SJF)、响应比高者优先(HRN)的调度算法。
(3)运行作业:根据初始化中设置的作业要求运行时间来模拟作业的运行。
(4)计算:作业完成计算作业周转时间和带权周转时间,以及这组作业的平均周转时间和带权平均周转时间。
(5)显示结果:将计算所得的结果输出。
(6)退出程序:当实验结束,不再需要模拟作业调度的时候,用来退出程序。
2.3功能模块结构图示
作业调度模拟程序的系统功能结构如图2-1所示。
1.3开发语言选择
本课程设计采用C语言实现。
2.概要设计
2.1功能模块划分
根据功能描述,单道批处理程序作业调度的模拟程序要求实现如下功能:建立作业、选择作业、运行作业、计算作业周转时间和带权周转时间,以及这组作业的平均周转时间和带权平均周转时间、显示运行结果(包括每个作业开始运行时刻、完成时刻、周转时间、带权周转时间,以及这组作业的平均周转时间及带权平均周转时间等)、退出程序。




作业调度算法分别采用先来先服务(FCFS),最短作业优先(SJF)、响应比高者优先(HRN)的调度算法。对每种调度算法都要求打印每个作业开始运行时刻、完成时刻、周转时间、带权周转时间,以及这组作业的平均周转时间及带权平均周转时间,以比较各种算法的优缺点。



1.源代码程序不少于400行
2.附有各种图示4张
3.课程设计任务书不少于3500字




1.10月23日-10月28日:查询相关资料,初步确定课程设计的语言,进一步明确其所要实现的功能
2.10月29日-11月10日:根据所学知识及搜集的相关信息进行概要设计
3.11月11日-11月25日:进行详细设计,完成相应源代码的编写
4.11月26日-12月2日:对源代码进行调试、运行
指导教师评语:
成绩:
指导教师:
年月日
安徽理工大学课程设计(论文)成绩评定表
摘要
本次课程设计要求用高级语言编写和调试一个单道批处理系统的作业调度的模拟程序,了解作业调度在操作系统中的作用,以加深对作业调度算法的理解。作业调度算法分别采用先来先服务(FCFS),最短作业优先(SJF)、响应比高者优先(HRN)的调度算法。对每种调度算法都要求打印每个作业开始运行时刻、完成时刻、周转时间、带权周转时间,以及这组作业的平均周转时间及带权平均周转时间,以比较各种算法的优缺点。
[4]谭浩强. C程序设计.第四版.北京:清华大学出版社,2010.06
[5]王敬华,林萍,张清国等.C语言程序设计教程.第二版.北京:清华大学出版社,2009.10
指导教师签字
系主任签字
2011年9月26日
学生姓名:学号:专业班级:计算机09-3班
设计题目:为单道批处理系统设计一个作业调度模拟程序
5.12月3日-12月10日:完善课程设计说明书并提交

考资Biblioteka 料[1]梁小丹,梁红兵,哲凤屏,汤子赢.计算机操作系统.第三版.西安:西安电子科技大学出版社,2007.2
[2]袁捷、沈俊、袁晴晴.计算机操作系统基础与应用.第二版.北京:清华大学出版社,2009.07
[3]杨振山、龚培增.计算机操作系统教程.第三版.北京:清华大学出版社, 2007.9
作业调度算法分别采用先来先服务(FCFS),最短作业优先(SJF)、响应
比高者优先(HRN)的调度算法。对每种调度算法都要求打印每个作业开始运行时刻、完成时刻、周转时间、带权周转时间,以及这组作业的平均周转时间及带权平均周转时间,以比较各种算法的优缺点。
1.2功能分析及描述
在批处理系统中,作业进入系统后,先驻留在外存上,通过作业调度算法,将它们分批装入内存。作业调度程序用于决定把外存上处于后备队列中的哪些作业调入内存,并为他们创建进程、分配必要的资源,然后,再将新创建的进程加入就绪队列中,准备执行。
相关文档
最新文档