欢迎来到天天文库
浏览记录
ID:57126889
大小:784.72 KB
页数:20页
时间:2020-08-03
《操作系统实验四讲课讲稿.docx》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、操作系统实验四精品文档学号E11614051专业计算机科学与技术姓名施飞宇实验日期2018/11/05教师签字成绩实验报告【实验名称】实验四主存空间的分配与回收(一)【实验目的】理解在连续分区动态的存储管理方式下,如何实现主存空间的分配与回收。【实验原理】1.首次适应算法实现主存空间的分配与回收;2.循环首次适应算法实现主存空间的分配与回收;【实验内容】收集于网络,如有侵权请联系管理员删除精品文档一.采用可变式分区管理,使用首次适应算法实现主存空间的分配与回收数据结构:typedefstructpcb{charpname[N];//进程名
2、
3、分区号intbegin;/
4、/起始地址intend;//结束地址intlength;//进程长度
5、
6、分区大小charstate;//进程状态
7、
8、分区状态structpcb*next;//链表指针}PCB;分区和进程同样的数据结构,其内容用链表进行存储。state=’y’表示已分配内存,state=‘n’表示未进行内存分配。算法流程图:收集于网络,如有侵权请联系管理员删除精品文档实验代码:/*2018/11/15施飞宇笃行南楼a202*/#defineN20#include#include#includeusingnamespacestd;
9、typedefstructpcb{charpname[N];//进程名
10、
11、分区号intbegin;//起始地址收集于网络,如有侵权请联系管理员删除精品文档intend;//结束地址intlength;//长度
12、
13、分区大小charstate;//进程状态
14、
15、分区状态structpcb*next;//链表指针}PCB;PCBheadinput;//进程链表PCBheadarea;//分区链表charnumber='a';voidinput_process();//建立进程函数voidcreate_area();//创建分区大小voidassign(PCB*Q,PCB*p)
16、;//分配内存voidcolect(PCB*Q,PCB*p);//回收内存voidrunprocess();//运行进程函数voidprintp(PCB*p);//输出进程函数voidprinta(PCB*Q);//输出分区函数voidinput_process(){cout<<"******************创建进程****************"<>num;inti=0;p1=&headinput;p2=p1;for(i=0;i17、"输入第"<pname);cin>>p1->length;p1->begin=p1->end=0;p1->state='n';//n代表未被分配内存p1->next=newPCB;p2=p1;p1=p1->next;}deletep1;p1=NULL;p2->next=NULL;}voidcreate_area()//创建分区大小{PCB*Q1;cout<<"******************创建分区******************"<>Q118、->pname;Q1->begin=0;Q1->length=20;Q1->end=Q1->begin+Q1->length;Q1->state='n';收集于网络,如有侵权请联系管理员删除精品文档Q1->next=newPCB;Q1=Q1->next;cin>>Q1->pname;Q1->begin=20;Q1->length=30;Q1->end=Q1->begin+Q1->length;Q1->state='n';Q1->next=newPCB;Q1=Q1->next;cin>>Q1->pname;Q1->begin=50;Q1->length=40;Q1->e19、nd=Q1->begin+Q1->length;Q1->state='n';Q1->next=newPCB;Q1=Q1->next;cin>>Q1->pname;Q1->begin=90;Q1->length=50;Q1->end=Q1->begin+Q1->length;Q1->state='n';Q1->next=newPCB;Q1=Q1->next;cin>>Q1->pname;Q1->begin=140;Q1->length=60;Q1->end=Q1->begin+Q1->length;Q1->state='n';Q1->next=NULL
17、"输入第"<pname);cin>>p1->length;p1->begin=p1->end=0;p1->state='n';//n代表未被分配内存p1->next=newPCB;p2=p1;p1=p1->next;}deletep1;p1=NULL;p2->next=NULL;}voidcreate_area()//创建分区大小{PCB*Q1;cout<<"******************创建分区******************"<>Q1
18、->pname;Q1->begin=0;Q1->length=20;Q1->end=Q1->begin+Q1->length;Q1->state='n';收集于网络,如有侵权请联系管理员删除精品文档Q1->next=newPCB;Q1=Q1->next;cin>>Q1->pname;Q1->begin=20;Q1->length=30;Q1->end=Q1->begin+Q1->length;Q1->state='n';Q1->next=newPCB;Q1=Q1->next;cin>>Q1->pname;Q1->begin=50;Q1->length=40;Q1->e
19、nd=Q1->begin+Q1->length;Q1->state='n';Q1->next=newPCB;Q1=Q1->next;cin>>Q1->pname;Q1->begin=90;Q1->length=50;Q1->end=Q1->begin+Q1->length;Q1->state='n';Q1->next=newPCB;Q1=Q1->next;cin>>Q1->pname;Q1->begin=140;Q1->length=60;Q1->end=Q1->begin+Q1->length;Q1->state='n';Q1->next=NULL
此文档下载收益归作者所有