linux系统下实现银行家算法
674
2022-05-30
操作系统课程设计汇总
来源:网络收集
这次海轰选择是题目二,感觉有点难,得费一点时间
其他的题目以后有时间可以尝试一下
再不写C++,就快凉了
题目一:支持多个进程(线程)并发运行的简单进程(线程)管理模拟系统
1.实验内容
学习进程管理的设计与实现,学习和运用操作系统原理,设计一个操作系统子系统的模拟系统。通过该系统的设计调试可增加对操作系统实现的感知性。设计一个允许n个进程并发运行的进程管理的模拟系统。该系统包括简单的进程控制、同步及通信机构,其进程调度算法可任意选择。分析系统所需的数据结构、算法的流程以及划分各个功能模块。
2.实验原理
进程管理包括进程的创建、控制、阻塞、唤醒与撤消。进程在运行过程中状态在不断的变化。进程运行过程中,因为竞争资源而需对它们进行同步控制。所有这些在操作系统中用数据结构PCB来记录,系统通过PCB控制进程的运行。
在单处理机系统中,多道程序的引入,需要进程的调度程序来选择一个进程进行运行。比如常用的先来先服务、短进程优和优先级优先等等,也可以选择它们的结合调度算法。
题目二:文件系统设计
1、实验内容
通过一个简单的二级文件系统设计,加深对文件系统的内部功能以及内部实现的理解。要求模拟采用二级目录结构的磁盘文件系统的文件操作能实现以下几条命令,用输入命令来模拟用户程序中调用的文件操作:
Login 用户登录
Dir 列文件目录(列出文件名、物理地址、保护码和文件长度)
Create 创建文件
Delete 删除文件
Open 打开文件
Close 关闭文件
Read 读文件
Write 写文件
源文件可以进行读写保护
2、实验原理
文件系统管理中用到的数据结构有:
首先应确定文件系统的数据结构:主目录、子目录及活动文件等。主目录和子目录都以文件的形式存放于磁盘,这样便于查找和修改。
用户创建的文件,可以编号存储于磁盘上。如:file0,file1,file2…并以编号作为物理地址,在目录中进行登记。
题目三:模拟请求分页存储系统
具体要求:
模拟仿真请求分页调度算法OPT、FIFO、LRU、CLOCK等模拟页面调度算法,并提供性能比较分析功能。通过编写和调试存储管理的模拟程序以加深对存储管理方案的理解。通过编写和调试地址转换过程的模拟程序以加强对地址转换过程的了解。
题目四:磁盘调度算法
具体要求:编程序实现下述磁盘调度算法,并求出每种算法的平均寻道长度,
先来先服务算法(FCFS)
最短寻道时间优先算法(SSTF)
扫描算法(SCAN)
循环扫描算法(CSCAN)
题目五:编程序模拟银行家算法,要求能体现算法的全过程。
实验内容:
m个并发进程,P1,P2,……PM;他们共享n类资源,通过银行家算法在资源分配前检测是否安全,在安全的前提下进行分配,避免死锁的产生。
具体要求:
实现银行家算法,能判断系统的安全状态,避免系统死锁。
能显示每个进程的当前分配状况,能显示系统空闲的资源数量。
能输入或自动产生资源请求,并利用银行家算法进行分配。
题目六:进程通信
具体要求:
进程的创建和控制
进程的软中断通信
进程的管道通信
题目七:读者-写者问题
具体要求:
使用多线程和信号量机制实现经典的读者写者问题,每个线程代表一个读者或一个写者。每个线程按照相应测试数据文件的要求进行读写操作。请用信号量机制分别实现读者优先和写者优先的读者-写者问题。
题目八:SPOOLing假脱机输入输出模拟
具体要求:
设计一个SP00LING输出进程和两个请求输出的用户进程,以及一个SP00LING输出服务程序。当请求输出的用户进程希望输出一系列信息时,调用输出服务程序,由输出服务程序将该信息送入输出井。待遇到一个输出结束标志时,表示进程该次的输出文件输出结束。之后,申请一个输出请求块(用来记录请求输出的用户进程的名字、信息在输出井中的位置、要输出信息的长度等),等待SP00LING进程进行输出。
题目九:基于静态优先权和响应比的进程管理系统的设计
要求:
设计一个完整的进程调度系统,系统中至少包括5个进程;
定义PCB,在PCB中定义进程的初始优先权(用整数表示);
采用链表管理就绪队列;
结果要能够显示出进程的调度序列及初始优先权、响应比等必要信息
设计的输入数据要能体现算法的思想
题目十:基于多级反馈队列的进程管理系统的设计
要求:
设计三级队列,每一队列至少三个进程;
定义PCB
为每一队列设置不同的时间片,后一队列通常是前一队列的2倍,依次类推
采用链表管理就绪队列;
结果要能够显示出进程的调度过程
题目十一:基于固定分区分配的存储器管理系统的设计
要求:
建立一张分区说明表;
至少提供4个作业;
模拟作业的分配过程;
模拟作业的回收过程
能够显示每一次分配和回收的结果
题目十二:基于首次适应算法的存储器管理系统的设计
要求:
(1)建立一张空闲分区链;
(2)至少提供4个作业;
(3)模拟作业的分配过程;
(4)模拟作业的回收过程(4种回收情况,考虑空间合并)
(5)能够显示每一次分配和回收的结果
题目十三:基于循环首次适应算法的存储器管理系统的设计
要求:
(1)建立一张空闲分区链;
(2)至少提供4个作业;
(3)模拟作业的分配过程;
(4)模拟作业的回收过程(4种回收情况,考虑空间合并)
(5)能够显示每一次分配和回收的结果
题目十四:基于最佳适应算法的存储器管理系统的设计
要求:
(1)建立一张空闲分区链;
(2)至少提供4个作业;
(3)模拟作业的分配过程;
(4)模拟作业的回收过程(4种回收情况,考虑空间合并)
(5)能够显示每一次分配和回收的结果
题目十五:基于最坏(差)适应算法的存储器管理系统的设计
要求:
(1)建立一张空闲分区链;
(2)至少提供4个作业;
(3)模拟作业的分配过程;
(4)模拟作业的回收过程(4种回收情况,考虑空间合并)
(5)能够显示每一次分配和回收的结果
题目十六:基本分页存储管理系统的设计
要求:
(1)建立页表;
(2)设计地址变换机构;
(3)将变换后的结果显示出来。
题目十七:基本分段存储管理系统的设计
要求:
(1)建立段表;
(2)设计地址变换机构;
(3)将变换后的结果显示出来。
题目十八:基于二级文件目录的文件管理系统设计
要求:
(1)实现建立文件、打开文件、关闭文件、撤消文件;
(2)建立相应的数据结构;
题目十九:基于多级文件目录的文件管理系统设计
要求:
(1)实现建立文件、打开文件、读文件、写文件;
(2)建立相应的数据结构
题目二十:请求分页存储管理系统的设计
要求:
(1)从置换算法中任选2种;
(2)建立页表;
(3)设计的输入数据要能体现算法的思想
(4)事先假定分配的物理块是空闲的;
(5)求出各置换算法中的缺页次数和置换次数
题目二十一:模拟实现一个简单的shell
要求
①实现一条内部命令完成将某文件内包含指定字符串的行复制形成一个新文件的功能
②实现一条外部命令
题目二十二:操作系统整体设计
要求:
设计一个小型的操作系统,重点关注接口处的设计,主要包括打开文件(文件管理)、为文件分配内存(存储管理,选择任意的内存分配方法)和进程调度(处理机管理,选择任意的调度算法),至少3个进程。
题目二十三:哲学家进餐问题
要求:
建立相应的数据结构,编程实现哲学家进餐的过程。
题目二十四:linux任务管理器
要求:
实现一个linux任务管理器界面操作 可查看当前系统进程并且可以简单的管理进程
题目二十五:文件加密系统
要求:
1.采用置换或对称算法对文件进行加密和解密(如凯撒,RSA等等)。
2.加密后文件的大小不变,采用界面设计模拟出一个简单的系统
3.解密时输入解密密钥,完成对密文进行解密。
任务调度 数据结构
版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。