本课程设计涵盖操作系统核心概念与实践,包括生产者-消费者问题、存储管理和虚拟存储技术。通过项目实施深化理解理论知识。
《操作系统原理》实验指导书
**实验一:生产者-消费者模型模拟进程调度**
### 一、 实验任务:
1. 在 Windows 2000 环境下,创建一个控制台程序包含4个线程:两个为生产者线程和两个为消费者线程。
2. 使用信号量机制解决多线程的同步与互斥问题。
### 二、实验目的
1. 掌握基本的同步互斥算法,并理解生产者-消费者模型。
2. 理解Windows 2000/XP中多线程并发执行机制,以及它们之间的同步和互斥关系。
3. 学习使用 Windows 2000/XP 中的基本同步对象,并掌握相应的 API。
### 三、实验要求
1. 生产者与消费者对缓冲区进行互斥操作。
2. 缓冲区大小为十,当缓冲区满时不允许生产者继续生成数据;如果缓冲区为空则不允许消费者消费任何数据。
3. 每个生产者的生产和每个消费者的消耗各循环运行五十次。
### 四、设计思路和采取的方案
1. 利用 Windows 提供的 API 函数如 CreateSemaphore() 创建信号量对象,CreateThread() 创建线程;WaitForSingleObject() 执行 P操作(等待),ReleaseSemaphore() 执行 V 操作(释放)等进行程序设计。
2. 在Windows中常见的同步对象有:信号量(Semaphore)、互斥量(Mutex)。使用这些对象都分为三个步骤,分别是创建或初始化;请求该同步对象进入临界区;最后释放该同步对象离开临界区。
---
**实验二 存储管理**
### 一、目的和要求
1. **实验目标:**
- 掌握时间片轮换的进程调度算法。
- 理解带优先级的进程调度机制。
- 使用面向对象的方法进行编程设计。
2. 实验学时: 两课时
3. 实验需求:
A) 创建随机生成的进程,其优先级和所需时间片由程序决定;
B) 查看当前系统中的所有活动进程状态;
C) 将指定的进程挂起;
D) 终止特定编号或名称下的活跃进程运行。
### 二、实验内容
根据教师分配的任务完成设计,编写代码并进行测试。
---
**实验三 虚拟存储器**
### 目的要求:
1. **学习目标:**
- 掌握先进先出页面置换算法;
- 理解随机替换页面置换策略;
- 学习最优页面置换方法(OPT);
- 了解最近最少使用页面更换机制及其原理。
2. 实验时间: 共计两课时
3. 实验任务:
A) 进程使用的内存空间总计640K,页大小可为1KB、2KB、4KB或8KB;
B) 随机生成总共256个页面置换序列。
### 二、实验内容
编写程序模拟四种不同的页面替换策略,并计算各自的缺页率。具体包括先进先出法(FIFO)、随机选择算法(RAND),时钟算法(CLOCK), 最近最少使用(LRU) 页面淘汰机制。