《操作系统原理》实验指导书 实验一 生产者-消费者模型模拟进程调度 一、实验任务 1、在WINDOWS 2000环境下,创建一个控制台进程,此进程包括4个线程:2个生产者线程和2个消费者线程。 2、用信号量机制解决进程(线程)的同步与互斥问题。 二、实验目的 1.掌握基本的同步互斥算法,理解生产者和消费者模型。 2.了解Windows 2000/XP中多线程的并发执行机制,线程间的同步和互斥。 3.学习使用Windows 2000/XP中基本的同步对象,掌握相应的API。 三、实验要求 1.生产者消费者对缓冲区进行互斥操作。 2.缓冲区大小为10,缓冲区满则不允许生产者生产数据,缓冲区空则不允许消费者消费数据。 3.生产者消费者各循环操作50次。 四、设计思路和采取的方案 1.利用windows提供的API函数CreateSemaphore()创建信号量对象; CreateThread()创建线程; WaitForSingleObject()执行P操作; ReleaseSemaphore()执行V操作; WaitForMultipleObjects()主进程等待线程的结束等函数进行设计。 2.在Windows中,常见的同步对象有:信号量(Semaphore)、互斥量(Mutex) 。 使用这些对象都分为三个步骤,一是创建或者初始化; 接着请求该同步对象,随即进入临界区,这一步对应于互斥量的上锁;最后释放该同步对象,这对应于互斥量的解锁。这些同步对象在主进程中创建,在其子线程中都可。 实验二 存储管理 一、目的和要求 1. 实验目的 (1)掌握时间片轮换的进程调度算法; (2)掌握带优先级的进程调度算法; (3)选用面向对象的编程方法。 2、实验学时:2学时 3、实验要求 (1)自定义PCB的数据结构; (2)使用带优先级的时间片轮转法调度进程,每运行一个时间片,优先级减半。 (3)命令集 A)create 随机创建进程,进程的优先级与所需要的时间片随机决定; B)ps 查看当前进程状态 C)sleep 命令将进程挂起 D)kill 命令杀死进程 E)quit命令退出 二、实验内容 根据教师指定的实验课题,完成设计、编码、测试工作。 实验三 虚拟存储器 一、目的和要求 1. 实验目的 (1)掌握先进先出页面置换算法; (2)掌握随机替换页面置换算法; (3)掌握OPT页面置换算法; (4)掌握最近最少使用页面置换算法; (5)熟悉抖动现象及其产生原理; (6)熟悉C/C++编程。 2、实验学时:2学时 3、实验要求 (1)进程占用内存空间共640K,页面大小是1K/2K/4K/8K; (2)随机生成256个页面置换次序; (3)用于分配页面大小的内存总空间是32K; (4)给出四种页面置换算法的换页过程,并计算各自的缺页率。 二、实验内容 编写程序,使用四种不同的页面替换策略算法进行页面替换。分别是先进先出,随机替换,时钟页面替换,最近最久未使用页面替换,并计算缺页率。
1
开发环境linux,简单二级文件系统,功能齐全,如,用户注册,文件建立,读写,查看等
1
操作系统课程设计SPOOLING技术。 C语言版,内含课设报告。 有简单的中文操作界面。 建议使用C与C++程序设计学习与实验系统 打开。
2020-01-03 11:38:33 87KB SPOOLING C语言 操作系统 课程设计
1
操作系统课程设计报告-生产者与消费者算法的实现 文档,源码都在
2020-01-03 11:36:49 260KB 操作系统 生产者 消费者
1
单用户多级文件系统模拟设计; 多级反馈队列进程调度算法的模拟; 页面置换算法模拟设计; 多用户文件系统模拟设计
2020-01-03 11:35:50 1.09MB 操作系统 课程设计
1
通过研究Linux的线程机制和信号量实现生产者消费者(Bounded Buffer)问题的并发控制。 实验条件要求:每人一台与Linux主机联网的Windows主机,普通用户权限。 (1) 每个生产者和消费者对有界缓冲区进行操作后,即时显示有界缓冲区的全部内容、当前指针位置和生产者/消费者线程的标识符。 (2) 生产者和消费者各有两个以上。 (3) 多个生产者或多个消费者之间须共享对缓冲区进行操作的函数代码。
2020-01-03 11:35:47 803KB 操作系统 课程设计 生产者消费者
1
操作系统课程设计,完整的MFC 工程源码 课程设计题目:进程/作业调度 实现要求: 1. 建立作业的数据结构描述 2. 使用两种方式产生作业/进程: (a)自动产生 (b)手工输入 3. 在屏幕上显示每个作业/进程的执行情况。 4. 时间的流逝可用下面几种方法模拟:(a)按键盘,每按一次可以认为过一个时间单位 (b)响应WM_TIMER (本实验采用b方法) 5. 计算并显示一批作业/进程的周转时间,平均周转时间,带权周转时间,平均带权周转时间。 6. 将一批作业/进程的执行情况存入磁盘文件,以后可以读出并重放。 7. 支持的调度算法:先来先服务,短作业/进程优先,时间片轮转调度算法,优先权调度算法,高响应比优先调度算法,多级反馈队列调度算法。
2020-01-03 11:34:40 21.16MB OS课程设计 进程调度
1
Nachos实验(操作系统课程设计) 共四个实验,每个实验是单独分离开,有代码,有详细文档。 实验1#内核线程调度策略设计 设计了两个静态(FCFS,静态优先数),两个动态(动态优先数,彩票算法)。 实验2#进程同步 设计一个Haro样式的条件变量,通过实现采用 该条件变量的生产者消费者问题管程和哲学家 问题管程,用多个使用管程的协作线程验证其 正确性。 实验3#用户进程和空间管理设计 实现了多道程序共驻内存,用户程序并发执行 ,实现了多个系统调用 (Fork,Exec,Join,Exit,Wait,Halt,Create, Open,Read,Write,Close,Yield,,实现了一个 简单的shell程序,并实现了shell上的用户程 序的并发,输出重定向功能。本实验中采用了 进程同步的功能。实现了进程表,使用父子进 程关系表实现父子进程关系。 实验4#文件系统扩展设计 使Nachos文件的长度可以扩展。 扩充Nachos文件的最大容量。
2020-01-03 11:33:43 2.13MB Nachos实验 操作系统课程设计
1
进程状态模拟转换课程设计代码,使用python编写,设计要求:模拟两种系统资源,每种资源的初始数目有自己设定 有进程的标识、进程的具体数据结构由自己设定 利用队列的概念。设置就绪队列和阻塞队列 至少模拟四种条件下的进程状态转换,即进程调度、时间片用完、I/O请求和I/O完成等四种条件
1
广工操作系统课程设计(选题:多道批处理系统的两级调度-1)
2020-01-03 11:29:04 525KB 操作系统
1