操作系统概论_第1页
操作系统概论_第2页
免费预览已结束,剩余11页可下载查看

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、操作系统概论第 1 章 Shell 命令操作实践作业使用Shell命令上机完成以下操作:(1) 在当前登录用户的主目录下创建子目录mysub,进入 mysub 目录mkdirmysub,cd mysub(2) 显示当前目录路径。Pwd mysub(3) 显示用户名和用户主目录cd pwd(4) 将用户主目录添加到可执行文件搜索路径export PATH=$PATH:pwd(5) 显示添加后的可执行文件搜索路径echo $PATH(6) 列出主目录下所有以” .ba 或 “.pi 打头的文件名及其属性并将其存入 my1 文件ls -l .ba* .pr* my1列出进程状态信息中含tty的进程,

2、并将其存入 my2 文件中ps aux |grep tty|grep -v grep my2(8) 将 my1 和 my2 串联成一个新文件 my3cat my1 my2 my3(9) 将当前目录下的所有文件压缩归档到myf.tar.gz 文件中tar zcf myf.tar.gz(10) 将 my3 移动到上级目录中mv my3 ./(11) 删除文件 my1 和 my2rm my1 my2(12) 启动 vi 文本编辑程序$vim(13) 在 vi 中输入(3) (11)步的操作命令,并将其存入文件 mysh(14) 将 vi 放入后台运行(15) 将文件 mysh 访问权限改为文件主可执

3、行Chmod 744(16) 将文件 mysh 复制到上级目录中Cp mysh ,(17) 令 vi 返回前台,从中追加睡眠 1 分钟和返回前台的命令,从 vi 保存退出 :q(18) 以后台运行方式启动 myshVi mysh(19) 找到执行睡眠命令的的进程号(20) 用发送信号命令向睡眠命令进程号发送终止信号,让 mysh 停止执行。第 2 章 与处理器管理有关的系统功能调用 实践作业编写一个能建立两个子进程的程序 (父进程 ),让这三个进程并发执行完成以下二 元函数的计算:其中由父进程完成: f(x,y) = f(x) + f(y)由子进程 1 完成阶乘计算:f(x) = f(x-1)

4、 * 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)#includedouble f1( int x)if(x=1)return 1;elsereturn f1(x-1)*x;int f2(int y)if(y=1|y=2)return 1;elsereturn f2(y-1)+f2(y-2);double f(int x,int y)return f1(x)+f2(y);main()int x,y;printf( please input two words:n); scanf(%d

5、%d,&x,&y);printf( %lfn ,f(x,y);第 3 章 与存储管理有关的操作系统算法实 践作业强化实践能力培养课程内容 ”中 “内存页面置换算法实践能力培养考核选例”程序,编写一个能演示 LRU 内存页面置换算法的程序,它可根据给定的一组页面 引用序列号和实存页数,显示 LRU 置换页的过程,能统计和报告 LRU 置换算情 况下依次淘汰的页号、缺页次数(页错误数)和缺页率。#includevoid lru(int a,int m,int n)int b3,i,j,k=0,t,x;for(i=0;i3;i+)bi=ai;printf(%d ,bi);if (nm

6、)for(j=n;jm;j+)t=1;x=0;for(i=0;in-1;i+)if (aj=bi) t=0;x=i;printf( n );if(t)printf(淘汰dn ,灿0);k+;for(i=x;in-1;i+)bi=bi+1;bn-1=aj;for(int c=0;c3;c+)printf( %d ,bc); /if(t)k+;/printf(%d ,b0);printf( 缺页的次数 %dn,k);printf( 缺页率 %f ,(float )k/m);main()int a15;printf( please input ye ma:n); for(int i=0;i15;i+

7、) scanf(%d ,&ai);lru(a,15,3);第 4 章 与文件管理有关的系统功能调用实践作业强化实践能力培养课程内容 ”中 “文件操作实践能力培养考核选例 ”程序,请构造一个能管理文本文件的学生成绩表的简单数据库管理系统。 设文本文件的学生成 绩表中每条学生成绩记录有 3 个字段构成: 学号 20 个字节,姓名 20 个字节,成 绩 10个字节, 字段间用空格分割对齐。 简单数据库管理系统具有基本的追加一 条记录, (仅允许文件主) 按学号读出一条记录, 按学号升序列出所有记录 .(提 示:可建立一个学生成绩表文件和一个以学号为主键的索引文件。)Create TABLE

8、grade(Sno char(10) NOT NULL,Cno charNOT NULL,Grade smalli nt check(Grade is NULL)or(Grade betwee n 0 AND 100),primary key (Sno,Cno),Constraint c_f foreign key(Cno)references Course(Cno),Constraint s_f foreig nkey(S no)referen ces Stude nt(S no);插入自己的信息INSERT INTO Student VALUES(1108900113, 李晴晴,21,女,

9、CS);muiffClMM2I主律C3阴呦2110B9a0113壬曙21立cs1孑2插入:修改:update sc set grade=0 where sno in (select sno from stude ntWheresname=王林)And cn o=,2,;J SHO111 CJTO曲GRADEi seoo.1ST2 3000 .26T3SSOO.34 9800 .205G800.3saEl190INSERT INTO SCINSERT INTO SCINSERT INTO SCINSERT INTO SCINSERT INTO SCVALUES(98001,1,87);VALUE

10、S(98001,2,67);VALUES(,98001,,3,90);第 5 章与设备管理有关的操作系统算法实践作业强化实践能力培养课程内容”中磁盘移臂调度算法实践能力培养考核选例”程序 编写一个能演示最短寻找时间优先算法Sstf 的程序。该程序能分析出最短寻找时间优先算法”在响应任意给定的一组磁盘请求序列时磁头移动的过程,即能 统计和报告出 最短寻找时间优先算法”下磁头响应请求的顺总量和掉头的次数。#in clude#defi ne stacksize 10#defi ne max 20typedef structchar vexsmax;int bia n maxmax;int v,b;T

11、u;/*typedef struct int *base;int *top;int size;Stack;void In itStack(Stack &L)堆栈操作L.base=(i nt*)malloc(sizeof(S no de)*stacksize);if(!L.base)exit(0);L.top=L.base;L.size=stacksize;void in put(Stack &L,int h)*L.top+=h;Snode output(Stack &L,int &e)e=*-L.top;return e;int Stackmang(Stack

12、L)if(L.top-L.base=L.size)return 0;elsereturn 1;int StackEmpty(Stack L)if(L.base=L.top)return 0;elsereturn 1;*/void creattu(Tu &T)int i,j,k;int data;printf( 输入城市个数和道路条数 (输入格式: v,b) :); scanf(%d,%d,&(T.v),&(T.b);/fflush(stdin);printf( 输入所有城市名:); for(i=0;iT.v;i+) scanf(n%c,&T.vexsi);作用f

13、flush(stdin); for(i=0;iT.v;i+)/%c 前加 n 可起缓冲for(j=0;jT.v;j+)T.bianij=0;printf( 输入相邻俩城市的序号和俩城市之间的距离(输入格式为:i,j, data):n);for(k=0;kT.b;k+)scanf(%d,%d,%d,&i,&j,&data);T.bianij=data;T.bianji=data;int DFStrave(Tu T,char ch)int i;/*int visited10; for(i=0;iv;i+)visitedi=0;for(i=0;iv;i+)if(visited

14、i!=0)DFS(T,i);*/for(i=0;iT.v;i+)if(T.vexsi=ch)return i;void Floydpath(Tu T,int Dmax,int pathmax)int i,j,k;for(i=0;iT.v;i+) for(j=0;j0)/floyd 算法pathij=i;for(k=0;kT.v;k+)for(i=0;iT.v;i+) for(j=0;jDik+Dkj) Dij=Dik+Dkj; pathij=pathkj;void visit(Tu T,int D,int path)char ch;int j;printf(n*Dijkstra算法*n);pr

15、intf( 输入一个城市: );fflush(stdin);scanf(%c,&ch);j=DFStrave(T,ch);printf( 到第一个城市的最短路程为:while(pathj!=-1)printf( %d-%d n,j,pathj);j=pathj;%dn,Dj);void Dijkstrapath(Tu T)/dijkstra 算法int Dmax;int pathmax;int v0=0,Smax,min=200,k,j,i;for(i=0;iT.v;i+)Si=0;Di=T.bianv0i;if(Di=0)pathi=-1;elsepathi=0;Sv0=1;Dv0=

16、0;for(i=1;iT.v;i+)for(j=0;jT.v;j+)if(!Sj&Djmin)min=Dj; k=j;Sk=1;for(j=0;jT.v;j+)if(!Sj&Dk+T.biankjDj)Dj=Dk+T.biankj;pathj=k;visit(T,D,path);void main()Tu T;int Dmaxmax;int pathmaxmax;char ch1,ch2;int i,j;creattu(T);fflush(stdin);printf( 请选择两个城市(输入格式为:scanf(%c,%c,&ch1,&ch2);i=DFStrave

17、(T,ch1);A,B);j=DFStrave(T,ch2);Floydpath(T,D,path);printf( 输出最短路程 :%dn,Dij);printf( 输出最短路径: n);printf(-%d-,j);while(pathij!=-1)printf(-%d-,pathij); j=pathij;printf(n);Dijkstrapath(T);第 6 章 与并发进程有关的系统功能调用实 践作业强化实践能力培养课程内容 ”中 “进程的同步与互斥实践能力培养考核选例 ”程序和“文件操作实践能力培养考核选例 ”程序,请在计算机上实现教材第 6 章习题 6 要求的功能。答:这四个进

18、程实际上是两个生产者R1 , R2 和两个消费者 W1,W2各自生成不同的产品供各自的消费对象去消费,他们共享一个的缓冲器。由于缓冲器只能存放一个数,所以, R1和 R2 在存放数时必须互斥。 而 R1 和 W1 R2 和 W2 之间存在同步。为了协调它们的工作可定 义三个信号量:S:表示能否把数存人缓冲器B,初始值为 1.S1:表示 R1 是否已向缓冲器存入从磁盘上读入的一个数,初始值为S2:表示 R2 是否已向缓冲器存入从键盘上读入的一个数,初始值为beginS,S1, S2: semaphore;printf(*floyd算法);0.S:= 1; S1:= S2:= 0;cobeginprocess R1xl : integerbeginL1 :从磁盘读

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论