武汉理工大学《操作系统》课程设计说明书
bool flag;//页状态,即是否在内存。 int block;//该页对应的块号 }P age;
//段表 typ edef struct Stack {
int num;// 段号 bool flag;// 段状态 int p le n;//页表长度 int p sta;//页表始址 }Stack; 〃段表寄存器 typ edef struct Stare {
int ssta;//段 表始址 int sle n;//段表长度 }Stare;
Stack ss[10];////全局变量 Stare st;///////全Data work[100];// 全局变量 Quick qu;////// 全局变量 Page p age[5][5]; bool menu flag=0; int bs;//内存大小 int bbs;//内存块大小 int blocknum;// 总块数 int sums;//总段数
-6 -
局变量
武汉理工大学《操作系统》课程设计说明书
void menu (); void start(); void cha nge();
void dis play_stack(); void dis play_ page(); void dis play_flag(); void recycle(); int mai n() {
men u(); return 0; }
void menu() {
cout<<\
请选择 **************\e ndl;
coutvve ndl; cout<<\cout<<\cout<<\cout<<\cout<<\cout<<\cout<<\int menul;
1、初始化表 2、物理地址转换
*****\
*****\
*****\
3、显示段表
ndl;
*****\
4、显示页表
ndl;
*****\
5、显示存储空间状态
ndl;
*****\
6、回收
ndl;
7、退出 *****\
cin>>menu1;
if(me nu1!=1 &&men u1!=2&&men u1!=3&&me nu1!=4&&men
u1!=5&&menu
1! =6&&men u1!=7)
-7 -
武汉理工大学《操作系统》课程设计说明书
{
coutvv\请输入正确的选项\menu(); }
switch(me nu1) { case 1:
{
menu flag=1; start(); break;} case 2: {
if(me nu flag==O) {
coutvv\请初始化表\menu (); } cha nge(); break;
} case 3:
if(me nu flag==O) coutvv\请初始化表\menu (); }
dis play_stack(); break; } case 4:
if(me nu flag==O) coutvv\请初始化表\men u(); }
-8 -
武汉理工大学《操作系统》课程设计说明书
dis play_ page(); break; } case 5:
if(me nu flag==O) coutvv\请初始化表\menu (); }
dis play_flag(); break; } case 6:
if(me nu flag==O) coutvv\请初始化表\menu (); recycle。; break;
}
case 7:break; \
coutvv\请输入内存大小(K)\cin> >bs;
coutvv\请输入内存块的大小(k)\
cin> >bbs; block num 二bs/bbs;
coutvv\内存一共被分为\块,每
块\一共\
coutvv\请输入进程个数\int pn;cin>>pn;
-9 -
武汉理工大学《操作系统》课程设计说明书
〃下面求所有进程的总段数和段表,并为每段创建页表 for (i nt pn1=0;pn1vpn;pn 1++) {
coutvv\请输入第\个进程的段数\int ppn; cin>>ppn; sums+二ppn; }
for(i nt ss1=0;ss1vsums;ss1++) {
coutvv\请输入第\个段的:段号,状态,页表
长度,页表始址\
cin> >ss[ss1]. num >>ss[ss1].flag>>ss
[ss1]. plen> >ss[ss1]. psta;
cout<<\请初始化第\段的页表项,输入两个数
据页表状态和对应块号\
for(i nt sss1=0;sss1 p age[ss1][sss1]. num 二sss1; cout<<\请输入该段第\个页的页状 态和对应块号\ cin>>p age[ss1][sss1].flag> >p age[ss1] [sss1].block; } -10 -