实验七 磁盘调度(8页).doc
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_05.gif)
《实验七 磁盘调度(8页).doc》由会员分享,可在线阅读,更多相关《实验七 磁盘调度(8页).doc(8页珍藏版)》请在得力文库 - 分享文档赚钱的网站上搜索。
1、-实验七 磁盘调度一、 实验目的:磁盘是高速、大容量、旋转型、可直接存取的存储设备。它作为计算机系统的辅助存储器,担负着繁重的输入输出工作,在现代计算机系统中往往同时会有若干个要求访问磁盘的输入输出要求。系统可采用一种策略,尽可能按最佳次序执行访问磁盘的请求。由于磁盘访问时间主要受寻道时间T的影响,为此需要采用合适的寻道算法,以降低寻道时间。本实验要求模拟设计一个磁盘调度程序,观察调度程序的动态运行过程。通过实验来理解和掌握磁盘调度的职能。二、 实验内容:分别模拟如下电梯调度算法,对磁盘进行移臂操作:l 先来先服务算法l 最短寻道优先算法l 电梯算法三、 实验要求:1、 假设磁盘只有一个盘面,
2、并且磁盘是可移动头磁盘。2、 磁盘是可供多个进程共享的存储设备,但一个磁盘每个时刻只能为一个进程服务。当有进程在访问某个磁盘时,其它想访问该磁盘的进程必须等待,直到磁盘一次工作结束。当有多个进程提出输入输出请求而处于等待状态时,可用磁盘调度算法从若干个等待访问者中选择一个进程,让它访问磁盘。为此设置“驱动调度”进程。3、 由于磁盘与处理器是并行工作的,所以当磁盘在为一个进程服务时,占有处理器的其它进程可以提出使用磁盘(这里我们只要求访问磁道),即动态申请访问磁道,为此设置“接受请求”进程。4、 为了模拟以上两个进程的执行,可以考虑使用随机数来确定二者的允许顺序,参考程序流程图。5、 “接受请求
3、”进程建立一张“进程请求I/O”表,指出等待访问磁盘的进程要求访问的磁道,表的格式如下:进程名要求访问的磁道号6、 磁盘调度的功能是查“请求I/O”表,当有等待访问的进程时,按磁盘调度算法从中选择一个等待访问的进程,按其指定的要求访问磁道。流程图中的“初始化”工作包括:初始化“请求I/O”表,设置当前移臂方向;当前磁道号。并且假设程序运行前“请求I/O”表中已有若干进程(48个)申请访问相应磁道。四、 程序流程图:开始初始化磁盘调度随机数1/2继续?接受请求输入在0,1区间内的随机数结束五参考程序代码:#include #include#includetypedef struct nodein
4、t data;struct node *next;Node;void main()void fcfs(Node *,int,int);/声明先来先服务函数FCFSvoid sstf(Node *,int,int);/声明最短寻道时间优先函数SSTFvoid scan(Node *,int,int);/声明扫描函数SCANvoid print(Node *); /输出链表函数Node *head,*p,*q; /建立一个链表int it,c=0,f,s; /c为链表长度,f是开始的磁道号,s是选择哪个算法head=(Node *)malloc(sizeof(Node);head-next=NUL
5、L;q=head;cout /*磁盘调度算法*/endl;coutendl;coutit;while(it!=0)p=(Node *)malloc(sizeof(Node);p-next=NULL;p-data=it;q-next=p;q=p;cinit;c+;coutf; /f为磁道号print(head);cout链表长度为:cendl;cout1、先来先服务算法FCFSendl;cout2、最短寻道时间优先算法SSTFendl;cout3、电梯调度算法(扫描算法SCAN)endl;cout0、退出endl;couts;while(s!=0) switch(s) case 1:cout你选
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 实验七 磁盘调度8页 实验 磁盘 调度
![提示](https://www.deliwenku.com/images/bang_tan.gif)
限制150内