操作系统.docx

上传人:b****6 文档编号:15588568 上传时间:2023-07-05 格式:DOCX 页数:19 大小:17.62KB
下载 相关 举报
操作系统.docx_第1页
第1页 / 共19页
操作系统.docx_第2页
第2页 / 共19页
操作系统.docx_第3页
第3页 / 共19页
操作系统.docx_第4页
第4页 / 共19页
操作系统.docx_第5页
第5页 / 共19页
操作系统.docx_第6页
第6页 / 共19页
操作系统.docx_第7页
第7页 / 共19页
操作系统.docx_第8页
第8页 / 共19页
操作系统.docx_第9页
第9页 / 共19页
操作系统.docx_第10页
第10页 / 共19页
操作系统.docx_第11页
第11页 / 共19页
操作系统.docx_第12页
第12页 / 共19页
操作系统.docx_第13页
第13页 / 共19页
操作系统.docx_第14页
第14页 / 共19页
操作系统.docx_第15页
第15页 / 共19页
操作系统.docx_第16页
第16页 / 共19页
操作系统.docx_第17页
第17页 / 共19页
操作系统.docx_第18页
第18页 / 共19页
操作系统.docx_第19页
第19页 / 共19页
亲,该文档总共19页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

操作系统.docx

《操作系统.docx》由会员分享,可在线阅读,更多相关《操作系统.docx(19页珍藏版)》请在冰点文库上搜索。

操作系统.docx

操作系统

//第一章、

#

(1)

mkdir~/mysub

cd~/mysub

#

(2)

pwd

#(3)

whoami

echo$HOME

#(4)

exportPATH=$PATH:

$HOME

#(5)

echo$PATH

#(6)

ls-al~/.{ba,pr}*>my1

#(7)

psaux|awk'$7~/tty/{print}'>my2

#(8)

catmy1my2>my3

#(9)

tar-czvfmyf.tar.gz./

#(10)

mvmy3../

#(11)

rmmy1my2

#(12)

vimysh

#(13)

#手动输入3-11步的操作命令

#(14)

#ctrl+z将vi切换到后台运行

#(15)

chmodo=xmysh

#(16)

cpmysl../

#(17)

#输入命令:

fg

#将vi切换到前台

#追加睡眠命令1分钟

sleep1m

#追加返回前台命令

#保存退出vi

#(18)

#更改mysh可执行权限

chmod./mash&

#后台执行

mysh&

#(19)

#执行命令

ps-ef|grepsleep

#找到sleep1m的进程号PIDxxxx

#(20)

#杀死进程xxxx是进程号

kill+9xxxx

//第二章

#include

#include

intmain()

{

inte,g;

intpid_one,pid_two;

intfe,fg,feg;

inta,b;

scanf("%d%d",&e,&g);

pid_one=fork();

pid_two=fork();

if(pid_one<0)//建立子进程失败?

{

printf("CreateProcess1fail!

\n");

eeit(EEIT_FAILURE);

}

elseif(pid_one==0)

{

fe=1;

while(e>1)

{

fe*=e;

e--;

}

}

if(pid_two<0)//建立子进程失败?

{

printf("CreateProcess2fail!

\n");

eeit(EEIT_FAILURE);

}

elseif(pid_two==0)

{

fg=0;

a=1,b=1;

while(b

{

fg=a+b;

a=b;

b=fg;

}

}

feg=fe+fg;

printf("%d",feg);

}

//第三章

#include

#include

intmSIZE;

intpSIZE;

staticintmemery[10]={0};

staticintpage[100]={0};

staticinttemp[100][10]={0};

voidprint(unsignedintt)

{

inti,j,k,l;

intflag;

for(k=0;k<=(pSIZE-1)/20;k++)

{

for(i=20*k;(i

{

if(((i+1)%20==0)||(((i+1)%20)&&(i==pSIZE-1)))

printf("%d\n",page[i]);

else

printf("%d",page[i]);

}

for(j=0;j

{

for(i=20*k;(i

{

if(i>=j)

printf("|%d|",temp[i][j]);

else

printf("||");

}

for(i=mSIZE+20*k;(i

{

for(flag=0,l=0;l

if(temp[i][l]==temp[i-1][l])

flag++;

if(flag==mSIZE)//页面在物理块中

printf("");

else

printf("|%d|",temp[i][j]);

}

if(i%20==0)

continue;

printf("\n");

}

}

printf("----------------------------------------\n");

printf("缺页次数:

%d\t\t",t+mSIZE);

printf("缺页率:

%d/%d\n",t+mSIZE,pSIZE);

printf("置换次数:

%d\t\t",t);

printf("访问命中率:

%d%%\n",(pSIZE-(t+mSIZE))*100/pSIZE);

printf("----------------------------------------\n");

}

/*计算过程延迟*/

voidcompute()

{

inti;

for(i=1;i<20;i++)

{

mDelay(15);

if(i%4==0)

printf("\b\b\b\b\b\b\b\b\b\b\b\b");

else

printf("Θ");

}

for(i=0;i++<30;printf("\b"));

for(i=0;i++<30;printf(""));

for(i=0;i++<30;printf("\b"));

}

voidLRU()

{

intmemery[10]={0};

intflag[10]={0};

inti,j,k,m;

intmax=0;

intcount=0;

for(i=0;i

{

memery[i]=page[i];

flag[i]=i;

for(j=0;j

temp[i][j]=memery[j];

}

for(i=mSIZE;i

{

/*判断新页面号是否在物理块中*/

for(j=0,k=0;j

{

if(memery[j]!

=page[i])

k++;

else

flag[j]=i;

}

if(k==mSIZE)//如果不在物理块中

{

count++;

max=flag[0]

0:

1;

for(m=2;m

if(flag[m]

max=m;

memery[max]=page[i];

flag[max]=i;

for(j=0;j

temp[i][j]=memery[j];

}

else

{

for(j=0;j

temp[i][j]=memery[j];

}

}

compute();

print(count);

}

voidmain()

{

inti,k,code;

system("color0A");

getch();

system("cls");

system("color0B");

printf("请输入物理块的个数(M<=10):

");

scanf("%d",&mSIZE);

printf("请输入页面号引用串的个数(P<=100):

");

scanf("%d",&pSIZE);

puts("请依次输入页面号引用串(连续输入,无需隔开):

");

for(i=0;i

scanf("%1d",&page[i]);

download();

system("cls");

system("color0E");

puts("输入的页面号引用串为:

");

for(k=0;k<=(pSIZE-1)/20;k++)

{

for(i=20*k;(i

{

if(((i+1)%20==0)||(((i+1)%20)&&(i==pSIZE-1)))

printf("%d\n",page[i]);

else

printf("%d",page[i]);

}

}

LRU();

}

//第四章

#include

#include

#include

structstudent

{

charnumber[20];

charname[20];

charscore[20];

};

structstudentstu[N];

intn;

voidinput_student_from_txt();

voidinput_a_student();//输入学生信息

intsearch_student();//按学号查询学生信息并输出

voidsave_student();//保存学生信息

voidinsert_student();

voidprint_all_students();

intmain()

{

intc;

input_student_from_txt();

printf("-------------menu-------------");

printf("1.insertastudent.\n");

printf("2.searchastudentbythenumber.\n");

printf("3.displayallthestudentswiththeorderofincreasingnumber.\n");

printf("press0toquit");

printf("----------------------------------");

printf("inputyourchoice:

");

scanf("%d",&c);

while(c!

=0)

{

switch(c)

{

case1:

insert_student();

break;

case2:

search_student();

break;

case3:

print_all_students();

break;

}

scanf("%d",&c);

}

save_student();

}

voidinput_student_from_txt()

{

FILE*fp;

inti;

if((fp=fopen("score.txt","rb"))==NULL)

{

printf("cannotopenthefile!

\n");

}

else

{

i=0;

while(!

feof(fp))

{

fscanf(fp,"%20s%20s%10s,stu[i].number,stu[i].name,stu[i].score);

i++;

}

fclose(fp);

n=i;

}

}

voidinsert_student()

{

input_a_student(n);

n++;

}

voidinput_a_student(inta)//输入学生信息

{

printf("学号:

");

scanf("%s",&stu[a].number);

getchar();

gets(stu[a].name);

printf("成绩:

");

scanf("%s",&stu[a].score);

}

intsearch_student()//按照学号查找学生并输出

{

intnum;

intc;

printf("inputthenumber:

");

scanf("%d",&num);

for(inti=0;i

{

if(num==stu[i].number)

{

c=i;

}

}

printf("此学生的信息是:

\n");

print_student(c);

returnc;

}

voidprint_student(intc)//显示学生信息

{

printf("%20s%20s%10s,stu[c].number,stu[c].name,stu[c].score);

}

voidprint_all_students()//显示学生信息

{

inti;

sort_as_numbers();

for(i=0;i

{

print_student(i);

}

}

voidsort_as_numbers()

{

structstudenttemp;

for(inti=1;i

{

intmin=i;

for(intj=i+1;j

if(stu[j].number

{

min=j;

}

if(min!

=i)

{

temp=stu[max];

stu[max]=stu[i];

stu[i]=temp;

}

}

}

voidsave_student()//保存学生信息

{

FILE*fp;

if((fp=fopen("score.txt","wb"))==NULL)

{

printf("cannotopenthefile!

\n");

}

else

{

for(inti=0;i

{

fprintf(fp,"%20s%20s%10s,stu[i].number,stu[i].name,stu[i].score);

fprintf(fp,"\r\n");

}

fclose(fp);

}

}

//第五章

//最短寻道时间算法

typedefstruct

{

intn;//保存访问的序列号

intvisited;//访问标志位0表示未被访问1表示已经被访问

}L;

Intstring[50];

voidsstf(ints[],inta,intn)

{

intm;

Ll[50];//静态链表申请空间

floatsum=0;

for(inti=0;i

{

l[i].n=s[i];

l[i].visited=0;

}

for(intj=0;j

{

ints=1000;

for(intk=0;k

{

if(l[k].visited==0)

{

m=abs(l[k].n-a);

if(m

}

}

for(intp=0;p

if(l[p].visited==0)

if(s==abs(l[p].n-a)){

l[p].visited=1;

a=l[p].n;

printf("\n%6d|%6d",l[p].n,s);

sum=sum+float(s);

}

}

}

}

//第六章

R1进程:

VarS1,S2,S3:

Semaphore:

=1,1,0,0;

procedureR1

Begin

P(S1);//判断是否可以输入数据

Writeadatafromdisk;

V(S2);//发出W1可取的信号

end

W1进程

procedureR1

Begin

P(V2);//判断W1是否可取

printthedata;

V(S1);//发出可放信号

end

R1进程:

procedureR2

Begin

P(S1);//判断是否可以输入数据

Writeadatafromkeyboard;

V(S3);//发出W2可取的信号

end

W1进程

procedureR1

Begin

P(V3);//判断W2是否可取

printthedata;

V(S1);//发出可放信号

end

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 经管营销 > 经济市场

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2