软件学院 课程实验指导书
课程名称 操作系统原理 任课教师 郭 伟 开课学期
辽宁工程技术大学软件学院软件工程系
目 录
实验一 Linux环境下进程管理................................1 实验二 银行家算法.........................................9 实验三 虚拟内存页面置换算法..............................12 实验四 Spooling技术实现 ............... ... ... ... .... .15 实验五 网络文件系统 ..................................... 20 实验六 linux文件系统及系统调用...........................26
实验一 Linux环境下进程管理
一、 实验属性
实验性质: 验证性 实验学时: 4学时 实验要求: 必做
二、实验目的
1. 加深对进程概念的理解,明确进程和程序的区别; 2. 进一步认识并发执行的实质;
3. 分析进程争用资源的现象,学习解决进程互斥的方法; 4. 了解Linux系统中进程通信的基本原理。
三、实验环境及知识准备
1.实验环境: Linux系统开发环境 2.知识准备:
(1) Linux系统开发环境搭建; (2) Linux环境下GCC编译器的使用;
(3)语言中函数定义与调用、指针和类型的定义与使用、结构的定义、动态内存的申请等预备知识。
四、实验内容
1. 进程的创建
编写一段程序,使用系统调用fork()创建两个子进程。当此程序运行时,在系统中有一个父进程和两个子进程活动。让每一个进程在屏幕上显示一个字符:父进程显示字符“a”;子进程分别显示字符“b”和字符“c”。试观察记录屏幕上的显示结果,并分析原因。
2. 进程的控制
修改已编写的程序,将每个进程输出一个字符改为每个进程输出一句话,再观察程序执行时屏幕上出现的现象,并分析原因。
如果在程序中使用系统调用lockf()来给每一个进程加锁,可以实现进程之间的互斥,观察并分析出现的现象。
1