2023年操作系统课程设计任务书级计算机软件网络.docx
《2023年操作系统课程设计任务书级计算机软件网络.docx》由会员分享,可在线阅读,更多相关《2023年操作系统课程设计任务书级计算机软件网络.docx(32页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、2023-2023学年第一学期操作系统课程设计任务书依照大纲和课程内容实践特点,结合操作系统、LINUX操作系统和 嵌入式程序设计课程重要内容,课设的具体规定及任务如下:一、设计成果的规定课程设计应严格按照规定完毕,在系统调试成功后,需要提供操作系统 课程设计报告,具体涉及:(1)设计目的 (1)设计内容 (3)设计准备(理论、技术) (4)设计 过程(设计思想、代码实现) (5)设计结果并分析 (6)系统的结构、原理 框图和模块等的具体说明 (7)用户使用说明书和参考资料 (8)设计体会。注:1. (1) - (7)项可以打印,(8)设计体会必须手写。2.报告的封皮、封底,采用给定的模板;报
2、告的内容,在教师的指导 下,独立完毕,自主排版,不做统一规定。二、设计任务(每名同学选一题,独立完毕)题目一:进程与线程一Linux进程与线程通讯1.设计目的深刻理解线程和进程的概念,掌握线程与进程在组成成分上的差别以及与其 相适应的通讯方式和应用目的。Linux系统的fork。保持了 UNIX的经典语义,被创建的进程具有独立于父 进程的地址空间,两者之间的通讯通常可采用pipe机制,clone ()是Linux 系统特有的系统调用,可以通过参数拟定父子进程之间是否共享存储空间等资 源。在地址空间等资源共享的情况下,clone实质相称于创建了一个轻进程或线 程,这是clone的通常用法。实际在
3、Linux系统中,fork以及用户级线程pthread 都是基于clone实现的。请采用最坏适应算法进行内存块的分派和回收,同时显示内存块分派和回收 后空闲内存分区链的情况。题目十二:进程调度模拟算法.设计目的通过算法的模拟加深对进程概念和进程调度过程的理解,掌握进程状态之间 的切换,同时掌握进程调度算法的实现方法和技巧。1 .设计内容(1)用C语言来实现对N个进程采用动态优先权优先算法的进程调度。(2)每个用来标记进程的进程控制块PCB用结构来描述,涉及以下字段: 进程标记数ID;进程优先数PRIORITY,并规定优先数越大的进程,其优先权越高; 进程已占用的CPU时间CPUTIME;进程还
4、需占用的CPU时间ALLTIME。当进程运营完毕时,ALLTIME 变为0; 进程的阻塞时间STARTBLOCK,表达当进程再运营STARTBLOCK 个时间片后,进程将进入阻塞状态;进程被阻塞的时间BLOCKTIME ,表达已阻塞的进程再等待 BLOCKTIME个时间片后,进程将转换成就绪状态; 进程状态STATE;队列指针NEXT,用来将PCB排成队列。(3)优先数改变的原则: 进程在就绪队列中呆一个时间片,优先数增长1;进程每运营一个时间片,优先数减3。(4)假设在调度前,系统中有5个进程,它们的初始状态如卜.:ID01234PRIORITY93830290CPUT1ME00000ALL
5、TIME33634STARTBLOCK2-1-1-1-1BLOCKTIME30000STATEREADYREADYREADYREADYREADY(5)为了清楚地观测进程的调度过程,程序应将每个时间片内的进程的情况 显示出来,参照的具体格式如下:RUNNING PROG: iREADY_QUEUE:-id I -id2BLOCK_QUEUE:-id3-id4ID01234PRIORITYPOPlP2P3P4CPUTIMECOClC2C3C4ALLTIMEAOAlA2A3A4STARTBLOCKTOT1T2T3T4BLOCKTIMEBOBlB2B3B4STATESOSIS2S3S4题目十三:请求调
6、页存储管理方式的模拟工.设计目的通过对页面、页表、地址转换和页面置换过程的模拟,加深对请求调页系统 的原理和实现过程的理解。1 .设计内容1)假设每个页面中可存放10条指令,分派给作业的内存块数为4。2)用c语言模拟一个作业的执行过程,该作业共有320条指令,即它的地址 空间为32页,目前它的所有页都尚未调入内存。在模拟过程中,假如所访问的 指令已在内存,则显示其物理地址,并转下一条指令。假如所访问的指令尚未装 入内存,则发生缺页,此时需记录缺页的次数,并将相应页调入内存。假如4 个内存块均已装入该作业,则需进行页面置换,最后显示其物理地址,并转下一 条指令。在所有320指令执行完毕后,请计算
7、并显示作业运营过程中发生的缺页率。3)置换算法:采用先进先出(FIFO)置换算法。提醒:(1)通过随机数产生一个指令序列,共320条指令。指令的地址按下述原则生 成:50%的指令是顺序执行的;25%的指令是均匀分布在前地址部分;25%的指令是均匀分布在后地址部分;具体的实行方法是:在0, 319的指令地址之间随机选取一起点m;顺序执行一条指令,即执行地址为m+1的指令;在前地址0, m+1中随机选取一条指令并执行,该指令的地址为m;顺序执行一条指令,其地址为亦+1的指令; 在后地址Dn +2, 319中随机选取一条指令并执行;反复上述环节,直到执行320次指令。(2)将指令序列变换为页地址流设
8、页面大小为1K;用户内存容量为4页到32页;用户虚存容里为32K。在用户虚存中,按每K存放10条指令排列虚存地址,即320条指令在虚存 中的存放方式为:第0条第9条指令为第。页(相应虚存地址为0, 9);第10条第19条指令为第1页(相应虚存地址为10, 19);第310条第319条指令为第31页(相应虚存地址为310, 319) 0按以上方式,用户指令可组成32页。(3)计算先进先出(FIFO)算法在不同内存容量下的命中率。其中,命中率=1-页面失效次数/页地址流长度题目十四:请求调页存储管理方式的模拟21 .设计目的通过对页面、页表、地址转换和页面置换过程的模拟,加深对请求调页系统 的原理
9、和实现过程的理解。2 .设计内容1)假设每个页面中可存放10条指令,分派给作业的内存块数为4。2)用C语言模拟一个作业的执行过程,该作业共有320条指令,即它的地 址空间为32页,目前它的所有页都尚未调入内存。在模拟过程中,假如所访问 的指令己在内存,则显示其物理地址,并转下一条指令。假如所访问的指令尚未 装入内存,则发生缺页,此时需记录缺页的次数,并将相应页调入内存。假如4 个内存块均已装入该作业,则需进行页面置换,最后显示其物理地址,并转下一 条指令。在所有320指令执行完毕后,请计算并显示作业运营过程中发生的缺页率。3)置换算法:最近最久未使用(LRU)算法。提醒:(1)通过随机数产生一
10、个指令序列,共320条指令。指令的地址按下述原则生 成:50%的指令是顺序执行的;25%的指令是均匀分布在前地址部分;25%的指令是均匀分布在后地址部分;具体的实行方法是:在0, 319的指令地址之间随机选取一起点m;顺序执行一条指令,即执行地址为m+1的指令;在前地址0, m+1中随机选取一条指令并执行,该指令的地址为M ;顺序执行一条指令,其地址为m +1的指令;在后地址+2, 319中随机选取一条指令并执行;反复上述环节,直到执行320次指令。(2)将指令序列变换为页地址流设页面大小为1K;用户内存容量为4页到32页;用户虚存容里为32K。在用户虚存中,按每K存放10条指令排列虚存地址,
11、即320条指令在虚存 中的存放方式为:第0条第9条指令为第。页(相应虚存地址为0, 9);第10条第19条指令为第1页(相应虚存地址为10, 19);第310条第319条指令为第31页(相应虚存地址为310, 319)。按以上方式,用户指令可组成32页。(3)计算最近最少使用(LRU)算法在不同内存容量下的命中率。其中,命中率=1-页面失效次数/页地址流长度题目十五:请求调页存储管理方式的模拟31 .设计目的通过对页面、页表、地址转换和页面置换过程的模拟,加深对请求调页系统 的原理和实现过程的理解。2 .设计内容1)假设每个页面中可存放10条指令,分派给作业的内存块数为4。2)用C语言模拟一个
12、作业的执行过程,该作业共有320条指令,即它的地 址空间为32页,目前它的所有页都尚未调入内存。在模拟过程中,假如所访问 的指令己在内存,则显示其物理地址,并转下一条指令。假如所访问的指令尚未 装入内存,则发生缺页,此时需记录缺页的次数,并将相应页调入内存。假如4 个内存块均已装入该作业,则需进行页面置换,最后显示其物理地址,并转下一 条指令。在所有320指令执行完毕后,请计算并显示作业运营过程中发生的缺页率。3)置换算法:最佳置换(OPT)算法。提醒:(1)通过随机数产生一个指令序列,共320条指令。指令的地址按下述原则生 成:50%的指令是顺序执行的;25%的指令是均匀分布在前地址部分;2
13、5%的指令是均匀分布在后地址部分;具体的实行方法是:在0, 319的指令地址之间随机选取一起点口;顺序执行一条指令,即执行地址为m+1的指令;在前地址0, m+1中随机选取一条指令并执行,该指令的地址为N ;顺序执行一条指令,其地址为亦+1的指令; 在后地址m +2, 319中随机选取一条指令并执行;反复上述环节,直到执行320次指令。(2)将指令序列变换为页地址流设页面大小为1K;用户内存容量为4页到32页;用户虚存容里为32K。在用户虚存中,按每K存放10条指令排列虚存地址,即320条指令在虚存 中的存放方式为:第0条第9条指令为第。页(相应虚存地址为0, 9);第10条第19条指令为第1
14、页(相应虚存地址为10, 19);第310条第319条指令为第31页(相应虚存地址为310, 319) o按以上方式,用户指令可组成32页。(3)计算最佳置换(OPT)算法在不同内存容量下的命中率。其中,命中率=1-页面失效次数/页地址流长度题目十六:请求调页存储管理方式的模拟4 1.设计目的通过对页面、页表、地址转换和页面置换过程的模拟,加深对请求调页系统 的原理和实现过程的理解。2.设计内容1)假设每个页面中可存放10条指令,分派给作业的内存块数为4。2)用C语言模拟一个作业的执行过程,该作业共有320条指令,即它的地 址空间为32页,目前它的所有页都尚未调入内存。在模拟过程中,假如所访问
15、 的指令已在内存,则显示其物理地址,并转下一条指令。假如所访问的指令尚未 装入内存,则发生缺页,此时需记录缺页的次数,并将相应页调入内存。假如4 个内存块均已装入该作业,则需进行页面置换,最后显示其物理地址,并转下一 条指令。在所有320指令执行完毕后,请计算并显示作业运营过程中发生的缺页率。3)置换算法:最少访问(LFU)算法。提醒:(1)通过随机数产生一个指令序列,共320条指令。指令的地址按下述原则生 成:5 0%的指令是顺序执行的;25%的指令是均匀分布在前地址部分;25%的指令是均匀分布在后地址部分;具体的实行方法是:在0, 319的指令地址之间随机选取一起点口;顺序执行一条指令,即
16、执行地址为毗1的指令;在前地址0, ni+1中随机选取一条指令并执行,该指令的地址为d ;顺序执行一条指令,其地址为/ +1的指令; 在后地址向+2, 319中随机选取一条指令并执行;反复上述环节,直到执行320次指令。(2)将指令序列变换为页地址流设页面大小为1K;用户内存容量为4页到32页;用户虚存容里为32K。在用户虚存中,按每K存放10条指令排列虚存地址,即320条指令在虚存 中的存放方式为:第0条第9条指令为第0页(相应虚存地址为0, 9);第10条第19条指令为第1页(相应虚存地址为10, 19);第310条第319条指令为第31页(相应虚存地址为310, 319) 0按以上方式,
17、用户指令可组成32页。(3)计算最少访问(LFU)算法在不同内存容量下的命中率。其中,命中率=1-页面失效次数/页地址流长度题目十七:请求调页存储管理方式的模拟51 .设计目的通过对页面、页表、地址转换和页面置换过程的模拟,加深对请求调页系统 的原理和实现过程的理解。2 .设计内容1)假设每个页面中可存放10条指令,分派给作业的内存块数为4。2)用C语言模拟一个作业的执行过程,该作业共有320条指令,即它的地 址空间为32页,目前它的所有页都尚未调入内存。在模拟过程中,假如所访问 的指令已在内存,则显示其物理地址,并转下一条指令。假如所访问的指令尚未 装入内存,则发生缺页,此时需记录缺页的次数
18、,并将相应页调入内存。假如4 个内存块均已装入该作业,则需进行页面置换,最后显示其物理地址,并转下一 条指令。在所有320指令执行完毕后,请计算并显示作业运营过程中发生的缺页率。3)置换算法:最近最不经常使用(NRU)算法。提醒:(1)通过随机数产生一个指令序列,共320条指令。指令的地址按下述原则生 成:50%的指令是顺序执行的;25%的指令是均匀分布在前地址部分;25%的指令是均匀分布在后地址部分;具体的实行方法是:在0, 319的指令地址之间随机选取一起点叱顺序执行一条指令,即执行地址为即+1的指令;在前地址0, m+1中随机选取一条指令并执行,该指令的地址为M ;顺序执行一条指令,其地
19、址为+1的指令;在后地址+2, 319中随机选取一条指令并执行;反复上述环节,直到执行320次指令。(2)将指令序列变换为页地址流设页面大小为1K;用户内存容量为4页到32页;用户虚存容里为32K。在用户虚存中,按每K存放10条指令排列虚存地址,即320条指令在虚存 中的存放方式为:第0条第9条指令为第。页(相应虚存地址为0, 9);2.设计内容以Linux系统进程和线程机制为背景,掌握fork()和clone ()系统调用的 形式和功能以及与其相适应的高级通讯方式。由fork派生的子进程之间通过 pipe通讯,由clone创建的线程之间通过共享内存通讯,对于后者需要考虑互 斥问题。以生产者-
20、消费者问题为例,通过实验理解fork ()和clone ()两个系统 调用的区别。程序规定可以创建4个进程或线程,其中涉及两个生产者和两个消 费者,生产者和消费者之间可以传递数据。题目二:解决机调度一实时调度算法EDF和RMS.设计目的进一步理解解决机调度算法,了解硬实时概念,掌握最早截止期优先调度算 法EDF(Earliest Deadline First)和速率单调调度算法 RMS (Rate Monotonic Scheduling)的可调度条件,并能在可调度情况下给出具体调度结果。1 .设计内容在Linux环境中采用用户级线程模拟实现EDF和RMS两种实时调度算法。给 定一组实时任务,
21、按照EDF算法和RMS算法分别判断是否可调度。在可调度的情 况下,创建一组用户级线程,分别代表各个实时任务,并按算法所拟定的调度顺 序安排各个线程运营,运营时在终端上画出其Gantt图。为避免图形绘制冲淡算 法,Gantl图可用字符表达。题目三:存储管理一动态异长存储资源分派算法.设计目的理解动态异长存储分区资源管理,掌握所需数据结构和管理程序,了解各种 存储分派算法的优点和缺陷。1 .设计内容第10条第19条指令为第1页(相应虚存地址为10, 19);第310条第319条指令为第31页(相应虚存地址为310, 319) 0按以上方式,用户指令可组成32页。(3)计算最近最不经常使用(NRU)
22、算法在不同内存容量下的命中率。其中,命中率=1 .页面失效次数/页地址流长度题目十八:P、V操作及进程同步的实现工1 .设计目的掌握信号量通信方式的一般方法,了解系统实现阻塞和唤醒功能的方法 和技巧。同时掌握进程同步和互斥的概念及实现技术。2 .设计内容1)用语言编程实现P、V原语并用P、V原语描述如下理发师-顾客问题:有一个理发师,一把理发椅和n把提供应等候理发的顾客座的椅子。假如 没有顾客,则理发师便在理发椅子上睡觉;当第一个顾客到来时,必须唤醒该理 发师进行理发;假如理发师正在理发时又有顾客到来,则假如有空椅子可坐,他 就坐下来等待,假如没有空椅子,他就离开理发店。为理发师和顾客各编一段
23、程序描述他们的行为,规定不能带有竞争条件,试 用P、V操作实现。2)实验规定及说明定义信号量并将P、V操作定义为带参数以输出字符串的形式表达理发师和顾客的行为。设计适当的数据结构和函数描述顾客等待队列和唤醒理发师理发过程,以及没有顾客时的阻塞理发师过程。编程时需考虑理发师和顾客相应的程序是并发操作的。提醒:可运用随机函数模拟并发操作。 理发师和顾客两个进程各自调用一个函数模拟生产及消费的操作。题目十九:P、V操作及进程同步的实现2.设计目的掌握信号量通信方式的一般方法,了解系统实现阻塞和唤醒功能的方法 和技巧。同时掌握进程同步和互斥的概念及实现技术。1 .设计内容用语言编程实现P、V原语并用P
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 2023 操作系统 课程设计 任务书 计算机软件 网络
限制150内