操作系统进程调度课程设计报告书(1)

上传人:仙*** 文档编号:115524924 上传时间:2022-07-02 格式:DOC 页数:13 大小:99KB
收藏 版权申诉 举报 下载
操作系统进程调度课程设计报告书(1)_第1页
第1页 / 共13页
操作系统进程调度课程设计报告书(1)_第2页
第2页 / 共13页
操作系统进程调度课程设计报告书(1)_第3页
第3页 / 共13页
资源描述:

《操作系统进程调度课程设计报告书(1)》由会员分享,可在线阅读,更多相关《操作系统进程调度课程设计报告书(1)(13页珍藏版)》请在装配图网上搜索。

1、枣 庄 学 院信息科学与工程学院课程设计任务书 题目: 在Linux下的模拟调度算法 学 号: 201012120209 姓 名: 冯文雯 专 业: 网络工程 课 程: 操作系统 指导教师: 燕孝飞 职称: 完成时间: 2012年 5 月-2012 年 6 月枣庄学院信息科学与工程学院制2012年06 月20日课程设计任务书及成绩评定课程设计的任务和具体要求观察、体会操作系统的进程调度方法,并通过一个简单的进程调度模拟程序的实现,加深对进程调度算法,进程切换的理解。 采用动态优先数的方法,编写一进程调度程序模拟程序。模拟程序只进行相应的调度模拟操作指导教师签字: 日期: 指导教师评语成绩: 指

2、导教师签字: 日期: 课程设计所需软件、硬件等系统:Windows 2000上的虚拟机上运行的Red Hat Linux语言:C/C+开发工具:GCC 课程设计进度计划起至日期工作内容备注6月14日-收集资料程序设计撰写论文参考文献、资料索引序号文献、资料名称编著者出版单位LINUX权威指南(第3版)-中国电力出版社Linux编程技术详解-人民邮电出版社Linux程序设计(第3版) -人民邮电出版社计算机网络操作系统-目 录摘要.。31引言1 常用基本命令的介绍1.1 关于linux的目录命令 31.2 关于linux的文件命令32 进程调度程序的设计2.1进程调度52.2介绍一下优先权调度

3、52.3程序的设计思路 42.4程序代码 72.5程序运行情况103实验总结11摘要在计算机网络高速发展的今天,计算机技术不断地更新与完善,无论是硬件还是软件的变更都会在计算机操作系统的设计技术与使用风格上得到体现。操作系统是计算机系统配置的所有软件中使用最广泛的基础软件,它在整个计算机系统软件中处于中心地位,也是计算机专业课教学中做重要的环节之一。从操作系统自身角度讲,它不仅很好地体现了计算机日益发展中的软件研究成果,而且也较好地体现了计算机的硬件技术发展及计算机系统结构的用户界面环境。本实验主要根据是按动态优先数设计五个进程的调度算法。即在它们调度的过程中,其优先数是不断变化的。2 常用基

4、本命的基本介绍:2.1 Linux目录命令1.pwd -显示当前工作目录的绝对路径格式: pwd 2. cd -改变当前工作目录命令格式:cd 目录名 3Ls- 列出文件目录的信息命令格式:ls 可选项 子目录名 文件名4mkdir - 建立目录命令格式:mkdir 可选项 目录名 5rmdir -删除目录本命令用于删除指定的一个或多个目录,必须保证要删除的目录中没有任何文件。命令格式:rmdir 可选项 目录名 2.2 linux 文件命令1. ls l 文件名2. chmod -改变文件或目录的访问权限 命令格式:chmod 可选项 权限 目录或文件名 3chgrp命令 -改变文件或目录所

5、属的组。 命令格式:chgrp 选项 group filename选项: -R:递归式地改变指定目录及其下的所 有子目录和文件的属组 4. chown -更改某个文件或目录的属主和属组 命令格式:chown 选项 文件或目录的新属主.文件或目录所在的新组 文件名|目录 5. cat -显示,新建,连接文件6. cp -功能:文件或目录的拷贝 ,如同dos的copy 命令格式: cp 选项 源文件或目录 目标文件或目录 7. mv -功能:为文件或目录改名或将文件由一个目录移入另一 个目录中 命令格式: mv 选项 源文件或目录 目标文件或目录 8. rm -功能:删除一个目录中的一个或多个文件

6、或目录,它也可以将某个目录及其下的所有文件及子目录均删除 命令格式: rm 选项 文件 2 进程调度程序的设计2.1进程调度无论是在批处理系统还是分时系统中,用户进程数一般都多于处理机数、这将导致它们互相争夺处理机。另外,系统进程也同样需要使用处理机。这就要求进程调度程序按一定的策略,动态地把处理机分配给处于就绪队列中的某一个进程,以使之执行。2.2介绍一下优先权调度算法优先数法的基本思想是:对就绪队列中的每个进程,首先安某种原则定义一个优先数来表示它,处理机调度时,每次选择就绪队列中优先数最大者(也可规定优先数愈小,其优先权愈高),让它占用处理机运行。确定优先数一般可以又一下集中考虑:(1)

7、频繁使用外部舒服输出设备的进程优先数大。这样有利于提高CPU使用效率。(2)重要程序的进程优先数大,怎样有利于用户灵活操作。(3)进入计算机系统时间长的进程优先数大,这样有利于缩短作业的完成时间。(4)交互式用户作业进程优先数大,这样有利于提高中断相应时间。优先数的设置可以采用静态和动态两种方式。静态设置方式就是指系统在建立一个进程时,就按照某种原则为进程制定一个优先数,这个优先数在进程存在期间一直保持不便。而动态设置方式是指系统在进程存在期间经常改变进程的优先数,如何动态的改变进程的优先数,依赖于具体操作系统的设计目标2.3程序的设计思路(1) 假定系统有五个进程,每一个进程用一个进程控制块

8、PCB来代表,进程控制块的格式为:进程名 指针 要求运行时间 优先数 状态其中,进程名作为进程的标识,假设五个进程的进程名分别为P1,P2,P3,P4,P5。指针按优先数的大小把五个进程连成队列,用指针指出下一个进程的进程控制块的首地址,最后一个进程中的指针为“0”。要求运行时间假设进程需要运行的单位时间数。优先数赋予进程的优先数,调度时总是选取优先数大的进程先执行。状态可假设有两种状态,“就绪”状态和“结束”状态。五个进程的初始状态都为“就绪”,用“R”表示,当一个进程运行结束后,它的状态为“结束”,用“E”表示。(2) 在每次运行你所设计的处理器调度程序之前,为每个进程任意确定它的“优先数

9、”和“要求运行时间”。(3) 为了调度方便,把五个进程按给定的优先数从大到小连成队列。用一单元指出队首进程,用指针指出队列的连接情况。(4) 处理器调度总是选队首进程运行。采用动态改变优先数的办法,进程每运行一次优先数就减“1”。由于本实习是模拟处理器调度,所以,对被选中的进程并不实际的启动运行,而是执行:优先数-1 要求运行时间-1 来模拟进程的一次运行。提醒注意的是:在实际的系统中,当一个进程被选中运行时,必须恢复进程的现场,让它占有处理器运行,直到出现等待事件或运行结束。在这里省去了这些工作。(5) 进程运行一次后,若要求运行时间0,则再将它加入队列(按优先数大小插入,且置队首标志);若

10、要求运行时间=0,则把它的状态修改成“结束”(E),且退出队列。(6) 若“就绪”状态的进程队列不为空,则重复上面(4)和(5)的步骤,直到所有进程都成为“结束”状态。(7) 在所设计的程序中应有显示或打印语句,能显示或打印每次被选中进程的进程名以及运行一次后进程队列的变化。(8) 为五个进程任意确定一组“优先数”和“要求运行时间”,启动所设计的处理器调度程序,显示或打印逐次被选中进程的进程名以及进程控制块的动态变化过程。2.4程序代码 #include stdio.h #include #include #define getpch(type) (type*)malloc(sizeof(ty

11、pe) #define NULL 0 struct pcb char name10; char state;int super; int ntime; int rtime; struct pcb* link; *ready=NULL,*p; typedef struct pcb PCB; sort() /* 建立对进程进行优先级排列函数*/ PCB *first, *second; int insert=0; if(ready=NULL)|(p-super)(ready-super) /*优先级最大者,插入队首*/ p-link=ready; ready=p; else /* 进程比较优先级,

12、插入适当的位置中*/ first=ready; second=first-link; while(second!=NULL) if(p-super)(second-super) /*若插入进程比当前进程优先数大,*/ /*插入到当前进程前面*/ p-link=second; first-link=p; second=NULL; insert=1; else /* 插入进程优先数最低,则插入到队尾*/ first=first-link; second=second-link; if(insert=0) first-link=p; input() /* 建立进程控制块函数*/ int i,num;

13、 clrscr(); /*清屏*/ printf(n please enter the number of process);scanf(%d,&num); for(i=0;iname); printf(n enter the prior number of process:);scanf(%d,&p-super); printf(n the time of process:);scanf(%d,&p-ntime); printf(n); p-rtime=0;p-state=w; p-link=NULL; sort(); int space() int l=0; PCB* pr=ready;

14、while(pr!=NULL) l+; pr=pr-link; return(l); disp(PCB * pr) /*建立进程显示函数,用于显示当前进程*/ printf(n qname t state t super t ndtime t runtime n); printf(|%st,pr-name); printf(|%ct,pr-state); printf(|%dt,pr-super); printf(|%dt,pr-ntime); printf(|%dt,pr-rtime); printf(n); check() /* 建立进程查看函数 */ PCB* pr; printf(n

15、* the running process is:%s,p-name); /*显示当前运行进程*/disp(p); pr=ready; printf(n *the ready queue is:n); /*显示就绪队列状态*/while(pr!=NULL) disp(pr); pr=pr-link; destroy() /*建立进程撤消函数(进程运行结束,撤消进程)*/ printf(n process %s finished.n,p-name);free(p); running() /* 建立进程就绪函数(进程运行时间到,置就绪状态*/ (p-rtime)+; if(p-rtime=p-nt

16、ime) destroy(); /* 调用destroy函数*/ else (p-super)-; p-state=w; sort(); /*调用sort函数*/ main() /*主函数*/ int len,h=0; char ch; input(); len=space(); while(len!=0)&(ready!=NULL) ch=getchar(); h+; printf(n The execute number:%d n,h); p=ready; ready=p-link; p-link=NULL; p-state=R; check(); running(); printf(n enter any key go on.);ch=getchar(); printf(nn process have finished.n);ch=getchar(); 输入进程的各项指标运行程序实验总结 在进程调度中,优先级调度算法每次从就绪队列中选择优先级最高的进程,将处理机分配给它,使之投入运行。进程的优先级用于表示进程的重要性以及运行的优先性,一般用优先数来衡量优先级,有的系统优先数越高优先级越高,也有的系统优先数越高优先级越低。通过本实验,使我们对进程调度的算法、数据结构及其实现程序(C语言)有一个较为深入具体的了解。

展开阅读全文
温馨提示:
1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
2: 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
3.本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!