操作系统实验报告书.doc_第1页
操作系统实验报告书.doc_第2页
操作系统实验报告书.doc_第3页
操作系统实验报告书.doc_第4页
操作系统实验报告书.doc_第5页
已阅读5页,还剩16页未读 继续免费阅读

下载本文档

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

文档简介

操作系统原理实 验 报 告 书 班级: 学号: 姓名: 指导教师: 2011-2012 学年 第 一 学期实验名称: LINUX 用户界面 实验时间: 年 月 日 第 周 星期 一、实验目的二、 实验预习(预备知识的问题及回答)1为什么在Linux系统中,诸如光盘、U盘等要先挂载而后才能使用?如何获得U盘的设备名?装载点在文件系统中的位置是什么?2从虚拟机界面退出进入Windows OS界面的操作是 ,从Windows OS界面进入虚拟机界面的方法是 。3权限的含义是什么?如何使用数字法设定文件的权限?4什么过滤操作?在Linux中如何实现?5在Linux中挂载u盘并能显示其文档的中文信息,所使用的挂载命令是: 。6什么是vi? 其三种操作模式的含义是什么?给出三种工作模式间的转换图。 三、 实验内容(包含实验所用命令或相关程序源代码)1shell操作命令(给出每题所用的Shell命令或命令结果)(1)创建名为stu1、stu2的2个用户,设置密码分别为student1和student2 ,并将它们设为组group1中的成员。(2)在每个用户的主目录下建立2个目录,分别命名为dir1和dir2。(3)查找stu1用户主目录、下属各子目录的默认存取权限,并给出结论。(4)调试pwd和cd命令,回答下列关于Linux文件系统中目录的有关问题。 用户主目录的绝对路径如何表示? 根目录如何表示? 和分别表示什么目录? 表示什么目录? 当前目录如何表示? (5)新建用户stu3,设置其密码为student3,并将其设置为group2中成员。尔后,以stu3登录,在其主目录下建立名为text的目录,在text目录下再建立名为dir1的子目录,并使其成为当前目录。(6)使用catsneakers.txt命令,分析命令行cat sneakers.txt的显示结果。$ catsneakers.txt buy some sneakersthen go to the coffee shop then buy some coffD$cat sneakers.txt(7)使用上题的方法,在dir1目录中建立home.txt文件,其内容为: bring the coffee home take off shoes put on sneakers make some coffee relax!(8)试写出实现下列功能的shell命令: 将home.txt文件移至其上级目录中(即text目录下)。 将home.txt添加到sneakers.txt尾部形成新的文件saturday.txt。 将text目录树从stu3用户主目录下移至stu2主目录下。【使用特权用户方法】【修改目录权限方法】 将 Saturday.txt文件从stu2目录中复制到stu1目录中。(9) 试画出上述命令后,用户stu1、stu2和stu3主目录中的目录树(3棵子树)。2 Linux C程序开发(1)编写Linux C程序,把一个文件的内容复制到另一个文件中,即实现简单的copy功能。要求:程序输入的第一个参数是源文件,第二个参数是目标文件。【源程序】【运行命令】(2)编写Linux C程序,列出stu2主目录中的文件信息,并将其中saturday.txt文件的权限设置为文件所有者可读可写、同组用户只读、其他用户无权限。【源程序】【运行命令】实验名称: SHELL程序设计 实验时间: 年 月 日 第 周 星期 一、实验目的二、 实验预习(预备知识的问题及回答)1. Linux系统默认的shell语言是什么?欲查看该shell的版本,应使用什么命令?2. 预习shell有关变量和参数的相关知识,回答下列问题。(1)假设用户进行了如下的赋值操作:$ person=jenny试给出下面命令的输出结果。1) echo person 2) echo $person 3) echo $person 4) echo “$person” (2)填充下列与环境变量、位置变量和预定义变量相关的表格。Shell变量定义HOMEPATHPWDPS1$0$#$?$3写出下列expr命令的输出: (1) expr index “value” a(2) expr “value” : v.*u(3) expr “aaa” : a+(4) expr “aaa” : a?(5) expr 2+3 (6) expr 2 + 3 (7) expr 2 * 3(8) expr 5 + expr 2 + 3(9) expr length “operating system”(10) expr substr linux 2 3三、 实验内容1编写Shell脚本,从命令行中接收一个二元算术表达式并计算其结果。【源程序】【运行】2编写一个以文件列表作为输入的过滤器程序,要求文件名含有以句点“.”分隔的后缀,过滤器输出每个文件的不带句点和后缀的文件名。【源程序】 【运行】3将下面的shell脚本命名为myscript,分析其功能:count=$#cmd=echowhile $count gt 0do cmd=$cmd $count count=expr $count - 1doneeval $cmd【命令行输入】 chmod a+x myscript ./myscript first second third【运行结果】【脚本功能分析】4设计一个程序cuts,它从标准输入读入数据,获取由第一个参数n 和第二个参数m所限定范围的数据(包括这两个字符),n和m都是整数。例如:$ cuts 11 14This is a test of cuts program (输入)test (显示结果)【源程序】实验名称: 进程控制与通信 实验时间: 年 月 日 第 周 星期 一、实验目的二、实验预习(预备知识的问题及回答)1写出下列系统调用功能: (1)fork()用于 (2)getpid()用于 (3)wait()用于 (4)exit()用于 (5)pipe()用于 (6)signal()用于 (7)kill()用于 2阅读fork系统调用,用伪码写出其实现流程。3图示pipe系统调用生成无名管道时所涉及的数据结构。4. 在UNIX系统中运行下面程序,最多可以产生多少个进程?画出进程家族树。main( ) fork( ); fork( ); fork( );5.下列程序运行后,a的值是多少?main( ) int a,pid; a=55; pid=fork( );if(pid0) printf(errorinfork !); exit(0); else if(pid=0) sleep(5); a=99; printf(“a=%dn”,a);sleep(5); exit(0); else sleep(7); printf(“a=%dn”,a); wait(0); 三、实验内容1调试下面的程序,观察可能的并发结果,给出简要分析,并画出进程家族树。#include #include #includemain() int status;intpid1=-1,pid2=-1,pid3=-1; pid1=fork();if(pid1=0)printf(pid1=0,myprocessidis%dn,getpid(); else if(pid10) printf(pid10,myprocessidis%dn,getpid(); pid2=fork( );if(pid2=0)printf(pid2=0, myprocessidis%dn,getpid(); else if(pid20) printf(pid20, myprocessidis%dn,getpid(); pid3=fork();if(pid3=0)printf(pid3=0,pid1=%d,pid2=%d,myprocessidis%dn,pid1,pid2,getpid(); else if(pid30) printf(pid30, pid1=%d,pid2=%d, myprocessidis %dn,pid1,pid2,getpid();wait(&status);exit(0); 2编程实现进程间管道通信。 要求:父子进程共享一无名管道,两个子进程作为发送方分别向管道发送一行信息,父进程先读出子进程P1发来的信息行,将其转换为大写字母输出;再读出子进程P2发来的信息行,将其转换为小写字母输出。【源程序】 【运行与测试】附加题3学习下面共享存储区的内容,并用共享存储区的方式实现“观察者报告者”问题(共享的count变量存于共享存储区),并验证“与时间有关的错误”。共享存储操作使得两个或两个以上的进程可以共用一段物理内存(一般情况下,两个进程的数据区是完全独立的,父进程用fork创建子进程后,子进程会复制父进程数据到自己的数据区)。(1)创建共享内存#includeint shmget(key_t key,size_t size, int permflags);参数key是共享内存的标识,size是共享内存段的最小字节数,permflags是访问权限,值的设置同semget一样。(2)共享内存的控制#includeint shmctl(int shmid, int command, struct shmid_ds *shm_stat);command可设为IPC_STAT,IPC_SET,IPC_RMID。参数shm_stat指向存放属性的结构体,具体内容请参考手册。(3)共享内存的附接和断开includevoid *shmat(int shmid, const void *addr, int shmflags);int shmdt(const void *addr); 由于两个函数需指出进程地址空间中的地址,因此比较复杂。简化的方法是将shmat中的地址设为NULL。【源程序】【运行与测试】实验名称: 虚拟存储 实验时间: 年 月 日 第 周 星期 一、实验目的二、实验预习(预备知识的问题及回答)1描述请求分页的地址转换过程。2解释FIFO页面置换算法所产生的Belady现象。三、实验内容1计算并输出下列页面置换算法在不同内存容量(4页至32 页)下的命中率.(1)最佳置换算法(OPT)(2)先进先出算法(FIFO)(3)最近最久未用页面置换算法(LRU)具体要求如下:(1)通过随机函数产生一个指令序列,共320条指令.指令地址的生成原则如下:1)50%的指令是顺序执行的;2)25%的指令是均匀分布在前地址部分;3)25%的指令是均匀分布在后地址部分;程序中的具体实施方法是:1)在0,319的指令地址之间随机选取一起点地址m;2)顺序执行一条指令,即执行地址为m+1的指令;3)在前地址0,m+1中随机执行一条指令,该指令的地址为m;4)顺序执行一条指令,即执行地址为m+1的指令;5)在后地址m+2,319中随机执行一条指令;重复上述步骤(1)(5),直到执行320条指令为止.将

温馨提示

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

最新文档

评论

0/150

提交评论