计算机操作系统课程设计报告(2)

2018-12-19 22:25

实验一、模拟进程创建、终止、阻塞、唤醒

原语

实验目的:

通过设计并调试创建、终止、阻塞、唤醒原语功能,有助于对操作系统中进程控制功能的理

解,掌握操作系统模块的设计方法和工作原理。

实验内容:

1、设计创建、终止、阻塞、唤醒原语功能函数。

2、设计主函数,采用菜单结构(参见后面给出的流程图)。

6

3、设计“显示队列”函数,目的能将就绪、阻塞队列中的进程信息显示在屏幕上,以供

随时查看各队列中进程的变化情况。

实验步骤:

1、进程PCB中应包含以下内容:

进程名 优先级 运行时间 状态 指针 2、系统总体结构:

系统主菜单 1?创建 2?阻塞 3?唤醒 4?终止 5?显示 0?退出 请输入您需要的功能(0-5):

结束 退出 0 1 创建 输入选择=? 5 2 阻塞 3 唤醒 4 终止 显示 开始 其中:

进程名用P1,P2标识。

优先级及运行时间:为实验题目二做准备。 状态为:就绪、运行、阻塞,三种基本状态。 指针:指向下一个PCB。

实验代码:

#include

#include struct PCB {

char name[4]; int priority; int runtime;

7

};

void main() { int x,t;

int a=0;

int k=0,r=1,i=0,j=0;//k为就绪队列总数,r堵塞队列总数 char name[4]; struct PCB pcb[10];

struct PCB pcb1[10];

struct PCB pcb2[10]; printf(\菜单---------------------\\n\\n\\n\ printf(\退出系统\\n\ printf(\创建进程\\n\ printf(\堵塞进程\\n\ printf(\唤醒进程\\n\ printf(\终止进程\\n\

printf(\显示进程\\n\

printf(\ strcpy(pcb1[0].name,\堵塞队列 pcb1[0].priority = 2; pcb1[0].runtime = 3;

//printf(\ %d %d\

while(1) {

printf(\请输入你的选择:\

scanf(\ if(x==0)

break; if(x==1) {

printf(\创建进程---------------\\n\

8

printf(\进程名:\

scanf(\ printf(\优先级:\

scanf(\printf(\运行时间:\scanf(\ }

if(x==2) { printf(\堵塞进程---------------\\n\ printf(\请输入要查找的进程:\

scanf(\for(j=0;j<=k;j++) {

if(strcmp(pcb[j].name,name)==0) { k=k+1;

t=j; strcpy(pcb2[a].name,pcb[t].name); pcb2[a].priority = pcb[t].priority; pcb2[a].runtime = pcb[t].runtime;

strcpy(pcb1[r].name,pcb2[a].name);

pcb1[r].priority = pcb2[a].priority; pcb1[r].runtime = pcb2[a].runtime; r=r+1;

a=a+1;

for(i=t;i<=k;i++) {

strcpy(pcb[i].name,pcb[i+1].name);

pcb[i].priority = pcb[i+1].priority; pcb[i].runtime = pcb[i+1].runtime;

} k=k-1; printf(\将就绪序列调度为运行:\

for(i=0;i

printf(\printf(\堵塞进程:\\n\

for(j=0;j

9

printf(\ break;

} else

printf(\该进程已是堵塞进程!\\n\ break;

}

}

if(x==3) { printf(\唤醒进程---------------\\n\

printf(\请输入要唤醒的进程:\ scanf(\

for(i=0;i

strcpy(pcb[k].name,pcb1[t].name);

pcb[k].priority = pcb1[t].priority; pcb[k].runtime = pcb1[t].runtime; k=k+1; for(j=t;j

strcpy(pcb1[j].name,pcb1[j+1].name); pcb1[j].priority = pcb1[j+1].priority; pcb1[j].runtime = pcb1[j+1].runtime;

10


计算机操作系统课程设计报告(2).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:1000字《铁道游击队》读书笔记范文

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: