2022年操作系统-进程管理

上传人:m**** 文档编号:567491228 上传时间:2024-07-20 格式:PDF 页数:9 大小:55.68KB
返回 下载 相关 举报
2022年操作系统-进程管理_第1页
第1页 / 共9页
2022年操作系统-进程管理_第2页
第2页 / 共9页
2022年操作系统-进程管理_第3页
第3页 / 共9页
2022年操作系统-进程管理_第4页
第4页 / 共9页
2022年操作系统-进程管理_第5页
第5页 / 共9页
点击查看更多>>
资源描述

《2022年操作系统-进程管理》由会员分享,可在线阅读,更多相关《2022年操作系统-进程管理(9页珍藏版)》请在金锄头文库上搜索。

1、第 1 页 共 9 页仲恺农业工程学院实验报告纸信息科学与技术(院、系)计算机科学与技术专业 142 班_组 操作系统实验课学号: 201420224430 姓名:黄丽君实验日期教师评定实验一、进程管理一、实验目的通过实验使学生进一步了解进程、进程状态、 进程控制等基本概念。 基本能达到下列具体的目标:1、 理解进程 PCB 的概念,以及 PCB 如何实现、如何组织以及管理。2、 复习数据结构中如何对链的操作,包括建链、删除、插入结点等,来实现进程的管理。二、实验内容1、 建立一个结点, 即 PCB 块包括用户标识域、 状态域(执行、等待、就绪) 、 link 域。2、 建立三个队列(执行队列

2、、就绪队列、等待队列)。3、 根据进程状态转换实现对三个队列的具体操作。具体的驱动可以采用时间片算法或手动调度的形式完成三个状态之间的转换4、 用 switch 选择语句选择状态。5、 按照自己的设定能完成所有的状态转换的运行(包括创建和运行结束)。三、实验步骤1、 复习进程管理三状态模型部分内容。2、 预习 C+ Builder或 VC+ 、Delphi 、JBuilder线程编程。3、 运行示例程序,进一步明确实验要求。可以采用控制台模式或窗口模式。4、 上机编程、调试程序。5、 完成实验报告。名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - -

3、 - - - - 名师精心整理 - - - - - - - 第 1 页,共 9 页 - - - - - - - - - 第 2 页 共 9 页四、实验代码#include #include #include #define getpch(type)(type*)malloc(sizeof(type) /将申请内存空间函数自定义为 getpch(type) #define NULL 0 struct pcd char name10; char state; /进程状态int super; /进程优先级int ntime; /进程需要运行的时间int rtime; /进程已经运行的时间struct

4、 pcb* link;/进程指向另一个进程的指针*ready=NULL,*p; /ready表示指向就绪队列中首元素的指针,初始化为 NULL ,p 用来存放当前刚刚输入的PCB typedef struct pcb PCB; void sort() /建立对进程进行优先级排列函数 PCB *first,*second; int insert=0; 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 2 页,共 9 页 - - - - - - - - - 第 3 页 共 9 页if(re

5、ady=NULL)|(p-super)(ready-super) / 优 先 级 最 大者,插入队首 p-link=ready; ready=p; else /进程比较优先级,插入适当的位置 first=ready; second=first-link; while(second!=NULL) if(p-super)(ready-super) /若插入进程比当前进程优先数大 /插入到当前进程前面p-link=second; first-link=p; second=NULL; insert=1; /插入队列记录符号 else /插入进程优先数最低, 则插入到队尾名师资料总结 - - -精品资料

6、欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 3 页,共 9 页 - - - - - - - - - 第 4 页 共 9 页 first=first-link; second=second-link; if(insert=0) first-link=p; void input() /建立进程控制块函数 ,PCB输入模块 int i,num; printf(n请输入进程号: ); scanf(%d,&num); for(i=0;iname); printf(n请输入进优先数: ); 名师资料总结 - - -精品资料

7、欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 4 页,共 9 页 - - - - - - - - - 第 5 页 共 9 页 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() /PCB就绪队列元素计数模块,计算就绪队列中PCB的总数 int l=0; PCB* pr=ready; /获取就绪

8、队列的头指针ready while(pr!=NULL) l+; pr=pr-link; return(l); 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 5 页,共 9 页 - - - - - - - - - 第 6 页 共 9 页void disp(PCB* pr) /建立进程显示函数,用于显示当前进程 printf(n进程名 t 进程状态 t 优先级 t 运行需要时间 t 已经运行时间 n); printf(%s t,pr-name); printf(%c t,pr-stat

9、e); printf(%d t,pr-super); printf(%d t,pr-ntime); printf(%d t,pr-rtime); printf(n); void check() /建立进程查看函数 PCB* pr; printf(nt当前正在运行的进程是:%s,p-name); /显示当前运行进程disp(p); pr=ready; printf(nt当前就绪队列状态是:n); /显示就绪队列状态while(pr!=NULL) 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - -

10、- 第 6 页,共 9 页 - - - - - - - - - 第 7 页 共 9 页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 函数 名师资料总结 - - -精

11、品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 7 页,共 9 页 - - - - - - - - - 第 8 页 共 9 页 void main() /主函数 int len,h=0; /h表示进程调度次数char ch; input(); len=space(); /获取就绪队列长度while(len!=0)&(ready!=NULL) ch=getchar(); h+; printf(n 执行数: %dn,h); p=ready; /以下 3 行是将 P从就绪队列的队首摘除ready=p-link; p

12、-link=NULL; p-state=R; /将 P的状态改为 R check(); running(); printf(n 按任意键继续: ); ch=getchar(); 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 8 页,共 9 页 - - - - - - - - - 第 9 页 共 9 页printf(nn 进程已经完成 n); ch=getchar(); 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 9 页,共 9 页 - - - - - - - - -

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 建筑/环境 > 施工组织

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号