收藏 分享(赏)

任务二、单处理机系统的进程调度.doc

上传人:gnk289057 文档编号:9604621 上传时间:2019-08-17 格式:DOC 页数:7 大小:230KB
下载 相关 举报
任务二、单处理机系统的进程调度.doc_第1页
第1页 / 共7页
任务二、单处理机系统的进程调度.doc_第2页
第2页 / 共7页
任务二、单处理机系统的进程调度.doc_第3页
第3页 / 共7页
任务二、单处理机系统的进程调度.doc_第4页
第4页 / 共7页
任务二、单处理机系统的进程调度.doc_第5页
第5页 / 共7页
点击查看更多>>
资源描述

1、任务二、单处理机系统的进程调度实验目的:1、加深对进程概念的理解,明确进程和程序的区别2、深入了解系统如何组织进程,创建进程3、进一步认识如何实现处理机调度。实验代码:#include “stdio.h“ #include #include #define getpch(type) (type*)malloc(sizeof(type) #define NULL 0 struct pcb /* 定义进程控制块 PCB */ char name10; char state; int super; int ntime; int rtime; struct pcb* link; *ready=NULL

2、,*p; typedef struct pcb PCB; void 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) /*若插入进程比当前进程优先数大,*/ /*

3、插入到当前进程前面*/ p-link=second; first-link=p; second=NULL; insert=1; else /* 插入进程优先数最低,则插入到队尾*/ first=first-link; second=second-link; if(insert=0) first-link=p; void input() /* 建立进程控制块函数*/ int i,num; printf(“n 请输入进程数量:“); scanf(“%d“, for(i=0;iname); printf(“n 输入进程优先数:“); scanf(“%d“, printf(“n 输入进程运行时间:“)

4、; scanf(“%d“, 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); void show()printf(“nqnametstatetsupertndtimetruntimen“); void disp(PCB * pr) /*建立进程显示函数,用于显示当前进程*/ printf(“ %st“,pr-name); printf(“ %ct“

5、,pr-state); printf(“ %dt“,pr-super); printf(“ %dt“,pr-ntime); printf(“ %dt“,pr-rtime); printf(“n“); void check() /* 建立进程查看函数 */ PCB* pr; printf(“n*当前正在运行的进程是:%s“,p-name); /*显示当前运行进程*/ show();disp(p); pr=ready; if(pr=NULL)printf(“n*当前就绪队列为空!“);else printf(“n*当前就绪队列状态为:“); /*显示就绪队列状态*/show();while(pr!

6、=NULL) disp(pr); pr=pr-link; void destroy() /*建立进程撤消函数(进程运行结束,撤消进程)*/ printf(“n 进程%s 已完成 .n“,p-name); free(p); void running() /* 建立进程就绪函数(进程运行时间到,置就绪状态*/ (p-rtime)+; if(p-rtime=p-ntime) destroy(); /* 调用 destroy 函数*/ else (p-super)-; p-state=w; sort(); /*调用 sort 函数*/ void main() /*主函数*/ int len,h=0; char ch; input(); len=space(); while(len!=0) h+; printf(“n 当前运行次数为:%d n“,h); p=ready; ready=p-link; p-link=NULL; p-state=R; check(); running(); printf(“n 按任一键继续“); ch=getchar(); printf(“nn 进程已经完成.n“); ch=getchar(); 运行结果:

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 企业管理 > 管理学资料

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报