SSTF磁盘调度算法操作系统课程设计报告_.doc

SSTF磁盘调度算法操作系统课程设计报告_.doc

ID:61035687

大小:562.00 KB

页数:11页

时间:2021-01-20

SSTF磁盘调度算法操作系统课程设计报告_.doc_第1页
SSTF磁盘调度算法操作系统课程设计报告_.doc_第2页
SSTF磁盘调度算法操作系统课程设计报告_.doc_第3页
SSTF磁盘调度算法操作系统课程设计报告_.doc_第4页
SSTF磁盘调度算法操作系统课程设计报告_.doc_第5页
资源描述:

《SSTF磁盘调度算法操作系统课程设计报告_.doc》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库

1、哈尔滨理工大学课 程 设 计(课程名称)题  目: SSTF磁盘调度算法班  级:姓  名:   指导教师:      系主任:2014年03月01日目录1SSTF磁盘调度算法课程设计11.1题目分析11.2数据结构11.3流程图11.4实现技术21.5设计结论和心得22Linux代码分析32.1功能说明32.2接口说明32.3局部数据结构32.4流程图32.5以实例说明运行过程4第1章1SSTF磁盘调度算法课程设计1.1题目分析SSTF磁盘调度算法问题是操作系统中的一个重要问题。主要要求访问的磁道与当前磁头所在磁道距离最近,以使每次的寻道时间最短。故SSTF较之FC

2、FS有更好的寻道性能。1.2数据结构SSTF磁盘调度算法问题中涉及的数据结构是定义数组str[],存放输入的数据,用str[i]表示输入第i+1个数据,数组cidao[]和str[]意义一样。全局变量n,表示磁道的最大个数,now表示当前磁道号,全局变量sum和ave,表示总的寻道时间和平均寻道长度。用变量i和j,表示第i+1和j+1磁道,变量k表示任意磁道,变量d表示选择移动的方向,有两个取值1表示向外,0表示向内。用伪代码表示如下: int scan(Linklist L,int Current){  LNode *p,*q,*s;  float sum=0;  

3、if(L->next!=NULL){  p=L->next;  while(p->datanext; } 用主要代码表示如下:Now=printnow(0;if(cidao[m-i]<=now)sum=printout(cidao,now,m);if(cidao[0]>=now)sum=printin(cidao,now,m);if(now>cidao[0]@@now=0)&&(r

4、(now-cidao[i]<=(cidao[r]-now))Sum=prints(cidao,now,m,i,r);Elsesum=printl(cidao,now,m,i,r)1.1流程图1.1实现技术为实现上述设计,采用C++语言,VS2008开发环境。具体采用的技术如下:(1)数组的寻找及其下表的寻找与遍历(2)数组的排序实现步骤如下:(1)根据移动方向,针对数组内值进行磁道移动(2)对值与值之间进行相见取出磁道移动距离并且进行相干的计算运行结果如下:1.1设计结论和心得通过课程设计得到如下结论:(1)磁盘,是一种很重要也很常用的外设,其分配也有一定的分配策略。

5、在操作系统中,作业对磁盘的请求常常要排队,由此需要一些高效率的磁盘分配策略算法。(2)最短寻道时间优先算法优先选择距离当前磁头位置最近的作业磁道请求,可以使得每次寻道时所用的时间都最短,但不能保证平均周转时间及带权周转时间最短;有如下几点心得体会:(1)此次课程设计,是我对磁盘调度算法和原理有了更深刻的理解,对于理论在实践中的应用也有了一定的了解。(2)对于我以后的学习和工作有巨大的帮助,课程设计反映的是一个从理论到实际的应用过程,但是更远一点可以联系到以后的毕业之后从学校步入社会的的过程,对于学习编程的学生,课程设计是相当有意义的,所以有些问题要不断的去实践,变换思

6、维。最终有所收获。2Linux代码分析为了进一步了解操作系统内核,学习了Linux操作系统的进程同步。主要源代码如下复制进程的页目录页表。int copy_page_tables(unsigned long from,unsigned long to,long size) { unsigned long * from_page_table;  unsigned long * to_page_table;  unsigned long this_page;  unsigned long * from_dir, * to_dir;  unsigned long nr; /

7、/ 源地址和目的地址都需要是4Mb 的倍数。否则出错,死机。if ((from&0x3fffff) 

8、

9、 (to&0x3fffff)) panic("copy_page_tables called with wrong alignment"); // 取得源地址和目的地址的目录项(from_dir 和to_dir)。from_dir = (unsigned long *) ((from>>20) & 0xffc); /* _pg_dir = 0 */ to_dir = (unsigned long *) ((to>>20) & 0xffc); // 

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。