操作系统实验指导书(6)

2018-12-20 23:02

操作系统实验指导书

else { dp++;

if(dp==total_vp) dp=0;

if(dp==old_dp)

for(j=0;j

freepf_head=&pfc[pl[dp].pfn]; pl[dp].pfn=INVALID; freepf_head->next=NUL; }

pl[page[i]].pfn=freepf_head->pfn; freepf_head=freepf_head->next; } else

pl[page[i]].counter=1; if(i%clear_period==0)

for(j=0;j

printf(\

}

4.5 OPT算法

void OPT(total_pf) /*OPT(Optimal Replacement)ALGORITHM*/ int total_pf; {

int i,j,max,maxpage,d,dist[total_vp]; pfc_type *t;

initialize(total_pf);

for(i=0;i

if(pl[page[i]].pfn==INVALID) {

diseffect++; if(freepf_head==NUL) {

for(j=0;j

dist[j]=0;

23

操作系统实验指导书

d=1;

for(j=i+1;j

if(pl[page[j]].pfn!=INVALID) dist[page[j]]=d; d++; }

max=-1;

for(j=0;j

max=dist[j];maxpage=j;}

freepf_head=&pfc[pl[maxpage].pfn]; freepf_head->next=NUL; pl[maxpage].pfn=INVALID; }

pl[page[i]].pfn=freepf_head->pfn; freepf_head=freepf_head->next; } }

printf(\

}

4.6 主函数的编写

int main() {

int S,i;

srand((int)getpid());

S=(int)rand()90;

for(i=0;i

a[i]=S; /*任选一指令访问点*/ a[i+1]=a[i]+1; /*顺序执行一条指令*/ a[i+2]=(int)rand()90; /*执行前地址指令m’*/

a[i+3]=a[i+2]+1; /*执行后地址指令*/ S=(int)rand()90; }

for(i=0;i

page[i]=a[i]/10;

24

操作系统实验指导书

offset[i]=a[i]; }

for(i=4;i<=32;i++) /*用户内存工作区从4个页面到32个页面*/ {

printf(\ FIFO(i); LRU(i); OPT(i); LFU(i); NUR(i);

printf(\ }

return 0;

}

5.拓展训练

比较上述几种算法,它们各有什么特点?

25

操作系统实验指导书

实验8文件管理实验

1.实验目的

熟悉实验环境,掌握Windows 2000/XP中相关API的使用方法;用c++编写一个程序,通过使用系统调用将一个文件中的数据复制到另一个文件中;熟悉Win32 API中与文件操作相关的系统调用CreatFile、ReadFile、WriteFile。

2.实验设备

安装了Windows系统的计算机。

3. 实验内容及要求

(1)在桌面建立两个文本文件in_test、out_test,in_test中有内容,out_test为空; (2)在Visual C++中建立编写源程序文件,使用系统调用将in_test中的数据复制到out_test中。

4.实验步骤

4.1在桌面建立两个文本文件

文件名为:in_test、out_test,in_test中有内容,out_test为空。

4.2在Visual C++中编程,实现文件内容的复制。

/*Name:file.cpp*/ #include #include

#define BUFFER_LEN 5 //每次读写的字节数 int main(int arg,char *argv[]) {

char buffer[BUFFER_LEN];//局部变量 //设置系统调用CreatFile的参数值 DWORD dawShareMode=0;

LPSECURITY_ATTRIBUTES lpFileSecurityAttributes=NULL; HANDLE hTemplateFile=NULL; //系统调用ReadFile的参数设置 HANDLE sourceFile;

DWORD numberofBytesRead;

LPOVERLAPPED lpOverlapped=NULL;

26

操作系统实验指导书

//系统调用WriteFile的参数设置 HANDLE sinkFile; //管道名

DWORD numberofBytesWritten;//写入字节数 //打开源文件

sourceFile=CreateFile(\s,OPEN_ALWAYS,FILE_ATTRIBUTE_READONLY,hTemplateFile);

if(sinkFile=INVALID_HANDLE_VALUE){

fprintf(stderr,\ExitProcess(1); }

//打开目标文件

sinkFile=CreateFile(\s,OPEN_ALWAYS,FILE_ATTRIBUTE_READONLY,hTemplateFile);

if(sinkFile=INVALID_HANDLE_VALUE){

fprintf(stderr,\ExitProcess(1); }

//循环体

while(ReadFile(sourceFile,buffer,BUFFER_LEN,&numberofBytesRead,lpOverlapped)&&(numberofBytesRead>0))

{

WriteFile(sinkFile,buffer,BUFFER_LEN,&numberofBytesWritten,lpOverlapped); }

//关闭文件

CloseHandle(sourceFile); CloseHandle(sinkFile); ExitProcess(0); return 0; }

4.3 编译运行

5.拓展训练

实验中用到了哪些系统调用?

27


操作系统实验指导书(6).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:《伯牙绝弦》 教案反思

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: