资源简介
进程管理 执行 唤醒 阻塞 结束
代码片段和文件信息
#include
#include
void Instruction();
typedef struct node
{
int data;
struct node *next;
}linklist;
linklist *head;
typedef struct node1
{
int data;
struct node1 *next;
}dlinklist;
dlinklist *head1;
int j = 0;
void CreatePCB()//创建PCB
{
linklist *r;
r = head;
while(r->next != NULL)
r = r->next;
if(r->next == NULL&& j != 11)
{
int x;
linklist *p;
printf(“请输入进程名\n“);
scanf(“%d“&x);
p = (linklist*)malloc(sizeof(linklist));
p->data = x;
r->next = p;
r = p;
printf(“%d“p->data);
printf(“创建成功\n“);
j++;
}
if(j == 11)
{
r->next = NULL;
printf(“进程已满\n“);
getchar();
Instruction();
}
else if(head->next != NULL)//head->next作为执行态
{
printf(“%d“head->next->data);
printf(“处于执行态\n“);
r->next = NULL;
getchar();
Instruction();
}
}
void Block()
{
dlinklist *t*r;
linklist *q;
r = head1;
while(r->next!=NULL)
{
r=r->next;
}
if(head->next != NULL)//有执行态就将执行态阻塞
{
t=(dlinklist*)malloc(sizeof(dlinklist));
t->data = head->next->data;
r->next = t;
r = t;
printf(“%d“t->data);
printf(“已处于阻塞态\n“);
q = head->next;
head->next = head->next->next;
free(q);
j--;
if(head->next != NULL)
{
printf(“%d“head->next->data);
printf(“处于执行态\n“);
}
else
printf(“进程为空\n“);
}
else
{
printf(“错误操作\n“);
}
r->next = NULL;
getchar();
Instruction();
}
void Wakeup()
{
int x;
dlinklist *t*s*m*w;
linklist *p*q;
t = head1;
s = head1;
p = head;
if(head1->next == NULL) printf(“没有可唤醒的进程\n“);
else
{
printf(“请选择唤醒进程\n“);
while(t->next != NULL)//输出阻塞态
{
printf(“%d “t->next->data);
t = t->next;
}
t = head1;
scanf(“%d“&x);
while(t->next != NULL)
{
if(x == t->next->data)
{
while(p->next != NULL)//找到链表PCB的尾
p = p->next;
q = (linklist*)malloc(sizeof(linklist));
q->data =t->next->data;
p->next = q;
p = q;
p->next=NULL;
printf(“%d“x);
printf(“唤醒成功\n“);
printf(“%d“head->next->data);
printf(“正在执行\n“);
j++;
w = t->next;//删除多余项
m = head1;
while(m != t)
m = m->next;
m->next = m->next->next;
free(w);
break;
}
els
- 上一篇:计算N阶乘n>20)用链表形式
- 下一篇:C语言实现模糊控制
相关资源
- 最小二乘法曲线拟合C语言可执行代码
- 类C语言的脚本解析执行(使用C++语言
- 如何在keil中查看程序执行时间
- 操作系统的理发师问题解决文件打包
- 操作系统实验-计算机进程管理和进程
- VC++6.0实现读取硬盘唯一序列号源码和
- C语言课程设计--商场商品信息管理系
- 宿舍管理系统C语言源代码与可执行文
- p2p的C语言编写,LINUX可执行程序+运行
- c++多线程的创建挂起执行与销毁
- 蚂蚁算法MFC实现执行文件
- 基于c语言的图形图像处理源代码完整
- c++ 获取当前执行位置的调用栈
- 将音视频文件转换为rtsp流(live555 媒
- Ftp客户端连接服务器(源码+可执行文
- 局域网计算机远程唤醒
- C++实战源码-修改可执行文件中的资源
- C++ 列举系统中的可执行文件
- C++ 使用WAITFOR语句延期执行语句
- 大型稀疏矩阵运算库SuiteSparse vs2010通
- C++ 在Visual C++中执行事务
- C++ 使用WHILE语句执行循环语句块
- C++ 使用WebBrowser执行脚本
- 动态执行post请求来的php代码(仅一行
- 课程设计:模拟Linux文件系统(源码
- STM32单片机待机唤醒
- 课程设计:FTP客户端源代码实现(源码
- 进程管理系统
- 数据库实现的交通管理信息系统
- 基于c++的学生信息管理源代码可执行
评论
共有 条评论