收藏 分享(赏)

操作系统概论答案.doc

上传人:dreamzhangning 文档编号:2341820 上传时间:2018-09-11 格式:DOC 页数:30 大小:913.73KB
下载 相关 举报
操作系统概论答案.doc_第1页
第1页 / 共30页
操作系统概论答案.doc_第2页
第2页 / 共30页
操作系统概论答案.doc_第3页
第3页 / 共30页
操作系统概论答案.doc_第4页
第4页 / 共30页
操作系统概论答案.doc_第5页
第5页 / 共30页
点击查看更多>>
资源描述

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

2、中ps aux | grep tty my2(8)将 my1 和 my2 串联成一个新文件 my3cat my1 my2 my3(9)将当前目录下的所有文件压缩归档到 myf.tar.gz 文件中tar -zcvf /myf.tar.gz ./(10)将 my3 移动到上级目录中sudo mv my3 /(11)删除文件 my1 和 my2rm f my1 my1(直接删除)rm i my1 my2(删除前确认)(12)启动 vi 文本编辑程序vi(13)在 vi 中输入(3) (11)步的操作命令,并将其存入文件 myshi/aecho $USERecho $HOMEexport PATH=

3、$PATH:$HOMEecho $PATHls -l .ba,pr* my1ps aux | grep tty my2cat my1 my2 my3tar zcvf /myf.tar.gz ./sudo mv my3 /rm f my1 my1rm i my1 my2:w mysh(14)将 vi 放入后台运行ctrl+zbg %1(15)将文件 mysh 访问权限改为文件主可执行chmod u+x mysh(16)将文件 mysh 复制到上级目录中cp mysh /(17)令 vi 返回前台,从中追加睡眠 1 分钟和返回前台的命令,从 vi 保存退出fg %1sleep 60fg:wq(18

4、)以后台运行方式启动 mysh./mysh if (x #include #define N 100#define M 10000typedef structint pagenum;int framenum;int status;/若 status=0 则不在内存PAGE;typedef structint pagenum;int framenum;int status;/若 status=0 则空闲STORAGE;void LRU(int n,int m,STORAGE storageN,PAGE pageM)int i,j,full=0,diseffect=0,timeM,top=0,ba

5、se=0;/若 full=n 则内存满,timeM为实现置换所设的特殊的栈printf(“当前内存中的页(-1 代表无页):“);for(j=0;j#include #include #include #include #include #include #include #define STAR “*“#define DBFILE “stu_record_db.txt“ /数据文件名称using namespace std;class CWindow /界面类public:CWindow()void display(); /显示界面int get_input(); /获取输入CWindow(

6、);void CWindow:display()coutchoice_str;if(choice_str.length() 1 | (choice_str0 4)/检查选项输入/ coutchoice_num;return choice_num;class CSturecord /学生信息类public:CSturecord(string stunum, string stuname = “0“, string stuscor = “0“);/构造学生记录void display_record(); /显示学生记录的信息long get_number(); /获取学生学号信息bool oper

7、ator = (const CSturecord /重载 = 用于searchbool operator number;streamlongintnum;return longintnum;bool CSturecord:operator = (const CSturecordbool CSturecord:operator sturec_vec;static char filename;char CSystem:filename = DBFILE;bool CSystem:read_record()string str;string number;string name;string sco

8、re;int i = 0;vector vstr;ofstream outf(filename, ios:app); /若文件不存在,则新建vector:iterator viter = vstr.begin();if(!outf)coutnumber)infname;infscore;CSturecord stutemp(number, name, score);sturec_vec.push_back(stutemp);inf.close();return true;bool CSystem:append_rec()string number, name, score;coutnumber

9、namescore;CSturecord stutemp(number, name, score);sturec_vec.push_back(stutemp);coutdisplay_record();return true;bool CSystem:search_rec()vector:iterator result_iter;vector:iterator void_iter;string search_number;coutsearch_number;CSturecord stutemp(search_number);result_iter = lower_bound(sturec_ve

10、c.begin(), sturec_vec.end(), stutemp);void_iter = sturec_vec.end() - 1;if(result_iter = sturec_vec.end() | stutemp.longintnum != result_iter-longintnum)coutdisplay_record();return true;void CSystem:sturec_sort(bool show)list stulist(sturec_vec.begin(), sturec_vec.end();stulist.sort();vector vectemp(

11、stulist.begin(), stulist.end();sturec_vec = vectemp;vector:iterator veciter = sturec_vec.begin();if(show)for(; veciter != sturec_vec.end(); veciter+)veciter-display_record();bool CSystem:write_record()ofstream outf(filename);if(!outf)cout:iterator veciter = sturec_vec.begin();for(; veciter != sturec

12、_vec.end(); veciter+)outfnumbernamescoreread_record();void CManage:pro_start()int choice_num;CWindow gui_wind;dodogui_wind.display();choice_num = gui_wind.get_input();if(choice_num append_rec();break;case 2:system-search_rec();break;case 3:system-sturec_sort();break;case 4:system-write_record();dele

13、te system;exit(0);break;while(1);int main(void)CManage manage;manage.pro_start();return 0; 第 5 章 与设备管理有关的操作系统算法实践作业参照“强化实践能力培养课程内容”中“磁盘移臂调度算法实践能力培养考核选例”程序编写一个能演示“最短寻找时间优先算法 Sstf”的程序。该程序能分析出“最短寻找时间优先算法”在响应任意给定的一组磁盘请求序列时磁头移动的过程,即能统计和报告出“最短寻找时间优先算法”下磁头响应请求的顺序、移臂的总量和掉头的次数。#include#include#includevoid ma

14、in()int a100,b100,c100;int i,n,k,h,t,p,l,sum;printf(“请输入总磁道数:n“);scanf(“%d“,printf(“请输入磁道:n“);for(i=0;iak)h=ai;ai=ak;ak=h;printf(“排序后的数组为:n“);for(i=0;i=p)printf(“在第%d 个位置插入n“,i);break;t=0;/输出数组下标l=i+1;while(i0 | l=0)bt+=ai-;printf(“SSTF 磁头移动顺序和相应的移动距离为:n“);for(k=0;kn;k+)printf(“%d %dn“,bk,ck);printf

15、(“磁道移动总量为:“);sum=0;for(k=0;kn;k+)sum=sum+ck;printf(“%dn“,sum);return 0;第 6 章 与并发进程有关的系统功能调用实践作业参照“强化实践能力培养课程内容”中“进程的同步与互斥实践能力培养考核选例”程序和“文件操作实践能力培养考核选例”程序,请在计算机上实现教材第 6 章习题 6 要求的功能。现有四个进程 R1、R2、W1 和 W2,它们共享可以存放一个数的缓冲器 B。进程 R1 每次把从磁盘上读入的一个数存到缓冲器 B 中,供进程 W1 打印输出。进程 R2 每次把从键盘上读入的数存到缓冲器 B 中,供进程 W2 打印输出。当

16、一个进程把数存放到缓冲器后,在该数还没有被打印输出之前不准任何进程再向缓冲器中存数。当一个进程已把缓冲器中的数打印输出后,在缓冲器还没有存入一个新数之前不准任何进程再从缓冲器中取数打印。怎样用操作使这四个进程并发执行时能协调的工作?S:表示能否把数存人缓冲器 B,初始值为 1。S1:表示 R1 是否已向缓冲器存入从键盘上读入的一个数,初始值为 0。S2:表示 R2 是否已向缓冲器存入从磁盘上读入的一个数,初始值为 0。beginS,S1,S2:semaphore;S:1;S1:S2:0;cobeginprocess R1xl :integerbeginL1:从键盘读一个数;x1:=读入的数;P(S) ;B:xl;V(S1) ;goto L1;end;process R2x2:integer;beginL2:从磁盘读一数;x2:=读入的数;P(S) ;B:x2;V(S2) ;goto L2;end;process W1y:integer;beginL3:P(S1) ;y:=B;V(S) ;打印 y 中的数;goto L3;end;process W2z:integerbeginL4:P(S2) ;z:=B;V(S) ;打印 z 中的数;goto L4;end;coend;end

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

当前位置:首页 > 高等教育 > 大学课件

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报