3.1 操作系统(Operating Systems)

2022-10-02
2分钟阅读时长

3.1.1 操作系统简史

OS 简史

3.1.2 OS 特性

多任务处理(multitasking)

在运行 I/O 相关程序等待调用相关外部设备时,先将程序休眠运行另一个程序,等待 I/O 操作结束后标记为“可继续运行”,在之后某时刻安排给 CPU 执行,实现多个程序的同时运行,在单个 CPU 上共享时间。

内存管理(Memory Allocation)

多任务处理使得每个程序都会占用一些内存,为保证切换程序时相关数据不丢失,我们可以为每个程序分配专属内存块。

当某个程序需要更多内存,则继续向操作系统请求。OS 会决定是否同意分配、分配哪些内存块。这导致程序所分配到的内存可能是非连续的,程序员难以跟踪使用,因此 OS 会将内存地址虚拟化(virtualize),称为「虚拟内存」(Virtual Memory)。

使用虚拟内存后,OS 会自动处理虚拟内存和物理内存之间的映射,程序可以假定自己所分配到的内存总是从地址 0 开始。

memory allocation

以程序 A 和 B为例:B 分配到的内存地址是 1000 到 1999,但对于程序而言,它所看到的地址是 0~999;而对于程序 A 而言,第二次请求分配后,它有了 2000 个连续地址的内存,但实际上第二次分配的物理地址是 2000~2999。

受保护内存(Memory Protection)

为不同程序分块分配专属内存范围,将其各自隔离同时也可以实现对内存的保护,在防止恶意软件(如病毒)入侵时很有帮助,这样带病毒的程序只会损害自己的内存。