计算机操作系统实验教程.pdf
《计算机操作系统实验教程.pdf》由会员分享,可在线阅读,更多相关《计算机操作系统实验教程.pdf(16页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、 计算机操作系统实验教程 计算机操作系统实验教程 徐 慧 中国矿业大学(北京)机电与信息工程学院计算机系 二 0 0 四年四月 实验简介实验简介.2 实验一实验一 进程管理进程管理.3 一、实验目的.3 二、实验预备内容.3 三、实验内容.3 四、预备知识.3 五 实验指导.4 实验二实验二 进程间的通信进程间的通信.5 一、实验目的.5 二、实验预备内容.5 三、实验内容.5 四、实验预备知识.5 五、实验指导.9 实验三实验三 存储管理存储管理.10 一、实验目的.10 二、实验内容.10 三、实验预备知识.10 四、实验指导.13 实验四实验四 文件系统设计文件系统设计.14 一、实验目
2、的.14 二、实验内容.14 三、实验提示.14 四、实验指导.14 1实验简介 实验简介 1学时:16 学时 2先修课程:计算机导论 ,高级语言程序设计,数据结构 3课程性质:专业基础必修课 4适合专业:计算机科学与技术 5内容简介:操作系统上机课程通 Linux 操作系统各自的编程接口,提供编程实例,由此加深学生对操作系统工作原理的领会和对操作系统实现方法的理解,并且使学生在程序设计方面得到基本的训练。上机课程主要针对课本重点内容,以提高学生的动手能力,加深学生对相关的内容的理解而展开的实验课程。在 Linux 环境下提供了关于操作系统的命令接口程序 shell 的编制、存储管理相关内容的
3、实路、作业调研系统以及虚拟磁盘文件系统管理 4 个实验。实验环境是基于 Linux 操作系统的。在计算机软硬件课程的设置上,它起着承上启下的作用。其特点是概念多、较抽象和涉及面广,其整体实现思想和技术又往往难于理解。6参考书:张尧学,史美林 计算机操作系统课程设计实验指导 清华大学出版社 2000 年 2实验一 进程管理 实验一 进程管理 一、实验目的一、实验目的(1)加深对进程概念的理解,明确进程的程序的区别;(2)可进一步认识并发执行的实质;(3)分析进程争用资源的现象,学习解决进程互斥的方法;(4)了解 LINUX 系统中进程通信的进本原理;二、二、实验预备内容实验预备内容(1)阅读 L
4、INUX 的 sched.h 源码文件,加深对进程管理概念的理解;(2)阅读 LINUX 的 fork.c 源码,分析进程的创建过程;三、三、实验内容实验内容(1)进程创建 编写一段程序,使用系统调用 fork()创建两个子进程.(2)进程的控制 修改以编写的程序,将每个进程输出一个字符改为输出一句话,观察程序执行时屏幕上出现的现象;(3)编写一段程序实现软中断;(4)进程的管道通信;四、四、预备知识预备知识 现代操作系统的重要特点是程序的并发执行,及系统所拥有的资源被共享和系统用户随机地使用系统。采用一个什么样的概念,来描述计算机程序的执行过程和作为资源分配的基本单位才能充分反映操作系统的执
5、行并发、资源共享及用户随机的特点呢?这个概念就是进程。1进程的概念 1.1 进程的定义 进程是一个具有一定功能的程序关于某个数据集合的一次运行活动。进程是操作系统动态执行的基本单元,在传统的操作系统设计中,进程既是基本的分配单元,也是基本的执行单元。1.2 进程划分的原则 3进程大小的“分割”设计,因不同的操作系统设计者而异。进程分得太大,极端情况就变成顺序执行的计算机,也就失去了并发性,也就降低了系统资源;但另一极端,进程分得太小,CPU 为多个用户或一个用户的多个任务服务时,开销急剧增大。因为,在进程间的时空转换及工作量将大大增 1.3 进程的五个基本特征 1动态性 进程是程序在并发系统的
6、一次执行,一个进程有一个从产生到消失的生命期;2并发性 正是为了描述程序在并发系统内执行的动态特征才引入了进程,没有并发就没有进程;3独立性 每个进程的程序都是相对独立的顺序程序,可以按自己的方向和速度独立地向前推进;4制约性 进程之间的相互制约,主要表现在互斥地使用资源和相关进程之间必要的同步和通讯;5结构性 进程=PCB(进程控制块)+程序+数据集合。五五 实验指导实验指导 参考 P82 4实验二 进程间的通信 实验二 进程间的通信 一、实验目的一、实验目的 了解和熟悉 LINUX 支持的消息通信机制,共享存储区以及信息量机制。二、实验预备内容二、实验预备内容 阅读 LINUX 系统的 m
7、dg.c,sem.c 和 shm.c 等源码文件,熟悉 LINUX 的三种通信机制。三、实验内容三、实验内容 (1)消息的创建,发送和接受;使用系统调用 msgget(),msgsnd(),msgrev(),以及 msgctl()编制一长度为 1k 的消息发送和接受程序;观察上面程序,说明控制消息队列系统调用 msgctl()在此起什么作用。(2)共享存储区的创建,附接和断接 使用系统调用 shmget(),shmget(),sgmdt(),shmctl(),编制一个与上述功能相同的程序。(3)比较上述(1),(2)两种消息通信机制中数据传输的时间。四、实验预备知识四、实验预备知识 进程通信
8、1:进程的同步与互斥 进程同步(1)进程同步的定义 进程同步是进程间共同完成一项任务是直接发生相互作用的关系,也就是说,这些具有伙伴关系的进程在执行时间次序上必须遵循确定的规律。(2)进程同步的例子 SPOOLing 系统中的输入功能可以由两个进程 A 和 B 完成,进程 A 负责从读卡机上把卡片上的信息读到一个缓冲区中,进程 B 负责把该缓冲 区中的信息进行加工并写 5到外存输入井中。要实现两者的协同工作,两个进程必须满足如下的制约关系:只有当缓冲区的内容取空时,进程 A 才能向其中写入新信息;只有当缓冲区写满时,进程 B才能从中取出内容作进一步加工和转送工作。可见,在缓冲区内容区空时,今晨
9、 B 不应该继续运行,需要等待进程 A 向其中送入新的信息;反之,当缓冲区中的信息尚未取走时,进程 A 应等待,防止把原有的信息冲掉,造成丢失信息的结果。进程 A 和进程 B 就是一种同步关系。2 进程互斥 进程互斥的定义 一组并发进程中的一个或多个程序段,因共享某一公有资源而导致它们必须以一个不允许交叉执行的单位执行。进程的互斥是因为对同一物理资源的竞争而产生的相互制约关系。进程互斥的例子 两个进程使用一台打印机 3 临界资源和临界区 我们包一次只允许一个进程使用的资源称为临界资源,而把在每个进程中访问临界资源的程序段称为临界区。要进入临界区的若干个进程必须满足如下关系:一次只允许一个进程进
10、入临界区。任何时候,处于临界区的进程不得多于一个。进入临界区的进程要在有限的时间内退出。如果不能进入自己的临界区,则应让出处理机资源。4.同步、互斥机制的实现及应用 用锁操作原语实现互斥 (1)实现 为共享资源设置一把锁 W=0 表示共享资源(分配表)可用;W=1 表示共享资源(分配表)不可用,已有一进程访问。用类 ALGOL 语言编程如下:加锁原语 LOCK(W)L:if W=0 then W:=1 else goto L:(说明:测试和设置指令;循环等待该资源释放)6开锁原语 UNLOCK(W)W:=0 (2)局限性 只要有一个进程由于执行 LOCK(W)而进入临界区,则其它进程在检查锁状
11、态时都将反复执行 LOCK(W)原语,从而导致处理机繁忙。现在一般采用硬件指令来解决互斥进入临界区问题。5.信号量及 P、V 操作原语 P、V 操作是荷兰科学家 E.W.Dijkstra 在 1965 年提出的一种解决同步、互斥问题的更通用的方法,并在 THE 操作系统中得以实现。P 是荷兰语发信号的开头字母,V 是等待的开头字母。(1)信号量 信号量,也叫信号灯,一般是由两个成员组成的数据结构,其中一个成员 S 是整型变量,表示该信号量的值,另一个成员 Q 是指向 PCB 的队列。=(S,Q)信号量的值与相应资源的使用状态有关。当它的值0 时,它表示可用资源的数量;当它的值=0 说明当前进程
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 计算机 操作系统 实验 教程
限制150内