实验一进程管理。
一、实验目的。
1.开发一个函数,建立进程控制块和资源控制块结构,并实现相关数据结构的初始化。
2.开发一系列操作,由进程调用这些操作,达到控制进程申请或释放各种资源的目的。
通过实验理解进程的概念,进程的组成(pcb结构),进程的并发执行和操作系统进行进程管理的相关原语(主要是进程的创建、执行、撤消)。
用c语言编程模拟进程管理,至少要有:创建新的进程;查看运行进程;换出某个进程;杀死运行进程以及进程之间通信等功能。
windows操作系统、vc++6.0
c语言(c-free5.0)
程序流程图。
数据结构:算法设计:
state=0 杀死。
state=1 就绪。
state=2 等待。
state=3 运行。
1)进程控制块信息。
struct jincheng_type
2)进程信息初始化。
struct jincheng_type neicun[20];
int shumu=0,pid_l;
int max=0;int number=0;
(3)创建进程的算法。
void create( )创建一个进程的示例*/
if(shumu>=20)
printf("内存已满,请先结束或换出进程");
elseprintf("请输入新进程的pid");
scanf("%d",&neicun[shumu].pid);
printf("请输入新进程的优先级");
scanf("%d",&neicun[shumu].youxian);
printf("请输入新进程的大小");
scanf("%d",&neicun[shumu].daxiao);
printf("创建进程时令其状态为就绪");
scanf("%d",&neicun[shumu+1].daxiao);
printf("创建进程信息");
scanf("%d",&neicun[shumu+1].message);
neicun[shumu].state=1;
shumu++;
(4)查看运行进程算法。
void run()
int max=0;
int vpid;
for(int i=0;i
neicun[max].flag=3;
printf("当前运行进程程序名:%d",neicun[max].pid);
printf("该进程的优先级:%d",neicun[max].youxian);
printf("该进程的运行时间:%d",neicun[max].daxiao);
printf("该进程的状态:%d",neicun[max].flag);
printf("该进程的信息是:%d",neicun[max].message);
vpid=getch();
5)换出进程算法。
void huanchu()
int i,k,d;
for(int i=0;i
neicun[max].flag=3;
if(max==shumu-1)
printf("没有处于等待序列的进程");else
6)杀死进程算法。
void kill()/杀死某个进程*/
int i=0,k,b;
printf("请输入要杀死的进程:")
scanf("%d",&k);
while(neicun[i].pid!=k)
i++;neicun[i].daxiao=0;
neicun[i].pid=0;
neicun[i].youxian=0;
neicun[i].flag=0;
if(i==(shumu-1))
shumu--;
elseshumu--;
printf("进程%d已被杀死",k);
b=getche();
7)进程通信算法。
int tongxun()
*ready=null,*p;
typedef struct pcb pcb;
2. 建立进程优先级排列函数。
sort() 建立对进程进行优先级排列函数*/
pcb *first, *second;
int insert=0;
操作系统课程设计报告
西安郵電大學。院系名称 计算机学院。专业名称 软件工程。班级 1104 学生姓名 赵大伟。学号 8位 04113124 指导教师 舒新峰。设计起止时间 2013.11.10 2013.11.20 1 通过观察 分析实验现象,深入理解进程及进程在调度执行和内存空间等方面的特点,掌握在posix 规范中...
操作系统课程设计报告
课程设计。课程名称操作系统。题目名称多级文件系统 2 学生学院计算机学院 专业班级。学号。学生姓名。指导教师。年月日。目录。一 课程设计 6 二 开发工具及环境 6 三 设计内容 6 四 结构图 8 五 部分 9 六 运行截图 11 七 参考文献 15 八 心得体会 15 本课程设计要求设计一个模拟...
操作系统课程设计报告
操作系统。课程设计报告。2013 2014 第二学期 课程名称 操作系统课程设计。设计题目 进程通信 姓名。学号。班级。指导老师。2014 年 6 月 18 号。1 设计目的与功能。一 设计目的 通过设计和调试一个基于消息的通讯系统,来实现进程之间的直接或间接通讯,使学生对进程间的通讯机制 进程间的...