资源简介
广工操作系统实验,里面含有广工OS实验要做的四个实验,里面有源代码、实验报告和可执行文件。
代码片段和文件信息
#include “stdio.h“
#include
#include
#define getpch(type) (type*)malloc(sizeof(type))
#define NULL 0
struct pcb { /* 定义进程控制块PCB */
char name[10];
char state;
int super;
int ntime;
int rtime;
struct pcb* link;
}*ready=NULL*p;
typedef struct pcb PCB;
sort() /* 建立对进程进行优先级排列函数*/
{
PCB *first *second;
int insert=0;
if((ready==NULL)||((p->super)>(ready->super))) /*优先级最大者插入队首*/
{
p->link=ready;
ready=p;
}
else /* 进程比较优先级插入适当的位置中*/
{
first=ready;
second=first->link;
while(second!=NULL)
{
if((p->super)>(second->super)) /*若插入进程比当前进程优先数大*/
{ /*插入到当前进程前面*/
p->link=second;
first->link=p;
second=NULL;
insert=1;
}
else /* 插入进程优先数最低则插入到队尾*/
{
first=first->link;
second=second->link;
}
}
if(insert==0) first->link=p;
}
}
input() /* 建立进程控制块函数*/
{
int inum;
printf(“\n 请输入进程号?“);
scanf(“%d“&num);
for(i=0;i
{
printf(“\n 进程号No.%d:\n“i);
p=getpch(PCB);
printf(“\n 输入进程名:“);
scanf(“%s“p->name);
printf(“\n 输入进程优先数:“);
scanf(“%d“&p->super);
printf(“\n 输入进程运行时间:“);
scanf(“%d“&p->ntime);
printf(“\n“);
p->rtime=0;p->state=‘w‘;
p->link=NULL;
sort(); /* 调用sort函数*/
}
}
int space()
{
int l=0; PCB* pr=ready;
while(pr!=NULL)
{
l++;
pr=pr->link;
}
return(l);
}
disp(PCB * pr) /*建立进程显示函数用于显示当前进程*/
{
printf(“\n qname \t state \t super \t ndtime \t runtime \n“);
printf(“|%s\t“pr->name);
printf(“|%c\t“pr->state);
printf(“|%d\t“pr->super);
printf(“|%d\t“pr->ntime);
printf(“|%d\t“pr->rtime);
printf(“\n“);
}
check() /* 建立进程查看函数 */
{
PCB* pr;
printf(“\n **** 当前正在运行的进程是:%s“p->name); /*显示当前运行进程*/
disp(p);
pr=ready;
printf(“\n ****当前就绪队列状态为:\n“); /*显示就绪队列状态*/
while(pr!=NULL)
{
disp(pr);
pr=pr->link;
}
}
destroy() /*建立进程撤消函数(进程运行结束撤消进程)*/
{
printf(“\n 进程 [%s] 已完成.\n“p->name);
free(p);
}
running() /* 建立进程就绪函数(进程运行时间到置就绪状态*/
{
(p->rtime)++;
if(p->rtime==p->ntime)
destroy(); /* 调用destroy函数*/
else
{
(p->super)--;
p->state=‘w‘;
sort(); /*调用sort函数*/
}
}
main() /*主函数*/
{
int lenh=0;
char ch;
input();
len=space();
while((len!=0)&&(ready!=NULL))
{
ch=getchar();
h++;
printf(“\n The execute number:%d \n“h);
p=ready;
ready=p->link;
p->link=NULL;
p->state=‘R‘;
check();
running();
printf(“\n 按任一键继续......“);
ch=getchar();
}
printf(“\n\n 进程已经完成.\n“);
ch=getchar();
}
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 886784 2013-01-06 17:11 广工操作系统实验\3110006323郑耀恒_OS实验报告.doc
文件 3024 2012-12-30 23:22 广工操作系统实验\实验一的可执行文件和源码\实验1.1\shiyan1_1.cpp
文件 184420 2012-12-30 23:22 广工操作系统实验\实验一的可执行文件和源码\实验1.1\shiyan1_1.exe
文件 2556 2012-12-30 23:09 广工操作系统实验\实验一的可执行文件和源码\实验1.2\shiyan.cpp
文件 184409 2012-12-30 23:09 广工操作系统实验\实验一的可执行文件和源码\实验1.2\shiyan.exe
文件 11406 2013-01-02 19:35 广工操作系统实验\实验三的可执行文件和源码\shiyan3_1.cpp
文件 270436 2013-01-02 19:35 广工操作系统实验\实验三的可执行文件和源码\shiyan3_1.exe
文件 7246 2013-01-02 14:58 广工操作系统实验\实验二的可执行文件和源码\实验2.cpp
文件 221280 2013-01-02 23:50 广工操作系统实验\实验二的可执行文件和源码\实验2.exe
文件 14724 2013-01-02 23:23 广工操作系统实验\实验四的可执行文件和源码\shiyan4_1.cpp
文件 278628 2013-01-02 23:23 广工操作系统实验\实验四的可执行文件和源码\shiyan4_1.exe
目录 0 2013-01-06 16:56 广工操作系统实验\实验一的可执行文件和源码\实验1.1
目录 0 2013-01-06 16:56 广工操作系统实验\实验一的可执行文件和源码\实验1.2
目录 0 2013-01-06 16:56 广工操作系统实验\实验一的可执行文件和源码
目录 0 2013-01-06 16:56 广工操作系统实验\实验三的可执行文件和源码
目录 0 2013-01-06 16:56 广工操作系统实验\实验二的可执行文件和源码
目录 0 2013-01-06 16:56 广工操作系统实验\实验四的可执行文件和源码
目录 0 2013-01-06 17:12 广工操作系统实验
----------- --------- ---------- ----- ----
2064913 18
- 上一篇:openssl 简介(中文)
- 下一篇:六款ISP电路原理图
相关资源
- 广东工业大学操作系统实验四文件系
- Linux 操作系统实验(全)
- 操作系统实验综合设计【附代码】
- 湖南大学操作系统实验报告
- 广工多媒体技术基础试卷
- 操作系统实验报告哲学家就餐问题、
- 广工软件工程复习资料2016年6月(20
- 广工数据结构实验
- 复杂模型机的设计与实现
- 操作系统实验 广东工业大学[代码+文
- 广工移动web课程设计
- 西北农林科技大学操作系统实验一-
- 广东工业大学操作系统实验源码
- 广工EDA实验
- 广州大学--操作系统实验1-5实验报告
- 广工离散数学课件
- 广工SOA与Web Service技术实验报告
- 广工数字逻辑课设-篮球比赛计分器
- 广东工业大学题目详解含截图Anyview
- 数字集成电路课后习题答案
- 操作系统实验指导
- 操作系统课程设计完整版报告+源程序
- 广工信工信号与系统考试试卷
- 广东工业大学 各年 计算机图形学最全
- 广东工业大学历年数据库试卷
- 操作系统实验,生产者与消费者问题
- 操作系统实验进程的创建源代码及文
- 广工2015年软件工程试卷
- 广工信工图像处理作业
- 广工编译原理的复习资料试卷等
评论
共有 条评论