分段与分页存储管理简单实现
下载需积分: 9 | TXT格式 | 13KB |
更新于2024-08-05
| 44 浏览量 | 举报
本文主要介绍了基本的分段和分页存储管理的概念,并通过简单的C语言代码实现来演示了这两种内存管理方式。文章中包含了创建、回收、查看进程以及内存分配的相关函数。
在计算机系统中,分页存储管理和分段存储管理是两种常见的内存管理策略,用于解决虚拟地址到物理地址的映射问题。
**分页存储管理**是将进程的逻辑地址空间划分为固定大小的页,而物理内存则被划分为同样大小的页框。每个进程都有一个页表,用于记录逻辑页号与物理页框号的对应关系。在分页系统中,当进程执行时,CPU会根据页表中的信息进行地址转换。在提供的代码中,`Create_Pagi()` 函数用于创建一个分页进程,它包括输入进程号、进程名称、页表等信息。`Revoke_Pagi()` 函数负责回收进程所占用的物理块,`Look_Pagi()` 和 `Show_Pagi()` 分别用于显示所有进程的物理块占用情况和查看特定进程的信息。
**分段存储管理**则是按照进程的逻辑结构,如函数、数据结构等,将进程划分为多个段,每个段有自己的名字和长度。段的大小可以不同,且每个段都有自己的段表,记录段号和物理地址的对应关系。在分段系统中,地址通常由段号和段内偏移量组成。在给出的代码中,`Create_Segm()` 函数创建分段进程,`Show_Segm()` 显示进程信息。然而,这部分的实现没有详细展示段表和地址转换的过程。
文章中还提到了`Suggest()`、`Dispatch()` 和 `Segme()` 函数,这些可能是用于提供用户交互或优化内存分配的建议,但具体实现并未给出。主界面 `main_s()` 作为整个程序的入口,负责调度这些功能模块。
这个简单的实现展示了分页和分段的基本思想,但实际操作系统中的内存管理远比这复杂,涉及到更高级的特性,如快表、页替换算法、段页式存储等。此外,实际的页表和段表通常由硬件支持,而不是像示例代码那样由软件完全模拟。
相关推荐
太阳iiiii
- 粉丝: 975
- 资源: 5
最新资源
- opc ua客户端,opcua客户端界面,C#源码.zip
- MyMovies:在MEAN堆栈上进行的实验
- ciphermate:旨在简化简单的加密解密哈希base64任务的实用程序
- p2.mockup:设想
- carpentries-manchester:SoftwareDataLibrary曼彻斯特大学的木工活动@
- 库存品公开招标公告范例
- PHP实例开发源码—php二线小说网源码.zip
- react-Learning-roadmap
- Cap-Stone-TTP_backend
- leetcode答案-LeetCodeByPython:由Python编写的LeetCode
- automatic_ordering_system
- DrawLine
- easycal:简单的周历jQuery插件
- UDF 源项,udf源项编程问题,C,C++源码.zip
- 美的校园招聘面试官培训方案
- App:用于管理国际象棋事件的主Web应用程序