手机版

进程的三种状态转换

时间:2025-05-10   来源:未知    
字号:

实 验 报 告

显示链表 void ShowList(LinkList head) head = head->next; 在链表中删除结点 key void ClearList(LinkList head,DataType key) 删除链表 void DeleteList(LinkList head) {head=p->next; free(p); p=head;} 创建链表向就绪状态转化 void FreeToReady(LinkList FreeP,LinkList ReadyP,DataType key) {p=FreeP->next; FreeP->next=p->next; p->data=key; q=ReadyP; while(q->next) q=q->next; q->next=p; p->next=NULL;} 就绪状态向执行状态转化 void ReadyToExe(LinkList ReadyP,LinkList ExeP,DataType key) { ExeP->next=LocateNode(ReadyP,key); ClearList(ReadyP,key); ExeP->next->next=NULL; printf("Execute process %c success.\n",key); } 执行状态向就绪状态转化 void ExeToReady(LinkList ExeP,LinkList ReadyP) p=p->next; p->next=ExeP->next; ExeP->next=NULL; 阻塞状态向就绪状态转化 void BlockToReady(LinkList BlockP,LinkList ReadyP,DataType key) { LinkList p,q; p=LocateNode(BlockP,key); q=ReadyP; while(q->next) q=q->next; q->next=p; ClearList(BlockP,key); p->next=NULL; } 执行状态向阻塞状态转化 void ExeToBlock(LinkList ExeP,LinkList BlockP) {LinkList p; p=BlockP; while(p->next) p=p->next; p->next=ExeP->next; ExeP->next=NULL;

int main() { ...cmd=getchar(); switch(cmd) { case 'c': while(LocateNode(ReadyP,Name)||LocateNode(BlockP,Name) ||LocateNode(ExeP,Name)) Name=Name+1; if((LocateNode(ReadyP,Name) || LocateNode(ExeP,Name) ||LocateNode(BlockP,Name)) == NULL) FreeToReady(FreeP,ReadyP,Name); case

'P': if(LocateNode(ReadyP,Name)) ReadyToExe(ReadyP,ExeP,Name); case 'E': while(temp->next) temp=temp->next; temp->next=ExeP->next; ExeP->next=NULL; printf("End process %c success.\n",temp->next->data); case 'B': if(ExeP->next) printf("Block process %c success.\n",ExeP->next->data); else printf("Error: No process executing.\n"); case 'w': Name=getchar(); getchar(); if(LocateNode(BlockP,Name)) printf("Wakeup process %c success.\n",Name); } ... } //唤醒进程 //清空进程 //结束进程 //输入进程名 //创建进程

注:双面打印

进程的三种状态转换.doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印
    ×
    二维码
    × 游客快捷下载通道(下载后可以自由复制和排版)
    VIP包月下载
    特价:29 元/月 原价:99元
    低至 0.3 元/份 每月下载150
    全站内容免费自由复制
    VIP包月下载
    特价:29 元/月 原价:99元
    低至 0.3 元/份 每月下载150
    全站内容免费自由复制
    注:下载文档有可能出现无法下载或内容有问题,请联系客服协助您处理。
    × 常见问题(客服时间:周一到周五 9:30-18:00)