操作系统实验指导 (1)

2018-11-27 19:34

操作系统实验指导

总实验学时:12学时 实验1:(4学时)

题目:.linux系统环境的熟练使用

目的要求:1.linux桌面环境的熟悉

2.linux各种命令的熟练掌握包括:文件操作命令、系统管理命令、用户管理命令 3.给出实验过程内容

实验2:(4学时)

题目:FCFS进程调度算法的实现或编程实现银行家安全算法

目的要求:1通过实验加强对进程调度算法的理解和掌握

2通过实验加强对银行家安全算法的理解和掌握 3理解和掌握进程管理的方法

4.给出实验过程内容和运行结果截图

实验3:(4学时)

题目:存储管理的模拟实现

目的要求:1通过请求页式存储管理中页面置换算法模拟设计,了解虚拟存储技术的特点,

掌握请求页式管理的页面置换算法 2.给出实验过程内容和运行结果截图

附:算法代码参考

FCFS进程调度算法的实现步骤:

1 建立一个结构体数组pro[100],每个结构体中都存有各进程相关信息,然后输入进程数N确定进程数,并输入各进程的相关信息。通过fcfs算法对按照所输入进程的arrivetime的大小进行排序,排好的序即为进程调度的执行顺序。最后再通过对个进程的其他数据进行简单处理即可 2 FCFS进程调度算法实现代码例子: #include int main(void) { struct process { char pro_name[10]; float arrivetime; float servetime; float starttime; float finishtime; float circle_time; float d_circle_time; }a[100]; //用结构体存放各进程的相关信息 inti,j,k,N; process temp; printf(\请输入进程数:\ scanf(\ //进程数 printf(\请输入进程信息(包括进程名、进程到达时间、进程服务时间): \\n\ for(i=0;i a[0].circle_time=a[0].finishtime-a[0].arrivetime;

a[0].d_circle_time=a[0].circle_time/a[0].servetime;//计算第一个进程的相关信息 for(i=1;i

编程实现银行家安全算法步骤:

1将5个进程的所有信息放在一个对应的结构体struct pro【i】中,系统资源数和进程请求资源分别存放在available和request数组中,同时通过建立一个finishi布尔数组来控制和标识5个进程的完成情况,如果最后finish值都为真,则说明分配资源后系统是安全的,否则,不安全并将资源回收。 2银行家算法实现代码: #include #include int main(void) { struct process {int max[3]; int allocation[3]; int need[3]; }pro[5]={{7,5,3,0,1,0,7,4,3},{3,2,2,2,0,0,1,2,2}, {9,0,2,3,0,2,6,0,0},{2,2,2,2,1,1,0,1,1}, {4,3,3,0,0,2,4,3,1}}; int available[3]={3,3,2},request[3]; int work[3],finish[5]={0}; intm,i,j,k,count=0,number=0; int r=0,rank[5]={0}; printf(\银行家算法*******************\\2\\n\ printf(\ printf(\ for(i=0;i<5;i++){ printf(\ printf(\ printf(\

}

for(j=0;j<3;j++) printf(\ printf(\ for(j=0;j<3;j++) printf(\ printf(\ for(j=0;j<3;j++) printf(\ printf(\ if(i==0){ for(j=0;j<3;j++) printf(\ } printf(\}

printf(\scanf(\

printf(\for(i=0;i<3;i++){ scanf(\}

for(j=0;j<3;j++) if(request[j] <= pro[m].need[j]) count++; if(count == 3){ for(i=0;i<3;i++) if(request[i] <= available[i]) number++; if(number == 3){ for(k=0;k<3;k++){ available[k]=available[k]-request[k]; pro[m].allocation[k]=pro[m].allocation[k]+request[k]; pro[m].need[k]=pro[m].need[k]-request[k]; } else { printf(\请求资源不能满足!\ exit(0); } } else { printf(\请求资源超过所需!\

}

exit(0); }

for(j=0;j<3;j++) work[j]=available[j]; L: count = 0; for(i=0;i<5;i++){ if(!finish[i]){ for(j=0;j<3;j++) if(pro[i].need[j]<=work[j]) count++; if(count == 3){ finish[i]=1; rank[r++]=i; for(k=0;k<3;k++) work[k]=work[k]+pro[i].allocation[k]; goto L; } else count=0; } number=0;

for(k=0;k<5;k++) if(finish[k]==1) number++; if(number==5){ printf(\系统处于安全状态!\\n\ printf(\安全序列为:\\n\ for(i=0;i<5;i++) printf(\else printf(\系统处于不安全状态!\

printf(\姓名:XXX\\n\\t\\t\\t学号:XXXXXXXXX\return 0;

存储器管理实验内容及步骤实例:

1.通过随机数产生一个指令序列,共320条指令。其地址按下述原则生成: ①50%的指令是顺序执行的;

②25%的指令是均匀分布在前地址部分; ③25%的指令是均匀分布在后地址部分;


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

下一篇:一年级数学第一次月考试卷新人教版

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

马上注册会员

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