The Abstraction: Address Spaces
1. Early Systems
在早期系统时代,操作系统和程序都存储在实际的物理地址中。
2. Multiprogramming and Time Sharing
为了提高efficiency,人们尝试用一台机器处理多个程序,进而引入了time sharing。
3. The Address Space
为了 easy to use,就对address space做了抽象处理。
stack:跟踪程序在函数调用链中的位置,以及分配局部变量,在例程之间传递参数以及返回值。
heap:用于动态分配用户管理的内存。
4. Goals
transparency:操作系统分配给程序的地址应该是虚拟地址,但是程序自己会以为自己被分配的地址是独一无二的。
efficiency:操作系统尽最大努力达到时间和空间都是高效的。
protection:操作系统不允许一个程序能够访问另一个程序内部成员。
5. Homework(Code)
5.1 Question & Answer
1.
Mem:内存使用情况。
Swap:交换空间使用情况。
total:总计物理内存大小。
used:已被使用的物理内存大小。
free:可用物理内存。
shared:多个进程共享的内存总额。
buff/cache:被buf/cache使用的物理内存大小。
available:还可以被应用程序使用的物理内存大小。