![](https://img-blog.csdnimg.cn/20190927151132530.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
操作系统实验
文章平均质量分 63
大学计算机操作系统课程中的实验源码、报告以及运行结果图,提供给本科阶段的操作系统学习人员参考
内含有:操作系统FCFS\SJF算法、生产者消费者模型算法、银行家算法、时间片轮转算法、虚拟内存置换算法等
Neymessi_JR
彼方尚有荣光在
展开
-
操作系统实验(七)磁盘调度算法C++
问题描述:设计程序模拟先来先服务FCFS、最短寻道时间优先SSTF、SCAN和循环SCAN算法的工作过程。假设有n个磁道号所组成的磁道访问序列,给定开始磁道号m和磁头移动的方向(正向或者反向),分别利用不同的磁盘调度算法访问磁道序列,给出每一次访问的磁头移动距离,计算每种算法的平均寻道长度。程序要求:1)利用先来先服务FCFS、最短寻道时间优先SSTF、SCAN和循环SCAN算法模拟磁道访问过程。2)模拟四种算法的磁道访问过程,给出每个磁道访问的磁头移动距离。3)输入:磁道个数n和磁道访问序列,开始磁道号m原创 2022-07-10 20:39:32 · 1403 阅读 · 0 评论 -
操作系统实验(六)请求分页存储管理(C++)
假设:表1 进程P1的页表页号物理块号存在位P03110211304015060P=1表示在内存;P=0表示不在内存;A=1表示最近被访问;A=0表示最近未被访问;M=1表示被修改;M=0表示未被修改。表2 内存情况物理块号页号访问位A修改位M指针(指向下一物理块号)04111120132230100假设初始情况下,替换指针指向0号物理块,空闲块指针指向2号物理块,两个指针分别作为头指针构成“已用块循环队列”和“空闲块循环队列”。进程P1在某次执行过程中依次访问如下逻辑地址(其中R表示读取,W表示修改):原创 2022-07-10 20:15:23 · 2247 阅读 · 0 评论 -
操作系统实验(五)虚拟内存替换算法C++代码实现
设计程序模拟先进先出FIFO,最佳置换OPI和最近最久未使用LRU页面置换算法的工作过程。假设内存中分配给每个进程的最小物理块数为m,在进程运行过程中要访问的页面个数为n,页面访问序列为P1, … ,Pn,分别利用不同的页面置换算法调度进程的页面访问序列,给出页面访问序列的置换过程,计算每种算法缺页次数和缺页率。程序要求如下:1)利用先进先出FIFO,最佳置换OPI和最近最久未使用LRU三种页面置换算法模拟页面访问过程。2)模拟三种算法的页面置换过程,给出每个页面访问时的内存分配情况。3)输入:最小物理块数原创 2022-07-10 20:00:43 · 915 阅读 · 0 评论 -
操作系统实验(四)银行家算法C++语言实现
问题描述:设计程序模拟预防进程死锁的银行家算法的工作过程。假设系统中有n个进程P1, … ,Pn,有m类可分配的资源R1, … ,Rm,在T0时刻,进程Pi分配到的j类资源为Allocationij个,它还需要j类资源Need ij个,系统目前剩余j类资源Workj个,现采用银行家算法进行进程资源分配预防死锁的发生。程序要求:1)判断当前状态是否安全,如果安全给出安全序列;如果不安全给出理由。2)对于下一个时刻T1,某个进程Pk会提出请求Request(R1, … ,Rm),判断分配给P k进程请求的资源之原创 2022-07-09 15:50:55 · 2023 阅读 · 1 评论 -
操作系统实验(三)时间片轮转算法、高响应比优先算法C++代码实现
问题描述:设计程序模拟进程的高响应比优先调度和时间片轮转RR调度过程。假设有n个进程分别在T1, … ,Tn时刻到达系统,它们需要的服务时间分别为S1, … ,Sn。如果选择RR算法,则需要指定时间片大小q,采用时间片轮转RR进程调度算法进行调度,如果选择高响应比优先调度算法,则可以直接调度,计算每个进程的完成时间,周转时间和带权周转时间,并且统计n个进程的平均周转时间和平均带权周转时间。程序要求如下:1)进程个数n;每个进程的到达时间T1, … ,Tn和服务时间S1, … ,Sn;如果选择时间片轮转法,则原创 2022-07-09 11:43:25 · 1073 阅读 · 0 评论 -
操作系统实验(二)生产着消费者模型C++代码实现
问题描述:以生产者消费者模型为基础,创建一个控制台进程,在该进程中创建多个写者线程和多个读者线程(分别模拟生产者和消费者)。1. 写者线程写入数据,然后将数据放置在一个空缓冲区中供读者线程读取。2. 读者线程从缓冲区中获得数据,然后释放缓冲区。3. 当写者线程写入数据时,如果没有空缓冲区可用,那么写者线程必须等待读者线程释放出一个空缓冲区。4. 当读者线程读取数据时,如果没有满的缓冲区,那么读入线程将被阻塞,直到新的数据被写进去。本实验共有以下两个小部分组成:1、互斥信号量Mutex原创 2022-07-09 11:37:33 · 843 阅读 · 0 评论 -
操作系统实验(一)FCFS、SJF调度方式C++代码实现
问题描述:设计程序模拟进程的先来先服务FCFS和短作业优先SJF调度过程。假设有n个进程分别在T1, … ,Tn时刻到达系统,它们需要的服务时间分别为S1, … ,Sn。分别采用先来先服务FCFS和短作业优先SJF进程调度算法进行调度,计算每个进程的完成时间,周转时间和带权周转时间,并且统计n个进程的平均周转时间和平均带权周转时间。程序要求如下: 2)要求采用先来先服务FCFS和短作业优先SJF分别调度进程运行,计算每个进程的周转时间,带权周转时间,并且计算所有进程的平均周转时间,带权平均周转时间;3)输出原创 2022-07-09 11:33:34 · 1634 阅读 · 0 评论