进程的三种状态转换

时间:2025-05-11

实 验 报 告

显示链表 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文档下载到电脑

    精彩图片

    热门精选

    大家正在看

    × 游客快捷下载通道(下载后可以自由复制和排版)

    限时特价:7 元/份 原价:20元

    支付方式:

    开通VIP包月会员 特价:29元/月

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