操作系统课程设计与实现论文.doc


文档分类:IT计算机 | 页数:约110页 举报非法文档有奖
1/110
下载提示
  • 1.该资料是网友上传的,本站提供全文预览,预览什么样,下载就什么样。
  • 2.下载该文档所得收入归上传者、原创者。
  • 3.下载的文档,不会出现我们的网址水印。
1/110
文档列表 文档介绍
操作系统课程设计与实现
实验一、进程管理与进程同步
实验目的:
了解进程管理的实现方法,理解和掌握处理进程同步问题的方法并完成程序设计。
实验内容:
实现银行家算法、进程调度的过程模拟。
实验步骤:
理解银行家算法的核心机制;
设计相应数据结构;
编程实现;
测试。

理解进程的三状态调度过程;
设计调度算法;
编程实现;
测试。
实验结果:
所实现的系统提供一个用户界面,可以在上边发出资源申请命令,系统应能给出是否可以接受申请,并且有结论输出;
所实现的系统根据一个进程调度命令文件,模拟进程的各种调度过程,用适合的表达方式表示出来。
//进程调度的过程模拟
// : Defines the entry point for the console application.
//
#include ""
#include ""
#include <>
#include ""
#include ""
int r[3]={0};
void readFile(prdy &ready)
{
int pid,runtime,iotime,ioclock,key=0;
prdy p[4];
FILE *fp=NULL;
p[0] = ready;
p[1] = (prdy)malloc(sizeof(rdy));
p[2] = (prdy)malloc(sizeof(rdy));
p[3] = (prdy)malloc(sizeof(rdy));
p[1]->next = NULL;
p[2]->next = NULL;
p[3]->next = NULL;
//p->next = NULL;
if((fp = fopen("","rb"))==NULL){
printf("打开文件失败!");
}
do{
key ++;
fscanf(fp,"%d",&pid);
p[key]->que = pid;
fgetc(fp);
fscanf(fp,"%d",&runtime);
p[key]->rtm = runtime;
fgetc(fp);
fscanf(fp,"%d",&ioclock);
p[key]->iotm = ioclock;
fgetc(fp);
fscanf(fp,"%d",&iotime);
p[key]->iolong = iotime;
fgetc(fp);
p[0]->next = p[key];
p[0] = p[0]->next;
if(key == 3) break;
//用三个指针变量来存储中间的输入。因为同一个指针变量指向相同的空间,会使结果
//中出现的值都为一样的;
}while(true);
fclose(fp);
}
void delFromReady(prdy &ready){
prdy p,q;
p = ready;
q = p->next;
p->next = q->next;
}
void insertToSus()
{
printf("阻塞过程中... ...\n");
}
void delFromSus()
{
printf("阻塞结束!\n");
}
void insertToReady(prdy &ready,prdy runQue)
{
prdy p;
p = ready;
while(p->next){
p = p->next;
}
runQue->next = NULL;
p->next = runQue;
}
void roundrun(prdy &ready)
{
prdy p, runQue;
int time;
p = ready;
do{
getchar();//接受任意键
//runQue = insertToRun(p->next);//就绪队列拿出一个进程放入运行队列
runQue = p->next;
delFromReady(ready);
time = r[runQue->que] ++;
if(time == runQue->iotm){
for(int i=0;i < runQue->iolong;i++){
insertToSus();
}
delFromSu

操作系统课程设计与实现论文 来自淘豆网m.daumloan.com转载请标明出处.

相关文档 更多>>
非法内容举报中心
文档信息
  • 页数110
  • 收藏数0 收藏
  • 顶次数0
  • 上传人marry201208
  • 文件大小433 KB
  • 时间2018-06-20
最近更新