
操作系统进程调度课程设计.doc
13页枣 庄 学 院信息科学与工程学院课程设计任务书 题目: 在Linux下的模拟调度算法 学 号: 201012120209 姓 名: 冯文雯 专 业: 网络工程 课 程: 操作系统 指导教师: 燕孝飞 职称: 完成时间: 2012年 5 月----2012 年 6 月枣庄学院信息科学与工程学院制2012年06 月20日课程设计任务书及成绩评定课程设计的任务和具体要求观察、体会操作系统的进程调度方法,并通过一个简单的进程调度模拟程序的实现,加深对进程调度算法,进程切换的理解 采用动态优先数的方法,编写一进程调度程序模拟程序模拟程序只进行相应的调度模拟操作指导教师签字: 日期: 指导教师评语成绩: 指导教师签字: 日期: 课程设计所需软件、硬件等系统:Windows 2000上的虚拟机上运行的Red Hat Linux语言:C/C++开发工具:GCC 课程设计进度计划起至日期工作内容备注6月14日-收集资料程序设计撰写论文参考文献、资料索引序号文献、资料名称编著者出版单位《LINUX权威指南(第3版)》--------中国电力出版社《Linux编程技术详解》--------人民邮电出版社《Linux程序设计(第3版) 》 -------人民邮电出版社《计算机网络操作系统》--------12目 录摘要………..。
31引言 1 常用基本命令的介绍1.1 关于linux的目录命令 …………………………………………………………………31.2 关于linux的文件命令……………………………………………………………………32 进程调度程序的设计2.1进程调度……………………………………………………………………………………………52.2介绍一下优先权调度 ………………………………………………………………………52.3程序的设计思路 ………………………………………………………………………………42.4程序代码 …………………………………………………………………………………………72.5程序运行情况……………………………………………………………………………………103.实验总结………………………………………………………………………11摘要在计算机网络高速发展的今天,计算机技术不断地更新与完善,无论是硬件还是软件的变更都会在计算机操作系统的设计技术与使用风格上得到体现 操作系统是计算机系统配置的所有软件中使用最广泛的基础软件,它在整个计算机系统软件中处于中心地位,也是计算机专业课教学中做重要的环节之一从操作系统自身角度讲,它不仅很好地体现了计算机日益发展中的软件研究成果,而且也较好地体现了计算机的硬件技术发展及计算机系统结构的用户界面环境。
本实验主要根据是按动态优先数设计五个进程的调度算法即在它们调度的过程中,其优先数是不断变化的2 常用基本命的基本介绍:2.1 Linux目录命令1.pwd ---显示当前工作目录的绝对路径格式: pwd 2. cd ---改变当前工作目录命令格式:cd [目录名] 3.Ls--- 列出文件目录的信息命令格式:ls [可选项] [子目录名] [文件名]4.mkdir --- 建立目录命令格式:mkdir [可选项] [目录名] 5.rmdir ---删除目录本命令用于删除指定的一个或多个目录,必须保证要删除的目录中没有任何文件命令格式:rmdir [可选项] [目录名] 2.2 linux 文件命令1. ls –l 文件名2. chmod ---改变文件或目录的访问权限 命令格式:chmod [可选项] [权限] [目录或文件名] 3.chgrp命令 ----改变文件或目录所属的组 命令格式:chgrp [选项] group filename选项: -R:递归式地改变指定目录及其下的所 有子目录和文件的属组 4. chown ----更改某个文件或目录的属主和属组 命令格式:chown [选项] 文件或目录的新属主[.文件或目录所在的新组] [文件名|目录] 5. cat ----显示,新建,连接文件6. cp ---功能:文件或目录的拷贝 ,如同dos的copy 命令格式: cp [选项] 源文件或目录 目标文件或目录 7. mv ---功能:为文件或目录改名或将文件由一个目录移入另一 个目录中 命令格式: mv [选项] 源文件或目录 目标文件或目录 8. rm ---功能:删除一个目录中的一个或多个文件或目录,它也可以将某个目录及其下的所有文件及子目录均删除 命令格式: rm [选项] 文件 ……2 进程调度程序的设计2.1进程调度无论是在批处理系统还是分时系统中,用户进程数一般都多于处理机数、这将导致它们互相争夺处理机。
另外,系统进程也同样需要使用处理机这就要求进程调度程序按一定的策略,动态地把处理机分配给处于就绪队列中的某一个进程,以使之执行2.2介绍一下优先权调度算法优先数法的基本思想是:对就绪队列中的每个进程,首先安某种原则定义一个优先数来表示它,处理机调度时,每次选择就绪队列中优先数最大者(也可规定优先数愈小,其优先权愈高),让它占用处理机运行 确定优先数一般可以又一下集中考虑: (1)频繁使用外部舒服输出设备的进程优先数大这样有利于提高CPU使用效率 (2)重要程序的进程优先数大,怎样有利于用户灵活操作 (3)进入计算机系统时间长的进程优先数大,这样有利于缩短作业的完成时间 (4)交互式用户作业进程优先数大,这样有利于提高中断相应时间 优先数的设置可以采用静态和动态两种方式静态设置方式就是指系统在建立一个进程时,就按照某种原则为进程制定一个优先数,这个优先数在进程存在期间一直保持不便而动态设置方式是指系统在进程存在期间经常改变进程的优先数,如何动态的改变进程的优先数,依赖于具体操作系统的设计目标2.3程序的设计思路(1) 假定系统有五个进程,每一个进程用一个进程控制块PCB来代表,进程控制块的格式为:进程名 指针 要求运行时间 优先数 状态其中,进程名——作为进程的标识,假设五个进程的进程名分别为P1,P2,P3,P4,P5。
指针——按优先数的大小把五个进程连成队列,用指针指出下一个进程的进程控制块的首地址,最后一个进程中的指针为“0”要求运行时间——假设进程需要运行的单位时间数优先数——赋予进程的优先数,调度时总是选取优先数大的进程先执行状态——可假设有两种状态,“就绪”状态和“结束”状态五个进程的初始状态都为“就绪”,用“R”表示,当一个进程运行结束后,它的状态为“结束”,用“E”表示2) 在每次运行你所设计的处理器调度程序之前,为每个进程任意确定它的“优先数”和“要求运行时间”3) 为了调度方便,把五个进程按给定的优先数从大到小连成队列用一单元指出队首进程,用指针指出队列的连接情况4) 处理器调度总是选队首进程运行采用动态改变优先数的办法,进程每运行一次优先数就减“1”由于本实习是模拟处理器调度,所以,对被选中的进程并不实际的启动运行,而是执行:优先数-1 要求运行时间-1 来模拟进程的一次运行提醒注意的是:在实际的系统中,当一个进程被选中运行时,必须恢复进程的现场,让它占有处理器运行,直到出现等待事件或运行结束在这里省去了这些工作5) 进程运行一次后,若要求运行时间〉0,则再将它加入队列(按优先数大小插入,且置队首标志);若要求运行时间=0,则把它的状态修改成“结束”(E),且退出队列。
6) 若“就绪”状态的进程队列不为空,则重复上面(4)和(5)的步骤,直到所有进程都成为“结束”状态7) 在所设计的程序中应有显示或打印语句,能显示或打印每次被选中进程的进程名以及运行一次后进程队列的变化8) 为五个进程任意确定一组“优先数”和“要求运行时间”,启动所设计的处理器调度程序,显示或打印逐次被选中进程的进程名以及进程控制块的动态变化过程2.4程序代码 #include "stdio.h" #include












