计算机基于Linux的操作系统实验指导书

上传人:aa****6 文档编号:30009641 上传时间:2018-01-26 格式:DOC 页数:30 大小:146KB
返回 下载 相关 举报
计算机基于Linux的操作系统实验指导书_第1页
第1页 / 共30页
计算机基于Linux的操作系统实验指导书_第2页
第2页 / 共30页
计算机基于Linux的操作系统实验指导书_第3页
第3页 / 共30页
计算机基于Linux的操作系统实验指导书_第4页
第4页 / 共30页
计算机基于Linux的操作系统实验指导书_第5页
第5页 / 共30页
点击查看更多>>
资源描述

《计算机基于Linux的操作系统实验指导书》由会员分享,可在线阅读,更多相关《计算机基于Linux的操作系统实验指导书(30页珍藏版)》请在金锄头文库上搜索。

1、基于 Linux 的操作系统实验系统 吴强编写 第 1 页计算机操作系统课程实验实验授课计划序号 实验项目学时要求实验类型实验要求 实验时间1认识 Linux 系统;Vi 编辑器、编译工具 gcc 的使用 2必修验证上机练习 1-2 周2 进程控制 2必修验证运行命令、例程并分析结果3-4 周3银行家算法的模拟实现 4必修综合编程并运行通过5-8 周4 Linux 内存管理 2必修验证运行命令、例程并分析结果9-10 周5页面置换算法的模拟实现(存储管理)2必修综合编程并运行通过11-12 周6Linux 设备管理、Linux 文件管理 4选修验证运行命令、例程并分析结果13-14 周基于 L

2、inux 的操作系统实验系统 吴强编写 第 2 页实验 一:认识 Linux 系统【实验目的】了解 Linux 的启动过程;了解 Linux 文件的组织结构;熟悉 X Window 环境;熟练掌握Linux 常用命令。【准备知识】登录 Linux 是一个多用户多任务操作系统,多个用户可以拥有自己独立的用户账号登录提示:Red Hat Linux release 6.0 (Hedwing)Kernel 2.2.5-15 on an i686Login:此时输入用户户名(账号)并键入回车,则系统显示“passward” 。在输入密码和回车。登录后:roothawk/root#表示是按 root 方

3、式登录,$表示是普通用户。Linux 大小写敏感,用“-” 加参数zlinux:# ls FHowTo/ HowToMin/ linux nag/ sag/获取帮助:Linux 带有联机手册,可以用 man 命令来阅读Zlinux:$ man ls虚拟终端 Linux 可有多个用户登录到同一个计算机,但一般微机只有一个终端难以体现。可以使用多个虚拟终端,用 Alt+F1、 Alt+F2 等来切换。退出系统 在停止使用系统时,要退出系统。具体方法:exit 或 logout,或 Ctrl+D关机 如果没有用户在使用系统,可以关机。但是不能直接关闭电源,而要按正常顺序关机。一般用户是不能关机的,只

4、有 root 用户可以关机。方法:可以使用 halt 或 shutdown 命令,也可以同时键入 Ctrl+Alt+Del。Windows 虚拟机环境:登录到系统点击桌面“VMware”图标 Vmware Workstation 窗口 CommandsStart this virtual machine进入 fedora 后,用户名: root口 令:【实验内容】(1) 熟悉开机、登录、退出、关机步骤。(2) 查看并记录所在机器 Linux 操作系统目录结构,特别是源代码所在的目录及文件。基于 Linux 的操作系统实验系统 吴强编写 第 3 页(3) 常用命令练习1 注销(退出)系统:log

5、out 或 exit2练习使用命令 ls(注意 Linux 命令区分大小写。 )使用 ls 查看当前目录内容;使用 ls 查看指定目录内容,如 /目录,/etc 目录使用 ls all 查看当前目录内容;使用 dir 查看当前目录内容3使用 cd 改变当前目录cd . 回到上层目录 ;cd / 回到根目录4pwd 显示当前路径 5建立目录 mkdirmkdir 目录名 ; mkdir /home/s2001/newdir 6删除目录:rmdir;7复制文件 cp: 如 cp 文件名 1 文件名 28移动文件或目录: mv 9删除文件 rm10. 显示文件内容:more (分页显示); 11.

6、显示文件:cat 文件名 建立文件:cat 文件名,ctrl+d 结束输入 (4) 启动 X WINDOW ,熟悉窗口界面环境。基于 Linux 的操作系统实验系统 吴强编写 第 4 页实验二:Vi 编辑器、 编译工具 gcc 的使用【实验目的】熟练使用 Linux 的 Vi 编辑器;掌握 Linux 编译工具 gcc 的使用方法。【准备知识】设计程序需要一个环境编辑和编译器。Linux 的 Vi 为一个编辑器,gcc 是 C 的编译器。由他们实现源文件的的编辑和目标文件的编译执行。【实验内容】1 练习使用 Linux 编辑器 Vi,为今后输入源程序做准备。2 学习并掌握 Linux 编译工具

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

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

9、然也可以是以前编写好的 c 文件) ;后面中括号里面的参数是可选的,它是一个输出文件。如果不选,默认的输出文件是 a.out ,选了之后输出文件就是outputfilename.out6. 最后一步是运行程序,方法如下:./outputfilename.out基于 Linux 的操作系统实验系统 吴强编写 第 6 页实验三:进程控制【实验目的】(1)加深对进程概念的理解,明确进程和程序的区别。(2)进一步认识并发执行的实质。(3)分析进程竞争资源现象,学习解决进程互斥的方法。【准备知识】(1)阅读Linux的sched.h源文件,加深对进程管理概念的理解。(2)阅读Linux的fork.c源文

10、件,分析进程的创建过程。(3)fork()函数:创建一个新进程int fork()其中返回int取值意义如下:0:创建子进程,从子进程返回的id值大于 0:从父进程返回的子进程id值【实验内容】(1)进程的创建编写一段源程序,使系统调用fork()创建两个子进程,当此程序运行时,在系统中有一个父进程和两个子进程活动。让每一个进程在屏幕上显示一个字符:父进程显示字符“a”;子进程分别显示字符“b”和字符“c”。试观察纪录屏幕上的显示结果,并分析原因。(2)进程的控制修改已编写的程序,将每个进程输出一个字符改为每个进程输出一句话,在观察程序执行时屏幕出现的现象,并分析原因。【思考】(1)系统是怎样

11、创建进程的?(2)可执行文件加载时进行了哪些处理?(3)当首次调用新创建进程时,其入口在哪里?【实验指导】1进程的创建任务编写一段程序,使用系统调用 fork( )创建两个子进程。当此程序运行时,在系统中有一个父进程和两个子进程活动。让每一个进程在屏幕上显示一个字符;父进程显示字符“a”,子进程分别显示字符“b”和“c” 。试观察记录屏幕上的显示结果,并分析原因。程序#include基于 Linux 的操作系统实验系统 吴强编写 第 7 页main()int p1=0,p2=0;if(p1 =fork() /*子进程创建成功*/putchar(b);else if(p2=fork() /*子进

12、程创建成功*/putchar(c);else putchar(a); /*父进程执行*/bca(有时会出现 bac)分析:从进程执行并发来看,输出 bac,acb 等情况都有可能。原因:fork()创建进程所需的时间多于输出一个字符的时间,因此在主进程创建进程 2 的同时,进程 1 就输出了“b” ,而进程 2 和主程序的输出次序是有随机性的,所以会出现上述结果。2进程的控制修改已编写好的程序,将每个程序的输出由单个字符改为一句话,再观察程序执行时屏幕上出现的现象,并分析其原因。如果在程序中使用系统调用 lockf()来给每个程序加锁,可以实现进程之间的互斥,观察并分析出现的现象。程序#inc

13、ludemain()int p1,p2,i;if(p1=fork()for(i=0;i(称为序列为安全序列),为每个进程分配所需的资源,直至最大需求,使得每个进程都能顺利完成。 二、银行家算法假设在进程并发执行时进程 i 提出请求 j 类资源 k 个后,表示为 Requestij=k。系统按下述步骤进行安全检查:(1)如果 RequestiNeedi 则继续以下检查,否则显示需求申请超出最大需求值的错误。(2)如果 RequestiAvailable 则继续以下检查,否则显示系统无足够资源,Pi 阻塞等待。(3)系统试探着把资源分配给进程 Pi,并修改下面数据结构中的数值:Availablej

14、=Availablej-Requestij;Allocationi,j=Allocationi,j+Requestij;Needi,j=Needi,j-Requestij;(4)系统执行安全性算法,检查此次资源分配后,系统是否处于安全状态。若安全,才正式将资源分配给进程 Pi,以完成本次分配;否则, 将本次的试探分配作废,恢复原来的资源分配状态,让进程 Pi 等待。三、安全性算法(1)设置两个向量: 工作向量 Work: 它表示系统可提供给进程继续运行所需的各类资源数目,它含有m 个元素,在执行安全算法开始时,Work=Available; Finish: 它表示系统是否有足够的资源分配给进程

15、,使之运行完成。开始时先做Finishi=false; 当有足够资源分配给进程时, 再令 Finishi=true。(2)从进程集合中找到一个能满足下述条件的进程: Finishi=false; Needi,jWorkj ; 若找到, 执行步骤(3), 否则,执行步骤(4)。(3)当进程 Pi 获得资源后,可顺利执行,直至完成,并释放出分配给它的资源,故应执行:基于 Linux 的操作系统实验系统 吴强编写 第 10 页 Workj=Work i+Allocationi,j; Finishi=true; go to step 2; (4)如果所有进程的 Finishi=true 都满足, 则表示系统处于安全状态;否则,系统处于不安全状态。【实验指导】参考实验步骤如下:(1)参考图 1-1 所示流程图编写安全性算法。(2)编写统一的输出格式。每次提出申请之后输出申请成功与否的结果。如果成功还需要输出变化前后的各种数据,并且输出安全序列。(3)参考图 1-2 所示流程图编写银行家算法。(4)编写主函数来

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

当前位置:首页 > 办公文档 > 其它办公文档

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号