
进程调度模拟实验报告(含操作系统内容及源码)
5星
- 浏览量: 0
- 大小:None
- 文件类型:None
简介:
本实验报告详细探讨了操作系统中的进程调度算法,并通过编写和测试相关源代码来加深理解。报告中包含了多种调度策略的实现与分析。
【实验目的】1. 理解进程的概念,并熟悉其组成;2. 利用高级语言编写并调试一个进程调度程序,以加深对各种调度算法的理解。
【实验准备】
1. 进程的几种常见调度算法:
- 短作业优先(Shortest Job First)
- 优先级最高者优先
- 先来先服务(First Come, First Served)
- 时间片轮转
2. 进程的基本组成元素包括进程控制块、程序段和数据段。
3. 进程的三种基本状态:
- 就绪W (Wait)
- 执行R (Run)
- 阻塞B (Block)
【实验内容】
1. 设计一个模拟系统,其中N个进程并发运行。采用最高优先级调度算法和先来先服务算法进行调度。
进程通过其控制块(PCB)表示,PCB中应包含以下信息:名称、优先级、到达时间、需要的执行时长(以时间片为单位)、已使用的时间以及当前状态等。
2. 在创建进程的过程中可以人为设定或随机生成每个进程的优先级和所需运行时间。
每个进程的状态可以在就绪W (Wait) 、正在运行R (Run),或者已完成F(Finish)之间转换。当一个就绪队列中的最高优先级任务获得CPU后,它将执行一整个时间片的时间。
3. 若该时间段内未完成,则降低其优先级并将其放回就绪队列;若已结束则进程被撤销。
每次调度时都应打印当前正在运行的进程、所有就绪队列的状态以及每个PCB的信息,以便于检查。重复上述步骤直到所有的任务均已完成。
4. 实验要求:
- 编写并调试一个模拟程序,使用最高优先级算法对五个并发进程进行调度。
此方法的核心在于将CPU分配给当前就绪进程中拥有最高优先数的任务;静态优先数在创建时确定且不会改变,而动态优先数则可在任务获得一次CPU时间后减少1。
- 编写并调试一个模拟程序,采用轮转法对五个进程进行调度。
轮转法可以是简单形式、可变大小的时间片或多个队列的机制。在简单的轮转中,所有就绪的任务按照先进先出的原则排队;每次处理机分配给最前面的任务执行一个时间片后若未完成,则将其重新排到队尾等待下一次机会。此过程重复直到全部任务结束。
全部评论 (0)


