• 大小: 845.39 KB
    文件类型: .rar
    金币: 1
    下载: 0 次
    发布日期: 2024-10-16
  • 语言: 其他
  • 标签: 广工  

资源简介

广工操作系统实验,里面含有广工OS实验要做的四个实验,里面有源代码、实验报告和可执行文件。

资源截图

代码片段和文件信息

#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; 

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(); 


 

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

     文件     886784  2013-01-06 17:11  广工操作系统实验\3110006323郑耀恒_OS实验报告.doc

     文件       3024  2012-12-30 23:22  广工操作系统实验\实验一的可执行文件和源码\实验1.1\shiyan1_1.cpp

     文件     184420  2012-12-30 23:22  广工操作系统实验\实验一的可执行文件和源码\实验1.1\shiyan1_1.exe

     文件       2556  2012-12-30 23:09  广工操作系统实验\实验一的可执行文件和源码\实验1.2\shiyan.cpp

     文件     184409  2012-12-30 23:09  广工操作系统实验\实验一的可执行文件和源码\实验1.2\shiyan.exe

     文件      11406  2013-01-02 19:35  广工操作系统实验\实验三的可执行文件和源码\shiyan3_1.cpp

     文件     270436  2013-01-02 19:35  广工操作系统实验\实验三的可执行文件和源码\shiyan3_1.exe

     文件       7246  2013-01-02 14:58  广工操作系统实验\实验二的可执行文件和源码\实验2.cpp

     文件     221280  2013-01-02 23:50  广工操作系统实验\实验二的可执行文件和源码\实验2.exe

     文件      14724  2013-01-02 23:23  广工操作系统实验\实验四的可执行文件和源码\shiyan4_1.cpp

     文件     278628  2013-01-02 23:23  广工操作系统实验\实验四的可执行文件和源码\shiyan4_1.exe

     目录          0  2013-01-06 16:56  广工操作系统实验\实验一的可执行文件和源码\实验1.1

     目录          0  2013-01-06 16:56  广工操作系统实验\实验一的可执行文件和源码\实验1.2

     目录          0  2013-01-06 16:56  广工操作系统实验\实验一的可执行文件和源码

     目录          0  2013-01-06 16:56  广工操作系统实验\实验三的可执行文件和源码

     目录          0  2013-01-06 16:56  广工操作系统实验\实验二的可执行文件和源码

     目录          0  2013-01-06 16:56  广工操作系统实验\实验四的可执行文件和源码

     目录          0  2013-01-06 17:12  广工操作系统实验

----------- ---------  ---------- -----  ----

              2064913                    18


评论

共有 条评论