操作系统实验手册作业程浩东Word文档下载推荐.docx
《操作系统实验手册作业程浩东Word文档下载推荐.docx》由会员分享,可在线阅读,更多相关《操作系统实验手册作业程浩东Word文档下载推荐.docx(46页珍藏版)》请在冰豆网上搜索。
![操作系统实验手册作业程浩东Word文档下载推荐.docx](https://file1.bdocx.com/fileroot1/2023-2/3/b245a1ce-edd2-44a3-8265-b2a3d36ed1a2/b245a1ce-edd2-44a3-8265-b2a3d36ed1a21.gif)
3.Touch命令
在当前目录下建立一个文件aa.txt.
4.rm命令
删除一个文件或文件夹,递归删除并且无提示,应加参数-rf.
5.mkdir命令(新建文件夹)
Mkdir-p递归创建文件夹
Mkdir-m777tst3创建一个777权限的文件夹,查看权限确实如此,可读可写可执行。
6.ls命令(查看当前文件夹下的内容)
ls-a列出文件下所有的文件,包括以“.“开头的隐藏文件(linux下文件隐藏文件是以.开头的,如果存在..代表存在着父目录)。
ls-l列出文件的详细信息,如创建者,创建时间,文件的读写权限列表等等。
(上个图已经使用)
7.cd命令(进入文件夹)
cd
进入用户主目录;
~
-
返回进入此目录之前所在的目录;
..
返回上级目录(若当前目录为“/“,则执行完后还在“/"
;
"
.."
为上级目录的意思);
cd../..
返回上两级目录;
8.cp命令(复制命令)
cpfile1file2复制一个文件
cpdir/*.复制一个目录下的所有文件到当前工作目录
cp-a/tmp/dir1.复制一个目录到当前工作目录
cp-adir1dir2复制一个目录
9.find命令
find/home-nameindex.html从'
/home'
开始进入搜索文件和目录
find/-useruser1搜索属于用户'
user1'
的文件和目录
find/home/wwwroot/-name\*.html在目录'
/home/wwwroot/'
中搜索带有'
.html'
结尾的文件
10.yum
yumlist列出当前系统中安装的所有包
yuminstallpackage_name下载并安装一个rpm包
yumlocalinstallpackage_name.rpm将安装一个rpm包,使用你自己的软件仓库为你解决所有依赖关系
yumupdatepackage_name.rpm更新当前系统中所有安装的rpm包
yumupdatepackage_name更新一个rpm包
yumremovepackage_name删除一个rpm包
10.cat
catfile1从第一个字节开始正向查看文件的内容
四、实验结果与结论(遇到问题与解决方法)
五、实验体会或对改进实验的建议
六、参考资源(网站、书籍等)
实验二
11.useradd添加新的用户账号
ccomment指定一段注释性描述。
-d目录指定用户主目录,如果此目录不存在,则同时使用-m选项,可以创建主目录。
-g用户组指定用户所属的用户组。
-G用户组,用户组指定用户所属的附加组。
-sShell文件指定用户的登录Shell。
-u用户号指定用户的用户号,如果同时有-o选项,则可以重复使用其他用户的标识号。
useradd–d/usr/cheng-mcheng
此命令创建了一个用户cheng,其中-d和-m选项用来为登录名cheng产生一个主目录/usr/cheng
12.vimfile
正常模式(按Esc或Ctrl+[进入)左下角显示文件名或为空
插入模式(按i键进入)左下角显示--INSERT--
可视模式(v)左下角显示--VISUAL—
:
wq保存并退出
13.chmod
chmodugo+rwxdirectory1设置目录的所有人(u)、群组(g)以及其他人(o)以读(r)、写(w)和执行(x)的权限
chmodgo-rwxdirectory1删除群组(g)与其他人(o)对目录的读写执行权限
chownuser1file1改变一个文件的所有人属性
chown-Ruser1directory1改变一个目录的所有人属性并同时改变改目录下所有文件的属性
chgrpgroup1file1改变文件的群组
实验三
编程模拟实现几种常见的进程调度算法,通过对几组进程分别使用不同的调度算法,计算进程的平均周转时间和平均带权周转时间,比较各种算法的性能优劣
首先是优先级调度实验
时间片轮转调度实验
#include"
stdio.h"
stdlib.h"
string.h"
ctype.h"
conio.h"
malloc.h"
typedefstructnode
{
charname[10];
intprio;
intround;
intcputime;
intneedtime;
intcount;
charstate;
structnode*next;
}PCB;
PCB*finish,*ready,*tail,*run;
intN;
voidfirstin()
run=ready;
run->
state='
R'
;
ready=ready->
next;
}
voidprt1(chara)
if(toupper(a)=='
P'
)
printf("
namecputimeneedtimeprioritystate\n"
);
else
namecputimeneedtimecountroundstate\n"
voidprt2(chara,PCB*q)
)
%-10s%-10d%-10d%-10d%c\n"
q->
name,
q->
cputime,q->
needtime,q->
prio,q->
state);
%-10s%-10d%-10d%-10d%-10d%-c\n"
count,q->
round,q->
voidprt(charalgo)
PCB*p;
prt1(algo);
if(run!
=NULL)
prt2(algo,run);
p=ready;
while(p!
{
prt2(algo,p);
p=p->
}
p=finish;
getch();
voidinsert1(PCB*q)
PCB*p1,*s,*r;
intb;
s=q;
p1=ready;
r=p1;
b=1;
while((p1!
=NULL)&
b)
if(p1->
prio>
=s->
prio)
p1=p1->
b=0;
if(r!
=p1)
r->
next=s;
s->
next=p1;
ready=s;
voidinsert2(PCB*p2)
tail->
next=p2;
tail=p2;
p2->
next=NULL;
voidcreate1(charalg)
inti,time;
charna[10];
ready=NULL;
finish=NULL;
run=NULL;
Enternameandtimeofprocess\n"
for(i=1;
i<
=N;
i++)
p=(PCB*)malloc(sizeof(PCB));
scanf("
%s"
na);
%d"
&
time);
strcpy(p->
name,na);
p->
cputime=0;
needtime=time;
w'
prio=50-time;
if(ready!
insert1(p);
next=ready;
ready=p;
//clr11();
outputofpriority:
\n"
************************************************\n"
prt(alg);
voidcreate2(charalg)
Enternameandtimeofroundprocess\n"
count=0;
round=2;
insert2(p);
tail=p;
//clrscr();
outputofround\n"
voidpriority(charalg)
while(run!
cputime=run->
cputime+1;
needtime=run->
needtime-1;
if(run->
needtime==0)
next=finish;
finish=run;
F'
firstin();
voidroundrun(charalg)
while(run!
count=run->
count+1;
count==run->
round)
W'
insert2(run);
intmain(intargc,char*argv[])
charalgo;
typethealgorithm:
P/R(priority/roundrobin)\n"
%c"
algo);
Enterprocessnumber\n"
N);
if(algo=='
||algo=='
p'
create1(algo);
priority(algo);
r'
create2(algo);
roundrun(algo);
//return0;
如图所示,两种算法适用于不同环境,各有千秋
这次的实验与上次的实验相比,在很多方面都有更多的难度,所以我们参考了别人很多的程序然后稍作了修改。
但是由于自身知识不够,所以没能将三个算法都弄到一个大程序中,只能通过三个程序来实现,这一点是我们的不足。
虽然如此,我们还是有了一定的收获,比如更加深刻了解到了先来先服务、短进程、时间片轮这三种作业的原理,而且这一过程中我们觉得时间片轮调度算法更具优势。
实验四
通过模拟实现请求页式存储管理的几种基本页面置换算法,了解虚拟存储技术的特点,掌握虚拟存储请求页式存储管理中几种基本页面置换算法的基本思想和实现过程,并比较它们的效率。
基于一个虚拟存储区和内存工作区,设计下述算法并计算访问命中率。
1、最佳淘汰算法(OPT)2、先进先出的算法(FIFO)3、最近最久未使用算法(LRU)4、简单时钟(钟表)算法(CLOCK)命中率=1-页面失效次数/页地址流(序列)长度
1.在主页面设置好物理块个数和页面引用串个数
2.选择先进先出算法
3.选择最近最久未使用
4.选择最佳置换算法
#include<
stdio.h>
stdlib.h>
/*全局变量*/
intmSIZE;
/*物理块数*/
intpSIZE;
/*页面号引用串个数*/
staticintmemery[10]={0};
/*物理块中的页号*/
staticintpage[100]={0};
/*页面号引用串*/
staticinttemp[100][10]={0};
/*辅助数组*/
/*置换算法函数*/
voidFIFO();
voidLRU();
voidOPT();
/*辅助函数*/
voidprint(unsignedintt);
voiddesignBy();
voiddownload();
voidmDelay(unsignedintDelay);
/*主函数*/
voidmain()
inti,k,code;
system("
color0A"
designBy();
printf("
┃请按任意键进行初始化操作...┃\n"
┗━━━━━━━━━━━━━━━━━━━━━━━━━┛\n"
>
>
getch();
cls"
color0B"
请输入物理块的个数(M<
=10):
scanf("
mSIZE);
请输入页面号引用串的个数(P<
=100):
pSIZE);
puts("
请依次输入页面号引用串(连续输入,无需隔开):
for(i=0;
pSIZE;
%1d"
page[i]);
download();
color0E"
do{
输入的页面号引用串为:
for(k=0;
k<
=(pSIZE-1)/20;
k++)
for(i=20*k;
(i<
pSIZE)&
20*(k+1));
if(((i+1)%20==0)||(((i+1)%20)&
(i==pSIZE-1)))
%d\n"
page[i]);
else
%d"
***********************\n"
*请选择页面置换算法:
\t\t\t*\n"
*-----------------------------------------*\n"
*1.先进先出(FIFO)2.最近最久未使用(LRU)*\n"
*3.最佳(OPT)4.退出*\n"
请选择操作:
[]\b\b"
code);
switch(code)
case1:
FIFO();
break;
case2:
LRU();
case3:
OPT();
case4:
/*显示设计者信息后退出*/
┃谢谢使用页面置换算法演示器!
正版授权㊣┃\n"
exit(0);
default:
输入错误,请重新输入:
按任意键重新选择置换算法:
}while(code!
=4);
/*载入数据*/
voiddownload()
inti;
color0D"
╔════════════╗\n"
║正在载入数据,请稍候!
!
║\n"
╚════════════╝\n"
Loading...\n"
O"
for(i=0;
51;
\b"
50;
mDelay((pSIZE+mSIZE)/2);
\nFinish.\n载入成功,按任意键进入置换算法选择界面:
/*设置延迟*/
voidmDelay(unsignedintDelay)
unsignedinti;
for(;
Delay>
0;
Delay--)
124;
\b"
/*显示设计者信息*/
voiddesignBy()
┏━━━━━━━━━━━━━━━━━━━━━━━━━┓\n"
┃㊣课题三:
页面置换算法㊣┃\n"
┃学号:
081001117┃\n"
┃姓名:
邢磊<
VisualC++6.0>
┃\n"
┣━━━━━━━━━━━━━━━━━━━━━━━━━┫\n"
voidprint(unsignedintt)
inti,j,k,l;
intflag;
if(((