资源简介
包含作业调度,存储调度,进程调度,含有实验报告

代码片段和文件信息
#include
#include
#include
typedef struct pcb{
char name[10];//进程名
int time; //进程的总时间
int runtime;//进程已经占用的cpu时间
int needtime;//进程还需要的时间
char state;//进程运行状态:w(wait) or r(runing)
struct pcb *next;
}pcb*PCB;
typedef struct queue{
char name[10];
int timeSlice; //时间片的大小
PCB mPcb;
struct queue *next;
}queue *QUEUE;
QUEUE queueHead = NULL;
PCB pcbHead = NULL;
PCB pcbTail = NULL;
PCB pcbHead_2 = NULL;
PCB pcbTail_2 = NULL;
bool isFinish = false;
char finishName[10] = {};
/**
* 创建好队列
*/
void createQueue(){
int mn; //就绪队列数
QUEUE q;
printf(“请输入就绪队列数: “);
scanf(“%d“ &m);
n = m; //记录m的值
if(m!=0){
queueHead = (QUEUE)malloc(sizeof(queue));
queueHead->next = NULL;
q = queueHead;
}
m = m-1;
while(m>0){
q->next = (QUEUE)malloc(sizeof(queue));
q = q->next;
q->next = NULL;
m--;
}
q = queueHead;
for(int i=1;i<=n;i++){
printf(“请输入队列%d的名字:“ i);
scanf(“%s“ &q->name);
printf(“请输入队列%d的时间片大小:“ i);
scanf(“%d“ &q->timeSlice);
q->mPcb = NULL;
if(i!=n){
q = q->next;
}else{
q->next = NULL;
}
}
}
/**
* 创建进程加入就绪队列的第一个队列
*/
void createProcessInQueue(QUEUE queueHead){
int m n;
PCB p;
printf(“请输入要创建的进程数:“);
scanf(“%d“ &m);
n = m;
if(m!=0){
pcbHead = pcbTail = (PCB)malloc(sizeof(pcb));
pcbHead->next = NULL;
p = pcbHead;
}
m--;
while(m>0){
p->next = (PCB)malloc(sizeof(pcb));
p = p->next;
pcbTail = p;
p->next = NULL;
m--;
}
p = pcbHead;
for(int i=1;i<=n;i++){
printf(“请输入进程%d的名字:“ i);
scanf(“%s“ &p->name);
printf(“输入进程%d的总时间:“i);
scanf(“%d“&p->time);
p->runtime = 0;
p->needtime = p->time;
p->state = ‘w‘;
if(i!=n){
p = p->next;
}else{
p->next = NULL;
}
}
queueHead->mPcb = pcbHead;
}
/**
* 打印一队列里面的进程
*/
void printProcessInQueue(PCB mPcb){
PCB p1 = mPcb;
printf(“进程名 进程总时间 进程已经运行的时间 进程还需要的时间 进程状态\n“);
while(p1!=NULL){
printf(“%s “ p1->name);
printf(“%d “ p1->time);
printf(“%d “ p1->runtime);
printf(“%d “ p1->needtime);
printf(“%c “ p1->state);
printf(“\n“);
if(p1->next==NULL){
p1 = NULL;
}else{
p1 = p1->next;
}
}
}
/**
* 打印各个队列的进程列表
*/
void printQueue(){
QUEUE mQ = queueHead;
while(mQ!=NULL){
printf(“ %s队列里面的进程状态如下(时间片大小是 %d):\n“ mQ->name mQ->timeSlice);
printf(“--------------------------------------------------------------------\n“);
if(mQ->mPcb!=NULL){
printProcessInQueue(mQ->mPcb);
}
printf(“--------------------------------------------------------------------\n“);
printf(“\n“);
mQ = mQ->next;
}
if(isFinish==true){
printf(“ %s 进程已经运行完毕“ finishName);
isFinish = false;
strcpy(finishName ““);
}
getch
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
..A.SH. 162 2015-12-29 22:34 实验\~$实验报告.docx
文件 6928 2016-01-02 01:57 实验\实验一:进程调度\多级反馈队列 程序&源码\MultilevedFeedBackQueue.cpp
文件 8192 2016-01-02 01:57 实验\实验一:进程调度\多级反馈队列 程序&源码\MultilevedFeedbackQueue.exe
文件 5405 2016-01-02 01:57 实验\实验一:进程调度\多级反馈队列 程序&源码\MultilevedFeedbackQueue.o
文件 2948 2015-12-29 23:14 实验\实验一:进程调度\最高优先数优先 程序&源码\FirstAtHighestPriority.cpp
文件 25845 2015-12-29 23:16 实验\实验一:进程调度\最高优先数优先 程序&源码\FirstAtHighestPriority.exe
文件 11004 2015-12-29 23:16 实验\实验一:进程调度\最高优先数优先 程序&源码\FirstAtHighestPriority.o
文件 2318 2016-01-02 03:21 实验\实验一:进程调度\轮转法 程序&源码\RoundRobin.cpp
文件 6656 2016-01-02 03:21 实验\实验一:进程调度\轮转法 程序&源码\RoundRobin.exe
文件 2616 2016-01-02 03:21 实验\实验一:进程调度\轮转法 程序&源码\RoundRobin.o
文件 6486 2016-01-06 21:45 实验\实验三:存储管理\动态分区分配\DynamicPartition.cpp
文件 29645 2016-01-06 21:45 实验\实验三:存储管理\动态分区分配\DynamicPartition.exe
文件 14952 2016-01-06 21:45 实验\实验三:存储管理\动态分区分配\DynamicPartition.o
文件 3451 2016-01-07 00:10 实验\实验三:存储管理\固定分区分配\FixationPartition.cpp
文件 7168 2016-01-07 00:10 实验\实验三:存储管理\固定分区分配\FixationPartition.exe
文件 3087 2016-01-07 00:10 实验\实验三:存储管理\固定分区分配\FixationPartition.o
文件 6387 2016-01-05 01:45 实验\实验二:作业调度\单道作业调度\JobOfSingleprogramming.cpp
文件 28971 2016-01-05 01:45 实验\实验二:作业调度\单道作业调度\JobOfSingleprogramming.exe
文件 14033 2016-01-05 01:45 实验\实验二:作业调度\单道作业调度\JobOfSingleprogramming.o
文件 5006 2016-01-05 22:54 实验\实验二:作业调度\多道作业调度\JobOfMultiprogramming.cpp
文件 7168 2016-01-05 22:54 实验\实验二:作业调度\多道作业调度\JobOfMultiprogramming.exe
文件 3162 2016-01-05 22:54 实验\实验二:作业调度\多道作业调度\JobOfMultiprogramming.o
文件 891724 2016-01-07 00:24 实验\实验报告.docx
目录 0 2016-01-07 09:00 实验\实验一:进程调度\多级反馈队列 程序&源码
目录 0 2016-01-07 09:00 实验\实验一:进程调度\最高优先数优先 程序&源码
目录 0 2016-01-07 09:00 实验\实验一:进程调度\轮转法 程序&源码
目录 0 2016-01-07 09:00 实验\实验三:存储管理\动态分区分配
目录 0 2016-01-07 09:00 实验\实验三:存储管理\固定分区分配
目录 0 2016-01-07 09:00 实验\实验二:作业调度\单道作业调度
目录 0 2016-01-07 09:00 实验\实验二:作业调度\多道作业调度
............此处省略7个文件信息
相关资源
- 基于stm32f103ve的程序——跑马灯实验
- 升腾Win终端系统升级方法新版.doc
- 周立功开发板ProASIC3实验-syn_FIFO代码
- Uninstall_Cortana_WINCLIENT.CN.rar
- 编译原理实验工具及参考源码(lex&
- dotnet 写字板 实验 源代码 不好请要不
- 类pascal语言编译器(编译原理实验)
- 数学建模实验报告(八个全)
- 数值分析所有实验代码
- STM32基于rt_thread操作系统的SDHC卡文件
- 数字逻辑与数字系统实验报告
- 多媒体综合设计报告(附作品)
- ubuntu9.10 可加载内核模块和字符设备驱
- 操作系统 LRU算法 实验报告 及 程序代
- [免费]车载CE6.0操作系统
- 分页系统模拟实验 操作系统 课程设
- 数据结构实验魔王语言
- 模拟段页式虚拟存储管理中地址转换
- 迈克尔逊干涉仪的调整与使用实验报
- 8259A中断控制实验
- 操作系统实验——虚存管理实验
- 广工操作系统实验
- 广东工业大学操作系统实验四文件系
- 广东工业大学汇编实验二用表格形式
- 数值计算实验源代码
- Bochs入门教程[操作系统第一步]
- 操作系统课程设计完整版
- 磁盘调度算法的模拟实现及对比
- 数据结构实验 基于栈的表达式求值
- 模拟一个文件管理系统
评论
共有 条评论