什么是内存
《操作系统的存储结构》一文讲过,内存是现代计算机系统执行的中心。内存是一个大的字节数组,大小从数十万到数十亿。每个字节都有地址。内存是个快速访问的数据仓库,并为 CPU 和 I/O 设备所共享。中央处理器在获取指令周期时从内存中读取指令,而在获取数据周期时对内存数据进行读写(在冯•诺依曼架构上)。
内存一般是 CPU 所能直接寻址和访问的、唯一的、大容量的存储器。例如,如果 CPU 需要处理磁盘数据,那么这些数据必须首先通过 CPU 产生的 I/O 调用传到内存。同样,如果 CPU 需要执行指令,那么这些指令必须在内存中。
如果一个程序需要执行,那么它必须映射到绝对地址,并且加载到内存。随着程序执行,进程可以通过产生绝对地址来访问内存的程序指令和数据。最后,程序终止,它的内存空间得以释放,这样下一个程序可以加载并得以执行。
为改进 CPU 的利用率和用户的计算机响应速度,通用计算机应在内存中保留多个程序,这就需要内存管理。内存管理的方案有许多。这些方案会有各种具体方法,所有特定算法的效率取决于特定情景。在选择某个特定系统的内存管理方案时,必须考虑许多因素,尤其是系统的硬件设计。每个算法都要求特定的硬件支持。
操作系统负责内存管理的以下活动:
内存一般是 CPU 所能直接寻址和访问的、唯一的、大容量的存储器。例如,如果 CPU 需要处理磁盘数据,那么这些数据必须首先通过 CPU 产生的 I/O 调用传到内存。同样,如果 CPU 需要执行指令,那么这些指令必须在内存中。
如果一个程序需要执行,那么它必须映射到绝对地址,并且加载到内存。随着程序执行,进程可以通过产生绝对地址来访问内存的程序指令和数据。最后,程序终止,它的内存空间得以释放,这样下一个程序可以加载并得以执行。
为改进 CPU 的利用率和用户的计算机响应速度,通用计算机应在内存中保留多个程序,这就需要内存管理。内存管理的方案有许多。这些方案会有各种具体方法,所有特定算法的效率取决于特定情景。在选择某个特定系统的内存管理方案时,必须考虑许多因素,尤其是系统的硬件设计。每个算法都要求特定的硬件支持。
操作系统负责内存管理的以下活动:
- 记录内存的哪部分在被使用以及被谁使用;
- 决定哪些进程(或其部分)会调入或调出内存;
- 根据需要分配和释放内存空间;
所有教程
- socket
- Python基础教程
- C#教程
- MySQL函数
- MySQL
- C语言入门
- C语言专题
- C语言编译器
- C语言编程实例
- GCC编译器
- 数据结构
- C语言项目案例
- C++教程
- OpenCV
- Qt教程
- Unity 3D教程
- UE4
- STL
- Redis
- Android教程
- JavaScript
- PHP
- Mybatis
- Spring Cloud
- Maven
- vi命令
- Spring Boot
- Spring MVC
- Hibernate
- Linux
- Linux命令
- Shell脚本
- Java教程
- 设计模式
- Spring
- Servlet
- Struts2
- Java Swing
- JSP教程
- CSS教程
- TensorFlow
- 区块链
- Go语言教程
- Docker
- 编程笔记
- 资源下载
- 关于我们
- 汇编语言
- 大数据
- 云计算
- VIP视频