资源简介
操作系统实验
1、先来先服务
2、时间片轮转
3、最短作业优先
4、最短剩余时间优先
5、非抢占的优先级调度
6、可抢占的优先级调度
7、高响应比调度
代码片段和文件信息
// Process Scheduling.cpp : Defines the entry point for the console application.
//
/*----------------------进程调度模拟程序--------------------*/
/* */
/* 姓名:万妮娜 学号:09301049 */
/* 2011.6.12 */
/* */
/*----------------------------------------------------------*/
#include “stdafx.h“
#include
#include
#include
#include
#include
#define inFileName “Input.txt“
#define outFileName “Output.txt“
//队列结点的定义
typedef struct PCBNode{
int proID;//进程序号
int arriveTime;//进程到达时间
int burstTime;//进程请求时间
int prior;//进程优先级
int finishTime;
float rate;//记录响应比
bool first;
bool tag;//标记是否已出等待队列
PCBNode* next;
} PCB;
PCB* frontw = NULL;
PCB* rearw = NULL;
PCB* frontr = NULL;
PCB* rearr = NULL;
int totalTime = 0;//已经过去的总时间
int totalWaitTime = 0;//总的等待时间
int totalTurnAroundTime = 0; //总的周转时间
int totalFinishTime = 0;
int proNum = 0;//进程总数
int wayNum = 0;//算法序号
bool rfirst = true;
/*----------------进入等待队列函数-----------------*/
void EnWaitQueue(PCB* p){
rearw->next = p;
rearw = p;
}
/*----------------进入就绪队列函数-----------------*/
void EnReadyQueue(PCB* p){
rearr->next = p;
rearr = p;
}
/*----------------出等待序列函数-----------------*/
bool DeWaitQueue(PCB &p){
if(frontw != rearw){
p = *(frontw->next);
frontw = frontw->next;
return true;
}else{
return false;
}
}
/*----------------出就绪序列函数-----------------*/
bool DeReadyQueue(PCB &p){
if(frontr != rearr){
p = *(frontr->next);
frontr = frontr->next;
return true;
}else{
return false;
}
}
/*----------------判断就绪队列是否为空-------------------*/
bool isReadyQueueEmpty(){
if(frontr == rearr){
return true;
}
return false;
}
/*---------判断等待队列中的进程是否全部进入就绪队列--------*/
bool AllWaitOut(){
PCB* p = (PCB*)malloc(sizeof(PCB));
p = frontw;
for(int i=0;i p=p->next;
if(!(p->tag)){//如果P没有移出了等待队列
return false;
}
}
return true;
}
/*----------------取等待队列队头元素-------------*/
bool GetWaitHead(PCB &p){
if(frontw != rearw){
p = *(frontw->next);
return true;
}else{
return false;
}
}
/*----------------取就绪队列队头元素-------------*/
bool GetReadyHead(PCB &p){
if(frontr != rearr){
p = *(frontr->next);
return true;
}else{
return false;
}
}
/*----------------读取进程数-----------------*/
void countProNum(){
std::ifstream inc;
std::string temp;
inc.open(inFileName);
while(getline(inctemp)){
proNum++;
}
inc.close();
}
/*------------读取进程信息构建等待序列----------*/
void readFile(){
std::ifstream inr;
inr.open(inFileName);
frontw = rearw = (PCB*)malloc(sizeof(PCB));
for(int i = 0;i PCB* temp = (PCB*)malloc(sizeof(PCB));
inr>>temp->proID;
inr>>temp->arriv
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 93184 2011-06-12 09:53 OS_选做实验一8种进程调度算法模拟实现_09301049\Process Scheduling\Debug\Process Scheduling.exe
文件 451480 2011-06-12 09:53 OS_选做实验一8种进程调度算法模拟实现_09301049\Process Scheduling\Debug\Process Scheduling.ilk
文件 732160 2011-06-12 09:53 OS_选做实验一8种进程调度算法模拟实现_09301049\Process Scheduling\Debug\Process Scheduling.pdb
文件 14024 2011-06-12 09:53 OS_选做实验一8种进程调度算法模拟实现_09301049\Process Scheduling\Process Scheduling\Debug\BuildLog.htm
文件 67 2011-06-12 09:53 OS_选做实验一8种进程调度算法模拟实现_09301049\Process Scheduling\Process Scheduling\Debug\mt.dep
文件 663 2011-06-12 09:53 OS_选做实验一8种进程调度算法模拟实现_09301049\Process Scheduling\Process Scheduling\Debug\Process Scheduling.exe.em
文件 728 2011-06-12 09:53 OS_选做实验一8种进程调度算法模拟实现_09301049\Process Scheduling\Process Scheduling\Debug\Process Scheduling.exe.em
文件 621 2011-06-12 09:53 OS_选做实验一8种进程调度算法模拟实现_09301049\Process Scheduling\Process Scheduling\Debug\Process Scheduling.exe.intermediate.manifest
文件 204602 2011-06-12 09:53 OS_选做实验一8种进程调度算法模拟实现_09301049\Process Scheduling\Process Scheduling\Debug\Process Scheduling.obj
文件 3211264 2011-06-12 09:53 OS_选做实验一8种进程调度算法模拟实现_09301049\Process Scheduling\Process Scheduling\Debug\Process Scheduling.pch
文件 12657 2011-06-12 09:53 OS_选做实验一8种进程调度算法模拟实现_09301049\Process Scheduling\Process Scheduling\Debug\stdafx.obj
文件 191488 2011-06-12 09:53 OS_选做实验一8种进程调度算法模拟实现_09301049\Process Scheduling\Process Scheduling\Debug\vc90.idb
文件 299008 2011-06-12 09:53 OS_选做实验一8种进程调度算法模拟实现_09301049\Process Scheduling\Process Scheduling\Debug\vc90.pdb
文件 41 2011-05-04 20:20 OS_选做实验一8种进程调度算法模拟实现_09301049\Process Scheduling\Process Scheduling\Input.txt
文件 934 2011-06-12 09:53 OS_选做实验一8种进程调度算法模拟实现_09301049\Process Scheduling\Process Scheduling\Output.txt
文件 31319 2011-06-12 09:45 OS_选做实验一8种进程调度算法模拟实现_09301049\Process Scheduling\Process Scheduling\Process Scheduling.cpp
文件 4548 2011-05-04 19:34 OS_选做实验一8种进程调度算法模拟实现_09301049\Process Scheduling\Process Scheduling\Process Scheduling.vcproj
文件 1415 2011-06-12 09:54 OS_选做实验一8种进程调度算法模拟实现_09301049\Process Scheduling\Process Scheduling\Process Scheduling.vcproj.2010-VAIO.Administrator.user
文件 1368 2011-05-04 19:34 OS_选做实验一8种进程调度算法模拟实现_09301049\Process Scheduling\Process Scheduling\ReadMe.txt
文件 305 2011-05-04 19:34 OS_选做实验一8种进程调度算法模拟实现_09301049\Process Scheduling\Process Scheduling\stdafx.cpp
文件 320 2011-05-04 19:34 OS_选做实验一8种进程调度算法模拟实现_09301049\Process Scheduling\Process Scheduling\stdafx.h
文件 765 2011-05-04 19:34 OS_选做实验一8种进程调度算法模拟实现_09301049\Process Scheduling\Process Scheduling\targetver.h
文件 1313792 2011-06-12 09:54 OS_选做实验一8种进程调度算法模拟实现_09301049\Process Scheduling\Process Scheduling.ncb
文件 920 2011-05-04 19:34 OS_选做实验一8种进程调度算法模拟实现_09301049\Process Scheduling\Process Scheduling.sln
..A..H. 12288 2011-06-12 09:54 OS_选做实验一8种进程调度算法模拟实现_09301049\Process Scheduling\Process Scheduling.suo
目录 0 2011-06-12 09:53 OS_选做实验一8种进程调度算法模拟实现_09301049\Process Scheduling\Process Scheduling\Debug
目录 0 2011-06-12 09:53 OS_选做实验一8种进程调度算法模拟实现_09301049\Process Scheduling\Debug
目录 0 2011-06-12 09:52 OS_选做实验一8种进程调度算法模拟实现_09301049\Process Scheduling\Process Scheduling
目录 0 2011-06-12 09:53 OS_选做实验一8种进程调度算法模拟实现_09301049\Process Scheduling
目录 0 2011-07-02 15:25 OS_选做实验一8种进程调度算法模拟实现_09301049
............此处省略3个文件信息
- 上一篇:InnovaDSXP.OCX
- 下一篇:JPEG标准文档itu-t81
相关资源
- 北邮操作系统实验报告
- 操作系统进程调度算法实验报告
- 01011011-盖聂-操作系统实验报告.pdf
- 浙江理工大学操作系统实验3+主存空间
- 东北大学操作系统实验报告+源代码
- 广工操作系统实验及课程设计
- 操作系统实验二:进程、线程之间的
- Linux操作系统实验教程高清版
- 苏州大学操作系统实验二进程间通信
- 山东大学软件学院_操作系统实验1
- 山东大学 操作系统实验四 调度算法
- 操作系统实验八 磁盘移臂调度算法实
- 山东大学操作系统实验代码
- 苏州大学操作系统实验报告四可变分
- 华中科技大学操作系统实验
- 北京科技大学操作系统实验
- 大连理工大学操作系统上机进程调度
- 进程调度的设计与实现
- 操作系统实验四、时钟中断处理程序
- 实现单处理机下的进程调度程序
- 东华大学 操作系统实验 存储管理 含
- 操作系统实验三源代码加实验报告
- 华南理工大学操作系统实验:生产者
- 2016东华大学燕彩蓉操作系统实验七
- 操作系统实验 华工 Linux
- 时间片轮转调度算法
- 四川大学操作系统实验课件
- 操作系统 进程调度时间片轮转银行家
- 华中科技大学计算机学院操作系统一
- 四川大学操作系统实验报告week1
评论
共有 条评论