操作系统实验总结
实验源码
- 实验一 进程控制 processProject
- 实验二 分页式存储管理 changeAdress
- 实验三 页面置换算法 pageDispatch
- 实验四 进程调度算法 dispachPro
实验一:进程调度 processProject
Paste_Image.png实验过程:
- 定义数据结构pcb和相应的队列(入,出,显示)操作
- 编写函数:
创建进程(-就绪),
进程调度(就绪-执行),
进程阻塞(执行-阻塞),
进程激活(阻塞-就绪),
时间片用完(执行-就绪) - 输入相应的字母,进行相应操作
运行代码 实验源码
命令行输入
node test3.js
实验二:分页式存储管理 changeAdress
目的 :
分页式存储管理系统是内存非连续存储管理中基本的方法,可以通过把一个作业分成多个页面分配到不连续的内存块中去。实验可以通过位示图的方式来模拟内存的使用情况,为每个作业建立页表用于完成正确的地址转换。
内容和步骤:
利用键盘输入本模拟系统的物理块的大小,作业的页表中的块号;完成逻辑地址转换成相应的物理地址的过程。
具体过程:
- 建立一张位示图,用来模拟内存的分配情况,利用随机数产生一组0和1的数对应内存的使用情况。
- 输入块(页)的大小,通过模拟位示图为本作业分配内存空间建立相应的页表(长度不定);
- 录入逻辑地址转换成相应的物理地址
运行代码 实验源码
命令行输入
node main.js
Paste_Image.png实验三 页面置换算法 pageDispatch
目的:
实现请求页式地址转换中出现的缺页现象中,用到的先进先出FIFO、最近最久未使用LRU、最佳OPT置换算法。熟悉文件的基本操作(读、写)。
内容和步骤:
利用键盘输入本模拟系统分配给作业的内存物理块个数,作业在执行过程中的页面调度次序。计算出三种算法的缺页次数和缺页率。
OPT ,FIFO ,LRU
- OPT :(最佳置换算法) 将内存块里面找到未来最晚出现的值(某值将来第一次出现的下标),删掉
- FIFO:(first in first out)将内存块中最早进的最早删了
- LRU:(least recently used) 最近最少使用
具体过程:
1、输入分配给本作业的块数,模拟作业执行的逻辑地址转换成页面调度次序;
2、分别采用OPT、FIFO、LRU置换算法,利用堆栈结构完成页面置换;记录被换出的页面和新换入的页面。
3、将得到的结果写入到文本文件中。
执行结果
Paste_Image.png Paste_Image.png实验四 进程调度算法 dispachPro
目的:
在实验一的基础上实现先来先服务FCFS、短作业优先SJF以及时间片轮转调度算法。
(五)实验内容与步骤:
我们可以根据创建进程的系统时钟,取相对时钟作为进程的到达时间,利用随机数产生每个进程的估计运行时间。利用模拟系统中提供的算法分别计算其相应的周转时间和带权周转时间。
过程:
- 利用绝对时间和相对时钟产生一组进程的到达时刻和运行时间。
- 实现FCFS算法:(First Come First Served )先来先服务
- 实现SJF算法:(Shortest Job First)短工作优先
- 实现时间片轮转算法:首先要求确定时间片的大小,依据进程的到达时间依次加入队列,每次分配一个时间片大小的时间,如果没有完成参与下一次的竞争,当最后需要一个小于等于时间片的时间时本进程完成,同时退出队列。
- 计算每种算法调度后,系统的平均周转时间和平均带权周转时间。
执行
Paste_Image.png Paste_Image.png Paste_Image.png希望有更多小胖友提出宝贵意见,若有关于前端的问题,或者关于大学方面的感想可以私聊我(~):
github
知乎
简书
个人博客
微博
网友评论