資源簡介
操作系統課程設計
預備內容:閱讀操作系統的內存管理章節內容,了解有關虛擬存儲器、段式存儲管理等概念,并體會段式管理內存的分配和回收過程。
實踐準備:掌握一種計算機高級語言的使用。
代碼片段和文件信息
//?changhongbin.cpp?:?Defines?the?entry?point?for?the?console?application.
//
//#include?“stdafx.h“
#include?“iostream.h“
#include“stdlib.h“
#include?“string.h“
#include“stdio.h“
struct?duan
{
long?capacity;//該段的長度
long?physicaddr;//物理地址
long?realaddr;//該段實際地址
};
struct?duanbiao
{
duan?duans[10];
char?biaoming[20];
int?Isdiaoyong;
int?num;
long?total;
};
long?neicun=0;
int?duanbiaonum=0;
long?kongbai=0;
long?baseaddr=0;
duanbiao?duanbiaos[10];
void?show1(int?);
void?show();
void?wait()
{
for(double?i=100000;i>1;?)???
{
i=i-0.001;
}
}
void?diaodu()
{
cout<<“您要調度的進程是:p“;
int?n;
cin>>n;
if(n>duanbiaonum)
cout<<“段表不存在!“< else?if(duanbiaos[n-1].Isdiaoyong==1)
cout<<“操作錯誤,該進程已經被調入到內存!“< else?if(duanbiaos[n-1].total>neicun-kongbai)
cout<<“內存空間不足,調度不成功!“< else
{
cout<<“下面對進程“< for(int?j=0;j {
cout<<“正在進行第“< wait();
duanbiaos[n-1].duans[j].realaddr=duanbiaos[n-1].duans[j].physicaddr+kongbai;
cout<<“第“< }
kongbai=kongbai+duanbiaos[n-1].total;
duanbiaos[n-1].Isdiaoyong?=1;
cout<<“調度后的結果是:“< show1(n-1);
}
}
void?appneicun()
{
printf(“請輸入進程的名字:“);
gets(duanbiaos[duanbiaonum].biaoming);
printf(“請輸入該進程的段數:“);
cin>>duanbiaos[duanbiaonum].num;
int?paddr=0;
for(int?j=0;j {
cout<<“進程第“< cin>>duanbiaos[duanbiaonum].duans[j].capacity?;
duanbiaos
- 上一篇:C++讀取access數據庫代碼
- 下一篇:Linux下C語言實現的FTP系統
評論
共有 條評論