《操作系统原理》实验指导书实验一生产者-消费者模型模拟进程调度一、实验任务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
这是geojson面数据,数据为长沙市湘江新区岳麓区部分建筑物屋面数据
2024/5/10 9:50:54 13.19MB geojson mapbox-gl 三维面数据
1
香港地区行政划分,包含区名等属性字段shape,精度较高
1
把网页背景变成眼睛保护色或适合夜晚阅读的夜间模式,一些无法变色的小区块可以通过单击进行变色;
2024/5/9 4:05:37 176KB chrome 眼睛 护航 插件
1
L293D步进电机驱动芯片的原理、外围电路L293D采用16引脚DIP封装,其内部集成了双极型H-桥电路,所有的开量都做成n型。
这种双极型脉冲调宽方式具有很多优点,如电流连续;
电机可四角限运行;
电机停止时有微振电流,起到“动力润滑”作用,消除正反向时的静摩擦死区:低速平稳性好等。
L293D通过内部逻辑生成使能信号。
H-桥电路的输入量可以用来设置马达转动方向,使能信号可以用于脉宽调整(PWM)。
另外,L293D将2个H-桥电路集成到1片芯片上,这就意味着用1片芯片可以同时控制2个电机。
每1个电机需要3个控制信号EN12、IN1、IN2,其中EN12是使能信号,IN1、IN2为电机转动方向控制信号,IN1、IN2分别为1,0时,电机正转,反之,电机反转。
选用一路PWM连接EN12引脚,通过调整PWM的占空比可以调整电机的转速。
选择一路I/O口,经反向器74HC14分别接IN1和IN2引脚,控制电机的正反转
2024/5/8 21:15:20 1.41MB L293D
1
最全最好用的经纬度范围获取器1.自定义多边形2.小区、学校3.市县区范围4.省范围5.结果实时显示为json6.支持清空功能
2024/5/7 16:10:14 3KB 经纬度 获取 小区 自定义
1
GPS位置+速度两个观测量卡尔曼惯导航融合,观测传感器滞后的主要思想是,由于惯导的主体为加速度计,采样频率与更新实时性要求比较高,而观测传感器(气压计、GPS、超声波、视觉里程计等)更新相对比较慢(或者数据噪声比较大,通常需要低通造成滞后)。
在无人机动态条件下,本次采样的得到的带滞后观测量(高度、水平位置)已经不能反映最新状态量(惯导位置),我们认定传感器在通带内的延时时间具有一致性(或者取有效带宽内的平均时延值),即当前观测量只能反映系统N*dt时刻前的状态,所以状态误差(在这里指的是气压计与惯导高度、GPS水平位置与惯导水平位置)采用当前观测量与当前惯导做差的方式不可取,在APM里面采用的处理方式为:将惯导的估计位置用数组存起来,更具气压计和GPS的滞后程度,选取合适的Buffer区与当前观测传感器得到位置做差得到状态误差。
————————————————版权声明:本文为CSDN博主「NamelessCotrun无名小哥」的原创文章,遵循CC4.0BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/u011992534/article/details/78257684
2024/5/6 15:32:31 997KB 卡尔曼 数据融合 GPS
1
操作系统循环首次适应算法首次适应算法最佳适应算法回收内存分配内存设计一个可变式分区分配的存储管理方案。
并模拟实现分区的分配和回收过程。
对分区的管理法可以是下面三种算法:首次适应算法循环首次适应算法最佳适应算法
1
1.采用单片机作为控制器,用户通过键盘输入设定水温,LCD显示器显示当前温度与设定温度;
2.采用温度传感器检测出水温度,当温度与设定温度不符时,由单片机输出控制步进电动机,带动混水阀转动,调节混水阀,直至水温达到要求;
3.设置温度保护区间,当设置温度高于46℃或低于35℃,LCD显示“温度过高”或“温度过低”,保护用户安全;
2024/5/6 6:44:55 58KB 51 单片机 混水阀 12864
1
在postgresql上支持from中的子查询支持不加别名的功能,详细内容请详见本人的博客:https://rng-songbaobao.blog.csdn.net/有什么问题可以直接在评论区下留言。
注:所使用的数据库版本为PostgreSQL13.0
1
共 1000 条记录 首页 上一页 下一页 尾页
在日常工作中,钉钉打卡成了我生活中不可或缺的一部分。然而,有时候这个看似简单的任务却给我带来了不少烦恼。 每天早晚,我总是得牢记打开钉钉应用,点击"工作台",再找到"考勤打卡"进行签到。有时候因为工作忙碌,会忘记打卡,导致考勤异常,影响当月的工作评价。而且,由于我使用的是苹果手机,有时候系统更新后,钉钉的某些功能会出现异常,使得打卡变得更加麻烦。 另外,我的家人使用的是安卓手机,他们也经常抱怨钉钉打卡的繁琐。尤其是对于那些不太熟悉手机操作的长辈来说,每次打卡都是一次挑战。他们总是担心自己会操作失误,导致打卡失败。 为了解决这些烦恼,我开始思考是否可以通过编写一个全自动化脚本来实现钉钉打卡。经过一段时间的摸索和学习,我终于成功编写出了一个适用于苹果和安卓系统的钉钉打卡脚本。
2024-04-09 15:03 15KB 钉钉 钉钉打卡