操作系统-分区内存管理.doc
《操作系统-分区内存管理.doc》由会员分享,可在线阅读,更多相关《操作系统-分区内存管理.doc(11页珍藏版)》请在课桌文档上搜索。
1、 . . 理工学院实验报告系别班级学号课程名称实验日期实验名称成绩实验目的: 过本次实验,加深对进程概念的理解,进一步掌握进程状态的转变与进程调度策略。实验条件:计算机一台,软件vc+6.0一、实验目的通过这次实验,加深对存管理的认识,进一步掌握存的分配、回收算法的思想。二、实验原理设计程序模拟存的动态分区存管理方法。存分区使用分区(说明)表进行管理,采用最先适应算法从分区表中寻找空闲区进行分配,存回收时不考虑与相邻空闲区的合并。假定系统的存共640K,初始状态为操作系统本身占用40K。t1时刻,为作业A、B、C分配80K、60K、100K、的存空间;t2时刻作业B完成;t3时刻为作业D分配5
2、0K的存空间;t4时刻作业C、A完成;t5时刻作业D完成。要求编程序分别输出t1、t2、t3、t4、t5时刻存的空闲分区。三、实验容#include#include#include#include#define maxPCB 10#define maxPart 10#define TRUE 1#define FALSE 0typedef struct PCB_type char name; /进程名int address, len, valid; /进程所占分区起止、长度、该PCB有效标识(1有效,0无效)PCB;typedef struct seqlist PCB PCBelemmaxPCB
3、; / maxPCB为系统中允许的最多进程数 int total; /系统中实际的进程数 PCBseql;typedef struct Partitionint address, len, valid; /分区起址、长度、有效标识(1空闲,0已分配) Part;typedef struct Partlist Part PartelemmaxPart; / maxPart为系统中可能的最多分区数 int sum; /系统中实际的分区数Partseql;int length = 640 ;/系统有640 的空闲 PCBseql *pcbl;Partseql *partl;void initpcb(
4、PCBseql *vpcbl,int adr); /初始化进程表vpcblvoid getprint(); void initpart(); /初始化分区表vpartlvoid request (char name, int len); /进程name请求len大小的存void release(char name); /回收name进程所占存空间void print(); /输出存空闲分区/*void printp()int i;for(i=0;itotal);i+) printf(%cn,pcbl-PCBelemi.name); */void initpcb(PCBseql *vpcbl,i
5、nt adr) /初始化进程表vpcbl int i=1; PCB *pcbelem; int tel; char c; pcbelem=vpcbl-PCBelem; while(TRUE) printf(请输入第%d进程名称,i+); vpcbl-total+; scanf(%c,&(pcbelem-name); printf(请输入进程所需存); scanf(%d,&tel); pcbelem-len=tel; pcbelem-address=adr+tel; pcbelem-valid=1; pcbelem+; printf(是否要继续输入进程(Enter-是 Esc-否)n); ffl
6、ush(stdin); c = getch(); fflush(stdin); if(c=27) break; void initpart() char c,name; int len; printf(请输入你的操作 R.请求存;P.输出空闲分区; S. 强制进程完毕;(N/n).退出n); fflush(stdin); c= getchar(); fflush(stdin); while(c!=N|c!=n) if(c=R|c=r) fflush(stdin); /做输入的时候要清空缓冲区 printf(请输入请求存进程的名称,长度); scanf(%c,%d,&name,&len); re
7、quest(name,len); /进程请求存 else if(c=P|c=p) printf(t*VIEW begin*n); getprint(); printf(t*VIEW end *n); else if(c=S|c=s) printf(请输入想要回收的进程名称n); scanf(%c,&name); release(name); printf(请输入你的操作R.请求存;P.输出空闲分区; S.强制进程完毕 n); fflush(stdin); c= getchar(); fflush(stdin); void init4IOS(int tem) Part *newPart = &p
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 操作系统 分区 内存 管理

链接地址:https://www.desk33.com/p-6010.html