2022年操作系统课程设计任务书 .pdf
《2022年操作系统课程设计任务书 .pdf》由会员分享,可在线阅读,更多相关《2022年操作系统课程设计任务书 .pdf(27页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、.专业整理 . .学习帮手 . 2016-2017 学年第一学期操作系统课程设计任务书依照大纲和课程内容实践特点,结合操作系统、LINUX操作系统和嵌入式程序设计课程主要内容,课设的具体要求及任务如下:一、设计成果的要求课程设计应严格按照要求完成,在系统调试成功后, 需要提供操作系统课程设计报告,具体包括:(1) 设计目的(1) 设计内容(3)设计准备(理论、技术)(4)设计过程(设计思想、代码实现)(5)设计结果并分析(6)系统的结构、原理框图和模块等的详细说明(7) 用户使用说明书和参考资料(8)设计体会。注:1. (1)- (7)项可以打印,( 8)设计体会必须手写。 2. 报告的封皮、
2、封底,采用给定的模板;报告的内容,在教师的指导下,独立完成,自主排版,不做统一要求。二、设计任务(每名同学选一题,独立完成)题目一 :进程与线程 Linux 进程与线程通讯1. 设计目的深刻理解线程和进程的概念, 掌握线程与进程在组成成分上的差别以及与其相适应的通讯方式和应用目标。Linux 系统的 fork()保持了 UNIX的经典语义,被创建的进程具有独立于父进程的地址空间,二者之间的通讯通常可采用pipe 机制, clone ()是 Linux系统特有的系统调用,可以通过参数确定父子进程之间是否共享存储空间等资源。在地址空间等资源共享的情况下,clone 实质相当于创建了一个轻进程或线程
3、, 这是 clone 的通常用法。实际在 Linux 系统中,fork 以及用户级线程 pthread都是基于 clone 实现的。2. 设计内容以 Linux 系统进程和线程机制为背景, 掌握 fork()和 clone()系统调用的名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 1 页,共 27 页 - - - - - - - - - .专业整理 . .学习帮手 . 形式和功能以及与其相适应的高级通讯方式。由fork 派生的子进程之间通过pipe 通讯,由 clone 创建的线程
4、之间通过共享内存通讯,对于后者需要考虑互斥问题。以生产者 - 消费者问题为例,通过实验理解fork ()和 clone ()两个系统调用的区别。 程序要求能够创建4 个进程或线程, 其中包括两个生产者和两个消费者,生产者和消费者之间能够传递数据。题目二 :处理机调度实时调度算法EDF和 RMS 1. 设计目的深入理解处理机调度算法, 了解硬实时概念, 掌握最早截止期优先调度算法EDF(Earliest Deadline First)和速率单调调度算法RMS (Rate Monotonic Scheduling )的可调度条件,并能在可调度情况下给出具体调度结果。2. 设计内容在 Linux 环
5、境中采用用户级线程模拟实现EDF和 RMS 两种实时调度算法。 给定一组实时任务, 按照 EDF算法和 RMS 算法分别判断是否可调度。 在可调度的情况下,创建一组用户级线程, 分别代表各个实时任务, 并按算法所确定的调度次序安排各个线程运行, 运行时在终端上画出其Gantt 图。为避免图形绘制冲淡算法,Gantt 图可用字符表示。题目三 :存储管理动态异长存储资源分配算法1. 设计目的理解动态异长存储分区资源管理,掌握所需数据结构和管理程序, 了解各种存储分配算法的优点和缺点。2. 设计内容(1)分析 UNIX最先适应( First Fit,FF)存储分配算法,即map数据结构、存储分配函数
6、 malloc() 和存储释放函数 mfree() ,找出与算法有关的成分。(2) 修改上述与算法有关的成分,使其分别体现BF (Best Fit,最佳适应)分配原则和 WF(Worst Fit ,最环适应 )分配原则。题目四:文件系统 Hash结构文件名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 2 页,共 27 页 - - - - - - - - - .专业整理 . .学习帮手 . 1. 设计目的理解 Linux 文件系统的内部技术,掌握Linux 与文件有关的系统调用命令,并
7、在此基础上建立面向随机检索的Hash结构文件。 Linux系统保持 UNIX文件系统的风格,提供流式文件界面,这种结构具有简洁灵活的特点,但并不直接支持记录式文件和关键字检索。本设计在Linux文件系统基础上,设计一组库函数,以提供对随机检索的支持。2. 设计内容(1)参考教程中 Hash文件构造算法,设计一组Hash文件函数,包括 Hash文件创建、打开、关闭、读、写等。(2)编写一个测试程序,通过记录保存、查找、删除等操作,检查上述Hash文件是否实现相关功能。题目五:设备管理 Linux 设备驱动程序安装1. 设计目的认识 Linux 设备的种类和设备工作方式, 理解设备驱动程序的工作原
8、理, 掌握设备驱动程序的编写规范,能编写并安装简单的设备驱动程序。2. 设计内容在 Linux 系统中,编写一个简单的字符型设备驱动程序模块,设备具有独占特性,可执行读和写操作,相关系统调用为open,close,read,write。Open和 close 分别相当于请求和释放设备,read 和 write将内容保存在设备模块内的绥冲区中。设备模块可动态注册和卸载,并建立与之对应的特殊文件/dev/mydev 。题目六: Bootloader 引导程序设计与实现1. 设计目的认识 Bootloader的作用,深入理解 Bootloader 的编程思想。 以典型的引导程序 vivi为例,对 v
9、ivi程序的架构, vivi的启动流程,使用vivi完成系统引导程序的设计方法形成深刻的理解和认识。2. 设计内容名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 3 页,共 27 页 - - - - - - - - - .专业整理 . .学习帮手 . 在嵌入式操作系统中, Bootloader 的作用与 PC机上的 BIOS类似,通过Bootloader 可以完成对系统板上的主要部件如CPU 、SDRAM、Flash 、串行口等进行初始化。当运行操作系统时,它会在操作系统内核运行之前
10、运行,通过它,可以分配内存空间的映射, 从而将系统的软硬件环境带到一个合适的状态,以便为最终调用操作系统准备好正确的环境。本设计要求同学首先分析老师提供的vivi程序源代码,理清 vivi程序的架构分为哪几个模块,然后根据分析vivi程序的执行流程具体分为哪几个阶段,各阶段的主要任务是什么。最后要求同学编写内存映射初始化函数mem_map_init() 和内存管理单元初始化函数mmu_init() 。题目七:嵌入式linux下键盘驱动程序的设计与实现1. 设计目的通过完成对嵌入式linux下键盘驱动程序的设计和调试,掌握嵌入式 linux驱动程序的编写方法, 理解驱动程序动态模块的调试方法,掌
11、握驱动程序添加到内核的流程。2. 设计内容设备驱动程序是操作系统内核和机器硬件之间的接口。设备驱动程序为应用程序屏蔽了硬件的细节, 故在应用程序看来, 硬件设备只是一个设备文件,应用程序可以像操作普通文件一样对硬件设备进行操作。本设计要求同学按照标准设备驱动程序的步骤编写驱动程序。由于键盘的设备驱动程序属于字符设备的驱动,因此,应当按照字符设备的规则编写。要求同学编写键盘设备文件file_operations结构,以及以下几个键盘操作函数: 键盘控制函数 Kbd_Ioctl()、关闭键盘设备函数Kbd_Close() 、打开键盘设备函数Kbd_Open()、获取键值函数 Kbd_Getkey(
12、) 、键盘服务子程序Kbd_ISR()、键盘设备的硬件初始化函数Setup_Kbd() 、注册键盘设备使用函数KbdInit()和卸载键盘设备函数 Kbd_Exit() 。题目八:首次适应算法的动态分区分配方式模拟1. 设计目的名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 4 页,共 27 页 - - - - - - - - - .专业整理 . .学习帮手 . 了解动态分区分配中使用的数据结构和分配算法,并进一步加深对动态分区存储管理方式及其实现过程的理解。2. 设计内容1)用 C
13、语言实现采用首次适应算法的动态分区分配过程alloc()和回收过程free()。其中,空闲分区通过空闲分区链表来管理,在进行内存分配时,系统优先使用空闲区低端的空间。2)假设初始状态如下,可用的内存空间为640KB ,并有下列的请求序列;作业 1 申请 130KB 作业 2 申请 60KB 作业 3 申请 100KB 作业 2 释放 60KB 作业 4 申请 200 KB 作业 3 释放 100 KB 作业 1 释放 130 KB 作业 5 申请 140 KB 作业 6 申请 60 KB 作业 7 申请 50KB 作业 6 释放 60 KB 请采用首次适应算法进行内存块的分配和回收,同时显示内
14、存块分配和回收后空闲内存分区链的情况。题目九:循环首次适应算法的动态分区分配方式模拟1. 设计目的了解动态分区分配中使用的数据结构和分配算法,并进一步加深对动态分区存储管理方式及其实现过程的理解。2. 设计内容1)用 C语言实现采用循环首次适应算法的动态分区分配过程alloc()和回收过程 free()。其中,空闲分区通过空闲分区链表来管理,在进行内存分配时,系统优先使用空闲区低端的空间。名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 5 页,共 27 页 - - - - - - -
15、 - - .专业整理 . .学习帮手 . 2)假设初始状态如下,可用的内存空间为640KB ,并有下列的请求序列;作业 1 申请 130KB 作业 2 申请 60KB 作业 3 申请 100KB 作业 2 释放 60KB 作业 4 申请 200 KB 作业 3 释放 100 KB 作业 1 释放 130 KB 作业 5 申请 140 KB 作业 6 申请 60 KB 作业 7 申请 50KB 作业 6 释放 60 KB 请采用循环首次适应算法进行内存块的分配和回收,同时显示内存块分配和回收后空闲内存分区链的情况。题目十:最佳适应算法的动态分区分配方式模拟1设计目的了解动态分区分配中使用的数据结
16、构和分配算法,并进一步加深对动态分区存储管理方式及其实现过程的理解。2设计内容1)用 C语言分别实现采用最佳适应算法的动态分区分配过程alloc()和回收过程 free()。其中,空闲分区通过空闲分区链表来管理,在进行内存分配时,系统优先使用空闲区低端的空间。2)假设初始状态如下,可用的内存空间为640KB ,并有下列的请求序列;作业 1 申请 130KB 作业 2 申请 60KB 作业 3 申请 100KB 作业 2 释放 60KB 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第
17、6 页,共 27 页 - - - - - - - - - .专业整理 . .学习帮手 . 作业 4 申请 200 KB 作业 3 释放 100 KB 作业 1 释放 130 KB 作业 5 申请 140 KB 作业 6 申请 60 KB 作业 7 申请 50KB 作业 6 释放 60 KB 请采用最佳适应算法进行内存块的分配和回收,同时显示内存块分配和回收后空闲内存分区链的情况。题目十一:最坏适应算法的动态分区分配方式模拟1设计目的了解动态分区分配中使用的数据结构和分配算法,并进一步加深对动态分区存储管理方式及其实现过程的理解。2设计内容1)用 C语言分别实现采用最坏适应算法的动态分区分配过程
18、alloc()和回收过程 free()。其中,空闲分区通过空闲分区链表来管理,在进行内存分配时,系统优先使用空闲区低端的空间。2)假设初始状态如下,可用的内存空间为640KB ,并有下列的请求序列;作业 1 申请 130KB 作业 2 申请 60KB 作业 3 申请 100KB 作业 2 释放 60KB 作业 4 申请 200 KB 作业 3 释放 100 KB 作业 1 释放 130 KB 作业 5 申请 140 KB 作业 6 申请 60 KB 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - -
19、 - - 第 7 页,共 27 页 - - - - - - - - - .专业整理 . .学习帮手 . 作业 7 申请 50KB 作业 6 释放 60 KB 请采用最坏适应算法进行内存块的分配和回收,同时显示内存块分配和回收后空闲内存分区链的情况。题目十二:进程调度模拟算法1设计目的通过算法的模拟加深对进程概念和进程调度过程的理解,掌握进程状态之间的切换,同时掌握进程调度算法的实现方法和技巧。2设计内容(1) 用 C语言来实现对 N个进程采用动态优先权优先算法的进程调度。(2) 每个用来标识进程的进程控制块PCB用结构来描述,包括以下字段:进程标识数 ID;进程优先数 PRIORITY ,并规
20、定优先数越大的进程,其优先权越高;进程已占用的 CPU 时间 CPUTIME ;进程还需占用的CPU 时间 ALLTIME 。当进程运行完毕时, ALLTIME变为 0;进程的阻塞时间STARTBLOCK, 表示当进程再运行STARTBLOCK个时间片后,进程将进入阻塞状态;进程被阻塞的时间BLOCKTIME,表示已阻塞的进程再等待BLOCKTIME个时间片后,进程将转换成就绪状态;进程状态 STATE ;队列指针 NEXT ,用来将 PCB排成队列。(3) 优先数改变的原则:进程在就绪队列中呆一个时间片,优先数增加1;进程每运行一个时间片,优先数减3。(4) 假设在调度前,系统中有5 个进程
21、,它们的初始状态如下:ID 0 1 2 3 4 PRIORITY 9 38 30 29 0 CPUTIME 0 0 0 0 0 ALLTIME 3 3 6 3 4 STARTBLOCK 2 -1 -1 -1 -1 BLOCKTIME 3 0 0 0 0 STATE READY READY READY READY READY (5) 为了清楚地观察进程的调度过程,程序应将每个时间片内的进程的情况显示出来,参照的具体格式如下:RUNNING PROG: i READY_QUEUE:-id1-id2 BLOCK_QUEUE:-id3-id4 = ID 0 1 2 3 4 名师资料总结 - - -精品
22、资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 8 页,共 27 页 - - - - - - - - - .专业整理 . .学习帮手 . PRIORITY P0 P1 P2 P3 P4 CPUTIME C0 C1 C2 C3 C4 ALLTIME A0 A1 A2 A3 A4 STARTBLOCK T0 T1 T2 T3 T4BLOCKTIME B0 B1 B2 B3 B4 STATE S0 S1 S2 S3 S4 题目十三:请求调页存储管理方式的模拟1 1设计目的通过对页面、 页表、地址转换和页面置换过程的模
23、拟,加深对请求调页系统的原理和实现过程的理解。2设计内容 1 )假设每个页面中可存放10 条指令,分配给作业的内存块数为4。 2 )用 c 语言模拟一个作业的执行过程,该作业共有320 条指令,即它的地址空间为 32 页,目前它的所有页都还未调入内存。在模拟过程中,如果所访问的指令已在内存, 则显示其物理地址, 并转下一条指令。 如果所访问的指令还未装入内存,则发生缺页,此时需记录缺页的次数,并将相应页调入内存。如果4个内存块均已装入该作业, 则需进行页面置换, 最后显示其物理地址, 并转下一条指令。在所有 320 指令执行完毕后,请计算并显示作业运行过程中发生的缺页率。 3 )置换算法:采用
24、先进先出(FIFO)置换算法。提示: (1)通过随机数产生一个指令序列,共320 条指令。指令的地址按下述原则生成: 50%的指令是顺序执行的; 25%的指令是均匀分布在前地址部分; 25%的指令是均匀分布在后地址部分;具体的实施方法是: 在0 ,319的指令地址之间随机选取一起点m ; 顺序执行一条指令,即执行地址为m+1的指令; 在前地址 0 ,m+1中随机选取一条指令并执行,该指令的地址为m ; 顺序执行一条指令,其地址为m +1 的指令; 在后地址 m+2,319 中随机选取一条指令并执行; 重复上述步骤,直到执行320 次指令。(2)将指令序列变换为页地址流名师资料总结 - - -精
25、品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 9 页,共 27 页 - - - - - - - - - .专业整理 . .学习帮手 . 设页面大小为 1K; 用户内存容量为 4 页到 32 页; 用户虚存容里为 32K。在用户虚存中,按每K存放 10 条指令排列虚存地址,即320 条指令在虚存中的存放方式为:第 0 条第 9 条指令为第 0 页(对应虚存地址为 0 ,9 );第 10 条第 19 条指令为第 1 页(对应虚存地址为 10 ,19 );第 310 条第 319 条指令为第 31 页(对应虚存地
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 2022年操作系统课程设计任务书 2022 操作系统 课程设计 任务书
限制150内