操作系统实验讲义(07-08上)
- 格式:doc
- 大小:57.50 KB
- 文档页数:5
《操作系统》实验讲义实验一 用户接口实验一.实验目的1. 了解Linux操作系统的启动与登录方法2. 掌握常用Red Hat Linux命令的使用方法,掌握图形用户界面下的基本操作3. 了解Linux命令中参数选项的用法和作用4. 熟悉操作系统的命令接口、图形接口和程序接口的区别与联系5.了解命令行和集成环境下C程序的编写及运行方法二.实验工具与设备已安装Linux操作系统的计算机并通过网络与Linux服务器连接。
三.实验内容1.熟悉开机后登录进入Linux系统和退出系统的过程以适当的用户名在装有Linux系统的计算机中登录Linux系统。
(1)登录开启计算机电源,计算机进行启动过程,如果安装了X Windows,系统启动时自动启动X Windows,X Windows的登录在图形界面下进行。
图1-1所示是GNOME的登录界面,在菜单中选择合适的语言(Language)和会话(Session),分别输入用户账号(如root)和用户密码后,系统进入图形用户界面。
图1-1 GNOME的登录界面若没有安装X Windows,或由于显示卡等原因不能启动X Windows时,可以在字符界面(提示符状态)登录Linux。
当系统启动到出现提示Login:时,输入用户账号,按回车键,出现Password 时,输入用户密码,按回车键,即以自己的用户名登录到Linux系统中了。
从字符界面登录Linux系统后,还可以用以下命令启动X Windows:[root@localhost /root]# startx在图形用户界面下,也可以不退出X Windows直接进入提示符状态使用Linux命令:在“主菜单”中选择“系统工具→终端”选项,弹出如图1-2所示窗口,在该窗口中可以使用字符命令。
(2)开始操作在桌面双击“从这里开始”图标,打开“Nautilus”(Start Here)窗口,如图1-3所示。
该窗口有“应用程序”、“系统设置”及“首选项”3个图标,包含了Redhat Linux 9.0中最常用的功能。
《操作系统》实验讲义计算机科学与工程学院2015年3月实验一Linux初步实验预备知识一、创建实验平台如果实验室里的计算机安装了Windows操作系统,则可以先安装VMWare软件(一般使用工作站版本)并启动它,来创建一个虚拟机,然后在其中安装Linux操作系统。
这样就可以从虚拟机中启动Linux系统,并完成相应的实验。
VMWare软件和Linux操作系统的安装十分简单,这里就不做介绍。
二、Linux下的proc文件系统在Linux操作系统中,提供了一套非常有用的在用户态检查内核状态和系统特征的机制,这就是proc文件系统。
该文件系统安装在/proc 目录中。
比起Windows的任务管理器来,proc文件系统的功能更强大:它能提供更多的系统信息,能修改部分系统信息,还能通过编程来扩充其中的内容。
该文件系统将进程的地址空间、系统的硬件信息(包括CPU、内存状态以及网卡等各种硬件设备)、系统相关机制(中断、I/O)等内容全部设置成虚拟的Linux文件。
它以一种特殊的文件系统的方式,为访问系统内核数据的操作提供接口。
也就是说,这个文件系统中所有的文件都是特殊文件,这些特殊文件一般与外部设备无关,所涉及到的介质通常室内存和CPU。
当从一个特殊文件“读”出时,所读出的数据都是由系统内部按一定的规则临时生成的,或从内存中收集、加工出来的,反之亦然。
换言之,这些文件的内容都不存在任何存储设备上,而是在读/写的时候才根据系统中的有关信息生成出来,或映射到系统中的有关变量或数据结构中。
/proc 目录中的每个文件都有一组分配给它的非常特殊的文件许可权,并且每个文件属于特定的用户标识,这里面的文件仅仅包含以下几种权限(除非root用户特别授权):●只读任何用户都不能更改该文件,它用于表示系统信息。
●root写/proc 目录中的一些文件是可写的,但通常只能由root用户来写。
●root读有些文件对一般系统用户是不可见的,而对root用户是可见的。
操作系统原理课内实验指导书实验一:用户接口实验准备知识为了使用户通过操作系统完成各项管理任务,操作系统必须为用户提供各种接口来实现人机交互。
经典的操作系统理论将操作系统的接口分为控制台命令和系统调用两种。
前者主要提供给计算机的操作人员对计算机进行各种控制;而后者则提供个程序员,使他们可以方便地使用计算机的各种资源。
1.控制台命令接口操作系统向用户提供一组控制台命令,用户可以通过终端输入命令的方式获得操作系统的服务,并由此来控制自己作业的运行。
一般来讲,控制台命令应该包含:一组命令、终端处理程序以及命令解释程序。
1)bash的由来当登录Linux或者打开一个xterm时,当前默认的shell就是bash。
Bash是GNU Project 的shell。
GNU Project是自由软件基金会(Free Software Foundation)的一部分。
它对Linux 下的许多编程工具负责。
Bash(Bourne Again Shell)是自由软件基金会发布的Bourne shell 的兼容程序。
它包含了其他有些shell的许多良好的特性,功能非常的全面。
很多Linux版本都供bash。
2)bash的大致原理bash处理自己的脚本时,先找到需要处理的命令名称,进而在当前用户的默认命令目录中找到对应的命令,这些默认目录一般是/usr/bin、/bin或/sbin。
在执行这些命令时,先使用进程创建系统调用fork(),在使用exex()来执行这些命令。
3)建立bash脚本➢编辑文件可以用最熟悉的编辑器来编辑这个文本文件,比如文件名为script,在shell下输入:$ vi script#! /bin/bashEcho Hello World!然后保存,退出。
➢测试脚本。
使用指令:$ source script➢更改脚本属性使用指令:$ chmod a+x script将脚本程序设置为可执行。
➢执行脚本使用指令:$ ./script4)关键字参考Echo 在终端上显示Bash 特殊变量1~9,保存当前进程或脚本的前9个参数。
《计算机操作系统实验》指导书(第二版)实验一LINUX的安装与使用 (2)实验二进程管理与通信 (27)实验三存储管理——页面置换算法模拟 (51)实验四文件管理 (56)实验五LINUX服务器配置(选做) (62)实验报告撰写指导 (72)韶关学院信息工程学院计算机系教师:陈正铭2007-9-10实验一LINUX的安装与使用【实验目的】1、了解与掌握RED HAT LINUX 9.0的安装过程。
2、熟悉LINUX的命令及使用格式与常用基本命令。
【实验内容】1、使用图形化安装模式安装RED HAT LINUX 9.0。
2、使用WINDOWS操作系统中的远程登录程序telnet.exe 登录LINUX。
3、练习使用LINUX的常用基本命令如ls、cd、who、pwd、ps、pstree、top等。
4、掌握WINDOWS和LINUX之间的文件共享方法。
【实验指导】一、Red Hat Linux 9光盘启动安装过程1、准备工作(1)购买或下载Redhat9的安装光盘(3张盘)或镜像文件,下载地址:校园网FTP站点。
或从红帽子主站下载∶/(2)在硬盘中至少留2个分区给安装系统用,挂载点所用分区推荐4G以上,交换分区在256M 左右比较适合,文件系统格式不论,反正安装过程会重新格式化。
(假如使用虚拟机vm安装建议最少留6G存储空间)(3)记录下你电脑中下列设备型号∶鼠标、键盘、显卡、网卡、显示器。
及网络设置用到的IP地址、子网掩码、默认网关和DNS名称服务器地址等信息。
2、安装红帽子Red Hat Linux 9将光驱设为第一启动盘,放入第一张安装光盘后重新启动电脑,如果你的光驱支持自启动, 如无意外将出现如下图:直接按回车键后将出现如下图1 ,如果你不处理30秒后也会自动进入。
在图1中提示:是否测试安装CD的内容的完整性,选―OK‖开始测试安装CD;选―Skip‖不测试安装CD开始安装出现图6所示,如果是第一次安装当然要测试安装CD,选―OK‖后回车,出现如下图2选―Test‖测试安装光盘的文件,选―Eject CD‖测试光盘以外的安装文件,这里我选择―Test‖后回车,出现如下图3正在测试第一张安装CD,测试完后显示如下图4所示看到上图最后一行英文―It is OK to install from this med ia‖说明这张安装CD是OK的,按―Enter‖键回车后,显示如下图5所示选择―Continue‖并回车开始安装。
《操作系统原理》实验指导书羊四清编写适用专业:计算机科学与技术网络工程湖南人文科技学院计算机科学技术系2008年 8 月前言操作系统是计算机的核心和灵魂。
操作系统软件的设计对整个计算机的功能和性能起着至关重要的作用,所以此门课也是必不可少的,是面向计算机科学与技术、网络工程、软件工程等大多数计算机专业本科生开设的一门计算机专业课程。
操作系统是计算机系统的核心,《操作系统》课程是计算机科学与技术专业的重要必修课。
本课程的目的是使学生掌握现代计算机操作系统的基本原理、基本设计方法及实现技术,具有分析现行操作系统和设计、开发实际操作系统的基本能力。
操作系统实验是操作系统课程的重要组成部分,属于学科基础实验范畴。
作为与相关教学内容配合的实践性教学环节,应在操作系统理论课教学过程中开设。
操作系统是计算机科学与技术专业必修的专业基础课程,操作系统实验的作用是:理解操作系统的设计和实现思路,掌握典型算法。
基本要求是:理解进程的概念,理解死锁,掌握银行家算法;掌握请求页式存储管理的实现原理及页面置换算法。
学生应具有高级语言编程能力、具有数据结构等基础知识。
说明:本实验指导书所提供的源程序均已在VC6.0下调试运行过.目录实验一进程创建模拟 (1)实验二进程撤销模拟 (9)实验三 P、V 原语的模拟实现 (10)实验四带优先级的时间片轮换的进程调度算法的实现 (16)实验五银行家算法模拟 (26)实验六连续动态内存管理模拟实现 (29)实验七请求页式存储管理中常用页面置换算法模拟 (31)实验八 SCAN 磁盘调度模拟实现 (36)实验九 UNIX基本操作 (37)实验一进程创建模拟实验学时: 2实验类型:验证实验要求:必修一、实验目的1)理解进程创建相关理论;2)掌握进程创建方法;3)掌握进程相关数据结构。
二、实验内容本实验针对操作系统中进程创建相关理论进行实验。
要求实验者输入实验指导书提供的代码并进行测试。
代码简化了进程创建的多个步骤和内容。
实验一并发程序设计
一、目的与要求
1.目的
在单处理器环境下,实现多任务的核心是并发程序设计,进程的并发执行提高了CPU的利用率,使得CPU与设备并行、设备与设备并行成为可能。
但并发执行也存在许多单任务中所没有的问题,其中之一是互斥和同步的控制。
2.要求
题目:在BACI环境下,对程序并发执行的实验:(1)没有控制时正确的程序执行的结果不正确;(2)BACI中PV操作的并发控制的实现。
要求:
(1)熟悉教材中有关进程并发执行的内容。
(2)设计并实现:没有控制时正确的程序执行的结果不正确。
(3)BACI中PV操作的并发控制的实现。
(4)将课堂和习题中的同步、互斥的并发程序设计的习题的设计与实现。
二、设计指导1(2学时,共6学时)
1.没有控制时正确的程序执行的结果不正确。
int count=0;
void PA()
{
int x;
x=count;
x=x+1;
count=x;
}
void PB()
{
int x;
x=count;
x=x+1;
count=x;
}co
main()
{
cobegin { PA();PB()}; }
程序结果不可再现:假定在count=100时,PA()和PB各各执行一次,那么可能出现count=100,count=99,count=101。
2.BACC简介
BACC是C语言的子集,是一种解释型的高级语言。
新特点有:(1)信号量的数据类型:semaphore
用于定义信号量。
(2)信号量的初始化:initialsem(semaphore s,int value)
(3)并发执行的控制语句:cobegin{ p1();p2();…}
(4)p(),v(),wait(),signal()
3.简单的并发控制
将上述的例子用PV操作实现PA()和PB()的并发执行。
三、设计指导2(2学时)
1.加锁机制的问题
int key=1;
void Lock()
{
while(key==0);
key=0;
}
void Unlock()
{
key=1;
}
可以达到互斥吗?如何用PV操作改写?
2.例子
getspace()和release(100)各执行一次的结果(堆栈)
3.同步关系
假定有三个进程R、W1、W2共享一个缓冲区B,而B每次只能存放一个整数。
当缓冲区中无数时,进程R可以从输入设备上读入一个整数并存入B中;若存到B中的数是奇数,则允许进程W1将其取出打印;若是偶数,则允许进程W2将其取出打印。
另外规定:进程R必须等B中的数被取出打印后才能再存放下一个数,进程W1或W2对每次存入的数只能打印一次并且都不能从空的缓冲区中取数。
请用PV操作实现R、W1和W2三个进程的并发执行。
四、设计指导3(2学时)
PC问题实验及检查。
实验二进程通信
一、目的与要求
1.目的
进程通信是多任务协作的基础,具有广泛的应用。
熟悉Linux 的基于消息队列的进程通信的系统调用,并实现一个简单的C/S结构的实例。
2.要求
题目:Linux进程通信及C/S结构应用。
(1)熟悉教材中有关进程通信方式。
(2)熟悉Linux的使用(常用shell命令、VI、CC等)。
(3)熟悉Linux的消息结构定义,msgget()、msgrcv(msgqid,…)、msgsnd(msgqid,…)的系统使用,C/S结构的工作过程。
(4)C/S结构的简单实例。
二、设计指导1(2学时,共12学时)
1. Linux的使用
Shell命令:cd, ls, mkdir, rmdir, pwd, man.
2.Linux的系统帮助
3.vi编辑器的使用
三、设计指导2(2学时)
1.Linux中的C语言编译器cc的使用
2.简单的C程序设计
四、设计指导3(2学时)
Linux的基于消息队列的进程通信,调试教材P165至P166的例子.
1.Linux的消息结构定义
#define MSGKEY 75
#define bufsize 256
struct msgform
{
long mtype;
char mtext[bufsize];
} msg;
int msgqid;
2.msgget()、msgrcv(msgqid,…)、msgsnd(msgqid,…)
3.C/S结构的工作过程
五、设计指导4(2学时)
设计并实现一个简单C/S结构的例子。
六、设计指导5(2学时)
设计并实现一个简单C/S结构的例子。
四、设计指导6(2学时)
抽查演示。
编写实验报告。