《操作系统原理》实验指导书实验一生产者-消费者模型模拟进程调度一、实验任务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
本压缩包共有基于C语言的51单片机实例程序150个,150个实例程序都有详细的源代码,且已经调试好,并有部分实例的电路原理图,对于学习理解51单片机以及用C语言开发51单片机都有很好的借鉴作用。
150个实例程序列举部如下有:1-IO输出-点亮1个LED灯方法12-IO输出-点亮1个LED灯方法25-闪烁1个LED7-不同频率闪烁多个LED灯8-8位LED左移10-LED循环左移14-花样灯16-共阳数码管静态显示18-单个数码管模拟水流23-8位数码管动态扫描显示40-数码管循环左移43-数码管闪烁45-定时器048-产生1mS方波50-产生多路不同频率方波52-1个独立按键控制LED状态转换53-2按键加减操作数码管显示58-抢答器62-矩阵键盘行列扫描63-矩阵键盘反转扫描64-矩阵键盘中断扫描65-矩阵键盘密码锁66-矩阵键盘简易计算器68-外部中断1电平触发72-T1外部计数输入75-喇叭发声原理76-警车声音77-救护车声音82-步进电机转动原理86-双步进电机综合控制91-双继电器模拟洗衣机电机控制92-1602液晶静态显示95-1602液晶移动显示99-24c02存储花样流水灯105-1602液晶显示DS1302时钟109-PCF85914路AD数码管显示114-串口通讯中断应用116-红外接收原理123-1个18b20温度传感器1602液晶显示125-超温报警测试129-双色点阵2种颜色显示测试133-热敏电阻测试数码管显示136-串转并数字芯片测试138-电子琴139-实用99分钟倒计时器141-定时做普通时钟可调142-1602液晶显示的密码锁143-实用密码锁144-1602液晶显示的计算器145-秒表147-交通灯测试149-点阵流动广告模拟150-综合测试程序
2024/5/10 14:14:50 2.6MB 51单片机 150个实例程序 C语言开发
1
基于单文档的opengl动画,vcMFC下实现,模拟时钟转动,实现的mfc下纹理映射,坐标转换,旋转等一系列功能。
对初学者有很大的帮助
2024/5/8 1:55:55 3.79MB opengl MFC 计算机图形学 opengl动画
1
本文详细分析了IEEE1588时钟同步的基本原理,并在此基础上给出一种改进的时间同步方法。
该改进的时钟同步算法针对网络传输路径的不对称性引入加权因子,用一定时间窗内的主从时钟偏差样本的算术平均值而不是直接利用主从时钟偏差来调整从时钟,并根据算法的状态改变时间窗N的大小,同时利用方差阈值滤波的方法过滤跳变过大时钟偏差测量值,保证同步算法的稳定性。
最后给出Alcatel-LucentTSS5R系统在实验室的时间性能实验结果。
实验结果表明TSS5R时钟同步具有稳定的性能,同步精度达到亚微秒级,可满足PTN产品高精度时钟同步的要求。
1
1,HDMI,USB,TF,VGA,WIFI,AV等信号存在辐射和静电问题;
2,RGB数据和时钟线引起的辐射超标;
3,电源PCB设计不合理引起的辐射超标;
4,LVDS信号和时钟线引起的辐射超标;
2024/4/26 15:19:34 2.23MB EMC解决方案
1
基于stm32f103c8t6、ds1302的电子时钟电路+程序设计。
2024/4/26 2:06:27 185KB stm32
1
Amazon平台是一个由数百服务组成的面向服务的架构,其秉承高度去中心化、松散耦合、完全分布式的原则,具体架构参考下图1。
图1Amazon系统架构在这种环境中,尤其需要一个始终可用的存储系统,由此,Dynamo诞生了。
Dynamo是Amazon提供的一款高可用的分布式Key-Value存储系统,其满足可伸缩性、可用性、可靠性。
CAP原理满足:通过一致性哈希满足P,用复制满足A,用对象版本与向量时钟满足C。
用牺牲C来满足高可用的A,但是最终会一致。
但是,是牺牲C满足A,还是牺牲A满足C,可以根据NWR模型来调配,以达到收益成本平衡。
Dynamo内部有3个层面的概念:Key-Value:Key唯一
2024/4/23 19:45:44 326KB AmazonDynamo系统架构
1
Proteus仿真加源码,亲测有效
2024/4/21 1:50:27 90KB 嵌入式
1
汽车转向灯是一种附加车载装置,它能够在汽车转向时对车辆起到警示作用。
本文设计了汽车转向灯控制电路,能够在汽车转向时控制左、右各3个指示灯按一定的规律闪动,以提示后面车辆注意。
控制电路主要由时钟产生电路、左、右转控制电路、驱动电路等组成
2024/4/20 1:28:14 1.27MB 转向灯
1
24个用C语言写的大小项目,项目由易到难。
这是一个非常适合C语言初学者的代码,如果想提高C语言水平,这是不错的训练资料。
01万年历02文件操作03电话本04小熊时钟05打字游戏06弹力球07快快吃豆游戏08贪吃蛇09迷宫10俄罗斯方块11推箱子12猜数字1324点14五子棋15系统测试16硬件测试17学生信息管理系统18学生个人消费管理系统19火车订票系统20通讯录管理系统21图书管理系统22企业员工管理系统23商品管理系统24网络通信编程
2024/4/18 9:04:39 1.55MB C 案例 源码
1
共 800 条记录 首页 上一页 下一页 尾页
在日常工作中,钉钉打卡成了我生活中不可或缺的一部分。然而,有时候这个看似简单的任务却给我带来了不少烦恼。 每天早晚,我总是得牢记打开钉钉应用,点击"工作台",再找到"考勤打卡"进行签到。有时候因为工作忙碌,会忘记打卡,导致考勤异常,影响当月的工作评价。而且,由于我使用的是苹果手机,有时候系统更新后,钉钉的某些功能会出现异常,使得打卡变得更加麻烦。 另外,我的家人使用的是安卓手机,他们也经常抱怨钉钉打卡的繁琐。尤其是对于那些不太熟悉手机操作的长辈来说,每次打卡都是一次挑战。他们总是担心自己会操作失误,导致打卡失败。 为了解决这些烦恼,我开始思考是否可以通过编写一个全自动化脚本来实现钉钉打卡。经过一段时间的摸索和学习,我终于成功编写出了一个适用于苹果和安卓系统的钉钉打卡脚本。
2024-04-09 15:03 15KB 钉钉 钉钉打卡