学习完《操作系统》课程,通过一个具体的课程设计实践,可使学生对操作系统原理有更进一步的理解与应用,通过设计对操作系统有一个实现的尝试和创新的思维,同时发挥团队协作精神和个人创造能力。
选题:以下可任选一个。
分组:每组不可超过四人(包括四个),每组指定一个组长,每人设计系统中的一部分,集体协商整合。组长能够在设计过程中,能有效的组织和协调各个阶段的任务及融合。
要求:界面自行设计,语言自行选择。每组需写一份课程设计报告,内容包括:
小组成员及分工,系统采用的语言、支撑平台、程序的模块功能分析、程序的流程图、程序功能段的说明及**解释;实验体会与软件评价。
题目一:支持多个进程(线程)并发运行的简单进程(线程)管理模拟系统。
1.实验内容。
学习进程管理的设计与实现,学习和运用操作系统原理,设计一个操作系统子系统的模拟系统。通过该系统的设计调试可增加对操作系统实现的感知性。设计一个允许n个进程并发运行的进程管理的模拟系统。
该系统包括简单的进程控制、同步及通信机构,其进程调度算法可任意选择。分析系统所需的数据结构、算法的流程以及划分各个功能模块。
2.实验原理。
进程管理包括进程的创建、控制、阻塞、唤醒与撤消。进程在运行过程中状态在不断的变化。进程运行过程中,因为竞争资源而需对它们进行同步控制。
所有这些在操作系统中用数据结构pcb来记录,系统通过pcb控制进程的运行。
在单处理机系统中,多道程序的引入,需要进程的调度程序来选择一个进程进行运行。比如常用的先来先服务、短进程优和优先级优先等等,也可以选择它们的结合调度算法。
题目二:文件系统设计。
1. 实验内容。
通过一个简单的二级文件系统设计,加深对文件系统的内部功能以及内部实现的理解。要求模拟采用二级目录结构的磁盘文件系统的文件操作能实现以下几条命令,用输入命令来模拟用户程序中调用的文件操作:
login 用户登录。
dir 列文件目录(列出文件名、物理地址、保护码和文件长度)
create 创建文件。
delete 删除文件。
open 打开文件。
close 关闭文件。
read 读文件。
write 写文件。
源文件可以进行读写保护。
2.实验原理。
文件系统管理中用到的数据结构有:
首先应确定文件系统的数据结构:主目录、子目录及活动文件等。主目录和子目录都以文件的形式存放于磁盘,这样便于查找和修改。
用户创建的文件,可以编号存储于磁盘上。如:file0,file1,file2…并以编号作为物理地址,在目录中进行登记。
题目三:模拟请求分页存储系统。
具体要求。模拟**请求分页调度算法opt、fifo、lru、clock等模拟页面调度算法,并提供性能比较分析功能。通过编写和调试存储管理的模拟程序以加深对存储管理方案的理解。
通过编写和调试地址转换过程的模拟程序以加强对地址转换过程的了解。
题目四:磁盘调度算法。
具体要求:编程序实现下述磁盘调度算法,并求出每种算法的平均寻道长度:
1、先来先服务算法(fcfs)
2、最短寻道时间优先算法(sstf)
3、扫描算法(scan)
4、循环扫描算法(cscan)
题目五:编程序模拟银行家算法,要求能体现算法的全过程。
实验内容: m个并发进程,p1,p2,……pm;他们共享n类资源,通过银行家算法在资源分配前检测是否安全,在安全的前提下进行分配,避免死锁的产生。
具体要求:1.实现银行家算法,能判断系统的安全状态,避免系统死锁。
2.能显示每个进程的当前分配状况,能显示系统空闲的资源数量。
3.能输入或自动产生资源请求,并利用银行家算法进行分配。
题目六:进程通信。
具体要求:1. 进程的创建和控制。
2. 进程的软中断通信
3. 进程的管道通信
题目七:生产者、消费者问题
题目八:读者-写者问题。
具体要求:使用多线程和信号量机制实现经典的读者写者问题,每个线程代表一个读者或一个写者。每个线程按照相应测试数据文件的要求进行读写操作。
请用信号量机制分别实现读者优先和写者优先的读者-写者问题。
题目九:spooling假脱机输入输出模拟。
具体要求:设计一个sp00ling输出进程和两个请求输出的用户进程,以及一个sp00ling输出服务程序。当请求输出的用户进程希望输出一系列信息时,调用输出服务程序,由输出服务程序将该信息送入输出井。
待遇到一个输出结束标志时,表示进程该次的输出文件输出结束。之后,申请一个输出请求块(用来记录请求输出的用户进程的名字、信息在输出井中的位置、要输出信息的长度等),等待sp00ling进程进行输出。
附:题目十:基于静态优先权和响应比的进程管理系统的设计(2~3人)
要求:(1)设计一个完整的进程调度系统,系统中至少包括5个进程;(2)定义pcb,在pcb中定义进程的初始优先权(用整数表示);(3)采用链表管理就绪队列;(4)结果要能够显示出进程的调度序列及初始优先权、响应比等必要信息(5)设计的输入数据要能体现算法的思想。
题目十一:基于多级反馈队列的进程管理系统的设计(2~3人)
要求:(1)设计**队列,每一队列至少三个进程;(2)定义pcb(3)为每一队列设置不同的时间片,后一队列通常是前一队列的2倍,依次类推(4)采用链表管理就绪队列;(5)结果要能够显示出进程的调度过程。
题目十二:基于固定分区分配的存储器管理系统的设计(2-3人)
要求:(1)建立一张分区说明表;(2)至少提供4个作业;(3)模拟作业的分配过程;(4)模拟作业的**过程(5)能够显示每一次分配和**的结果。
题目十三:基于首次适应算法的存储器管理系统的设计(2-3人)
要求:(1)建立一张空闲分区链;(2)至少提供4个作业;(3)模拟作业的分配过程;(4)模拟作业的**过程(4种**情况,考虑空间合并)(5)能够显示每一次分配和**的结果。
题目十四:基于循环首次适应算法的存储器管理系统的设计(2-3人)
要求:(1)建立一张空闲分区链;(2)至少提供4个作业;(3)模拟作业的分配过程;(4)模拟作业的**过程(4种**情况,考虑空间合并)(5)能够显示每一次分配和**的结果。
题目十五:基于最佳适应算法的存储器管理系统的设计(2-3人)
要求:(1)建立一张空闲分区链;(2)至少提供4个作业;(3)模拟作业的分配过程;(4)模拟作业的**过程(4种**情况,考虑空间合并)(5)能够显示每一次分配和**的结果。
题目十六:基于最坏(差)适应算法的存储器管理系统的设计 (2-3人)
要求:(1)建立一张空闲分区链;(2)至少提供4个作业;(3)模拟作业的分配过程;(4)模拟作业的**过程(4种**情况,考虑空间合并)(5)能够显示每一次分配和**的结果。
题目十七:基本分页存储管理系统的设计(1-2人)
要求:(1)建立页表;(2)设计地址变换机构;(3)将变换后的结果显示出来。
题目十八:基本分段存储管理系统的设计(1-2人)
要求:(1)建立段表;(2)设计地址变换机构;(3)将变换后的结果显示出来。
题目十九:基于二级文件目录的文件管理系统设计(2-3人)
要求:(1)实现建立文件、打开文件、关闭文件、撤消文件;(2)建立相应的数据结构;
题目二十:基于多级文件目录的文件管理系统设计(2-3人)
要求:(1)实现建立文件、打开文件、读文件、写文件;(2)建立相应的数据结构;
题目二十一:模拟实现一个简单的shell:要求①实现一条内部命令完成将某文件内包含指定字符串的行复制形成一个新文件的功能;②实现一条外部命令。
题目二十二:操作系统整体设计(4人)
要求:设计一个小型的操作系统,重点关注接口处的设计,主要包括打开文件(文件管理)、为文件分配内存(存储管理,选择任意的内存分配方法)和进程调度(处理机管理,选择任意的调度算法),至少3个进程。
题目二十三:自拟题目。
lly操作系统课程设计题目
操作系统课程设计。一 基本要求。1.每位同学至少完成1个题目。2.程序验收后,要提交如下材料 1 课程设计报告。a4纸打印,同时提交电子版。2 源程序。加注释,参考的模块或 需要加以声明,标注出处。二 题目。1.进程调度算法。编程实现进程调度的基本过程。设计要求 1 能够选择进程调度算法 先来先服务...
2019操作系统课程设计题目
课程设计题目 文件系统的实现。一 实验目的。用c或c 编写和调试一个简单的类linux的文件系统 非可视化界面 模拟文件管理的工作过程。加深理解文件系统的内部功能和内部实现。二 基本要求。使用1m字节内存空间模拟一个磁盘分区,磁盘的存取单元是磁盘块,一个盘块的大小是节,1m字节共有4k个块。2.1 ...
操作系统课程设计题目及要求
5 最近未使用算法 nur 命中率 页面失效次数 页地址流长度。分析 本实验的程序设计基本上按照实验内容进行。即首先用srand 和rand 函数定义和产生指令序列,然后将指令序列变换成相应的页地址流,并针对不同的算法计算出相应的命中率。1 通过随机数产生一个指令序列,共320条指令。指令的地址按下...