操作系统课程设计指导书复习课程_第1页
操作系统课程设计指导书复习课程_第2页
操作系统课程设计指导书复习课程_第3页
已阅读5页,还剩4页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、计算机操作系统课程设计指导书一、课程设计的目的和意义本课程设计是学生学习完计算机操作系统课程后,进行的一次全面的综合训练,通过课程设计, 让学生更好地掌握操作系统的原理及实现方法,加深对操作系统基础理论和重要算法的理解,加强学生的动手能力。二、总体要求:1、 课程设计总时间为五天。2、 课程设计地点是实验楼616机房。3、 一个班分若干个组,每组2人,个别可以3 人组(自由组合)课程设计题目由任课老师指定;4、 人员分工:组长 1 人、组员 1 到 2 人。组长可由小组人员自行选出或自荐,组长的职责是负责与老师交流,合理安排分配本组的各项任务,任务有:系统总体设计、编码、测试、写文档。三、设计

2、要求:本课程设计以Linux 操作系统为实验平台,进行源代码分析和修改或应用。通过该课程设计, 使学生掌握Linux 操作系统各部分结构、实现机理和各种典型算法;或使学生进行网络管理和系统管理,系统地了解操作系统的设计和实现思路,运用内核开发环境实现对内核的修改,培养学生的系统设计能力,并了解操作系统的发展动向和趋势。要求如下:1、要充分认识课程设计对培养自己的重要性,认真做好设计前的各项准备工作。2、既要虚心接受老师的指导,又要充分发挥主观能动性。结合课题,独立思考,努力钻研,勤于实践,勇于创新。3、独立按时完成规定的工作任务,不得弄虚作假,不准抄袭他人内容,否则成绩以不及格计。4、课程设计

3、期间,无故缺席按旷课处理;缺席时间达四分之一以上者,其成绩按不及格处理。5、在设计过程中,要严格要求自己,树立严肃、严密、严谨的科学态度,必须按时、按质、按量完成课程设计。6、小组成员之间,分工明确,但要保持联系畅通,密切合作,培养良好的互相帮助和团队协作精神。四、成绩评定1、同学平时表现占总成绩 30,若迟到扣 5 分,无故旷课每次扣 10 分,二次不到者总成绩以 0 分计。2、课程设计报告占总成绩70,在规定时间内上交。3、严禁抄袭,复制设计内容,查出后相关同学设计成绩以零分处理。五、设计内容(除特别注明外,每组2 人,先自由组合,并选定1 个题目,再由老师作适当调整)课题一、 Linux

4、 下 C 编程实现银行家算法银行家算法的思路:1.进程一开始向系统提出最大需求量.2.进程每次提出新的需求(分期贷款 )都统计是否超出它事先提出的最大需求量.3.若正常 ,则判断该进程所需剩余量(包括本次申请 )是否超出系统所掌握的剩余资源量 ,若不超出 ,则分配 ,否则等待 .4.银行家算法的数据结构 .1)系统剩余资源量Vn, 其中 Vn 表示第 I 类资源剩余量 .2)已分配资源量Amn, 其中 Aji 表示系统 j 程已得到的第i 资源的数量 .3)剩余需求量 .Cmn, 其中 Cji 对第 i 资源尚需的数目 .5.银行家算法流程 : 当某时刻 ,某进程时 ,提出新的资源申请,系统作

5、以下操作 :1)判定 En 是否大于 Cjn, 若大于 ,表示出错 .2)判定 En 是否大于系统剩余量 Vn, 若大于 ,则该进程等待 .3)若以上两步没有问题 ,尝试分配 ,即各变量作调整 .4) 按照安全性推测算法 ,判断 ,分配过后 ,系统是否安全 , 若安全 ,则实际分配 ,否则 ,撤消分配,让进程等待 .6.安全性检测 算法对进程逐个扫描,先判断flag ,看进程是否完成,如果完成则继续扫描,如果没有再判断当前系统是否满足进程所需要的分配额,如果满足则分配并当进程完成后回收资源,如果没有则扫描下一个进程。扫描所有进程,如果所有的进程都能完成就表明是安全分配序列,如果没有,则分配不成

6、功,不存在着安全序列。课题二、处理机调度算法的实现设计目的 :在多道程序和多任务系统中,系统内同时处于就绪状态的进程可能有若干个。也就是说能运行的进程数大于处理机个数。为了使系统中的进程能有条不紊地工作,必须选用某种调度策略,选择一进程占用处理机。要求学生设计一个模拟处理机调度算法,以巩固和加深处理机调度的概念。设计要求 :1)先由用户输入进程数量 (至少 5 个进程),再由系统随机生成一个进程序列 (包括到达时间和服务时间) 。2)然后显示进程调度算法由用户选择,包括:时间片轮转法,短作业优先算法,动态优先级算法。3)显示结果包括每个进程的开始时间、完成时间、周转时间以及带权周转时间,显示界

7、面可参考书本的例子以表格形式但可不要表格线。课题三、生产者消费者问题设计目的 :通过研究Linux的进程机制和信号量实现生产者消费者问题的并发控制.说明:有界缓冲区内设有20 个存储单元,放入/取出的数据项设定为1-20 这 20 个整型数。设计要求 :(1) 每个生产者和消费者对有界缓冲区进行操作后,实时显示有界缓冲区的全部内容、当前指针位置和生产者 /消费者的标识符。(2)生产者和消费者各有两个以上。(3)多个生产者或多个消费者之间须有共享对缓冲区进行操作的函数代码。提示: (1) 有界缓冲区可用数组实现。课题四:基于 Linux 的二级文件系统。要求做到以下几点:1、 可以实现下列几条命

8、令,但可不用参数。注意,必须真正实现,不能模拟实现,如Dir 类似于 Linux 的 ls 命令。Login用户登录Dir列出文件夹内容Create创建文件Delete删除文件Open打开文件Close关闭文件Read读文件Write写文件2、列目录时要列出文件名、物理地址、保护码和文件长度。3、设计提示实现虚拟文件系统的一般思路是调用系统的文件创建(如 c 中的 fopen 函数的 w 方式即可) 一个新文件, 将此文件作为虚拟磁盘, 在完成本设计要求的内容时, 要求所生成的文件目录以及文件等内容都是存储在此磁盘中。4、源文件可以进行读写保护。主要需完成以下子过程,但不一定全部要用到。1、

9、i 节点内容获取函数iget( )2、 i 节点内容释放函数iput( )3、目录创建函数mkdir( )4、目录搜索函数namei( )5、磁盘块分配函数balloc( )6、磁盘块释放函数bfree( )7、分配 i 节点区函数ialloc( )8、释放 i 节点区函数ifree( )9、搜索当前目录下文件的函数iname( )10、访问控制函数access( )11、显示目录和文件用函数_dir( )12、改变当前目录用函数chdir( )13、打开文件函数open( )14、创建文件函数create( )15、读文件用函数read( )16、写文件用函数write( )17、用户登录函

10、数login( )18、用户退出函数logout( )19、文件系统格式化函数format( )20、进入文件系统函数install( )21、关闭文件系统函数close( )22、退出文件系统函数halt( )23、文件删除函数delete( )课题五:存储管理动态分区分配算法的模拟:要求设计主界面以灵活选择某算法,以下算法都要实现:1、首次适应算法2、循环首次适应算法3、最佳适应算法;4、最坏适应算法;5、快速适应算法具体要求:1) 首先由系统生成当前的内存状态,按照课本P122 图 4-5( a)所示,要求未分配的分区数量不少于3 个,且空间大小随机,然后随机生成一个数,表示等待分配进程

11、的大小。2) 然后显示上述算法由用户选择,结果显示分配后的状态。课题六:三种存储管理方式的地址换算1、分页方式的地址换算。具体要求:1)随机生成页面大小,但一定为2 的幂,系统随机生成一个至少有10 行的页表,页号、块号从0 开始。2)用户给定一个逻辑地址,首先显示此地址的页号和页内地址,然后显示是第几块,最后显示其物理地址。2、分段方式的地址换算。具体要求:1)由系统随机生成5 个左右的段,并随机生成一个段表并显示。2)由用户给定一个逻辑地址,包括段号和段内地址,最后显示其物理地址。3、段页式的地址换算。具体要求:1)先由系统随机生成5 个左右的段,然后再由系统随机生成页面大小,但一定为2

12、的幂。然后生成段表和页表,具体内容参照课本P140 的图 4-22。2)由用户给定一个逻辑地址,包括段号和段内地址,最后显示其物理地址。课题七:进程调度模拟程序设计要求:编写一个进程调度程序,允许多个进程共享进程调度程序。进程调度算法:采用(1)最高优先数优先的调度算法(即把处理机分配给优先数最高的进程),(2)时间片轮转法, ( 3)先来先服务算法。每个进程有一个进程控制块(PCB )表示。进程控制块可以包含如下信息:进程名、优先数、到达时间、需要运行时间、已用CPU 时间、进程状态等等。进程的优先数、到达时间、时间片以及需要的运行时间由随机数产生。1、设计内容1)设计进程控制块 PCB 表

13、结构,分别适用于优先权调度算法、时间片轮转调度算法和先来先服务算法。2) PCB结构包括以下信息:进程名、进程优先数(或轮转时间片),进程所占用的CPU时间,进程的状态,当前队列指针等。根据调度算法的不同,PCB结构的内容可以作适当的增删。3)建立进程就绪队列。对两种不同算法编制入链子程序。4)编制三种进程调度算法:A 、优先数调度; B、循环轮转调度;C、先来先服务。2、具体设计要求及有关说明选用优先数算法和简单时间片轮转法对五个进程进行调度,每个进程可有三种状态:运行状态( RUN )、就绪状态( READY )和完成状态。并假定初始状态为就绪状态。设计进程控制块结构如下:PCB:NAME

14、PRIO/ROUNDCPUTIMECOUNTNEEDTIMESTATENEXT其中:NAME 进程标识符;PRIO 进程优先数;ROUND 进程轮转时间片;CPUTIME 进程占用CPU 时间;COUNT 计数器;NEEDTIME 进程到完成还要的CPU 时间;STATE 进程的状态;NEXT 链指针。进程控制块链结构如插图。其中:RUN 当前运行进程指针;READY 就绪队列头指针;TAIL 就绪队列尾指针;FINISH 完成队列头指针。为了便于处理,程序中进程的运行时间以时间片为单位计算。各进程的优先数或轮转时间片数以及进程需运行的时间片数的初值均由用户给定。RUNTAILREAD FIN

15、ISH3、程序设计算法:( 1)在优先数算法中,进程每执行一次,优先数减3, CPU 时间片数加1,进程还需要的时间片数减 1。在轮转法中,采用固定时间片,时间片数为2,进程每执行一次, CPU时间片数加 2,进程还需要的时间片数减2,并排到就绪队列的尾上。( 2)程序结构说明如下:整个程序由 INSERT1, INSERT2, FIRSTIN, PRINT, CREATE, PRISCH和 ROUNDSCH 过程组成。其中:INSERT1 的功能是把还未完成且优先数小于别的进程PCB 按进程优先数的顺序插入到就绪队列中。INSERT2 是轮转法使用的过程, 将执行了一个单位时间片数(为 2)

16、且还未完成的进程的 PCB 插入到就绪队列的队尾。FIRSTIN 的功能是将就绪队列中的第一个进程投入运行。PRINT 打印每执行一次后的所有进程的状态,这里,就绪(等待)用“W ”代表。CREATE 的功能是创建新的进程,即创立进程的PCB,并将此 PCB 链入到就绪队列中去。PRISCH按优先数算法调度进程。ROUNDSCH按时间片轮转法调度进程。主程序中定义了PCB的结构和其它变量NUMBER进程数,ALGO为 10 个字符长的字符串,存放要求输入的算法的名,PRIORITY为优先数算法,ROUNDROBIN为循环轮转法,在程序运行时输入其中的一个。课题八:多道程序缓冲区协调操作如下图所

17、示,有10 个PUT操作要不断循环地向Buffer1送数据,有一个Move操作要不断地将Buffer1的数据取到Buffer2 ,有 20个 GET操作要不断地从Buff2中取数据。BUFF1是 10,BUFF2 的容量是 20, PUT 、 MOVE 、 GET 每次操作一个数据,为了在操作的过程中要保证数据不丢失 ,每个 Buffer 每次只能接受一个 PUT 或一个 Move 或一个 Get,多个操作不能同时操作同一 BUFFER 。设计一个多道程序完成上述操作。试用、原语协调 PUT 、 MOVE 、GET 的操作,并说明每个信号量的含义、初值和值的范围。PUTMOVEGET1、基本功

18、能要求(1) 显示 Buffer 的操作过程;(2) 可以确定 Buffer 的容量、 PUT 、 GET、 MOVE 操作的个数;(3) 自行确定放数据的速度,取数据的速度;(4) 实时显示每个 Buffer 中数据的个数,已放入 Buffer 的数据个数,已取的数据个数;(5) 程序运行结束,显示汇总数据:a) 总的运行时间;b) Buffer 中数据的个数;c) 已放入 BUFFER 的数据个数;d) 已放已取的数据个数;e) 平均 buffer 中的数据个数。f) 。课题九、磁盘调度算法1、设计要求:要求设计一个程序,该程序模拟操作系统的磁盘调度。等磁盘调度算法,并对各算法进行性能分析。 CSCAN模拟仿真FCFS、SSTF、SCAN 、应提供良好的测试界面及测试方法。提供全面的输出结果。2、实验原理磁盘可供多个进程共享, 当有多个进程要求访问磁盘时, 应采用一种调度算法, 以使进程对磁盘的平均访问时间最小, 由于在访问磁盘的时间中, 主要是寻道时间, 因此磁盘调度的目标就是使磁盘的平

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论