- 0
- 0
- 约1.87万字
- 约 24页
- 2021-11-11 发布于福建
- 举报
实验五 模拟进度调度
1 、 实验目的
1. 理解 PCB
2. 理解进程的并发执行
3. 理解进程的 FCFS 、动态优先权和时间片轮转三种调度算法,并模拟实现这三
种算法
2 、 实验器材
微型计算机、 fedora 版本的 Linux 系统
3 、 实验内容
PCB 在本设计中的基本结构
Typedef struct node
{
Char name[10] ;/* 进程标识符 */
Float prin ;/* 进程的优先级 */
Int round ;/* 进程轮转的时间片 */
Int needtime ;/* 进程还需要的 cpu 时间 */
Int waittime ;/* 进程进入系统后等待 cpu 的时间 */
Char state ;/* 进程的状态 */
Struct node *next ;/* 链接指针 */
}PCB
设计三个队列:就绪、完成、运行,其中运行队列中应该只有一个进程。
创建进程,就是用户输入进程的标识符和运行所需时间,系统为其生成一个
PCB ,存放进程的信息,将新生成的 PCB 插入就绪队列。进程任务结束,系统将其
PCB 插入完成队列,该进程就消亡。
任务 1 :动态优先权调度算法模拟:
优先权 = 1 + 等待时间 / 需要服务时间 最高响应比优先
(1) 输入一批作业的进程标识和估计运行时间,将其 PCB 插入就绪队列
(2) 当就绪队列非空、 CPU 空闲时,计算出每个就绪进程的优先权
(3) 将优先权最高的进程从就绪队列移入运行队列,状态改为运行 ( 模拟进程调度 )
(4) 在屏幕上输出当前所有进程的状态和优先权信息 ( 已完成进程不显示 )
(5) 让运行进程执行足够的服务时间
(6) 将运行进程移入完成队列
(7) 提示可以输入新的作业,如果有新作业输入,则转向 (1) ,否则转向 (2)
(8) 如果就绪队列为空,则结束
程序框图如下:
程序源代码如下:
#include stdio.h
#include string.h
typedef struct node
{
char name[10]; // 进程标识符
float prin; // 进程的优先级
int round; // 进程轮转的时间片
int needtime; // 进程还需要当 CPU 时间
int waittime; // 进程进入系统后等待当 CPU 的时间
char state; // 进程当状态
struct node *next; // 链接指针
} PCB;
PCB *readyQueue=NULL, *runningQueue=NULL,
*finishedQueue=NULL, *finishedQueueT ail=NULL,
*readyQueueT a
您可能关注的文档
- 机房建设验收报告2借鉴.pdf
- 机房建设招标文件归纳.pdf
- 机房精密空调方案归纳.pdf
- 机房精密空调节能思考归纳.pdf
- 汇编指令定义.pdf
- 汇编指令符号大全归类.pdf
- 汇编指令英语解释归类.pdf
- 汇编指令与机器码参考.pdf
- 汇编中断大全归纳.pdf
- 汇编字符串比较归类.pdf
- 2025年新外研版三年级上册英语同步教学课件.pptx
- 红十字会大讲堂管理制度.docx
- 技术奇点(Singularity)理论的科学基础、哲学思辨与未来社会构想 _2026年1月.docx
- 公共艺术项目在激活城市消极空间(如高架桥下、废弃铁轨)中的作用 _2026年1月.docx
- “双减”政策对校外培训行业转型及家庭教育投入变化的影响 _2026年1月.docx
- Z世代员工对职场“摸鱼文化”的态度成因与管理对策研究 _2026年1月.docx
- 跨文化团队管理中的沟通障碍、文化冲突与融合策略案例分析 _2026年1月.docx
- 共享经济平台将劳动者归类为“合作伙伴”的伦理与法律责任 _2026年1月.docx
- 大型国际展会(如进博会、CES)的绿色会展实践与可持续发展评估 _2026年1月.docx
- 地理标识产品(如阳澄湖大闸蟹)与产地旅游的融合发展研究 _2026年1月.docx
原创力文档

文档评论(0)