资源简介

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

资源截图

代码片段和文件信息

#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个文件信息

评论

共有 条评论