操作系统概论实践作业

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

章节作业

第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)列出进程状态信息中含'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退出编辑模式,按: 输入命令: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)用发送信号命令向睡眠命令进程号发送终止信号,让mysh停止执行。

答: kill -15 pid

第2章与处理器管理有关的系统功能调用实践作业

参照“强化实践能力培养课程内容”中“进程创建和执行的实践能力培养考核选例”和“线程的创建及线程间管道通信实践能力培养考核选例”程序,编写一个能建立两个子进程的程序(父进程),让这三个进程并发执行完成以下二元函数的计算:

其中由父进程完成:f(x,y) = 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);

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)

{

int ffy;

if(y==1||y==2)

ffy=1;

else if(y>2)

ffy=fy(y-1)+fy(y-2);

return ffy;

}

第3章与存储管理有关的操作系统算法实践作业

参照“强化实践能力培养课程内容”中“内存页面置换算法实践能力培养考核选例”程序,编写一个能演示LRU内存页面置换算法的程序,它可根据给定的一组页面引用序列号和实存页数,显示LRU置换页的过程,能统计和报告LRU置换算法情况下依次淘汰的页号、缺页次数(页错误数)和缺页率。

答:#include"stdio.h"

#include"stdlib.h"

void CopyL(intSour[],int Dist[] ,int x); //数组Sour复制到数组Dist,复制到x个数

void SetDI(intDiscL[]); //随机生成磁道数

void 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[]); //循环扫描算法(CSCAN)

//void N_Step_SCAN(intHan1,int DiscL[]); //N步扫描算法(NStepScan)

void PaiXu(); //寻道长度由低到高排序

void Pri();

int NAll=0;

int Best[5][2]; //用作寻道长度由低到高排序时存放的数组

int Limit=0; //输入寻找的范围磁道数i

int Jage;

float Aver=0;

int main()

{

int i;

相关文档
最新文档