操作系统实验四Word下载.docx

上传人:b****4 文档编号:6193470 上传时间:2023-05-06 格式:DOCX 页数:37 大小:314.75KB
下载 相关 举报
操作系统实验四Word下载.docx_第1页
第1页 / 共37页
操作系统实验四Word下载.docx_第2页
第2页 / 共37页
操作系统实验四Word下载.docx_第3页
第3页 / 共37页
操作系统实验四Word下载.docx_第4页
第4页 / 共37页
操作系统实验四Word下载.docx_第5页
第5页 / 共37页
操作系统实验四Word下载.docx_第6页
第6页 / 共37页
操作系统实验四Word下载.docx_第7页
第7页 / 共37页
操作系统实验四Word下载.docx_第8页
第8页 / 共37页
操作系统实验四Word下载.docx_第9页
第9页 / 共37页
操作系统实验四Word下载.docx_第10页
第10页 / 共37页
操作系统实验四Word下载.docx_第11页
第11页 / 共37页
操作系统实验四Word下载.docx_第12页
第12页 / 共37页
操作系统实验四Word下载.docx_第13页
第13页 / 共37页
操作系统实验四Word下载.docx_第14页
第14页 / 共37页
操作系统实验四Word下载.docx_第15页
第15页 / 共37页
操作系统实验四Word下载.docx_第16页
第16页 / 共37页
操作系统实验四Word下载.docx_第17页
第17页 / 共37页
操作系统实验四Word下载.docx_第18页
第18页 / 共37页
操作系统实验四Word下载.docx_第19页
第19页 / 共37页
操作系统实验四Word下载.docx_第20页
第20页 / 共37页
亲,该文档总共37页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

操作系统实验四Word下载.docx

《操作系统实验四Word下载.docx》由会员分享,可在线阅读,更多相关《操作系统实验四Word下载.docx(37页珍藏版)》请在冰点文库上搜索。

操作系统实验四Word下载.docx

计算机操作系统课程设计

实验环境

编程环境:

VisualC++6.0

运行环境:

WindowsXP

主要数据结构及说明

利用数据结构的线性表链式存储结构,C++语言描述数据结构算法,先声明个头指针,头结点,利用C++语言函数定义节点,指针来控制变量,利用C++语言函数来,控制每个方法的执行,用数组模拟内存,用数组的地址模拟内存地址,用数组的大小模拟内存进程大小。

主要设计思想与算法(流程)

通过学习《计算机操作系统》(第三版)课程,通过在WINDOWS环境下,本次课程设计的主要思想就是利用高级语言C++模拟操作系统的实现。

模拟操作系统原理的实现进程控制,能更深刻地领会操作系统工作原理和操作系统实现方法,系统流程图如图所示:

代码:

#include<

iostream>

stdio.h>

typedefstructPCB{

charna;

structPCB*next;

}PCB,*CB;

typedefstructLNode{

charname;

intzt;

intjs;

structPCB*process;

//占用该节点的进程

structPCB*waitinglist;

//等待该节点的进程队列

structLNode*next;

//下一个节点

structLNode*parent;

}LNode,*LinkList;

typedefstructio{

intlx;

structio*next;

}io,*iolist;

LinkListCHCT=(LinkList)malloc(sizeof(LNode));

LinkListCOCT=(LinkList)malloc(sizeof(LNode));

LinkListDCT=(LinkList)malloc(sizeof(LNode));

iolistIO=(iolist)malloc(sizeof(io));

voidcsh()

{

iolistp=(iolist)malloc(sizeof(io));

p->

na='

K'

;

lx=1;

IO->

next=p;

iolistq=(iolist)malloc(sizeof(io));

q->

M'

next=q;

p=(iolist)malloc(sizeof(io));

T'

lx=2;

q=(iolist)malloc(sizeof(io));

P'

next=NULL;

iolistr;

for(r=IO->

next;

r!

=NULL;

r=r->

next)

printf("

%c"

r->

na);

printf("

\n"

);

r=IO->

LinkListp1=(LinkList)malloc(sizeof(LNode));

p1->

name='

1'

zt=0;

js=0;

r->

parent=p1;

process=NULL;

waitinglist=NULL;

DCT->

next=p1;

LinkListp2=(LinkList)malloc(sizeof(LNode));

p2->

2'

r=r->

parent=p2;

next=p2;

p1=(LinkList)malloc(sizeof(LNode));

3'

p2=(LinkList)malloc(sizeof(LNode));

4'

LinkListw;

for(w=DCT->

w!

w=w->

w->

name);

w=DCT->

w->

w=w->

COCT->

w=COCT->

parent=NULL;

CHCT->

}

intadd()

chard,c;

intk;

scanf("

&

c);

getchar();

iolistp1=(iolist)malloc(sizeof(io));

p=IO;

for(p;

p->

next!

p=p->

{

if(p->

na==c)

{

printf("

该设备已存在。

return0;

}

}

LinkListq;

LinkListq1=(LinkList)malloc(sizeof(LNode));

LinkListq2=(LinkList)malloc(sizeof(LNode));

if(p->

next==NULL)

p1->

na=c;

请输入设备类型。

1--输入2--输出3--输入输出。

scanf("

%d"

k);

getchar();

lx=k;

p->

q=DCT;

for(q;

q->

q=q->

%c"

q->

next->

请输入新DCT名字。

d);

q1->

name=d;

q->

next=q1;

parent=q1;

q2=q1;

q=COCT;

请输入你选择的COCT。

0(其他)"

if(d=='

0'

请输入新COCT名字。

scanf("

getchar();

q1=(LinkList)malloc(sizeof(LNode));

q1->

q->

q2->

q2=q1;

q=CHCT;

请输入你选择的CHCT。

for(q;

printf("

if(d=='

{

请输入新CHCT名字。

scanf("

getchar();

q1=(LinkList)malloc(sizeof(LNode));

q1->

q->

q2->

}

else

for(q=CHCT->

q!

{

if(q->

name==d)

{

q2->

parent=q;

return0;

}

}

else

for(q=COCT->

if(q->

q2->

return0;

}

return0;

intdelet()

chard;

inta=0;

LinkListp,q;

iolistp1=IO;

for(p1;

p1->

p1=p1->

if(p1->

na==d)

a=1;

p=p1->

parent;

break;

if(a==0)

该设备不存在。

return0;

a=0;

q=DCT;

for(q;

if(q->

next==p)

if(q->

zt==1)

请先结束进程。

return0;

p1->

next=p1->

p=q->

next=q->

break;

parent==p)

q=COCT;

p=q->

q=CHCT;

voidcx()

intd;

1--类型设备表2--设备进程表。

iolistp=IO->

if(d==1)

类型设备DCTCOCTCHCT\n"

for(p;

p!

%d%c%c%c%c\n"

p->

lx,p->

na,p->

parent->

name,p->

if(d==2)

LinkListq=DCT->

DCT的状态。

%d%c"

zt,q->

占用%c等待"

process->

CBp1=q->

waitinglist;

for(p1;

p1!

p1->

q=COCT->

COCT的状态。

q=CHCT->

CHCT的状态。

voidre()

chara,b,c,d;

a);

CBr,z;

na==a)

if(p==NULL)

else

LinkListq;

q=p->

zt==0)

该设备没有要做的进程。

d=q->

na;

LinkListq1=DCT->

for(q1;

q1!

q1=q1->

if(q1->

if(q1->

break;

if(q1->

waitinglist==NULL)

q1=q1->

q1->

q1=q1->

q1->

else

if(q1->

waitinglist->

{

r=q1->

q1->

process=r;

r->

}

else

z=q1->

for(z;

z->

z=z->

next);

r=z->

z->

else

r=q1->

r->

z=q1->

for(z;

r=z->

z->

}

process=z;

waitinglist=r;

r=z;

next=q1->

r=q1->

proces

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 成人教育 > 电大

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2