《操作系统原理》实验指导书实验一生产者-消费者模型模拟进程调度一、实验任务1、在WINDOWS2000环境下,创建一个控制台进程,此进程包括4个线程:2个生产者线程和2个消费者线程。
2、用信号量机制解决进程(线程)的同步与互斥问题。
二、实验目的1.掌握基本的同步互斥算法,理解生产者和消费者模型。
2.了解Windows2000/XP中多线程的并发执行机制,线程间的同步和互斥。
3.学习使用Windows2000/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
ppt转图片会遇到图片不清晰或者有些插图无法转换的问题,我们可以换个思路,先将ppt转成pdf,再将pdf转成图片即可
2024/5/10 3:03:19 141KB ppt转pdf
1
做了一个监控系统,开始只是开了一个线程接数据并发消息调用函数进行分析,但是数据量增大的时候丢包率很大,无法达到监控的效果,于是考虑开两个线程,一个读串口数据并存到队列,一个从队列中读取数据并进行分析,好,思路是有了,可是在网上找了好久都没有相关的比较实用的介绍队列在MFC的具体用法,只有一些泛泛的文章,依葫芦画瓢写到程序中报错,于是我下定决心一旦我解决了这个问题,一定将它放到网上,希望对你们有用,谢谢关注!
2024/5/8 9:38:02 226KB MFC 队列
1
北京地铁线路实验数据库架构的设计,er关系的确立,表结构的设计,单次实验和多次实验之间的横向比较
2024/5/4 3:17:19 2.6MB 数据库
1
我去年暑假花了5天,把杭电ACM网站上2000到2099这100道题全AC了,又花了10来天精心写解题报告。
里面包括题目、解题思路、编程技巧以及参考源码。
所有代码都是使用C/C++写的。
最近整理资料时无意间发现,打包成chm文件和大家分享。
2024/5/3 4:03:06 806KB 100道 acm C语言 hdu
1
可用于交课设作业,代码中有注释,两个课题的代码行数分别是400行左右和1000行以上,可以用于参考其中的核心代码,里面还包括设计的思路文档。
用的是c语言写的。
①系统以菜单方式工作②学生信息录入功能(学生信息用文件保存)--输入③学生信息浏览功能--输出④学生信息查询功能--按学号查询、按姓名查询⑤学生信息的删除与修改⑥学生信息的排序(按学号,按年龄)①提供对城市信息进行编辑(如:添加或删除)的功能。
②城市之间有两种交通工具:火车和飞机。
提供对列车时刻表和飞机航班进行编辑(增设或删除)的功能。
③提供两种最优决策:最快到达和最省钱到达。
全程只考虑一种交通工具。
④旅途中耗费的总时间
1
总结的2021美赛A题思路,有需要的朋友可以拿去参考
1
进制转换,可供新手参考,函数怎么调用,回调函数等,思路清晰,代码简单。
2024/5/2 0:18:11 4KB 十六转二进制
1
在分析永磁同步电机(PMSM)数学模型的基础上,提出了PMSM控制系统仿真建模的新方法.在Matlab/Simulink中,建立独立的功能模块:PMSM本体模块、矢量控制模块、电流滞环控制模块、速度控制模块等,同时进行功能模块的有机整合,搭建PMSM控制系统的仿真模型.系统采用双闭环控制:速度环采用PI控制,电流环采用滞环电流控制.仿真结果证明了该方法的有效性,同时该模型也适用于验证其他控制算法的合理性,为实际电机控制系统的设计和调试提供了新的思路
2024/4/27 22:18:03 333KB Matlab 永磁同步 电机控制
1
一个美化窗体的VB程序源,可以改变窗体背景图片和纯颜色,对背景图片进行添加、删除、淡化,窗体透明等设置,控件开源有很多地方值得VB爱好者研究学习的,每一块代码都有中文注译,思路清晰易懂,对开发换肤的程序有很大帮助。
2024/4/27 8:40:26 3.4MB VB窗体美化 VB换肤 VB窗体透明
1
共 770 条记录 首页 上一页 下一页 尾页
在日常工作中,钉钉打卡成了我生活中不可或缺的一部分。然而,有时候这个看似简单的任务却给我带来了不少烦恼。 每天早晚,我总是得牢记打开钉钉应用,点击"工作台",再找到"考勤打卡"进行签到。有时候因为工作忙碌,会忘记打卡,导致考勤异常,影响当月的工作评价。而且,由于我使用的是苹果手机,有时候系统更新后,钉钉的某些功能会出现异常,使得打卡变得更加麻烦。 另外,我的家人使用的是安卓手机,他们也经常抱怨钉钉打卡的繁琐。尤其是对于那些不太熟悉手机操作的长辈来说,每次打卡都是一次挑战。他们总是担心自己会操作失误,导致打卡失败。 为了解决这些烦恼,我开始思考是否可以通过编写一个全自动化脚本来实现钉钉打卡。经过一段时间的摸索和学习,我终于成功编写出了一个适用于苹果和安卓系统的钉钉打卡脚本。
2024-04-09 15:03 15KB 钉钉 钉钉打卡