OS

导论

Operating System Notes

Posted by AH on April 18, 2020

第1章 导论

1.1 操作系统做什么

计算机系统可以大致分为4个组成部分:

  1. 计算机硬件(e.g. CPU、内存、I/O): 为系统提供基本的计算资源

  2. 操作系统: 控制和协调各用户的应用程序对硬件的使用

  3. 系统程序与应用程序(e.g. 字处理程序、电子制表软件、编译器、网络浏览器):规定了用户按何种方式使用这些资源

  4. 用户: 不仅包括人,还包括机器和其它电脑

1.1.1 用户视角

  • PC用户:

工作/游戏

-> 使用方便,性能次要,不在乎资源使用率

  • 大型机/小型机终端用户:

共享资源并交换信息

-> 资源使用要优化,且确保没有用户使用超出其权限以外的资源

  • 工作站用户:

不但可以使用专用的资源,而且可以使用共享资源,如网络和服务器及文件、计算和打印服务器

-> 个人使用性能和资源利用率的折中

  • 手持计算机用户:

受电源、速度和接口所限,只能执行相对较少的远程操作

-> 方便个人使用,以及如何在有限的电池容量中发挥最大的效用

  • 嵌入式系统计算机用户:

无需用户干预就能自行运行,无用户观点

1.1.2 系统视角

操作系统是资源分配器

1.1.3 定义操作系统

操作系统是一直运行在计算机上的程序(内核),其他程序为系统程序和应用程序

内核的功能:

进程管理、内存管理、存储管理

现在移动设备的操作系统除内核外还包含中间件middleware,提供包括数据库、图形处理、多媒体等功能

1.2 计算机系统组织

1.2.1 计算机系统操作

  • 一个或多个CPU和若干设备控制器通过共同的总线相连

  • 总线提供对共享内存的访问

  • 每个设备控制器负责一种特定类型的设备

  • CPU和设备控制器并发工作,并竞争内存周期

  • 内存控制器协调对内存的访问

开机过程:

  • 开机时先运行引导程序bootstrap program,位于ROM或EEPROM中(只读,称为固件)

  • 执行第一个进程,等待事件发生

中断:

  • 调用一个通用子程序检查终端信息

  • 子程序(通过指针表)调用相应中断处理程序

    指针表通常位于低地址内存,这种数组/中断向量可通过唯一设备号来索引

1.2.2 存储结构

DRAM:内存

SRAM:CPU cache

1.2.3 I/O结构

DMA:

I/O和内存间(不经过CPU)直接传输数据

可能丢失数据

1.3 计算机系统体系结构

1.3.1 单处理器系统

有一个主CPU执行一个通用指令级,还有其他专用设备处理器运行受限的指令级

使用专用处理器很常见,不会将一个单处理器系统变成多处理器系统

如果只有一个通用CPU,系统则为单处理器系统

1.3.2 多处理器系统

优点:

  1. 增加吞吐量(但加速比达不到N)

  2. 规模经济

共享外设、大容量存储和电源供给

  1. 增加可靠性

非对称多处理:主-从关系

对称多处理:每个处理器都要完成操作系统中的所有任务