2022年操作系统学习课程设计方案任务书.docx
《2022年操作系统学习课程设计方案任务书.docx》由会员分享,可在线阅读,更多相关《2022年操作系统学习课程设计方案任务书.docx(14页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、运算机操作系统课程设计任务书一、课程设计的目的和意义本课程设计是同学学习完运算机操作系统课程后,进行的一次全面的综合训练, 通过课程设计,让同学更好地把握操作系统的原理及实现方法,加深对操作系统基础理论和重要算法的懂得,加强同学的动手才能;二、总体要求:1、 一个班分如干个组,每组最多3 人,个别可以4 人组(自由组合),每组选定一个课程设计题目;2、 人员分工:组长1 人、组员 1 到 2 人;组长可由小组人员自行选出或自荐,组长的职责是负责与老师沟通,合理支配安排本组的各项任务,任务有:系统总体设计、编码、测试、写文档;三、设计要求:本课程设计以 Windows 或 Linux 操作系统为
2、试验平台,进行操作系统各种算法的模拟或对源代码分析和修改或应用;通过该课程设计,使同学把握操作系统各部分结构、实现机理和各种典型算法,系统地明白操作系统的设计和实现思路,运用内核开发环境实现对内核的修改,培育同学的系统设计才能,并明白操作系统的进展动向和趋势;要求如下:1、要充分熟识课程设计对培育自己的重要性,仔细做好设计前的各项预备工作;2、既要虚心接受老师的指导,又要充分发挥主观能动性;结合课题,独立摸索,努力钻研,勤于实践,勇于创新;3、独立按时完成规定的工作任务,不得弄虚作假,不准抄袭他人内容,否就成果以不及格计;4、课程设计期间,无故缺席按旷课处理;缺席时间达四分之一以上者,其成果按
3、不及格处理;5、在设计过程中,要严格要求自己,树立庄重、严密、严谨的科学态度,必需按时、按质、按量完成课程设计;6、小组成员之间,分工明确,但要保持联系畅通,亲密合作,培育良好的相互帮忙和团队协作精神;四、成果评定1、同学平常表现占总成果20,如迟到扣 5 分,无故旷课每次扣10 分,二次不到者总成果最好以及格计;2、课程设计程序功能占总成果40 ,课程设计报告占总成果40,在规定时间内上交;3、严禁抄袭,复制设计内容,查出后相关同学设计成果以不及格处理;五、设计内容(除特殊注明外,每组最多3 人,先自由组合,并选定 1 个题目,再由老师作适当调整)课题一、银行家算法设计目的 :死锁会引起运算
4、机工作僵死,因此操作系统中必需防止;本设计的目的在于使用高级语言编写和调试一个系统动态安排资源的简洁模拟程序,明白死锁产生的条件和缘由,并采纳银行家算法有效地防止死锁的发生,以加深对课堂上所讲授的学问的理 解;设计要求 :设计有 n 个进程共享 m 个系统资源的系统,进程可动态的申请和释放资源,系统按各进程的申请动态的安排资源;系统能显示各个进程申请和释放资源,以及系统动态安排资源的过程,便于用户观看和分析,要求使用图形用户界面;银行家算法的思路:1. 进程一开头向系统提出最大需求量.2. 进程每次提出新的需求分期贷款 都统计是否超出它事先提出的最大需求量.3. 如正常 ,就判定该进程所需剩余
5、量包括本次申请 是否超出系统所把握的剩余资源量 ,如不超出 ,就安排 ,否就等待 .4. 银行家算法的数据结构.1) 系统剩余资源量 Vn, 其中 Vn 表示第 I 类资源剩余量 .2) 已安排资源量 Amn, 其中 Aji表示系统 j 程已得到的第 i 资源的数量 .3) 剩余需求量 .Cmn, 其中 Cji 对第 i 资源尚需的数目 .5. 银行家算法流程 : 当某时刻 ,某进程时 ,提出新的资源申请,系统作以下操作 :1) 判定 En 是否大于 Cjn, 如大于 ,表示出错 .2) 判定 En 是否大于系统剩余量Vn, 如大于 ,就该进程等待 .3) 如以上两步没有问题 ,尝试安排 ,即
6、各变量作调整 .4) 依据安全性估运算法,判定 ,安排过后 ,系统是否安全 , 如安全 ,就实际安排 ,否就 ,撤消安排,让进程等待 .6. 安全性检测 算法对进程逐个扫描,先判定flag,看进程是否完成,假如完成就连续扫描,假如没有再判定当前系统是否满意进程所需要的安排额,假如满意就安排并当进程完成后回收资源,假如没有就扫描下一个进程;扫描全部进程,假如全部的进程都能完成就说明是安全安排序列,假如没有,就安排不胜利,不存在着安全序列;课题二、处理机调度算法的实现设计目的 :在多道程序和多任务系统中,系统内同时处于就绪状态的进程可能有如干个;也就是说能运行的进程数大于处理机个数;为了使系统中的
7、进程能有条不紊地工作, 必需选用某种调度策略,挑选一进程占用处理机;要求同学设计一个模拟处理机调度算 法,以巩固和加深处理机调度的概念;设计要求 :1) 先由用户输入进程数量(至少5 个进程),再由系统随机生成一个进程序列(包括到达时间和服务时间);2) 然后显示进程调度算法由用户挑选,包括:时间片轮转法,短作业优先算法,动态优先级算法;3) 显示结果包括每个进程的开头时间、完成时间、周转时间以及带权周转时间,显示界面可参考书本的例子以表格形式但可不要表格线;课题三、生产者消费者问题设计目的 :通过讨论 Linux 的进程机制和信号量实现生产者消费者问题的并发掌握.说明:有界缓冲区内设有20
8、个储备单元,放入/取出的数据项设定为1-20 这 20 个整型数;设计要求 :1 每个生产者和消费者对有界缓冲区进行操作后,实时显示有界缓冲区的全部内容、当前指针位置和生产者/消费者的标识符;2生产者和消费者各有两个以上;(3) 多个生产者或多个消费者之间须有共享对缓冲区进行操作的函数代码;提示: 1 有界缓冲区可用数组实现;课题四:基于 Linux 的二级文件系统;要求做到以下几点:1、 可以实现以下几条命令,但可不用参数;留意,必需真正实现,不能模拟实现,如Dir 类似于 Linux 的 ls 命令;Login用户登录Dir列出文件夹内容Create创建文件Delete删除文件Open打开
9、文件Close关闭文件Read读文件Write写文件2、列目录时要列出文件名、物理地址、爱护码和文件长度;3、设计提示实现虚拟文件系统的一般思路是调用系统的文件创建(如c 中的 fopen 函数的 w 方式即可)一个新文件,将此文件作为虚拟磁盘,在完成本设计要求的内容时,要求所生成的文件目录以及文件等内容都是储备在此磁盘中;4、源文件可以进行读写爱护;主要需完成以下子过程,但不肯定全部要用到;1、 i 节点内容猎取函数iget 2、 i 节点内容释放函数iput 3、目录创建函数 mkdir 4、目录搜寻函数 namei 5、磁盘块安排函数balloc 6、磁盘块释放函数bfree 7、安排
10、i 节点区函数 ialloc 8、释放 i 节点区函数 ifree 9、搜寻当前目录下文件的函数iname 10、拜访掌握函数 access 11、显示目录和文件用函数_dir 12、转变当前目录用函数chdir 13、打开文件函数 open 14、创建文件函数 create 15、读文件用函数 read 16、写文件用函数 write 17、用户登录函数 login 18、用户退出函数 logout 19、文件系统格式化函数format 20、进入文件系统函数install 21、关闭文件系统函数close 22、退出文件系统函数halt 23、文件删除函数 delete 课题五:储备治理动
11、态分区安排算法的模拟: 要求设计主界面以敏捷挑选某算法,以下算法都要实现: 1、 首次适应算法2、 循环首次适应算法3、 正确适应算法;4、 最坏适应算法;5、 快速适应算法具体要求:1) 第一由系统生成当前的内存状态,依据课本P122 图 4-5( a)所示,要求未安排的分区数量不少于3 个,且空间大小随机,然后随机生成一个数,表示等待安排进程的大小;2) 然后显示上述算法由用户挑选,结果显示安排后的状态;课题六:三种储备治理方式的地址换算1、分页方式的地址换算;具体要求:1) 随机生成页面大小,但肯定为2 的幂,系统随机生成一个至少有10 行的页表,页号、块号从0 开头;2) 用户给定一个
12、规律地址,第一显示此地址的页号和页内地址,然后显示是第几块,最终显示其物理地址;2、分段方式的地址换算;具体要求:1) 由系统随机生成5 个左右的段,并随机生成一个段表并显示;2) 由用户给定一个规律地址,包括段号和段内地址,最终显示其物理地址;3、段页式的地址换算;具体要求:1) 先由系统随机生成5 个左右的段,然后再由系统随机生成页面大小,但肯定为 2 的幂;然后生成段表和页表,具体内容参照课本P140 的图 4-22;2) 由用户给定一个规律地址,包括段号和段内地址,最终显示其物理地址;课题七:进程调度模拟程序设计要求:编写一个进程调度程序,答应多个进程共享进程调度程序;进程调度算法:采
13、纳(1)最高优先数优先的调度算法(即把处理机安排给优先数最高的进程),( 2)时间片轮转法,( 3)先来先服务算法;每个进程有一个进程掌握块(PCB )表示;进程掌握块可以包含如下信息:进程名、优先数、到达时间、需要运行时间、已用CPU 时间、进程状态等等;进程的优先数、到达时间、时间片以及需要的运行时间由随机数产生;1、设计内容1) 设计进程掌握块PCB 表结构,分别适用于优先权调度算法、时间片轮转调度算法和先来先服务算法;2) PCB 结构包括以下信息:进程名、进程优先数(或轮转时间片),进程所占用的 CPU 时间,进程的状态,当前队列指针等;依据调度算法的不同,PCB 结构的内容可以作适
14、当的增删;3) 建立进程就绪队列;对两种不同算法编制入链子程序;4) 编制三种进程调度算法:A 、优先数调度;B 、循环轮转调度; C、先来先服务;2、具体设计要求及有关说明选用优先数算法和简洁时间片轮转法对五个进程进行调度,每个进程可有三种状态: 运行状态( RUN )、就绪状态( READY )和完成状态;并假定初始状态为就绪状态;设计进程掌握块结构如下:PCB:NAME PRIO/ROUND CPUTIME COUNTNEEDTIME STATE NEXT其中:NAME 进程标识符;PRIO进程优先数;ROUND 进程轮转时间片; CPUTIME 进程占用CPU 时间; COUNT 计数
15、器;NEEDTIME 进程到完成仍要的CPU 时间;STATE进程的状态; NEXT 链指针;进程掌握块链结构如插图;其中:RUN 当前运行进程指针; READY 就绪队列头指针; TAIL 就绪队列尾指针; FINISH 完成队列头指针;为了便于处理,程序中进程的运行时间以时间片为单位运算;各进程的优先数或轮转时间片数以及进程需运行的时间片数的初值均由用户给定;RUNREADTAILFINISH3、程序设运算法:( 1)在优先数算法中,进程每执行一次,优先数减3, CPU 时间片数加 1,进程仍需要的时间片数减1;在轮转法中,采纳固定时间片,时间片数为2,进程每执行一次, CPU 时间片数加
16、 2,进程仍需要的时间片数减2,并排到就绪队列的尾上;( 2)程序结构说明如下:整个程序由 INSERT1,INSERT2, FIRSTIN,PRINT, CREATE, PRISCH 和 ROUNDSCH 过程组成;其中:INSERT1 的功能是把仍未完成且优先数小于别的进程PCB 按进程优先数的次序插入到就绪队列中;INSERT2 是轮转法使用的过程,将执行了一个单位时间片数(为2)且仍未完成的进程的 PCB 插入到就绪队列的队尾;FIRSTIN 的功能是将就绪队列中的第一个进程投入运行;PRINT 打印每执行一次后的全部进程的状态,这里,就绪(等待)用“W”代表;CREATE 的功能是创
17、建新的进程,即创立进程的PCB,并将此 PCB 链入到就绪队列中去;PRISCH 按优先数算法调度进程;ROUNDSCH 按时间片轮转法调度进程;主程序中定义了 PCB 的结构和其它变量NUMBER 进程数, ALGO 为 10 个字符长的字符串,存放要求输入的算法的名,PRIORITY为优先数算法,ROUNDROBIN为循环轮转法,在程序运行时输入其中的一个;课题八:多道程序缓冲区和谐操作如下图所示,有 10 个 PUT 操作要不断循环地向 Buffer1 送数据,有一个 Move 操作要不断地将 Buffer1 的数据取到 Buffer2 ,有 20 个 GET 操作要不断地从 Buff2
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 2022 操作系统 学习 课程设计 方案 任务书
限制150内