计算机体系结构/内存分层体系
操作系统是如何管理物理内存?
- 计算机体系结构/内存分层体系(操作系统如何有效的管理硬件内存)
- 地址空间 & 地址生成(操作系统是怎么和程序的编译、执行过程交互的)
- 连续内存分配 (操作系统如何有效的管理连续的内存分配)
计算机体系结构/内存分层体系
- 计算机体系结构
- 内存分层体系
- 在操作系统的内存管理范例
计算机体系结构主要分为三个部分,CPU,内存,设备(I/O)。CPU的作用是控制程序的执行,内存
放置了程序运行的代码和数据,外设配合程序完成更多的功能。
需要将CPU访问的物理内存有效的管理起来,不单单包括了主存还包括了其他方面
CPU访问的数据包含很多类,如图:
虚拟化地址空间-地址映射
抽象
应用程序通过访问抽象的逻辑地址空间,由操作系统映射成实际的物理空间,而不必考虑琐碎的底层实现的细节。
保护
为了避免程序访问别的程序的地址空间造成破坏,在内存中需要保护程序访问的地址空间,通过隔离使得程序有各自独立的地址空间,隔离机制的实现是靠操作系统来完成的。
共享
进程间需要进行交互,如何实现共享的空间,让进程安全、可靠、有效的进行消息的传递。
虚拟化
以时间换空间更加有效的利用有限的物理内存更大的利用资源。让最需要内存的程序获得他所需要的内存空间,让暂时不需要的程序存储在磁盘上,通过缺页中断的机制来完成相应的功能。
管理内存的不同方法
- 程序重定位
- 分段
- 分页
- 虚拟内存
- 按需分页虚拟内存