模仿实现虚拟分页存储管理的基本功能,包括内存的分配、内存的回收、地址变换,在发生缺页时采用LRU页面置换算法。
显示每一次内存分配和回收后内存的使用状况,每一个进程占据的内存(页表),计算给定的逻辑地址对应的物理地址。
2015/9/17 18:21:35 3KB 操作系统 页面置换 C++
1
采用近期最少使用(LFU)算法仿真请求分页系统1. 设计目的:用高级语言编写和调试一个内存分配程序,加深对内存分配算法的理解。
2. 设计要求:1, 实现请求分页存储管理方式的页面置换算法:近期最少使用算法(LFU)。
2, 内存物理块数固定为15个,对多个作业采用可变分配全局置换的策略分配物理块3, 作业数量与作业大小(10-20页)可在界面进行设置4, 所有作业按RR算法进行调度,时间片长度为1秒5, 可为每个作业随机产生引用页面串,也可以人工输入引用的页面串,页面串长度50-100,要求必须包括作业所有的页面,可作为样例数据保存6, 可读取样例数据(要求存放在外部文件中)进行作业数量、作业大小、页面串长度的初始化7, 要求采用可视化界面,模仿内存分配和使用情况图,可在运行过程中随时暂停,查看内存使用情况8, 每次全部作业运行结束后,要求打印访问命中率使用java模仿实现
2016/6/17 16:30:58 643KB LFU
1
实验题目设计和实现关于内存管理的内存布局初始化及内存申请分配、内存回收等基本功能操作函数,尝试对用256MB的内存空间进行动态分区方式模拟管理。
内存分配的基本单位为1KB,同时要求支持至少两种分配策略,并进行测试和对不同分配策略的功能展开比较评估。
最佳适应算法(BestFit):  它从全部空闲区中找出能满足作业要求的、且大小最小的空闲分区,这种方法能使碎片尽量小。
为适应此算法,空闲分区表(空闲区链)中的空闲分区要按从小到大进行排序,自表头开始查找到第一个满足要求的自由分区分配。
该算法保留大的空闲区,但造成许多小的空闲区。
因为它要不断地找出能满足作业要求的、且大小最小的空闲分区,所以比较比较频繁。
但是,对内存的利用率高循环首次适应算法(NextFit):  该算法是首次适应算法的变种。
在分配内存空间时,不再每次从表头(链首)开始查找,而是从上次找到空闲区的下一个空闲开始查找,直到找到第一个能满足要求的的空闲区为止,并从中划出一块与请求大小相等的内存空间分配给作业。
该算法能使内存中的空闲区分布得较均匀。
比较次数少于最佳适应算法(BestFit),内存利用率低于最佳适应算法(BestFit)。
2015/11/2 19:38:46 165KB 最佳适应算法 首次适应算法
1
《openssl编程》当前版本,在以前的基础上增加了椭圆曲线补充。
第一章 基础知识 81.1 对称算法 81.2 摘要算法 91.3 公钥算法 91.4 回调函数 11第二章 openssl简介 132.1 openssl简介 132.2 openssl安装 132.2.1 linux下的安装 132.2.2 windows编译与安装 142.3 openssl源代码 142.4 openssl学习方法 16第三章 堆栈 173.1 openssl堆栈 173.2 数据结构 173.3 源码 183.4 定义用户自己的堆栈函数 183.5 编程示例 19第四章 哈希表 214.1 哈希表 214.2 哈希表数据结构 214.3 函数说明 234.4 编程示例 25第五章 内存分配 275.1 openssl内存分配 275.2 内存数据结构 275.3 主要函数 285.4 编程示例 29第六章 动态模块加载 306.1 动态库加载 306.2 DSO概述 306.3 数据结构 316.4 编程示例 32第七章 抽象IO 347.1 openssl抽象IO 347.2 数据结构 347.3 BIO函数 367.4 编程示例 367.4.1 membio 367.4.2 filebio 377.4.3 socketbio 387.4.4 mdBIO 397.4.5 cipherBIO 407.4.6 sslBIO 417.4.7 其他示例 42第八章 配置文件 438.1 概述 438.2 openssl配置文件读取 438.3 主要函数 448.4 编程示例 44第九章 随机数 469.1 随机数 469.2 openssl随机数数据结构与源码 469.3 主要函数 489.4 编程示例 48第十章 文本数据库 5010.1 概述 5010.2 数据结构 5110.3 函数说明 5110.4 编程示例 52第十一章 大数 5411.1 引见 5411.2 openssl大数表示 5411.3 大数函数 5511.4 使用示例 58第十二章 BASE64编解码 6412.1 BASE64编码引见 6412.2 BASE64编解码原理 6412.3 主要函数 6512.4 编程示例 66第十三章 ASN1库 6813.1 ASN1简介 6813.2 DER编码 7013.3 ASN1基本类型示例 7013.4 openssl的ASN.1库 7313.5 用openssl的ASN.1库DER编解码 7413.6 Openssl的ASN.1宏 7413.7 ASN1常用函数 7513.8 属性证书编码 89第十四章 错误处理 9314.1 概述 9314.2 数据结构 9314.3 主要函数 9514.4 编程示例 97第十五章 摘要与HMAC 10015.1 概述 10015.2 openssl摘要实现 10015.3 函数说明 10115.4 编程示例 10115.5 HMAC 103第十六章 数据压缩 10416.1 简介 10416.2 数据结构 10416.3 函数说明 10516.4 openssl中压缩算法协商 10616.5 编程示例 106第十七章 RSA 10717.1RSA引见 10717.2 openssl的RSA实现 10717.3 RSA签名与验证过程 10817.4 数据结构 10917.4.1RSA_METHOD 10917.4.2 RSA 11017.5 主要函数 11017.6编程示例 11217.6.1密钥生成 11217.6.2 RSA加解密运算 11317.6.3签名与验证 116第十八章 DSA 11918.1DSA简介 11918.2 openssl的DSA实现 12018.3 DSA数据结构 12018.4 主要函数 12118.5 编程示例 12218.5.1密钥生成 12218.5.2签名与验证 124第十九章DH 12619.1 DH算法引见 12619.2 openssl的DH实现 12719.3数据结构 12719.4 主要函数 12819.5 编程示例 129第二十章
2018/2/16 22:25:54 354KB openssl
1
本书以问答的方式组织内容,讨论了学习或使用C语言的过程中经常遇到的一些问题。
书中列出了C用户经常问的400多个经典问题,涵盖了初始化、数组、指针、字符串、内存分配、库函数、C预处理器等各个方面的主题,并分别给出了解答,而且结合代码示例阐明要点。
并且,给PFD文件添加了书签,便于阅读使用
2021/2/4 11:30:33 19.01MB 书签
1
本书全面讲述了C语言编程的相关概念和知识。
全书共17章。
第1、2章学习C语言编程所需的预备知识。
第3到15章介绍了C语言的相关知识,包括数据类型、格式化输入输出、运算符、表达式、流程控制语句、函数、数组和指针、字符串操作、内存管理、位操作等等,知识内容都针对C99标准;
另外,第10章强化了对指针的讨论,第12章引入了动态内存分配的概念,这些内容愈加适合读者的需求。
第16章和第17章讨论了C预处理器和C库函数、高级数据表示(数据结构)方面的内容。
附录给出了各章后面复习题、编程练习的答案和丰富的C编程参考资料。
本书适合希望系统学习C语言的读者,也适用于精通其他编程语言并希望进一步掌握和巩固C编程技术的程序员。
2015/1/16 9:18:11 356KB C Plus Plus(第五版) Primer
1
第一题:在可变分区管理方式下采用初次适应算法实现主存空间的分配和回收,采用空闲区说明表数据结构。
1,按下图从键盘输入并显示内存空间的分配现状,每个分区有四个数据项:起始地址,大小,状态,进程号。
起始地址和大小均以K(字节)为单位;
状态为“已分”或“空闲”;
进程号:若一分区是“已分”,则填上分得此分区的进程号;
若一分区是“空闲”,则填“?”;
第二题:采用可变式分区管理,使用最佳适应法实现主存空间的分配和回收,采用空闲区链数据结构。
该题与上题的程序流程基本相同,只是排序的方法不同:最佳适应法是按“空闲区”的大小从小到大排序。
不再重复说明。

2016/2/8 23:50:58 426KB 模拟内存分配程序
1
淘宝网的研发人员写的文档,对了解GNUC的内存分配机制有很大的协助!
2022/9/3 14:39:36 2.5MB glibc ptmalloc 内存管理 源代码分析
1
一、语言及软件环境:Java、Windows11,JDK1.8,IntelliJIDEA二、课程设计内容和要求:1、提交一批作业(>=10),按先来先服选择一部分作业(最多5个)进入内存。
2、为每个作业创建一个进程,并分配内存(用户内存:0—1024K,采用可变连续分配方式)。
3、进程调度功能(时间片轮转)。
4、随机阻塞进程,并在一段时间后唤醒进程(选做)。
5、显示相关信息:后备作业队列、内存分配情况、进程信息、完成作业情况。
6、这些功能要有机地连接起来。
三、设计需求分析:1、使用随机数初始化10个作业,放入到后备队列中,然后使用先来先服务(FCFS)进行作业调度,最多只能有5个作业同时进入内存。
2、假设阻塞状态的进程仍然在内存中,则处于就绪、运行,阻塞三种状态的进程总数目最多为5个,即并发进程总数最多为5个,在进程结束后,就会被调出内存,同时继续使用先来先服务算法从后备队列中调入新的作业。
3、在内存中的几个非阻塞状态的进程使用时间片轮转(RR)算法进行调度。
而作业在进入内存之前,先使用初次适应(FF)算法申请内存,从空闲分区链中找到合适的空闲分区并分配。
1
在日常工作中,钉钉打卡成了我生活中不可或缺的一部分。然而,有时候这个看似简单的任务却给我带来了不少烦恼。 每天早晚,我总是得牢记打开钉钉应用,点击"工作台",再找到"考勤打卡"进行签到。有时候因为工作忙碌,会忘记打卡,导致考勤异常,影响当月的工作评价。而且,由于我使用的是苹果手机,有时候系统更新后,钉钉的某些功能会出现异常,使得打卡变得更加麻烦。 另外,我的家人使用的是安卓手机,他们也经常抱怨钉钉打卡的繁琐。尤其是对于那些不太熟悉手机操作的长辈来说,每次打卡都是一次挑战。他们总是担心自己会操作失误,导致打卡失败。 为了解决这些烦恼,我开始思考是否可以通过编写一个全自动化脚本来实现钉钉打卡。经过一段时间的摸索和学习,我终于成功编写出了一个适用于苹果和安卓系统的钉钉打卡脚本。
2024-04-09 15:03 15KB 钉钉 钉钉打卡