进程的三种状态转换

进程的三种状态转换

ID:34062316

大小:90.50 KB

页数:4页

时间:2019-03-03

进程的三种状态转换_第1页
进程的三种状态转换_第2页
进程的三种状态转换_第3页
进程的三种状态转换_第4页
资源描述:

《进程的三种状态转换》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库

1、实验报告实验名称进程的三种状态转换专业计算机科学与技术课程名称操作系统指导老师张海燕老师班级2011级二表1班姓名姜玉龙学号**********评分实验地点 1c26217实验日期 2013/09/18一、实验目的1.熟悉进程管理及其相关的基本概念。2.通过实验掌握进程的三种转化,执行,就绪,阻塞及其相关知识。二、实验内容(含实验原理介绍)1.就绪状态:当进程已分配到除CPU以外的所有必要的资源,只要获得处理机便可立即执行,这时的进程状态称为就绪状态。2.执行状态 :当进程已获得处理机,其程序正在处理机上执行,此时的进程

2、状态称为执行状态。3.阻塞)状态 :正在执行的进程,由于等待某个事件发生而无法执行时,便放弃处理机而处于阻塞状态。引起进程阻塞的事件可有多种,例如,等待I/O完成、申请缓冲区不能满足、等待信件(信号)等三、实验过程及步骤(包含使用软件或实验设备等情况)实验设备:装有vc++6.0的pc实验步骤:创建链表LinkListCreateListR(intNum)LinkListhead=(LinkList)malloc(sizeof(ListNode))s=(ListNode*)malloc(sizeof(ListNode))

3、返回key结点位置LinkListLocateNode(LinkListhead,DataTypekey){while(head->data!=key&&head)head=head->next;returnhead;}删除进程LinkListLocateNode(LinkListhead,DataTypekey)while(head->data!=key&&head)head=head->nextreturnhead显示链表voidShowList(LinkListhead)head=head->next;在链表中删除

4、结点keyvoidClearList(LinkListhead,DataTypekey)删除链表voidDeleteList(LinkListhead){head=p->next;free(p);p=head;}创建链表向就绪状态转化voidFreeToReady(LinkListFreeP,LinkListReadyP,DataTypekey){p=FreeP->next;FreeP->next=p->next;p->data=key;q=ReadyP;while(q->next)q=q->next;q->next=p

5、;p->next=NULL;}就绪状态向执行状态转化voidReadyToExe(LinkListReadyP,LinkListExeP,DataTypekey){ExeP->next=LocateNode(ReadyP,key);ClearList(ReadyP,key);ExeP->next->next=NULL;printf("Executeprocess%csuccess.",key);}执行状态向就绪状态转化voidExeToReady(LinkListExeP,LinkListReadyP)p=p->ne

6、xt;p->next=ExeP->next;ExeP->next=NULL;阻塞状态向就绪状态转化voidBlockToReady(LinkListBlockP,LinkListReadyP,DataTypekey){LinkListp,q;p=LocateNode(BlockP,key);q=ReadyP;while(q->next)q=q->next;q->next=p;ClearList(BlockP,key);p->next=NULL;}执行状态向阻塞状态转化voidExeToBlock(LinkListExeP

7、,LinkListBlockP){LinkListp;p=BlockP;while(p->next)p=p->next;p->next=ExeP->next;ExeP->next=NULL;intmain(){...cmd=getchar();switch(cmd){case'c'://创建进程while(LocateNode(ReadyP,Name)

8、

9、LocateNode(BlockP,Name)

10、

11、LocateNode(ExeP,Name))Name=Name+1;if((LocateNode(ReadyP,Nam

12、e)

13、

14、LocateNode(ExeP,Name)

15、

16、LocateNode(BlockP,Name))==NULL)FreeToReady(FreeP,ReadyP,Name);case'P'://输入进程名if(LocateNode(ReadyP,Name))ReadyToExe(ReadyP,ExeP,Name)

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。