资源简介
包含作业调度,存储调度,进程调度,含有实验报告
代码片段和文件信息
#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个文件信息
相关资源
- 子程序设计实验报告
- 计算机图形学实验报告及代码2
- 《计算机软件工具及维护实验》期末
- 华清远见uboot和linux内核移植实验手册
- 神反转策略精准操作系统.zip
- 磁盘调度算法.docx
- 实验十 存储过程与触发器
- SPOOLing输出模拟实验报告-精美版
- 进程调度与内存管理:这是我花了很
- 动态内存分配算法实验报告
- 操作系统课程复习总结
- linux内存管理实验报告
- 实验一小波变换-副本.pdf
- 多用户多级目录文件系统
- 操作系统实验--进程调度 作业调度 内
- 华东理工大学815计算机操作系统考研
- UCI数据集数据挖掘实验室数据
- 操作系统nachos第二次实验
- 四川大学计算机网络实验——web服务
- 8086实验IO控制灯亮Proteus8086
- 杭电简单文件系统的实现报告
- 通信电子线路实验指导书(华中科技
- 数据结构 建立二叉树二叉链表存储结
- 8251串行通信实验
- 有关于计算机操作系统6套题+简答的考
- 华中科技大学嵌入式系统实验报告
- 一些简单的模电与数电实验proteus仿真
- 山东建筑大学操作系统期末考试
- 计算机操作系统实验报告_动态分区分
- 操作系统 存储管理 实验报告
评论
共有 条评论