进程创建与撤消
更新时间:2024-04-08 17:53:01 阅读量: 综合文库 文档下载
- 不能触发进程撤消事件推荐度:
- 相关推荐
实验一:进程创建与撤消
一、实验目的
1、 加深对进程概念的理解和进程创建与撤消算法; 2、 进一步认识并发执行的实质。
二、实验内容
本实验完成如下三个层次的任务: (1)系统级—以普通用户身份认识windows的进程管理。通过windows的“任务管理器”观察进程的状态,进行进程的创建、切换和撤销。
(2)语言级—以普通程序员身份认识高级语言VC++/Java/C#的进程创建与撤销工具。
(3)模拟级—以OS设计师身份编程模拟实现进程创建与撤销功能,并在屏幕上观察进程活动的结果。
三、实验步骤
1、windows的进程管理 当前状态
切换前
1
切换后
2
撤销
2、VC++进程创建与撤销工具 3、进程创建与撤销的模拟实现 (1)总体设计: ①数据结构定义:
结构体PCB:进程名、ID、运行时间、优先级等,队列的排序按创建时间或优先级排序。 PCB空间—结构体PCB数组
就绪队列指针 空队列指针 ②函数
CREATE()—进程创建:从PCB空间申请一个空PCB,填入进程参数,插入就绪队列;
KILL()—进程终止:将指定的就绪进程移出就绪队列,插入空队列; 就绪队列输出函数Display()—输出就绪队列中的进程信息,以便观察创建或撤消活动的结果;
主函数Main()—功能选择、输入新进程参数、调用创建函数、输出就绪队列;输入进程名称、调用终止函数、输出就绪队列;
3
③主界面设计:进程创建、进程撤销、就绪队列显示菜单;数据输入和就绪队列显示区。
④功能测试:从显示出的就绪队列状态,查看操作的正确与否。 (2)详细设计: ①数据结构定义: 结构体PCB: struct PCB {
char NAME[10]; long ID; float TIME; int PRIORITY;
};PCB pcb[100]; ②函数设计 给出CREATE()、KILL()、Display()、Main()的流程图描述; 以CREATE()为例如下:
输入进程数 For循环 N+1 优先级大到小排序 输入参数 是 进程已存在 否 (3)调试与测试:列出你的测试结果,包括输入和输出。
Menu() 插入就绪队 4
四、实验总结
5
通过这次试验了解到了进城创建与撤销,并对以前的知识进行了复习,通过使用结构体和指针,实行进程的创建与撤销,我的程序设计能力得到提高,
五、附录
带注释的源程序。 #include
#define OK 1 #define ERROR 0
#define OVERFLOW -2
struct PCB //结构体PCB {char NAME[20];
long ID;
float TIME; int PRIORITY;
};PCB pcb[100]; //结构体数组 typedef struct QNode //单链表 { int data;
struct QNode *next; }QNode,*QueuePtr;
typedef struct LinkQueue //链队列 { QueuePtr front; QueuePtr rear;
}LinkQueue;LinkQueue R,E; int N,m;// N为当前进程数
void menu();
int InitQueue()// 就绪队、空队的初始化
{ R.front=R.rear=(QueuePtr)malloc(sizeof(QNode)); E.front=E.rear=(QueuePtr)malloc(sizeof(QNode)); if(!R.front) exit(OVERFLOW); if(!E.front) exit(OVERFLOW); R.front->next=NULL;
E.front ->next =NULL;
6
return OK;
}
void create()//进程创建
{ char name[20];long id;float time; int priority; int n; QNode *p; cout<<\请输入要创建进程的数目:\
cin>>n;
cin>>id;
for(int i=1;i<=n;i++) { cout<<\进程ID:\
for(int j=i-1;j<=N;j++)
{ while(id==pcb[j].ID) { cout<<\进程ID已存在\ cout<<\进程ID:\cin>>id;
} }
cout<<\进程名:\
cout<<\运行时间:\cin>>time; cout<<\优先级:\cin>>priority; N++;//保存当前就绪进程数
strcpy(pcb[N].NAME,name); pcb[N].ID =id; pcb[N].TIME =time;
pcb[N].PRIORITY =priority;
p=(QueuePtr)malloc(sizeof(QNode));//插入就绪队列
if(!p) exit(OVERFLOW); p->data=N; p->next=NULL; R.rear->next=p; R.rear=p;
}
for(i=1;i<=N;i++)//按优先级排队 { }
for(int j=i+1;j<=N;j++)
if(pcb[i].PRIORITY pcb[j]=pcb[0]; menu(); } void kill()//进程终止 7 { long id; QNode *p; cout<<\请输入要终止的进程ID:\ cin>>id; p=R.front->next; if(p==NULL) cout<<\就绪进程为空!\ while(p!=NULL) { if(id==pcb[N].ID)//终止进程是队列最后一个 { if(N==1) //队列中只有一个进程,且是终止进程 {R.front =R.rear;R.front ->next =NULL;N--;cout<<\进程已终else //队列中进程多个 { while(p!=NULL) {if(p->next->next ==NULL) {p->next =NULL;R.rear =p;N--;cout<<\进程已终止! \ } } p=p->next ; 止!\ } if(id==pcb[p->data].ID) { if(R.front==R.rear) cout< while(p!=NULL) { pcb[p->data]=pcb[p->data+1];//修改PCB数组里的值 if(p->next ->next ==NULL) {p->next =NULL;R.rear =p;cout<<\进程已终止!\ p=p->next; } N--; break; } p=p->next ; } menu(); } void display() { QNode *p; p=R.front->next; cout<<\名字\运行时间\优先级\ while(p!=NULL) { cout< \ \ \ 8 p=p->next ; } menu(); } void exit()//退出系统; {exit(0);} void main() { InitQueue(); } void menu() { cout<<'\\n'<<\进程创建\进程撤销\就绪队列显示\退出\ } int choice; cout<<\请选择:\cin>>choice; switch(choice) { case 1:create();break; case 2:kill();break; case 3:display();break; case 4:exit(); default :exit(); } pcb[0].ID =0; menu(); 9
正在阅读:
进程创建与撤消04-08
动态心电图预约制度09-07
家中的新鲜事作文800字06-27
英语作文-建议信09-18
四川省成都市2018年高中阶段教育学校统一招生考试语文试题(含答案)09-13
超市安全生产事故应急预案12-28
小学生国旗下的讲话——成功贵在坚持07-11
永和豆浆标准化管理05-28
令我感动的一件作文450字07-05
哲学通论试题03-30
- 多层物业服务方案
- (审判实务)习惯法与少数民族地区民间纠纷解决问题(孙 潋)
- 人教版新课标六年级下册语文全册教案
- 词语打卡
- photoshop实习报告
- 钢结构设计原理综合测试2
- 2014年期末练习题
- 高中数学中的逆向思维解题方法探讨
- 名师原创 全国通用2014-2015学年高二寒假作业 政治(一)Word版
- 北航《建筑结构检测鉴定与加固》在线作业三
- XX县卫生监督所工程建设项目可行性研究报告
- 小学四年级观察作文经典评语
- 浅谈110KV变电站电气一次设计-程泉焱(1)
- 安全员考试题库
- 国家电网公司变电运维管理规定(试行)
- 义务教育课程标准稿征求意见提纲
- 教学秘书面试技巧
- 钢结构工程施工组织设计
- 水利工程概论论文
- 09届九年级数学第四次模拟试卷
- 撤消
- 进程
- 创建
- 《建筑工程估价实训》设计任务书 - 图文
- 各大公司薪水待遇
- 一年级争做文明小学生演讲稿大全
- 软件工程考试试题与答案
- 儿童图书推荐专家认为阅读时要有计划
- 五种矿山常见事故的应急处理
- 大学生魅力讲话实操答案
- 党纪政纪法纪知识竞赛题及答案
- 计算机二级上机解题技巧
- 2014年12月计算机网络联考试卷B
- 中国石油天然气管道局职工福利管理办法
- 从建龙钢铁的恶意并购来看产权制度改革
- 2017年吉林省直事业单位通用知识:公文主要文种及写作方法
- 中华人民共和国社区矫正法(草案送审稿)
- DSG双离合变速器02E变速器 - 图文
- 私募基金管理人的声明与承诺合同协议书范本
- 2014年房产经纪人成功开单的六大技巧每日一讲(1月24日)
- 融资融券业务的二套考题及答案
- 三墩北单元吉鸿路南地块配套项目审计服务项目招标文件
- 全国中小学环保知识竞赛题答案