操作系统实验指导书.doc

上传人:创****公 文档编号:168629 上传时间:2018-07-13 格式:DOC 页数:45 大小:530KB
下载 相关 举报
操作系统实验指导书.doc_第1页
第1页 / 共45页
操作系统实验指导书.doc_第2页
第2页 / 共45页
操作系统实验指导书.doc_第3页
第3页 / 共45页
操作系统实验指导书.doc_第4页
第4页 / 共45页
操作系统实验指导书.doc_第5页
第5页 / 共45页
点击查看更多>>
资源描述

1、 操作系统实验指导书 烟台大学计算机学院 操作系统课程组 2008-9-20 1 第一部分 操作系统上机指导 Linux 操作系统环境: RedHat Enterprise Linux ES release 3 (Taroon Update 1) (2.4.21-9.EL) Red Flag Linux release 4.0 (HOT) (2.4) 登录到系统 常用命令练习 : 用 root 账号(超级用户) 注册,口令为 computer(注意大小写)。注册成功出现 #号(超级用户系统提示符 ,普通用户的系统提示符为 $)。 1 注销(退出)系统: logout 或 exit 3练习使用命

2、令 ls(注意 Linux 命令区分大小写。) 使用 ls 查看当前目录内容;使用 ls 查看指定目录内容,如 /目录, /etc 目录 使用 ls all 查看当前目录内容;使用 dir 查看当前目录内容 4使用 cd 改变当前目录 cd . 回到上层目录 ; cd / 回到根目录 5 pwd 显示当前路径 6建立目录 mkdir Last login:web Oct 20 15:35:17 tty1 rootlocalhost root# 注意密码没有回显登录成功 Localhost Login: Password: 登录界面 *用户名:root *密码:computer在 GRUB中选择

3、 Red Flag Linux ( Console Mode) /*命令行模式 */ 启动GrubRed Flag Linux 在 GRUB中选择 RedHat Enterprise Linux ES(2.4.21-9.EL) 启动GrubRedHat Linux 2 mkdir 目录名 ; mkdir /home/s2001/newdir 7删除目录: rmdir; 8复制文件 cp: 如 cp 文件名 1 文件名 2 9移动文件或目录 : mv 10删除文件 rm 11. 显示文件内容: more (分页显示 ); 12. 显示文件: cat 文件名 建立文件: cat 文件名, ctrl

4、+d 结束输入 使用编辑器 vi 编辑文件 1. 进入 linux 的文本模式之后,在命令行键入 vi filename.c 然后回车。下面作一些简单的解释:首先vi 命令 是打开 vi编辑器。后面的 filename.c 是用户即将编辑的 c 文件名字,注意扩展名字是 .c;当然, vi 编辑器功能很强,可以用它来编辑其它格式的文件,比如汇编文件,其扩展名字是 .s;也可以直接用 vi 打开一个新的未命名的文件,当保存的时候再给它命名,只是这样做不很方便。 2. 最基本的命令 I :当进入刚打开的文件时,不能写入信息,这时按一下键盘上的 I 键( insert),插入的意思,就可以进入编辑模

5、式了。如下图所示: 3. a 与 i 是相同的用法 4. 当文件编辑完后,需要保存退出,这时需要经过 以下几个步骤: 1)按一下键盘上的 Esc 键; 2)键入冒号 (: ),紧跟在冒号后面是 wq(意思 是保存并退出)。如果不想保存退出,则在第二步键入冒号之后,键入 q! (不带 w,机尾部保存)。如下图所示: 5. 退出 vi 编辑器的编辑模式之后,要对刚才编写的程序进行编译。编译的命令是: gcc filename.c -o 3 outputfilename.out,其中 gcc 是 c 的编译器。参数: filename.c 是要编译的 源 文件 的 名称 , outputfilena

6、me表示输出文件名称,中括号表示括号内部的内容可输入也可以不输入 (中括号本身不再命令行中出现) 。 如果 不输入 outputfilename.out, 默认的输出文件是 a.out 。 6. 最后一步是运行程序,方法如下: ./outputfilename.out 添加新用户、修改文件属性 1 添加新用户(在 root 下,按默认值回答) adduser 用户名;如 adduser s2001 ; 以新用户登录到系统 2修改用户口令 passwd 用户名 3控制文件属性 使用 ls l 查看文件属性 改变用户的所有权: chown 用户名 文件名 改变文件权限: chmod g+w 文件名

7、; chmod o-r 文件名 或使用数字方式修改:如 chmod 644 文件名; chmod 755 文件名 u (user 用户 ), g ( group 组 ), o (other 其他 ); w 写访问权限 ,r 读访问权限 , x 执行权限 4查看相关命令的帮助: man 命令名 5显示当前系统中已注册的用户信息: who 6显示当前注册的用户信息: whoami Tip: Unix 文件目录的属性显示格式: 如: -rw-rw-rw- 1 steve users 138 Apr 5 19:34 readme drwxrwxrwx 3 steve users 80 Apr 5 19

8、:43 dir1 三种权限: owner group others 文件或目录名 最后 修改的日期和时间 文件的拥有者 用户所在的组 与文件链接的数 文件的访问权限 4 第二部分 操作系统实验 实验 1 Linux基本环境 1、实验目的 ( 1) 熟悉 Linux下的基本操作,学会使用各种 Shell命令去操作 Linux,对 Linux有一个感性认识。 ( 2)学会使用 vi编辑器编辑简单的 C语言程序,并能对其 编译和调试。 2、 实 验预备内容 ( 1)参阅相关 Linux操作系统的安装手册,熟悉 Linux的基本安装和配置; ( 2) 参阅相关 Linux的命令参考手册,熟悉 Linu

9、x下的操作命令。 3、实验内容 ( 1) 以 root用户身份登陆,并使用“ ls” ,“ cat”“ cd” 等命令来实现基本的文件操作并观察 Linux文件系统的特点; ( 2) 使用 vi编辑器编写一 C程序,并用 gcc命令进行编译和链接,并用 a.out来进行输出结果。 4、思考 ( 1) Linux系统 在用户登陆和操作界面以及文件系统上有哪些特点 ? 实验 2 进程管理 1、实 验目的 ( 1)加深对进程概念的理解,明确进程和程序的区别。 ( 2)进一步认识并发执行的实质。 ( 3)分析进程竞争资源现象,学习解决进程互斥的方法。 ( 4)了解 Linux系统中进程通信的基本原理。

10、 2、 实 验预备内容 ( 1)阅读 Linux的 sched.h源文件,加深对进程管理概念的理解。 ( 2)阅读 Linux的 fork.c源文件,分析进程的创建过程。 3、实验内容 ( 1)进程的创建 编写一段源程序,使系统调用 fork()创建两个子进程,当此程序运行时,在系统中有一个父进程和两个 子进程活动。让每一个进程在屏幕上显示一个字符:父进程显示字符 “a”; 子进程分别显示字符 “b”和字符 “c” 。试观察纪录屏幕上的显示结果,并分析原因。 ( 2)进程的控制 修改已编写的程序,将每个进程输出一个字符改为每个进程输出一句话,在观察程序执行时屏幕出现的现象,并分析原因。 如果在

11、程序中使用调用 lockf()来给每一个子进程加锁,可以实现进程之间的互斥,观察并分析出现的现象。 ( 3) 编写一段程序,使其现实进程的软中断通信。 要求:使用系统调用 fork()创建两个子进程,再用系统调 用 signal()让父进程捕捉键盘上来的中断信号(即按 DEL键);当捕捉到中断信号后,父进程用系统调用 Kill()向两个子进程发出信号,子进程捕捉到信号后分别输出下列信息后终止: Child Processll is Killed by Parent! Child Processl2 is Killed by Parent! 父进程等待两个子进程终止后,输出如下的信息后终止 Pa

12、rent Process is Killed! 5 在上面的程序中增加语句 signal (SIGNAL, SIG-IGN) 和 signal (SIGQUIT, SIG-IGN), 观察执行结果 ,并分析原因。 ( 4)进程的管道通信 编制一段程序,实现进程的管理通信。 使用系统调用 pipe()建立一条管道线;两个子进程 P1 和 P2 分别向管道中写一句话: Child 1 is sending a message! Child 2 is sending a message! 而父进程则从管道中读出来自于两个子进程的信息,显示在屏幕上。 要求父进程先接收子进程 P1 发来的消息,然后 再

13、接收子进程 P2 发来的消息。 4、思考 ( 1)系统是怎样创建进程的? ( 2)可执行文件加载时进行了哪些处理? ( 3)当首次调用新创建进程时,其入口在哪里? ( 4)进程通信有什么特点? 实验 3 进程间通信 1、实验目的 Linux系统的进程通信机构 (IPC) 允许在任意进程间大批量地交换数据 。本实验的目的是了解和熟悉Linux支持的消息通讯机制及信息量机制。 2、实验预备内容 阅读 Linux系统的 msg.c、 sem.c和 shm.c等源码文件,熟悉 Linux的三种机制。 3、实验 内容 ( 1)消息的创建,发送和接收。 使用系统调用 msgget (), msgsnd (

14、), msgrev (), 及 msgctl () 编制一长度为 1k的消息的发送和接收程序 。 观察上面的程序, 说明控制消息队列系统调用 msgctl () 在此起什么作用 ? ( 2)共享存储区的创建、附接和段接。 使用系统调用 shmget(),shmat(),sgmdt(),shmctl(),编制一个与上述功能相同的程序。 ( 3) 比较上述( 1),( 2)两种消息通信机制中数据传输的时间。 实验 4 存储管 理 1、实验目的 存储管理的主要功能之一是合理地分配空间。请求页式管理 是 一种常用的虚拟存储管理技术。 本实验的目的是通过请求页式存储管理中页面置换算法模拟设计,了解虚拟存

15、储技术的技术特点,掌握请求页式存储管理的页面置换算法。 2、实验内容 ( 1)通过随机数产生一个指令序列,共 320 条指令。指令的地址按下 述 原则生成: 50% 的指令是顺序执行的; 50% 的指令是均匀分布在前地址部分; 50% 的指令是均匀分布在后地址部分。 具体的实施方法是: 在 0, 319 的指令之间随即选取一起点 m; 顺序执行一条指令,即执行地址为 m+1 的指令; 在前地址 0, m+1中随机选取一条指令并执行,该指令的地址为 m ; 6 顺序执行一条指令,其地址为 m + 1; 在后地址 m + 2, 319中随机选取一条指令并执行; 重复上述步骤 - ,直到执行 320

16、 次指令。 ( 2)将指令序列变换为页地址流 设: 页面大小为 1k; 用户内存容量为 4 页到 32 页; 用户虚存容量为 32k。 在用户虚存中,按 每 k存放 10 条指令排在虚存地址,即 320 条指令在虚存中的存放方式为: 第 0 条 -第 9 条指令为第 0 页(对应虚存地址为 0, 9); 第 10 条 -第 19 条指令为第一页 ( 对应虚存地址为 10, 19); 第 310 条 第 319 条指令为第 31 页(对应虚地址为 310, 319)。 按以上方式,用户指令可组成 32 页。 ( 3)计算并输出下述各种算法在不同内存容量下的命中率。 先进先出的算法( FIFO);

17、 最近最少使用算法( LRR); 最佳淘汰算法( OPT)先淘汰 最不常用的页地址; 最少访问页面算法( LFR); 最近最不经常使用算法( NUR)。 其中 和 为选择内容。 命中率 =1-页面失效次数 /页地址流长度 在本实验中,页地址流长度为 320,页面失效次数为每次访问相应指令时,该指令 所 对应的页不在内存的次数。 3、随机数产生办法, Linux或 UNIX系统提供函数 strand()和 rand(),分别进行初始化和产生随机数。例如 : srand (); 语句可初始化一个随机数; a0=10*rand()/65535*319+1; a1=10*rand()/65535*a0

18、; 语句可用来产生 a0与 a1中的随机数。 实验 5 文件系统设计 1、实验目的 通过一个简单多用户文件系统的设计,加深理解文件系统的内部功能及内部实现。 2、实验内容 为 linux系统设计一个简单的二级文件系统。要求做到以下几点: ( 1)可以实现下列几条命令(至少 4 条); login 用户登陆 dir 列文件目录 create 创建文件 delete 删除文件 open 打开文件 close 关闭文件 7 read 读文件 write 写文件 ( 2)列目录时要列出文件名、物理地址、保护码和文件长度; ( 3)源文件可以进行读 写 保护。 3、实验提示 ( 1)首先应确定文件系统的

19、数据结构:主目录、子目录及活动文件等。主目录和子目录都以文件的形式存放于磁盘,这样便于查找和修改。 ( 2)用户创建的文件,可以编号存储于磁盘上。如 file0, file1,file2.并以编号作为物理地址,在目录中进行登记。 实验 6 处理器调度 一、实验内容 选择一个调度算法,实现处理器调度。 二、实验目的 在采用多道程序设计的系统中,往往有若干个进程同时处于就绪状态。当就绪进程个数大于处理器数时,就必须依照某种策略来决定哪些进程优先占用处理器。本实验模拟在单处理器情况下的处理器调度,帮助学生加深了解处理器调度的工作。 三、实验题目 本实验有两个题,学生可选择其中的一题做实验。 第一题:

20、设计一个按优先数调度算法实现处理器调度的程序。 提示 : (1) 假定系统有五个进程,每一个进程用一个进程控制块 PCB 来代表,进程控制块的格式为: 进程名 指针 要求运行时间 优先数 状态 其中,进程名 作为进程的标识,假设五个进程的进程名分别为 P1, P2, P3, P4, P5。 指针 按优先数的大小把五个进程连成队列,用指针指出下一个进程的进程控制块的首地址,最后一个进程中的指针为“ 0”。 要求运行时间 假设进程需要运行的单位时间数。 优先数 赋予进程的优先数,调度时总是选取优先数大的进程先执行。 状态 可假设有两种状态,“就绪”状态和“结束”状态。五个进程的初始状态都为“就绪”

21、,用“ R”表示,当一个进程运行结束后,它的状态为“结束”,用“ E” 表示。 (2) 在每次运行你所设计的处理器调度程序之前,为每个进程任意确定它的“优先数”和“要求运行时间”。 (3) 为了调度方便,把五个进程按给定的优先数从大到小连成队列。用一单元指出队首进程,用指针指出队列的连接情况。例: 8 队首标志 K2 K1 P1 K2 P2 K3 P3 K4 P4 K5 P5 0 K4 K5 K3 K1 2 3 1 2 4 1 5 3 4 2 R R R R R PCB1 PCB2 PCB3 PCB4 PCB5 (4) 处理器调度总是选队首进程运行。采用动态改变优先数的办法,进程每运行一次优先

22、数就减“ 1”。由于本实验是模拟处理器调度,所以,对被选中的进程并不实际的启动运行,而是执行: 优先数 -1 要求运行时间 -1 来模拟进程的一次运行。 提醒注意的是:在实际的系统中,当一个进程被选中运行时,必须恢复进程的现场,让它占有处理器运行,直到出现等待事件或运行结束。在这里省去了这些工作。 (5) 进程运行一次后,若要求运行时间 0,则再将它加入队列(按优先数大小插入,且置队首标志) ;若要求运行时间 =0,则把它的状态修改成“结束”( E),且退出队列。 (6) 若“就绪”状态的进程队列不为空,则重复上面( 4)和( 5)的步骤,直到所有进程都成为“结束”状态。 (7) 在所设计的程

23、序中应有显示或打印语句,能显示或打印每次被选中进程的进程名以及运行一次后进程队列的变化。 (8) 为五个进程任意确定一组“优先数”和“要求运行时间”,启动所设计的处理器调度程序,显示或打印逐次被选中进程的进程名以及进程控制块的动态变化过程。 第二题:设计一个按时间片轮转法实现处理器调度的程序。 提示 : (1) 假定系统有五个进程,每一个进程用一个进程控制块 PCB 来代表。进程控制块的格式为: 进程名 指针 要求运行时间 已运行时间 状态 其中,进程名 作为进程的标识,假设五个进程的进程名分别为 Q1, Q2, Q3, Q4, Q5。 指针 进程按顺序排成循环队列,用指针指出下一个进程的进程

24、控制块的首地址,最后一个进程的指针指出第一个进程的进程控制块首地址。 要求运行时间 假设进程需要运行的单位时间数。 已运行时间 假设进程已经运行的单位时间数,初始值为“ 0”。 状态 有两种状态,“就绪”和“结束”,初始状 态都为“就绪”,用“ R”表示。当一个进程运行结束后,它的状态为“结束”,用“ E”表示。 (2) 每次运行所设计的处理器调度程序前,为每个进程任意确定它的“要求运行时间”。 (3) 把五个进程按顺序排成循环队列,用指针指出队列连接情况。另用一标志单元记录轮到运行的进程。例如,当前轮到 P2 执行,则有: 标志单元 K2 9 K1 Q1 K2 Q2 K3 Q3 K4 Q4

25、K5 Q5 K2 K3 K4 K5 K1 2 3 1 2 4 1 0 0 0 0 R R R R R PCB1 PCB2 PCB3 PCB4 PCB5 (4) 处理器调度总是选择标志单元指示的进程运行。由于本实验是模拟处理器调度的功能,所以,对被选中的进程并不实际的启动运行,而是执行: 已运行时间 +1 来模拟进程的一次运行,表示进程已经运行过一个单位的时间。 请同学注意:在实际的系统中,当一个进程被选中运行时,必须置上该进程可以运行的时间片值,以及恢复进程的现场,让它占有处理器运行,直到出现等待事件或运行满一个时间片。在这时省去了这些工作,仅用“已运行 时间 +1”来表示进程已经运行满一个时

26、间片。 (5) 进程运行一次后,应把该进程的进程控制块中的指针值送到标志单元,以指示下一个轮到运行的进程。同时,应判断该进程的要求运行时间与已运行时间,若该进程的要求运行时间 已运行时间,则表示它尚未执行结束,应待到下一轮时再运行。若该进程的要求运行时间 =已运行时间,则表示它已经执行结束,应指导它的状态修改成“结束”( E)且退出队列。此时,应把该进程的进程控制块中的指针值送到前面一个进程的指针位置。 (6) 若“就绪”状态的进程队列不为空,则重复上面的( 4)和( 5)的步骤 ,直到所有的进程都成为“结束”状态。 (7) 在所设计的程序中应有显示或打印语句,能显示或打印每次选中进程的进程名

27、以及运行一次后进程队列的变化。 (8) 为五个进程任意确定一组“要求运行时间”,启动所设计的处理器调度程序,显示或打印逐次被选中的进程名以及进程控制块的动态变化过程。 四、实验报告 (1) 实验题目。 (2) 程序中使用的数据结构及符号说明。 (3) 流程图。 (4) 打印一份源程序并附上注释。 (5) 打印程序运行时的初值和运行结果。要求如下: 进程控制块的初始状态。 选中运行的 进程名以及选中进程运行后的各进程控制块状态。 对于 要求每选中一个进程运行后都要打印。 实验 7 主存储器空间的分配和回收 一、实验内容 主存储器空间的分配和回收。 二、实验目的 一个好的计算机系统不仅要有一个足够容量的、存取速度高的、稳定可靠的主存储器,而且要能合理地分配和使用这些存储空间。当用户提出申请存储器空间时,存储管理必须根据申请者的要求,按一定的

展开阅读全文
相关资源
相关搜索
资源标签

当前位置:首页 > 教育教学资料库 > 课件讲义

Copyright © 2018-2021 Wenke99.com All rights reserved

工信部备案号浙ICP备20026746号-2  

公安局备案号:浙公网安备33038302330469号

本站为C2C交文档易平台,即用户上传的文档直接卖给下载用户,本站只是网络服务中间平台,所有原创文档下载所得归上传人所有,若您发现上传作品侵犯了您的权利,请立刻联系网站客服并提供证据,平台将在3个工作日内予以改正。