博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
进程调度之FCFS算法(先来先运行算法)
阅读量:4980 次
发布时间:2019-06-12

本文共 1462 字,大约阅读时间需要 4 分钟。

#include
#define PNUMBER 5//进程个数#define SNUMBER 3//资源种类个数//资源的种类,三种char stype[SNUMBER]={
'A','B','C'};//各种资源的总数量,a种资源总10,b种资源总5,c种资源总7int avalable[SNUMBER]={
10,5,7};//每个进程对应的完成进程需要的各种类型的资源需求量,静态值int pmax[PNUMBER][SNUMBER]={
{
7,5,3},{
3,2,2},{
9,0,2},{
2,2,2},{
4,3,3}};//每个进程已经分配的资源情况,动态值int allocation[PNUMBER][SNUMBER]={
{
0,0,0},{
0,0,0},{
0,0,0},{
0,0,0},{
0,0,0}};//每一个进程还需要的资源int pneed[PNUMBER][SNUMBER]={
{
7,5,3},{
3,2,2},{
9,0,2},{
2,2,2},{
4,3,3}};//临时的数组int request[SNUMBER];//当前正在分配资源的进程int pindex=0;//显示每一个进程对资源拥有的现状void showdate();//接受进程分配的请求void accepetRequest();//模拟分配void SimMllocation(int pindex);//回滚void rollback(int pindex);//安全性检查int checkIsSafe();int main(){ //主逻辑 int exit=0; //显示每一个进程现状 showdate(); do { //接受进程分配的请求 accepetRequest(); //模拟分配资源 SimMllocation(pindex); //显示现在资源现状 showdate(); //检查是否存在安全序列,数据要保证至少一个进程能完成分配 if(checkIsSafe()==0) { //当前进程不存在安全序列,当前进程数据回滚 rollback(pindex); } printf("是否继续0/1\n"); scanf("%d",&exit); }while(exit==1); return 0;}//显示每一个进程对资源拥有的现状void showdate(){ int index=0; int index_=0; printf("当前资源情况.....\n"); printf("资源类类型\t资源数量\n"); for(index=0;index
",temp[index]); } printf("\n"); return 1;}

 

转载于:https://www.cnblogs.com/yinbiao/p/9021544.html

你可能感兴趣的文章
【Java】生成图形验证码
查看>>
layui学习笔记
查看>>
Codeforces.264E.Roadside Trees(线段树 DP LIS)
查看>>
BZOJ.1026.[SCOI2009]windy数(数位DP)
查看>>
BZOJ.4145.[AMPPZ2014]The Prices(状压DP)
查看>>
String 源码浅析(一)
查看>>
Shell脚本之:函数
查看>>
OSAL工作机制分析
查看>>
利用freemarker 静态化网页
查看>>
java enum(枚举)使用详解 + 总结
查看>>
Day 1:思考
查看>>
7.Python标准库_信号 (signal包,部分os包)
查看>>
android 电话接通时震动
查看>>
相似图片搜索的原理(二)
查看>>
微信小程序支付及退款流程详解
查看>>
boost::asio::ip::tcp实现网络通信的小例子
查看>>
ios开发——仿新版iBooks书本打开与关闭动画
查看>>
hibernate官方新手教程 (转载)
查看>>
myeclipse6.0下载及注冊码
查看>>
关于二进制补码
查看>>