• 大小: 1.77MB
    文件类型: .rar
    金币: 1
    下载: 0 次
    发布日期: 2023-09-01
  • 语言: 其他
  • 标签:

资源简介

比较详细的源代码,经过编译无措,大家看看吧

资源截图

代码片段和文件信息

#include “stdio.h“ 

#include  

#include  

#define getpch(type) (type*)malloc(sizeof(type)) 

#define NULL 0 

struct pcb { /* 定义进程控制块PCB */ 

char name[10]; 

char state; 

int super; 

int ntime; 

int rtime; 

struct pcb* link; 

}*ready=NULL*p; 

typedef struct pcb PCB; 

  

  

sort() /* 建立对进程进行优先级排列函数*/ 



PCB *first *second; 

int insert=0; 

if((ready==NULL)||((p->super)>(ready->super))) /*优先级最大者插入队首*/ 



p->link=ready; 

ready=p; 



else /* 进程比较优先级插入适当的位置中*/ 



first=ready; 

second=first->link; 

while(second!=NULL) 



if((p->super)>(second->super)) /*若插入进程比当前进程优先数大*/ 

{ /*插入到当前进程前面*/ 

p->link=second; 

first->link=p; 

second=NULL; 

insert=1; 



else /* 插入进程优先数最低则插入到队尾*/ 



first=first->link; 

second=second->link; 





if(insert==0) first->link=p; 





input() /* 建立进程控制块函数*/ 



int inum; 

clrscr(); /*清屏*/ 

printf(“\n 请输入进程号?“); 

scanf(“%d“&num); 

for(i=0;i


printf(“\n 进程号No.%d:\n“i); 

p=getpch(PCB); 

printf(“\n 输入进程名:“); 

scanf(“%s“p->name); 

printf(“\n 输入进程优先数:“); 

scanf(“%d“&p->super); 

printf(“\n 输入进程运行时间:“); 

scanf(“%d“&p->ntime); 

printf(“\n“); 

p->rtime=0;p->state=‘w‘; 

p->link=NULL; 

sort(); /* 调用sort函数*/ 





int space() 



int l=0; PCB* pr=ready; 

while(pr!=NULL) 



l++; 

pr=pr->link; 



return(l); 



disp(PCB * pr) /*建立进程显示函数用于显示当前进程*/ 



printf(“\n qname \t state \t super \t ndtime \t runtime \n“); 

printf(“|%s\t“pr->name); 

printf(“|%c\t“pr->state); 

printf(“|%d\t“pr->super); 

printf(“|%d\t“pr->ntime); 

printf(“|%d\t“pr->rtime); 

printf(“\n“); 


check() /* 建立进程查看函数 */ 



PCB* pr; 

printf(“\n **** 当前正在运行的进程是:%s“p->name); /*显示当前运行进程*/ 

disp(p); 

pr=ready; 

printf(“\n ****当前就绪队列状态为:\n“); /*显示就绪队列状态*/ 

while(pr!=NULL) 



disp(pr); 

pr=pr->link; 





destroy() /*建立进程撤消函数(进程运行结束撤消进程)*/ 



printf(“\n 进程 [%s] 已完成.\n“p->name); 

free(p); 



running() /* 建立进程就绪函数(进程运行时间到置就绪状态*/ 



(p->rtime)++; 

if(p->rtime==p->ntime) 

destroy(); /* 调用destroy函数*/ 

else 



(p->super)--; 

p->state=‘w‘; 

sort(); /*调用sort函数*/ 





main() /*主函数*/ 



int lenh=0; 

char ch; 

input(); 

len=space(); 

while((len!=0)&&(ready!=NULL)) 



ch=getchar(); 

h++; 

printf(“\n The execute number:%d \n“h); 

p=ready; 

ready=p->link; 

p->link=NULL; 

p->state=‘R‘; 

check(); 

running(); 

printf(“\n 按任一键继续......“); 

ch=getchar(); 



printf(“\n\n 进程已经完成.\n“); 

ch=getchar(); 


 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----

     文件       3027  2009-06-30 10:34  操作系统实训\dd.cpp

     文件       7266  2007-07-01 09:41  操作系统实训\Debug\1.obj

     文件     548953  2009-06-30 08:34  操作系统实训\Debug\Cpp1.exe

     文件     256660  2009-06-30 08:34  操作系统实训\Debug\Cpp1.obj

     文件    1098752  2009-06-30 08:34  操作系统实训\Debug\Cpp1.pdb

     文件      10200  2009-07-01 10:11  操作系统实训\Debug\duan.obj

     文件     274492  2009-07-02 09:20  操作系统实训\Debug\main.exe

     文件     330904  2009-07-02 09:20  操作系统实训\Debug\main.ilk

     文件     106935  2009-07-02 09:20  操作系统实训\Debug\main.obj

     文件    3723244  2009-07-02 09:20  操作系统实训\Debug\main.pch

     文件     541696  2009-07-02 09:20  操作系统实训\Debug\main.pdb

     文件     156672  2009-07-02 09:21  操作系统实训\Debug\vc60.idb

     文件      86016  2009-07-02 09:20  操作系统实训\Debug\vc60.pdb

     文件     208993  2009-06-29 21:43  操作系统实训\Debug\磁盘管理程序.exe

     文件      22430  2009-06-29 21:42  操作系统实训\Debug\磁盘管理程序.obj

     文件     484352  2009-06-29 21:43  操作系统实训\Debug\磁盘管理程序.pdb

     文件     187056  2009-07-02 08:57  操作系统实训\Debug\银行家算法.pch

     文件       3357  2009-07-01 14:47  操作系统实训\duan.cpp

     文件       2480  2009-07-01 14:52  操作系统实训\fcfs.cpp

     文件       7784  2009-07-01 15:17  操作系统实训\hpf.cpp

     文件       2993  2009-07-02 08:43  操作系统实训\main.cpp

     文件       3377  2009-07-02 09:19  操作系统实训\main.dsp

     文件        516  2009-07-02 09:21  操作系统实训\main.dsw

     文件      66560  2009-07-02 09:21  操作系统实训\main.ncb

     文件      48640  2009-07-02 09:21  操作系统实训\main.opt

     文件        242  2009-07-02 09:20  操作系统实训\main.plg

     文件       4766  2009-07-02 09:02  操作系统实训\pc.cpp

     文件       3780  2009-07-02 09:15  操作系统实训\存储管理.cpp

     文件       8959  2009-06-29 22:03  操作系统实训\磁盘管理程序.cpp

     文件       5380  2009-07-02 09:20  操作系统实训\银行家算法.cpp

............此处省略10个文件信息

评论

共有 条评论