处理机调度之FCFS

该博客介绍了处理机调度中的FCFS(先来先服务)算法。通过创建队列和链表,展示了如何在控制台环境下管理进程,包括显示所有进程的PCB信息。文章强调进程的添加、运行和状态变化(就绪、阻塞、结束)均由控制台指令控制,最大并发度限制为5,并提供了相关代码示例。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

本程序旨在使大家对先来先服务的处理机调度机制有更加深入的了解,步骤如下:
1.创建PCB结构体代表对相应进程的唯一标识,内含以下数据:

进程名

要求运行时间

状态

指针

2.创建相应队列和链表

deque<PCB_STRU*>Ready_Queue; //就绪队列
deque<PCB_STRU*>Block_Queue; //阻塞队列
PCB_STRU* Ready_list = (PCB_STRU*)malloc(sizeof(PCB_STRU));   //就绪状态链表
PCB_STRU* Block_list = (PCB_STRU*)malloc(sizeof(PCB_STRU));   //阻塞状态链表

3.编写对应函数(如下)并按一定顺序调用
AddAProcessToRdyQue():新建进程,则增加一个pcb到就绪队列;
RunToFinish():运行进程,则从就绪队列头部删除一进程并投入运行,显示运行状态,并顺利结束;
RunWait():运行后堵塞,从就绪队列头部删除一进程并投入运行,显示运行1个时间单位后又堵塞,并将此进程加入到堵塞队列尾部;
Signal():唤醒进程,从堵塞队列头部将堵塞的进程加入到就绪队列尾部;

Show()显示所有进程的进程控制块PCB的信息。

注意事项:
1.所有进程的添加与运行都由控制台输入指令唯一控制(最大并发度要求为5)
2.要求运行时间——假设进程需要运行的单位时间数;
  状态——可假设有三种状态,"就绪"状态、"阻塞"状态和“结束”状态。新创建进程的初始状态都为“就绪”,用“R”表示,
  当一个进程运行结束后,它的状态为“结束”,销毁此进程 “阻塞”状态的进程用“B”表示。

  指针——用指针指出下一个进程具有相同状态的进程控制块的首地址;

代码如下:

#define MAXPROCESS  5  //最大并发度
#include <stdio.h>
#include<iostream>
#include<cstring>
#include<stdlib.h>
#include&l
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值