进程创建与撤消

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

实验一:进程创建与撤消(模拟)

一、实验目的

1、加深对进程概念的理解和进程创建与撤消算法;

2、进一步认识并发执行的实质。

二、实验内容

本实验完成如下三个层次的任务:

(1)系统级—以普通用户身份认识windows的进程管理。通过windows 的“任务管理器”观察进程的状态,进行进程的创建、切换和撤销。

(2)语言级—以普通程序员身份认识高级语言VC++/Java/C#的进程创建与撤销工具。

(3)模拟级—以OS设计师身份编程模拟实现进程创建与撤销功能,并在屏幕上观察进程活动的结果。

三、实验步骤

1、windows的进程管理

当前状态

切换前

切换后

撤销

2、VC++进程创建与撤销工具

3、进程创建与撤销的模拟实现

(1)总体设计:

①数据结构定义:

结构体PCB:进程名、ID、运行时间、优先级等,队列的排序按创建时间或优先级排序。PCB空间—结构体PCB数组

就绪队列指针

空队列指针

②函数

CREATE()—进程创建:从PCB空间申请一个空PCB,填入进程参数,插入就绪队列;

KILL()—进程终止:将指定的就绪进程移出就绪队列,插入空队列;

就绪队列输出函数Display()—输出就绪队列中的进程信息,以便观察创建或撤消活动的结果;

主函数Main()—功能选择、输入新进程参数、调用创建函数、输出就

绪队列;输入进程名称、调用终止函数、输出就绪队列;

③主界面设计:进程创建、进程撤销、就绪队列显示菜单;数据输入和就绪队列显示区。

④功能测试:从显示出的就绪队列状态,查看操作的正确与否。

(2)详细设计:

①数据结构定义:

结构体PCB:

struct PCB {

char NAME[10];

long ID;

float TIME;

int PRIORITY;

};PCB pcb[100];

②函数设计

给出CREATE()、KILL()、Display()、Main()的流程图描述;

以CREATE()为例如下:

(3)调试与测试:列出你的测试结果,包括输入和输出。

四、实验总结

通过这次试验了解到了进城创建与撤销,并对以前的知识进行了复习,通过使用结构体和指针,实行进程的创建与撤销,我的程序设计能力得到

提高,

五、附录

带注释的源程序。

#include<>

#include<>

#include<>

#include<>

#define OK 1

#define ERROR 0

#define OVERFLOW -2

struct PCB D)

{ cout<<"进程ID已存在"<

cout<<"进程ID:"; cin>>id;

}

}

cout<<"进程名:";cin>>name;

cout<<"运行时间:"; cin>>time;

cout<<"优先级:"; cin>>priority;

N++;AME,name);

pcb[N].ID =id;

pcb[N].TIME =time;

pcb[N].PRIORITY =priority;

p=(QueuePtr)malloc(sizeof(QNode));RIORITY

pcb[i]=pcb[j]; pcb[j]=pcb[0];

}

} menu();

}

void kill()D)D)

{ if== cout<

while(p!=NULL)

{ pcb[p->data]=pcb[p->data+1];D<<""<data].NAME<<" "<data].TIME <<" "<data].PRIORITY<

p=p->next ;

} menu();

}

void exit()D =0;

menu();

}

void menu()

{ cout<<'\n'<<"1.进程创建"<<'\n'<<"2.进程撤销"<<'\n'<<"3.就绪队列显示"<<'\n'<<"4.退出"<

int choice;

cout<<"请选择:";

cin>>choice;

switch(choice)

{ case 1:create();break;

case 2:kill();break;

case 3:display();break;

case 4:exit();

default :exit();

}

}

相关文档
最新文档