操作系统上机资料整合 FIFOLRUFCFSSJF算法都有 C语言 已调试.docx
- 文档编号:24332881
- 上传时间:2023-05-26
- 格式:DOCX
- 页数:15
- 大小:18.67KB
操作系统上机资料整合 FIFOLRUFCFSSJF算法都有 C语言 已调试.docx
《操作系统上机资料整合 FIFOLRUFCFSSJF算法都有 C语言 已调试.docx》由会员分享,可在线阅读,更多相关《操作系统上机资料整合 FIFOLRUFCFSSJF算法都有 C语言 已调试.docx(15页珍藏版)》请在冰豆网上搜索。
操作系统上机资料整合FIFOLRUFCFSSJF算法都有C语言已调试
一、20个命令,选8个。
1.shutdown
设置1分钟后重启
#shutdown-r分钟数,例如#shutdown–r2为两分钟后重启
设置定时关机
#shutdown-hhh:
mm,例如#shutdown–h19:
31为19点31分关机
2.ls
查看/home/test目录下文件情况
#ls/home/test
3.cp
将foo.txt文件拷贝到/home/test2目录下,命名为foo2.txt
#cp/home/test/foo.txt/home/test2/foo2.txt
4.rm
将Finished子目录及子目录中所有档案删除:
#rm-rFinished
5.mv
将foo.txt文件移动到/home/test3目录下,命名为foo3.txt
#mvfoo.txt/home/test3/foo3.txt
6.pwd
查看当前目录
#pwd
7.cd
切换目录到/home/test
#cd/home/test
8.mkdir
创建test目录到/home目录下
#mkdir/home/test
9.rmdir
删除/home/test目录
#rmdir/home/test
10.find
/home目录里查找文件1.txt
#find/home-name1.txt
/home目录里查找所有文本文件,注意单双引号使用与否的区别
#find/home-name“*.txt”
/home目录里查找除1.txt外的文件
#find/home!
-name1.txt
11.grep
查找文件file1中以b开头的行
#grep‘^b’file1
查找文件file1中以b结尾的行
#grep’b$’file1
查找文件file1中所有以an为头两个字符的3个字符,包括any,and等。
#grep‘an.’file1
12.chown
把文件shiyan.c的所有者改为wang
#chownwangshiyan.c
把目录/his及其下的所有文件和子目录的属主改成wang,属组改成users
#chown-Rwang.users/his
13.chmod
将foo.txt文件属主增加写权限,同组用户增加执行权限,其他用户删除执行权限;
$chmodu+w/home/usr1/foo.txt
$chmodg+x/home/usr1/foo.txt
$chmodo-x/home/usr1/foo.txt
14.groupadd
新建用户组grp2(简单使用)
#groupaddgrp2
创建用户组grp1(带参数使用)
#groupaddgrp1(groupadd[-ggid][-o][-r][-f]groupname)
建立一个新组,并设置组ID加入系统:
#groupadd-g2000groupname
此时在/etc/group文件中产生一个组ID(GID)是2000的项目。
15.cat
显示/home/test/foo.txt文件内容
#cat/home/test/foo.txt
用cat命令把foo2.txt和foo3.txt的内容合并到/home下的newfoo.txt
#cat/home/test2/foo2.txt/home/test3/foo3.txt>/home/newfoo.txt
16.more
分页查看新生成的newfoo.txt文件
#more/home/newfoo.txt
17.man
强制man命令在第2节文件夹中查找poll帮助内容
#man2poll
man是按照手册的章节号的顺序进行搜索的,比如:
#mansleep
只会显示sleep命令的手册,如果想查看库函数sleep,就要输入:
#man3sleep
18.date
查看当前时间。
#date
19.cal
显示当月的日历
#cal
显示当年日历
#cal-y
显示2012年的日历
#cal2012
显示2012年的6月的日历
#cal62012
20.wc
统计文件1.txt的字节数
#wc-c/home/1.txt
统计文件1.txt的行数
#wc-l/home/1.txt
统计文件1.txt的字数
#wc-w/home/1.txt
统计文件1.txt,2.txt的文本信息
#wc-lcw/home/1.txt/home/2.txt
或#wc/home/1.txt/home/2.txt
二、shell编程(循环)
①找出100以内所有7的倍数。
提示:
利用取余数运算%,当余数为0表示判断一个数是另一个数的整数倍。
#!
/bin/bash
x=1
while[$x–le100];
do
a=$(expr$x%7)
if[$a–eq0];then
echo“$x”
fi
x=$(expr$x+1)
done
题目2:
创建以下bash文件并执行
计算指定整数范围内的素数/质数的个数。
例如,#./2.sh5060将输出50和60之间的素数个数2。
(注:
素数指,只能被1和自身整除的整数。
)
#!
/bin/bash
#checkarguments
if[$#-lt2];then
echo"argumentnumbererror!
"
exit1
fi
a=$1
b=$2
#oneisnotprime
If[$a-gt1];then
a2=$a
else
a2=2
fi
num=0
x=$a2
while[$x-le$b];do
#checkxisprimeornot
flag=1
y=2
while[$y-lt$x];do
c=$(expr$x%$y)
if[$c-eq0];then
flag=0
fi
y=$(expr$y+1)
done
if[$flag-eq1];then
echo"$x"
num=$(expr$num+1)
fi
x=$(expr$x+1)
done
echo"numberofprimesin[$a,$b]is$num."
三、用C语言编程实现先来先服务(FCFS)、最短作业优先(SJF)、先进先出(FIFO)、最近最少用(LRU)算法
//FCFS
#include"stdio.h"
#include"stdlib.h"
intmain()
{
inti,num,n;
intrt[100];//运行时间
intat[100];//到达时间
intet[100];//结束时间
intct[100];//周转时间
floattotaltime,avgtime;//总时长,平均周转时长
printf("一共有几道作业:
");
scanf("%d",&n);
printf("按作业的到达顺序输入各作业需要的运行时间\n");
for(i=0;i { printf("作业%d运行时间: ",i+1); scanf("%d",&rt[i]); printf("到达时间: "); scanf("%d",&at[i]); } printf("FCFS;\n"); for(i=0;i {if(i==0) et[i]=at[i]+rt[i]; else et[i]=et[i-1]+rt[i]; ct[i]=et[i]-at[i]; printf("p%d: rt=%d,at=%d,et=%d,ct=%d\n",i+1,rt[i],at[i],et[i],ct[i]); } totaltime=0.0f; for(i=0;i totaltime+=(float)ct[i]; avgtime=totaltime/n; printf("totalcyclingtimeofFCFSis: %.2f.\n",totaltime); printf("averagecyclingtimeofFCFSis: %.2f.\n",avgtime); return0; } //SJF #include"stdio.h" #include"stdlib.h" intmain() { inti,n,j,next; intrt[100];//运行时间 intat[100];//到达时间 intyunxingtime;//结束时间 floattotaltime,avgtime;//总时长,平均周转时长 printf("一共有几道作业: "); scanf("%d",&n); printf("按作业的到达顺序输入各作业需要的运行时间\n"); for(i=0;i { printf("作业%d运行时间: ",i+1); scanf("%d",&rt[i]); printf("到达时间: "); scanf("%d",&at[i]); } j=0; printf("SJF;\n"); for(i=1;i {if(at[j]>at[i]) j=i;}//求出最先到达的 totaltime=0.0f; totaltime=(float)rt[j]; yunxingtime=rt[j]+at[j]; printf("p%d: rt=%d,at=%d,et=%d\n",j+1,rt[j],at[j],yunxingtime); for(j=1;j {next=n+1; for(i=0;i {if(at[i]! =0) {if(at[i]<=yunxingtime) {if(next==n+1) next=i;//在上一个作业结束之前到达的作业 elseif(rt[next]>rt[i]) next=i;//当两个作业都符合上一个作业结束之前到达,则比较它们的执行时间 } }} yunxingtime+=rt[next]; totaltime+=yunxingtime-at[next]; printf("p%d: rt=%d,at=%d,et=%d\n",next+1,rt[next],at[next],yunxingtime); at[next]=0; } avgtime=(float)totaltime/n; printf("totalcyclingtimeofFCFSis: %.2f.\n",totaltime); printf("averagecyclingtimeofFCFSis: %.2f.\n",avgtime); return0; } //FIFO #include"stdio.h" intmain(intargc,char*argv[]) { inti,j,k,k2,t; intn1; intn2; intpageseq[100]; intmempages[10][2]; intn3; intn4; intreplacedPage; printf("总页面: "); scanf("%d",&n1); if(n1<1) { printf("页面错误! \n"); return1; } printf("pagenumber: "); scanf("%d",&n2); for(i=0;i { printf("%d-thpageis: ",i+1); scanf("%d",&t); pageseq[i]=t; } n3=0; n4=0; for(i=0;i { for(j=0;j { if(mempages[j][0]==pageseq[i]) break; } if(j==n3&&n3 mempages[n3][0]=pageseq[i]; mempages[n3][1]=i+1; n3++;n4++; } elseif(j==n3){ intminv; minv=mempages[0][1];k2=0; for(k=1;k if(minv>mempages[k][1]){ k2=k; minv=mempages[k][1]; } } replacedPage=mempages[k2][0]; mempages[k2][0]=pageseq[i]; mempages[k2][1]=i+1; n4++; printf("page%din,page%dout.%d-thmissingpage.\n",pageseq[i],replacedPage,n4); } else{ printf("page%disinmemory.\n",pageseq[i]); } } printf("Totally%dmissingpages! \n",n4); return0; } //LRU #include"stdio.h" intmain(intargc,char*argv[]) { inti,j,k,k2,t; intn1; intn2; intpageseq[100]; intmempages[10][2]; intn3; intn4,w; intreplacedPage; printf("总页面: "); scanf("%d",&n1); if(n1<1) { printf("页面错误! "); return1; } printf("pagenumber: "); scanf("%d",&n2); for(i=0;i { printf("%d-thpageis: ",i+1); scanf("%d",&t); pageseq[i]=t; } n3=0; n4=0; for(i=0;i { for(j=0;j { if(mempages[j][0]==pageseq[i]) break; } if(j==n3&&n3 mempages[n3][0]=pageseq[i]; mempages[n3][1]=0; if(j==0) mempages[n3][1]=0; else for(w=0;w mempages[w][1]++; n3++;n4++; } elseif(j==n3){ intminv; minv=mempages[0][1]; k2=0; for(k=1;k if(mempages[k][1]>minv){ k2=k; minv=mempages[k][1]; } } replacedPage=mempages[k2][0]; mempages[k2][0]=pageseq[i]; mempages[k2][1]=0; for(w=0;w if(w! =k2) mempages[w][1]++; n4++; printf("page%din,page%dout.%d-thmissingpage.\n",pageseq[i],replacedPage,n4); } else{mempages[j][1]=0; for(w=0;w if(w! =j) mempages[w][1]++; printf("page%disinmemory.\n",pageseq[i]); } } printf("Totally%dmissingpages! \n",n4); return0; }
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 操作系统上机资料整合 FIFOLRUFCFSSJF算法都有 C语言 已调试 操作系统 上机 资料 整合 FIFOLRUFCFSSJF 算法 语言 调试