版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、哈尔滨理工大学课程设计(课程名称)题目: sstf磁盘调度算法班级: 姓名: 指导教师:系主任: 2014年03月01日目 录1sstf磁盘调度算法课程设计11.1 题目分析11.2 数据结构11.3 流程图11.4 实现技术21.5 设计结论和心得22 linux代码分析32.1 功能说明32.2 接口说明32.3 局部数据结构32.4 流程图32.5 以实例说明运行过程4第1章1sstf磁盘调度算法课程设计1.1 题目分析sstf磁盘调度算法问题是操作系统中的一个重要问题。主要要求访问的磁道与当前磁头所在磁道距离最近,以使每次的寻道时间最短。故sstf较之fcfs有更好的寻道性能。1.2
2、数据结构sstf磁盘调度算法问题中涉及的数据结构是定义数组str,存放输入的数据,用stri表示输入第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; floa
3、t sum=0; if(l->next!=null) p=l->next; while(p->data<currrentp=p->next; 用主要代码表示如下:now=printnow(0;if(cidaom-i<=now)sum=printout(cidao,now,m);if(cidao0>=now) sum=printin(cidao,now,m);if(now>cidao0now<cidaom-i)count<<”磁盘
4、扫描序列为:”;while(cidaok<now)k+1; i=k-1; r=k;while (i>=0)&&(r<m)if(now-cidaoi<=(cidaor-now)sum=prints(cidao,now,m,i,r);else sum=printl(cidao,now,m,i,r)1.3 流程图1.4 实现技术为实现上述设计,采用c+语言,vs2008开发环境。具体采用的技术如下:(1)数组的寻找及其下表的寻找与遍历(2)数组的排序实现步骤如下:(1)根据移动方向,针对数组内值进行磁道移动(2)对值与值之间进行相见取出磁道移动距离并且进行相干
5、的计算运行结果如下: 1.5 设计结论和心得通过课程设计得到如下结论:(1)磁盘,是一种很重要也很常用的外设,其分配也有一定的分配策略。在操作系统中,作业对磁盘的请求常常要排队,由此需要一些高效率的磁盘分配策略算法。(2)最短寻道时间优先算法优先选择距离当前磁头位置最近的作业磁道请求,可以使得每次寻道时所用的时间都最短,但不能保证平均周转时间及带权周转时间最短;有如下几点心得体会:(1)此次课程设计,是我对磁盘调度算法和原理有了更深刻的理解,对于理论在实践中的应用也有了一定的了解。(2)对于我以后的学习和工作有巨大的帮助,课程设计反映的是一个从理论到实际的应用过程,但是更远一点可以联系到以后的
6、毕业之后从学校步入社会的的过程,对于学习编程的学生,课程设计是相当有意义的,所以有些问题要不断的去实践 ,变换思维。最终有所收获。2 linux代码分析为了进一步了解操作系统内核,学习了linux操作系统的进程同步。主要源代码如下复制进程的页目录页表。int copy_page_tables(unsigned long from,unsigned long to,long size) unsigned long * from_page_table; unsig
7、ned long * to_page_table; unsigned long this_page; unsigned long * from_dir, * to_dir; unsigned long nr; / 源地址和目的地址都需要是4mb 的倍数。否则出错,死机。if (from&0x3fffff) | (to&0x3fffff)
8、 panic("copy_page_tables called with wrong alignment"); / 取得源地址和目的地址的目录项(from_dir 和to_dir)。from_dir = (unsigned long *) (from>>20) & 0xffc); /* _pg_dir = 0 */ to_dir =
9、160;(unsigned long *) (to>>20) & 0xffc); / 计算要复制的内存块占用的页表数(也即目录项数)。size = (unsigned) (size+0x3fffff) > / 下面开始对每个占用的页表依次进行复制操作。out of m emory, see freeing */ > 22;for( size-
10、>0 from_dir+,to_dir+) / 如果目的目录项指定的页表已经存在(p=1),则出错,死机。 if (1 & *to_dir) panic("copy_page_tables: already exist"); / 如果此源目录项未被使用,则不用复制对应页表,跳过。if (!(1 & *from_dir) continue; /
11、取当前源目录项中页表的地址from_page_table。from_page_table = (unsigned long *) (0xfffff000 & *from_dir); / 为目的页表取一页空闲内存,如果返回是0 则说明没有申请到空闲内存页面。返回值=-1,退出。if (!(to_page_table = (unsigned long *) get_free_page() return
12、0;-1; /* out of memory, see freeing */ / 设置目的目录项信息7 是标志信息,表示(usr, r/w, present)。*to_dir = (unsigned long) to_page_table) | 7; / 针对当前处理的页表,设置需复制的页面数。如果是在内核空间,则仅需复制160 页,否则需要/ 复制1 个页表中的所有1024
13、 页面nr = (from=0)?0xa0:1024; / 对于当前页表,开始复制指定数目nr 个内存页面。for ( nr- > 0 from_page_table+,to_page_table+) this_page = *from_page_table; / 取源页表项内容。if (!(1 & this_page) /
14、;如果当前源页面没有使用,则不用复制。continue; / 复位页表项中r/w 标志置0)。(如果u/s位是0,则r/w 就没有作用。如果u/s 是1,而r/w 是0,/ 那么运行在用户层的代码就只能读页面。如果u/s 和r/w 都置位,则就有写的权限。) this_page &= 2; *to_page_table = this_page; / 将该页表项复制到目的页表中。/ 如果该页表项所指页面的地
15、址在1m 以上,则需要设置内存页面映射数组mem_map,于是计算/ 页面号,并以它为索引在页面映射数组相应项中增加引用次数。if (this_page > low_mem) *from_page_table = this_page; /令源页表项也只读?。this_page -= low_mem; this_page >>= 12; mem_mapthis_page+; inva
16、lidate(); / 刷新页变换高速缓冲。return 0; 2.1 功能说明这一段程序的主要功能为:(1)复制进程的页目录页表;2.2 接口说明本程序的输入参数为:unsigned long from,unsigned long to,long size输出结果:为将进程的页目录页表复制:2.3 局部数据结构本程序共有5个局部变量及数据结构,其类型定义及语义如下:unsigned long * from_page_table;/记录复制文件的位置unsigned long * to_page_table;/目标文件位置unsigned long this
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026四川甘孜州民生人力资源管理有限公司见习工作人员招聘2人备考题库及答案详解一套
- 丽水市景宁畲族自治县2026届数学四年级第二学期期中学业水平测试模拟试题含解析
- 临沂市郯城县2026届数学四下期中学业质量监测模拟试题含答案
- GB/T 47703-2026儿童友好公共设施服务体系建设指南
- 2026年呼吸科常见呼吸疾病诊断与治疗模拟考试试题及答案
- 2026年肝胆胰外科常见腹腔感染抗感染治疗模拟考试试题及答案
- 2026年安徽省中考道德与法治全真模拟试卷2(含答案解析)
- 2026吉林省教育学院学生公寓劳务派遣岗位招聘1人备考题库及1套完整答案详解
- 2026河南周口精神康复医院招聘116人备考题库及答案详解参考
- 2026陕西西安交通大学海南中外合作办学先遣工作专班职员招聘5人备考题库及参考答案详解
- 中国竹编艺术智慧树知到期末考试答案章节答案2024年浙江广厦建设职业技术大学
- (正式版)HGT 20656-2024 化工供暖通风与空气调节详细设计内容和深度规定
- 丢车包赔协议
- (完整版)小学二年级英语阅读理解
- 电除尘器工作原理
- 项目地下室顶板回顶专项施工方案图文稿
- 2023-2024学年湖北省宜昌市小学语文六年级期末评估题附参考答案和详细解析
- 大班幼儿自主建构游戏《乐建望淮塔》 课件
- GB/T 4547-1991玻璃容器抗热震性和热震耐久性试验方法
- GB/T 18882.1-2002离子型稀土矿混合稀土氧化物化学分析方法草酸盐重量法测定稀土总量
- FZ/T 07019-2021针织印染面料单位产品能源消耗限额
评论
0/150
提交评论