操作系统--进程调度实验报告

本文介绍了设计并实现操作系统进程调度算法的实验,包括先来先服务、短进程优先和高响应比优先三种策略。通过结构体表示进程信息,并分别编写函数实现不同算法。文章提供了源代码并展示了高响应比算法的运行检验,正确展示了调度过程和时间计算。
摘要由CSDN通过智能技术生成

设计要求

编程实现进程调度算法的基本过程,设计要求:
(1)能够选择进程调度算法(先来先服务、短进程优先算法和高响应比优先算法)。
(2)可以输入进程数目(至少3个进程),以及各进程的提交时间和运行时间。
(3)能够显示调度过程及相应时间。

设计思路

*定义一个结构体代表进程包括进程的名称,提交时间,运行时间,开始时间,结束时间,周转时间,带权周转时间。
* 分别创建3个函数来完成各个调用进程的算法。
其中各个算法包括进程的接收,排序,计算,输出结果
先来先服务算法最基础,短进程优先算法相比前者需要进一步确定第一个进程,而高相应比算法更进一步,需要同时排序和计算。
*最后主函数完成程序的引导。
如果这篇文章帮助到了你,请点一下赞,让我知道有人因此受益。

源代码

#define PCBNUM 4
#include<stdio.h>
#include<stdlib.h>
#include<iostream>
using namespace std;
typedef struct PCB
{
   
	int ID;
	double tijiao;
	double yunxing;
	double kaishi;
	double jieshu;
	double zhouzhuan;
	double daiqvanzhouzhaun;
};

 void xianlai(){
         //先来先服务
	 PCB s[PCBNUM];
	  PCB Q;
	 cout<<"一共4个进程"<<endl;
	 cout<<"请输入每个进程的进程名,提交时间,运行时长(中间用空格分开)"<<endl;//接受值
	 for(int i=0;i<PCBNUM;i++){
   
		 cin>>s[i].ID >>s[i].tijiao >>s[i].yunxing ;
	 }
	 cout<<"名称    提交    运行    开始    结束    周转    带权周转"<<endl;
	 for(int i=0;i<PCBNUM-1;i++){
                          //p排序
		 for(int j=0;j<PCBNUM-1;j++){
   
		 if(s[j].tijiao >s[j+1].tijiao )
			{
   
			 Q=s[j];
		     s[j]=s[j+1];
			 s[j+1]=Q;
			 }
	     }
     }
	 
	 
	 for(int i=0;i<PCBNUM;i++){
        //计算
		 if(i==0)
			 s[i].kaishi=s[i].tijiao;
		 else
		 {
   s[i].kaishi 
  • 27
    点赞
  • 132
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值