模拟实现动态可变分区存储管理系统,内存资源的分配情况用一个单链表来表示,每一个节点表示一个可变分区,记录有内存首地址、大小、使用情况等,模拟内存分配动态输入构造空闲区表,键盘接收内存申请尺寸大小,根据申请,实施内存分配,并返回分配所得内存首址。
分配完后,调整空闲区表,并显示调整后的空闲区表和已占用的区表。
如果分配失败,返回分配失败信息。
模拟内存回收。
根据空闲区表,从键盘接收回收区域的内存作业代号。
回收区域,调整空闲区表,并显示调整后的空闲区表。
对于内存区间的分配,移出,合并就是相应的对链表节点信息进行修改,删除和创建相应的节点。
在模拟实现动态可变分区存储管理系统中用到的是“最佳适应算法”与“最坏适应算法”。
所谓“最佳”是指每次为作业分配内存时,总是把满足要求、又是最小的空闲分区分配给作业,避免“大材小用”。
因此保证每次找到的总是空闲分区中最小适应的,但这样会在储存器中留下许多难以利用的小的空闲区。
最坏适应分配算法是要扫描整个空闲分区表或链表,总是挑选最大的一个空闲分区割给作业使用。
进入系统时我们需要内存首地址和大小这些初始化数据。
成功后我们可以自由的使用首次适应算法与最佳适应算法对内存进行分配。
内存经过一系列分配与回收后,系统的内存分配情况不再连续。
首次适应算法与最佳适应算法的差异也就很容易的体现在分配时。
动态可变分区存储管理模拟系统采用最佳适应算法、最坏适应算法内存调度策略,对于采用不同调度算法,作业被分配到不同的内存区间。
1
资源中包含三部分,一部分是基于内存的文件系统的源代码,这一部分包括内核以及外部封装两个子部份。
第二部分是实验运行的截图,以及工作原理的截图。
第三部分是课程设计报告,里面重点讲述的是每个函数的具体功能。
整个系统是我和队友两人通宵近一周完成的,验收时被老师评价难度系数最高,且完成最好的一组。
不过系统中文件连续删除部分还有小bug,但是当时因为验收时间问题,没来的及修改。
其他部分没发现问题,如果有bug请在下面留言备注。
谢谢。
1
Dais-CMH+/CMH机器上调试在该试验中采用五条机器指令:IN(输入)、SUB(二进制减法)、STA(存数)、OUT(输出)、JMP(无条件转移),整体实现二进制数连续相减的功能。
上机调试实现这五种指令功能。
2024/1/26 22:31:23 179KB 组成原理
1
使用MFC在VS2013编写的数字图象处理软件,能够实现相当强大的功能。
BMP格式读取保存DFTFFT直方图色调均化缩放模糊锐化滤镜形态学处理曲线裁剪灰度图彩色图自动阈值等等...除此之外还有很多其他小功能...建议使用VS2013打开!!!核心代码在Bmp.cpp中!!!更新文档:2014年6月18日更新说明:这次应该是上交的最后一次作业了,在今日的展示结束之后总体情况还好,但是发现了几个问题。
首先是这个程序是在win8环境下设计的,所以程序的一些大小参数以及按钮图片的位置参数是适合在win8的环境下操作,在设计报告中使用的操作系统也是win8。
而如果将该程序移动至win7系统上操作的话可以在大小与位置上会出现一些偏差,所以推荐将该程序在win8系统下运行,如果没有win8系统但是想重装的话可以找我。
然后本次更新的内容就是对设计报告中的要求的一些补充,比如图片的裁剪功能,还有一些照旧的BUG修复了。
关于这个裁剪功能,在程序中的图像裁剪中有一个说明按钮,在设计报告中有提到怎么使用的,所以在这里就不一一说明了,其实就跟在PS上用裁剪差不多,很容易用的。
关于设计的感想也写在了设计报告上了--,这里也就不多说了。
好了这个程序算是最终完成了,撒花!师姐辛苦了~!!!!!================================================================================================================================================================2014年5月13日更新说明:这次的更新比较少,主要就是自动阈值分割图像方面的更新。
实现该操作的函数依然放在Bmp.cpp里面,里面一共使用了三种方式来决定自动阈值。
其中一种是“大津法”,函数是“OtsuThreshold”,该函数最后会返回一个阈值,该阈值就是大津法得出的阈值,具体实现方式可以在cpp文件中查看。
还有一种方法就是“迭代法”,函数是“IterationThreshold”,该函数最后会返回一个阈值,该阈值就是迭代法得出的阈值,具体实现方式可以在cpp文件中查看。
前两种方法的实现方法都如老师在PPT上所说的一样,而且运算起来非常快,基本可以说是瞬时得出。
而第三种方法是我自己写的一个方法,叫做“对半分”法,函数是“HalfCutThreshold”,该函数最后会返回一个阈值,该阈值就是对半分得出的阈值,具体实现方式可以在cpp文件中查看。
其原理就是计算出一个阈值,使到阈值处理后图片的黑色像素与白色像素的数量相等或者最接近,也就是把图片按黑白像素对半分的方法来对图像进行分割。
关于程序的使用方法,可以在鼠标右键菜单中选择“调整”->“阈值”->“高级阈值”来打开高级阈值处理的对话框。
打开对话框后,默认为最直接的自己首选阈值的方法,可以通过鼠标的左键拖动直方图中的绿色竖线来调整需要设定的阈值大小,同时右边会有该图片的预览,可以很方便操作。
如果需要使用自动阈值分割,可以在阈值方式中更改,一旦选择了“直接阈值”以外的阈值方式,程序便会自动用所选择的方法帮你计算出一个阈值,同时在直方图上会显示出该阈值的位置,还有该阈值的大小,同时预览图片也会立即更新。
值得注意的是,当你选择了自动阈值的时候,你不能再通过鼠标左键在直方图上手动调整阈值大小了哦,这个时候你只需要将阈值方式调回“直接阈值”即可重新自己调整!除了有关作业的更新之外,这次更新还调整了图片备份的内存优化,加上了使用磁盘作为备份的空间,不过这些作为使用者的话是不需要怎么注意的嗯嗯,尽情使用即可!最后,再次谢谢师姐能够读完这个文档,如果还有什么问题的话就联系我吧,联系方式就在软件中了欢迎点击--,谢谢!================================================================================================================================================================2014年5月6日更新说明:这次的主要更新是形态学处理的部分,也就是膨胀、腐蚀、开与闭操作。
实现函数依然是放在Bmp.cpp这个文件里面。
名字为Morphology的函数就是该形态学操作的函数。
可以通过在函数中调入不同的参数与设置使到一个函数同时实现膨胀与腐蚀的功能,而开与闭的功能只需要连续调用两次函数,并且参数不同就行了,使用非常简单。
然后就是软件的使用部分,
1
1.3寸OLED带字库()1概述GT20L16S1Y是一款内含15X16点阵的汉字库芯片,支持GB2312国标简体汉字(含有国家信标委合法授权)、ASCII字符。
排列格式为竖置横排。
用户通过字符内码,利用本手册提供的方法计算出该字符点阵在芯片中的地址,可从该地址连续读出字符点阵信息。
1.1芯片特点●数据总线:SPI串行总线接口●点阵排列方式:字节竖置横排●时钟频率:30MHz(max.)@3.3V●工作电压:2.2V~3.6V●电流:工作电流:8mA待机电流:8uA●封装:SOT23-6●尺寸SOT23-6:2.9mmX1.6mmx1.10mm●工作温度:-20℃~70℃
2024/1/26 7:15:20 6.95MB 1.3寸OLED
1
1、从零件图开始,到获得数控机床所需控制介质的全过程称为程序编制,程序编制的方法有手工编程和自动编程。
2、数控机床实现插补运算较为成熟并得到广泛应用的是直线插补和圆弧插补。
3、自动编程根据编程信息的输入与计算机对信息的处理方式不同,分为数控语言编程(APT语言)、交互式图形编程。
4、数控机床由程序载体、输入装置、数控装置、伺服系统、检测装置、机床本体等部分组成。
5、数控机床按控制运动轨迹可分为点位控制、点位直线控制和轮廓控制等几种。
按控制方式又可分为开环控制、闭环控制和半闭环控制等。
6、刀具主要几何角度包括前角、后角、刃倾角、主偏角和副偏角。
7、刀具选择的基本原则:安装调整方便、刚性好、耐用度和精度高;
在满足加工要求的前提下,尽量选择较短的刀柄,以提高刀具加工的刚性。
8、刀具选择应考虑的主要因素有:被加工工件的材料、性能,加工工艺类别,加工工件信息,刀具能承受的切削用量和辅助因数。
9、铣削过程中所选用的切削用量称为铣削用量,铣削用量包括铣削宽度、铣削深度、铣削速度、进给量。
10、铣刀的分类方法很多,若按铣刀的结构分类,可分为整体铣刀、镶齿铣刀和机械夹固式铣刀。
11、加工中心是一种带刀库、自动换刀装置的数控机床。
12、FMC由加工中心和自动交换工件装置所组成。
13、切削加工时,工件材料抵抗刀具切削所产生的阻力称为切削力。
14、工件材料的强度和硬度较低时,前角可以选得大些;
强度和硬度较高时,前角选得小些。
15、常用的刀具材料主要有高速钢、硬质合金钢、陶瓷、立方碳化硼、金刚石等。
16、影响刀具寿命的主要因素有;
工件材料、刀具材料、刀具的几何参数、切削用量。
17、斜楔、螺旋、凸轮等机械夹紧机构的夹紧原理是利用机械摩擦的自锁来夹紧工件。
18、一般机床夹具主要由定位元件、夹紧元件、对刀元件、夹具体等四个部分组成。
根据需要夹具还可以含有其它组成部分,如分度装置、传动装置等。
19、切削运动就是在切削过程中刀具与工件的相对运动,这种运动有重叠的轨迹。
切削运动一般是金属切削机床通过两种以上运动单元组合而成,其一是产生切削力的运动称为主运动,剩下的运动单元保证切削工作连续进行而称为进给运动。
20、切削用量三要素是指切削速度、进给量、背吃刀量。
21、对刀点既是程序的起点,也是程序的终点。
为了提高零件的加工精度,对刀点应尽量选在零件的设计基准或工艺基准
2024/1/25 11:13:51 15.11MB 数控
1
北斗卫星导航信号模拟是接收机开发与复杂环境下性能评估的关键技术。
给出一种基于文件产生与播放的简易模拟产生方法。
文件产生部分提出了一种对不同卫星建立信号采样时间与卫星发射时间的时间压扩算法,实现了时变多普勒和伪距的模拟,生成了卫星导航接收机处的复杂信号。
播放硬件以FPGA和DDR2为基础,通过PCI将信号文件传入DDR2,在FPGA中实现了数据的连续读取,经插值滤波和数模转换后形成中频信号,再经射频调制输出。
通过北斗接收机的测试,证明了信号产生和播放硬件方案的可行性。
1
功能全部实现;
误差很小;
利用51单片机IO口作输出,通过定时器的周期性中断输出一个占空比可调、频率可调的简易方波信号发生器,具体要求如下:1、完成频率范围为0.1Hz~5KHz的方波发生器,要求如下:(1)占空比5%~95%连续可调;
(2)可键盘输入信号发生的频率。
2、可完成脉宽范围为100μs~1s的脉冲信号发生器,要求如下:(1)可键盘输入发生脉冲宽度;
(2)每按一次触发键,可发出一个单脉冲。
3、根据已经描述的C语言控制程序,运用Proteus画出硬件连接图,并将运用C语言描述的程序下载到Proteus虚拟单片机中,在Proteus中实现“简易方波信号发生器”的各项功能。
1
摘要:本文从MDCLoad的基本原理出发,介绍了DB2在MDC表上Load数据的具体实现过程,并分析了影响MDCLoad性能的一些因素。
MDC是在DB2V8中引入的,它可以将在多个维(dimension)上具有类似值的行聚集在一起放在连续的磁盘上。
在查询性能方面,涉及表中一个或多个指定维的范围查询将从数据的聚合获得好处。
这些查询只需要访问包含有指定维值的记录的页,这大大减少了磁盘I/O,为分析性查询带来极大的性能提高。
在MDC表中,每个维可以用一个或多个列来定义;
数据块(block)也称作extent,是指磁盘上一组连续的数据页,存储在同一数据块上的的数据具有相同的维值;
表的维值的每一种唯一组
2024/1/20 14:41:24 277KB MDCLoad性能介绍
1
大学生科技制作项目(含原理图、PCB、源代码、Proteus仿真文件、功能说明)使用说明:1. 功能按键说明:S1为功能选择按键,S2为功能扩展按键,S3为数值加一按键。
2. 功能及操作说明:操作时,连续短时间(小于1秒)按动S1,即可在以上的6个功能中连续循环。
中途如果长按(大于2秒)S1,则立回到时钟功能的状态,1, 时钟功能:上电后及显示10:10:00,寓意十全十美。
2, 校时功能:短按一次S1,即当前时间和冒号为闪烁状态,按动S2则小时位加1,按动S3则分钟位加1,秒表不可调。
3, 闹钟功能:短按二次S1,显示状态为22:10:00.冒号为长亮。
按动S2刚小时位加1,按动S3则分钟位加1,秒时不可调。
当按动小时位超过23时则会显示--:--:--,这个表示关闭闹钟功能。
闹钟声为蜂鸣器长鸣3秒钟。
4, 倒计时功能:短按三次S1,显示状态为0.冒号为长灭。
按动S2则从低位依次显示高位,按动S3则相应位加1,当S2按到第6次时会是所设定的时间状态下开始倒计时,再次按动S2将再次进入调整功能,并且停止倒计时。
5, 秒表功能:短按四次S1,显示状态为00:00:00.冒号为长亮。
按动S2则开始秒表计时,再次按动S2则停止计时,当停止计时的时候按动S3则秒表清零。
6, 计数器功能:短按五次S1,显示状态为00:00:00。
冒号为长灭,按动S2则计数器加1.按动S3则计数器清零。
2024/1/20 0:48:52 152KB 时钟
1
共 666 条记录 首页 上一页 下一页 尾页
在日常工作中,钉钉打卡成了我生活中不可或缺的一部分。然而,有时候这个看似简单的任务却给我带来了不少烦恼。 每天早晚,我总是得牢记打开钉钉应用,点击"工作台",再找到"考勤打卡"进行签到。有时候因为工作忙碌,会忘记打卡,导致考勤异常,影响当月的工作评价。而且,由于我使用的是苹果手机,有时候系统更新后,钉钉的某些功能会出现异常,使得打卡变得更加麻烦。 另外,我的家人使用的是安卓手机,他们也经常抱怨钉钉打卡的繁琐。尤其是对于那些不太熟悉手机操作的长辈来说,每次打卡都是一次挑战。他们总是担心自己会操作失误,导致打卡失败。 为了解决这些烦恼,我开始思考是否可以通过编写一个全自动化脚本来实现钉钉打卡。经过一段时间的摸索和学习,我终于成功编写出了一个适用于苹果和安卓系统的钉钉打卡脚本。
2024-04-09 15:03 15KB 钉钉 钉钉打卡