2022年操作系统概论实践作业 .pdf
《2022年操作系统概论实践作业 .pdf》由会员分享,可在线阅读,更多相关《2022年操作系统概论实践作业 .pdf(21页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、章节作业第 1 章 Shell 命令操作实践作业(1)在当前登录用户的主目录下创建子目录mysub,进入 mysub 目录。答: mkdir mysub & cd mysub(2)显示当前目录路径。答: pwd(3)显示用户名和用户主目录答: echo $HOME $USER(4)将用户主目录添加到可执行文件搜索路径答: export PATH=$PATH:$HOME(5)显示添加后的可执行文件搜索路径答: echo $PATH(6)列出主目录下所有以”.ba”或“ .pr”打头的文件名及其属性并将其存入my1 文件中答: ls -l $HOME/*.ba $HOME/*.pr my1(7)列
2、出进程状态信息中含tty 的进程,并将其存入my2 文件中答: ps -ef | grep tty my2(8)将 my1 和 my2 串联成一个新文件my3 答: cat my1 my2 my3(9)将当前目录下的所有文件压缩归档到myf.tar.gz 文件中答: tar cvf myf.tar.gz *(10)将 my3 移动到上级目录中答: mv my3 ./(11)删除文件 my1 和 my2 答: rm my1 my2(12)启动 vi 文本编辑程序答: vi(13)在 vi 中输入 (3) (11)步的操作命令,并将其存入文件mysh 答: 按 i 进入编辑模式,按esc 退出编辑
3、模式,按: 输入命令:save mysh, 输入命令:wq保存退出(14)将 vi 放入后台运行答: vi &(15)将文件 mysh 访问权限改为文件主可执行答: chmod +x mysh(16)将文件 mysh 复制到上级目录中答: cp mysh ./(17)令 vi 返回前台,从中追加睡眠1 分钟和返回前台的命令,从vi 保存退出答: fg 后面追加sleep 60 & fg(18)以后台运行方式启动mysh 答: mysh &(19)找到执行睡眠命令的的进程号答: ps -fu $USER | grep mysh | awk print $2(20)用发送信号命令向睡眠命令进程号发
4、送终止信号,让mysh 停止执行。答: kill -15 pid 第 2 章 与处理器管理有关的系统功能调用实践作业名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 1 页,共 21 页 - - - - - - - - - 参照 “ 强化实践能力培养课程内容” 中 “ 进程创建和执行的实践能力培养考核选例”和“ 线程的创建及线程间管道通信实践能力培养考核选例” 程序,编写一个能建立两个子进程的程序 (父进程 ),让这三个进程并发执行完成以下二元函数的计算:其中由父进程完成:f(x,y)
5、 = f(x) + f(y) 由子进程 1 完成阶乘计算:f(x) = f(x-1) * x (x 1) f(x)=1 (x=1) 由子进程 2 完成非波纳奇序列:f(y) = f(y-1) + f(y-2) (y 2) f(y)=1 (y=1,2) 答:#include int fx(int x); int fy(int y); void main() int x,y; printf(please input x:); scanf(%d,&x); int ffx,ffy; ffx=fx(x); printf(please input y:); scanf(%d,&y); ffy=fy(y);
6、 int z; z=ffx+ffy; printf(%d,z); int fx(int x) int ffx; if(x=1) ffx=1; else ffx=fx(x-1)*x; return ffx; int fy(int y) 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 2 页,共 21 页 - - - - - - - - - int ffy; if(y=1|y=2) ffy=1; else if(y2) ffy=fy(y-1)+fy(y-2); return ffy; 第
7、 3 章 与存储管理有关的操作系统算法实践作业参照“强化实践能力培养课程内容”中“内存页面置换算法实践能力培养考核选例”程序,编写一个能演示LRU 内存页面置换算法的程序,它可根据给定的一组页面引用序列号和实存页数, 显示 LRU 置换页的过程, 能统计和报告 LRU 置换算法情况下依次淘汰的页号、缺页次数(页错误数)和缺页率。答: #includestdio.h #includestdlib.h void CopyL(intSour,int Dist ,int x); /数组 Sour 复制到数组Dist,复制到 x 个数void SetDI(intDiscL); / 随机生成磁道数void
8、 Print(intPri,int x); / 打印输出数组Pri void DelInq(int Sour,intx,int y); / 数组 Sour 把 x 位置的数删除,并把y 前面的数向前移动, y 后的数保持不变(即会出现 2 个 y) void FCFS(int Han,intDiscL); / 先来先服务算法(FCFS) void SSTF(int Han,intDiscL); / 最短寻道时间优先算法(SSTF) int SCAN(int Han,intDiscL,int x,int y); / 扫描算法 (SCAN) void CSCAN(int Han,intDiscL)
9、; / 循环扫描算法 (CSCAN) /void N_Step_SCAN(intHan1,int DiscL); /N 步扫描算法 (NStepScan) void PaiXu(); / 寻道长度由低到高排序void Pri(); int NAll=0; int Best52; /用作寻道长度由低到高排序时存放的数组int Limit=0; /输入寻找的范围磁道数i int Jage; float Aver=0; int main() int i; 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - -
10、 - - 第 3 页,共 21 页 - - - - - - - - - int DiscLine10; / 声明准备要生成的随机磁道号的数组 int Hand; /磁道数 int Con=1; int n; while(Con=1) Jage=0; printf(n 请输入初始的磁道数(0n65536) printf( 超出范围 !); else printf( *n); printf( *磁盘调度算法*n); printf( *n); printf(* 1.先来先服务算法(FCFS) *n); printf( * 2.最短寻道时间优先算法(SSTF) *n); printf( * 3.扫描算
11、法 (SCAN) *n); printf( * 4.循环扫描算法 (CSCAN) *n); printf( *n); scanf(%d,&n); if(n=0) exit(0); printf(n); switch(n) case 1: SetDI(DiscLine); / 随机生成磁道数FCFS(Hand,DiscLine); /先来先服务算法(FCFS) break; case 2: SetDI(DiscLine); / 随机生成磁道数SSTF(Hand,DiscLine); /最短寻道时间优先算法(SSTF) 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - -
12、- - - - - - - - - 名师精心整理 - - - - - - - 第 4 页,共 21 页 - - - - - - - - - break; case 3: SetDI(DiscLine); / 随机生成磁道数SCAN(Hand,DiscLine,0,9); / 扫描算法 (SCAN) break; case 4: SetDI(DiscLine); / 随机生成磁道数CSCAN(Hand,DiscLine); /循环扫描算法 (CSCAN) break; case 5: SetDI(DiscLine); / 随机生成磁道数SetDI(DiscLine); / 随机生成磁道数FCFS
13、(Hand,DiscLine); /先来先服务算法(FCFS) SSTF(Hand,DiscLine); /最短寻道时间优先算法(SSTF) SCAN(Hand,DiscLine,0,9); /扫描算法 (SCAN) CSCAN(Hand,DiscLine); / 循环扫描算法 (CSCAN) PaiXu(); /寻道长度由低到高排序printf(nn+ 寻道长度由低到高排序:); for(i=0;i5;i+) printf(%4d ,Besti0); break; printf(nn+ 是否继续 (按 0 结束 ,按 1 继续)?); scanf(%5d,&Con); / 数组 Sour 复
14、制到数组Dist,复制到 x 个数void CopyL(intSour,int Dist ,int x) 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 5 页,共 21 页 - - - - - - - - - int i; for(i=0;i=x;i+) Disti=Souri; / 打印输出数组Pri void Print(intPri,int x) int i; for(i=0;i=x;i+) printf(%5d,Prii); / 随机生成磁道数void SetDI(intD
15、iscL) int i; for(i=0;i=9;i+) DiscLi=rand()%Limit;/随机生成 10 个磁道号 printf(+ 需要寻找的磁道号:); Print(DiscL,9); / 输出随机生成的磁道号 printf(n); / 数组 Sour 把 x 位置的数删除,并把y 前面的数向前移动,y 后的数保持不变(即会出现2个 y) void DelInq(intSour,int x,int y) int i; for(i=x;iy;i+) Souri=Souri+1; 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - -
16、 - - 名师精心整理 - - - - - - - 第 6 页,共 21 页 - - - - - - - - - x+; / 先来先服务算法(FCFS) void FCFS(int Han,intDiscL) int RLine10; /将随机生成的磁道数数组Discl 复制给数组RLine int i,k,All,Temp; /Temp是计算移动的磁道距离的临时变量 All=0; /统计全部的磁道数变量 k=9; / 限定 10 个的磁道数 CopyL(DiscL,RLine,9); / 复制磁道号到临时数组RLine printf(n+ 按照 FCFS算法磁道的访问顺序为:); All=H
17、an-RLine0; for(i=0;i=9;i+) Temp=RLine0-RLine1;/求出移动磁道数,前一个磁道数减去后一个磁道数得出临时的移动距离if(Temp0) Temp=(-Temp);/移动磁道数为负数时,算出相反数作为移动磁道数printf(%5d,RLine0); All=Temp+All;/求全部磁道数的总和DelInq(RLine,0,k);/每个磁道数向前移动一位k-; BestJage1=All;/Best1存放移动磁道数 BestJage0=1; /Best0存放算法的序号为:1 Jage+;/排序的序号加1 Aver=(float) All)/10;/求平均寻
18、道次数 printf(n+ 移动磁道数 : ,All); printf(n+ 平均寻道长度 :*%0.2f* ,Aver); / 最短寻道时间优先算法(SSTF) void SSTF(int Han,intDiscL) int i,j,k,h,All; 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 7 页,共 21 页 - - - - - - - - - int Temp; /Temp是计算移动的磁道距离的临时变量 int RLine10; / 将随机生成的磁道数数组Discl 复
19、制给数组RLine int Min; All=0; /统计全部的磁道数变量 k=9; / 限定 10 个的磁道数 CopyL(DiscL,RLine,9); / 复制磁道号到临时数组RLine printf(n+ 按照 SSTF算法磁道的访问顺序为:); for(i=0;i=9;i+) Min=64000; for(j=0;jHan) / 如果第一个随机生成的磁道号大于当前的磁道号,执行下一句Temp=RLinej-Han; / 求出临时的移动距离else Temp=Han-RLinej; / 求出临时的移动距离if(TempMin) / 如果每求出一次的移动距离小于Min,执行下一句 Min
20、=Temp; /Temp临时值赋予Min h=j; /把最近当前磁道号的数组下标赋予h All=All+Min; /统计一共移动的距离printf(%5d,RLineh); Han=RLineh; DelInq(RLine,h,k); / 每个磁道数向前移动一位k-; BestJage1=All;/Best1存放移动磁道数 BestJage0=2;/Best0存放算法的序号为:2 Jage+;/排序序号加1 Aver=(float)All)/10;/求平均寻道次数 printf(n+ 移动磁道数 : ,All); printf(n+ 平均寻道长度 :*%0.2f* ,Aver); 名师资料总结
21、 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 8 页,共 21 页 - - - - - - - - - / 扫描算法 (SCAN) int SCAN(int Han,intDiscL,int x,int y) int j,n,k,h,m,All; int t=0; int Temp; int Min; int RLine10; /将随机生成的磁道数数组Discl 复制给数组RLine int Order; Order=1; k=y; m=2; / 控制 while 语句的执行,即是一定要使当前
22、磁道向内向外都要扫描到 All=0; /统计全部的磁道数变量 CopyL(DiscL,RLine,9); / 复制磁道号到临时数组RLine printf(n+ 按照 SCAN 算法磁道的访问顺序为:); Min=64000; for(j=x;jHan) / 如果第一个随机生成的磁道号大于当前的磁道号,执行下一句Temp=RLinej-Han; / 求出临时的移动距离else Temp=Han-RLinej; / 求出临时的移动距离if(Temp=Han) / 判断磁道的移动方向,即是由里向外还是由外向里Order=0; t=1; Han=RLineh; 名师资料总结 - - -精品资料欢迎下
23、载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 9 页,共 21 页 - - - - - - - - - DelInq(RLine,h,k); / 每个磁道数向前移动一位 k-; while(m0) if(Order=1) /order是判断磁盘扫描的方向标签,order 是 1 的话,磁道向内移动 for(j=x;j=y;j+) h=-1; Min=64000; for(n=x;n=k;n+) / 判断离当前磁道最近的磁道号 if(RLinen=Han) Temp=Han-RLinen; if(TempMin) Min
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 2022年操作系统概论实践作业 2022 操作系统 概论 实践 作业
限制150内