登录 注册
当前位置:主页 > 资源下载 > 40 > 使用C语言模拟Linux操作系统环境下处理机调度实验报告

使用C语言模拟Linux操作系统环境下处理机调度实验报告

  • 更新:2024-11-29 16:06:02
  • 大小:182KB
  • 推荐:★★★★★
  • 来源:网友上传分享
  • 类别:网络攻防 - 安全技术
  • 格式:DOC

资源介绍

在采用多道系统的设计程序中,往往有若干进程同时处于就绪状态。当就绪状态进程数大于处理机数时,就必须按照某种策略来决定哪些进程优先占用处理机。本实验用C语言模拟在单处理机情况下处理机调度,包括优先数法和时间片轮转法。 一、优先调度算法实现处理机的调度: 设计思路: 1、每个进程用一个进程控制块PCB来代表,进程控制块包括进程名(进程的标识)、指针(按优先数的大小把进程连成队列,用指针指出下一个进程的进程控制块首地址,最后一个进程中的指针为"0")、要求运行时间、优先数、状态(就绪、结束); 2、每次运行处理机调度程序前,为每个进程确定它的"优先数"和"要求运行时间"; 3、把给定的进程按优先数的大小连成队列,用一单元指出队首进程; 4、每模拟执行一次进程,优先数减一,要求运行时间减一; 5、如果要求运行的时间>=0,再将它加入队列(按优先数的大小插入,重置队首标志);如果要求运行的时间=0,那么把它的状态修改为结束,且推出队列; 6、若就绪队列不为空,重复上述,直到所有的进程都结束; 7、程序有显示和打印语句,每次运行后显示变化。 二、按时间片轮转法实现处理机调度: 设计思路: 1、每个进程用一个进程控制块PCB来代表,进程控制块包括进程名(进程的标识)、指针(把进程连成循环队列,用指针指出下一个进程的进程控制块首地址,最后一个进程中的指针指出第一个进程的进程控制块首地址)、已运行时间、状态(就绪、结束); 2、每次运行处理机调度程序前,为每个进程确定它的"要求运行时间"; 3、用指针把给定的进程按顺序排成循环队列,用另一标志单元记录轮到的进程; 4、每模拟运行一次进程,已运行时间加一; 5、进程运行一次后,把该进程控制块的指针值送到标志单元,以指示下一个轮到的进程。若该进程要求运行时间≠已运行时间,未执行结束,待到下一轮再执行;若要求运行时间=已运行时间,状态改为结束,退出队列; 6、若就绪队列不为空,重复步骤四和五; 7、程序有显示和打印语句,每次运行后显示变化。