当前位置:文档之家› 操作系统实验指导书

操作系统实验指导书

实验一熟悉Linux常用命令 (2)

实验二linux文件管理实验 (4)

实验三Linux下程序设计基础及进程控制 (6)

实验四Linux下进程间管道通信 (8)

实验五银行家算法 (9)

实验六:存储管理 (10)

实验七磁盘调度 (11)

附件一虚拟机安装图 (13)

附件二常用命令 (33)

实验一熟悉Linux常用命令

实验学时:4学时

实验类型:演示

实验要求:必修

一. 实验目的:

1.掌握Linux下各类命令的使用方法;

2.熟悉Linux操作环境。

二.实验内容:

练习使用Linux常用命令。

三.实验环境:

一台已经安装好Linux操作系统的主机/或安装过vmware的windows系统。四、实验操作:

虚拟机的安装见附件1

常用命令见附件2

1、获得命令帮助

分别演示一下help --help man info 命令的用法;

2、目录操作命令

(1)启动计算机,利用root用户登录到系统,查看提示符,区别#和$提示符。

(2)用pwd命令查看当前所在的目录。

(3)用ls命令列出此目录下的文件和目录,包括ls -a ;ls -l;ls -R等选项的使用。

(4)使用cd 装换目录命令,练习绝对路径和相对路径的使用.\

(5)进入/home目录下,创建目录test,进入test目录,在该目录下创建一个文件hello.C,创建一个目录toto,进入toto目录,创建子目录tata,创建文件 test.c.

(6)删除创建的hello.c,删除目录toto.

(7)在/root下创建文件hello.c,拷贝该文件到/home/test下(如果test 目录不存在自己创建),并命名文件为tt.c。

(8)使用cat more less tail head显示文件的内容。只看

/etc/passwd的前5行内容。只看/etc/passwd的后5行内容。

(9)管道的使用,cat hello.c | grep "hello",在hello.C文件中查找具有字符串"hello"的行.

(10)重定向的使用。符号 > >> 发现其不同的用法。

(11)压缩命令的使用。

创建三个文件 1.Jpg 2.Jpg 3.Jpg。

把三个文件打包tar cvf hello.tar 1.Jpg 2.Jpg 3.jpg

压缩gzip hello.tar

将hello.tar拷贝到其他目录下解压缩: gzip -d hello.tar.gz

解包hello.tar: tar -xvf hello.tar

3、文件操作命令

(1)查找 /etc下的passwd这个文件。

(2)查找/home目录下的所有文件名中有profile的文件。

(3)在/home下面创建test目录,在test目录下创建目录a,在a目录下创

建目录b,在b目录中创建目录c.在目录c中创建d,用一个命令完成。

五、思考题:

1、如何查看隐含文件列表?

2、如何将一个目录中的所有文件拷贝到另一个目录中,包括这个目录中

的隐含文件。

3、如何删除一个目录包括其中的所有文件,并且不显示任何提示信息?

4、什么是绝对路径?什么是相对路径?如何表示?

实验二linux文件管理实验

实验学时:4学时

实验类型:演示

实验要求:必修

一、实验目的

1、掌握linux文件保护的原理

2、掌握linux 符号链接、软链接的不同

3、掌握有关文件操作的系统调用的使用

二、实验内容

1、练习关于用户和组的管理

2、关于文件权限的管理

3、符号链接的使用

4、文件相关系统调用的使用

三.实验环境

一台已经安装好Linux操作系统的主机/或安装过vmware的windows系统。四.实验步骤

1、用户管理与组管理

1)建立帐号user01,查看/etc/passwd文件有没变化,并设置user01的密码为

123456。在查看/etc/shadow文件有无变化。

2)查看/etc/group文件。

3)新建一个组,组名为group01,在新建一个用户user02,并指定它的组为

group01

4)把user02的组更改为user01

5)删除user01这个用户

6)删除group01这个组

2、文件的权限属性

1)查看/etc/passwd的权限,在查看/etc/shadow的权限。

2)在/home下面新建afile文件,查看它的权限

3)新建user02这个帐户

4)新建group02这个组

5)把afile的权限设置为对用户来说可读可写,对组来说可读,对其他用户来

说没有任何权限

6)把afile文件的所有者更该为user02,所属组更改为group02,

7)为用户创建的所有新文件生成一个默认的文件权限 642。

8)改变/opt/local/book/及其子目录下的所有文件的属组为book

9)把文件shiyan.c的所有者改为wan

10)把目录/hi及其下的所有文件和子目录的属主改成wan,属组改成users。

11)新建一个文件,并将它的权限修改为 rwxrw-r--, 最少列举两种方法:

3、硬链接、符号连接

Linux系统中连接文件分为硬连接和符号连接。

硬连接:只是在某一目录下的块多写入一个关联数据,不会用掉incode与磁盘空间(只有当目录的块被用完,才可能会增加一个块来完成,从而导致磁盘空间发生变化,这样的可能性非常小)。

符号连接:我们可以理解成如Windows的快捷方式。符号连接是一个独立的新文件,所以占inode与块。

1)使用vi建立一个测试文件test。内容为“Hello everyone!“

2)为test创建硬连接文件testh

3)查看test文件的inode节点是否改变

4)为test创建一个符号连接文件testo文件

5)查看test文件的inode节点是否改变

6)使用vi修改testh文件的内容,再查看test8Md!Y$HDD1i ,testo是否发生

改变。

7)删除test8Md!Y$HDD1i,查看testh和testo内容。

五、实验要求

1.练习对文件的基本操作

2.编写一个程序实现对文件的操作,练习文件系统调用的使用。

六、思考题

1.软硬链接有什么不同?

2.linux下是如何加强文件权限管理的?

实验三Linux下程序设计基础及进程控制

实验学时:4学时

实验类型:验证

实验要求:必修

一. 实验目的:

1.掌握Linux下常用编辑器的使用;

2.掌握linux下程序的编译/调试方法。

3.掌握linux下进程控制

二.实验内容:

练习linux下的 c语言程序设计,熟练使用vim编辑器编辑文件。学会gcc 编译器的使用及常用的编译选项。能够使用gdb调试器进行调试程序。实现简单的程序熟悉进程控制原语。

三.实验环境:

一台已经安装好Linux操作系统的主机/或安装过vmware的windows系统。

四、实验操作:

1、熟悉Vi 编辑器的使用

练习要求:用vi编辑器编写一段文字,然后用上述命令进行操作,最后保存退出。

2、Gcc编译器的使用

练习要求:

1)用vi编辑器编写一个简单hello world程序,命名为hello.c,保存退出。

2)Gcc 编译该hello.c文件,要求生成hello可执行文件,并加入调试信息。 3)运行hello文件,查看实验结果。

3、Gdb调试器的使用

练习要求:进入gdb 调试环境Gdb hello .熟悉调试命令。

4、熟悉ps、kill命令

练习要求

1)打开终端输入进程查看命令ps,熟悉其参数

2)kill命令用于删除指定进程

5、熟悉fork()命令

练习要求:父进程创建子进程,父进程输出“hello world!”。子进程输出“welcome!”

6、熟悉exec()命令

练习要求:父进程创建两个子进程:其中子进程1运行“ls –l”;子程序2运行“cat /etc/passwd”;

五、思考题:

1.断点是否可以设置多个,自己试试看。如何清除所设的断点?2.如果要调试程序,编译时有何要求?

实验四Linux下进程间管道通信

实验学时:4学时

实验类型:验证

实验要求:必修

一. 实验目的:

1.掌握Linux下有名管道和无名管道通信的原理;

2.掌握Linux下进程创建、撤销的方法。

二.实验内容:

1.编写程序,创建一个进程,通过无名管道实现父子进程之间的通信。

2.创建一个有名管道,实现任意两个进程之间的通信。

三.实验环境:

一台已经安装好Linux操作系统的主机/或安装过vmware的windows系统。

四、实验原理

1.无名管道

无名管道只能实现父子进程或具有亲缘关系的进程间的通信,系统调用为:

int pipe(int pipe[2]),参数是2个元素的int型数组,pipe[0]是读取管道的文件标识符,pipe[1]是写入管道的文件标识符。

所使用的头文件 #include

2.有名管道

有名管道可以实现任意两个进程间的通信,不局限于具有亲缘关系的进程。系统调用为:

int mkfifo(const char *path,mode_t mode),

path:要使用的命名管道的路径和名字

mode指明管道的访问权限(O_RDONLY,O_WRONLY,O_RDWR)

所使用的头文件:#include #include 五、实验要求

要求(1)用无名管道实现父进程和子进程之间的信息传送,父进程发送一段信息,子进程从管道中读出信息并打印。

要求(2)有名管道实现同样的内容,一个进程发送信息,另外一个进程把信息读出并打印显示。

实验要求写好预习报告。实验结束时,要写好实验报告,包括实验的源代码以及实验结果图。

六、思考题

1.为什么无名管道只能在具有亲缘关系的进程间通信。

2.管道与文件有什么样的区别。

实验五银行家算法

实验学时:3学时

实验类型:设计

实验要求:必修

一、实验目的

死锁会引起计算机工作僵死,因此操作系统中必须防止。本实验的目的在于让学生独立的使用高级语言编写和调试一个系统动态分配资源的简单模拟程序,了解死锁产生的条件和原因,并采用银行家算法有效地防止死锁的发生,以加深对课堂上所讲授的知识的理解

二、数据结构、银行家算法、安全性算法

参考教材P96

三、实验条件

实验机器要求安装Visual C++ 6.0编程平台;实验要求一人一机。

四、实验要求

设计有n个进程共享m个系统资源的系统,进程可动态的申请和释放资源,系统按各进程的申请动态的分配资源。

系统能显示各个进程申请和释放资源,以及系统动态分配资源的过程,便于用户观察和分析;

实验六:存储管理

实验学时:3学时

实验类型:综合

实验要求:必修

一、实验目的

1、掌握实现动态分区存储管理方式,内存的分配和回收。

二、实验内容

本实习模拟在可变分区管理方式下采用最先适应算法实现主存分配和实现主存回收。

练习要求:假设用户区为512K且始址为0。若分配时采用分配空闲区低地址部分的方案,且初始时用户区的512K空间空闲。

演示:对下述申请序列:申请300K, 申请100K, 释放300K, 申请150K, 申请30K, 申请40K, 申请60K, 释放30K。要求分别演示每一步后,分区情况。

三、实验原理、方法和手段

参考教材

四、实验条件

实验机器要求安装Visual C++ 6.0编程平台;实验要求一人一机。

五、思考题

1.Linux采用什么方式实现内存的分配合释放?

实验七磁盘调度

实验学时:2学时

实验类型:设计

实验要求:必修

一、实验目的:

1、本实验要求学生模拟设计一个磁盘调度程序,观察调度程序的动态运行过程。

2、通过实验让学生理解和掌握磁盘调度的职能。

二、实验内容:

模拟实现电梯调度算法。具体算法参考教材。

三、提示及要求:

1、假设磁盘只有一个盘面,并且磁盘是可移动头磁盘。

2、磁盘是可供多个进程共享的存储设备,但一个磁盘每个时刻只能为一个进程服务。当

有进程在访问某个磁盘时,其它想访问该磁盘的进程必须等待,直到磁盘一次工作结束。当有多个进程提出输入输出请求而处于等待状态时,可用电梯调度算法从若干个等待访问者中选择一个进程,让它访问磁盘。为此设置“驱动调度”进程。

3、由于磁盘与处理器是并行工作的,所以当磁盘在为一个进程服务时,占有处理器的其

它进程可以提出使用磁盘(这里我们只要求访问磁道),即动态申请访问磁道,为此设置“接受请求”进程。

4、为了模拟以上两个进程的执行,可以考虑使用随机数来确定二者的允许顺序,程序结

构图参考附图:

5、“接受请求”进程建立一张“进程请求I/O”表,指出等待访问磁盘的进程要求访问的

磁道,表的格式如下:

6、“磁盘调度”的功能是查“请求I/O”表,当有等待访问的进程时,按电梯调度算法

(SCAN算法)从中选择一个等待访问的进程,按其指定的要求访问磁道。SCAN算法参考课本第九章。算法模拟框图略。

7、附图中的“初始化”工作包括:初始化“请求I/O”表,设置当前移臂方向;当前磁道

号。并且假设程序运行前“请求I/O”表中已有若干进程(4~8个)申请访问相应磁道。

四、实验结果要求

打印“请求I/O”表,当前磁道号,移臂方向,被选中的进程名和其要求访问的磁道,看是否体现了电梯调度(SCAN)算法。

五、附图:

附件一虚拟机安装图

——虚拟机下redhat9.0安装过程图解

1、通过VMWARE 虚拟机安装Redhat Linux 操作系统。具体步骤如下

第1步:点击“新建虚拟机”。

第2步:下一步

第3步:选择要安装的操作系统

第4步:安装路径

第5步:选择网络类型

第6步:调整虚拟机参数:内存大小,一般为本机物理内存的一半,最小不能低于128M。完成。

第7步:鼠标右击CD-ROM

第8步:调整CD-ROM(IDE 1:0)的选项,将Use physical drive 改成Use ISO image,并指定Redhat Linux ISO image 文件所在的位置。

第9步:选择Start this virtual machine(启动此虚拟机)开

始安装linux。

2、R edhat Linux 操作系统安装过程

第1步:选择安装方式。 1、图形安装(直接回车) 2、文本安装(输入 linux text)

第2步:选择“OK”为检查光盘选择“Skip'跳过检查。我确认我的光盘是好的,我跳过!

第3步:next!

第4步:选择简体中文

第5步:这一步,是让你选择你的键盘,下一步!

第6步:让你选择鼠标。

谓!

第7步:我们选择“手工分区”!

相关主题
文本预览
相关文档 最新文档