第 1 章 操作系统导论
操作系统是指控制和管理整个计算机系统的硬件与软件资源,合理地组织、调度计算机的工作与资源分配,进而为用户和其它软件提供方便接口与环境的程序集合。
操作系统的功能
资源分配器
操作系统是一直运行在计算机上的程序(通常称为内核)。
除了内核之外还有系统程序(与系统运行有关,但不属于内核)和应用程序(与系统运行无关)两类程序。
移动操作系统通常不只有内核也有中间件,是为应用程序开发人员提供其他功能的软件框架
计算机系统的组成
总线提供了共享内存访问
内存控制器协调访问内存
当计算机电源打开或重启以便开始运行时,它需要运行一个初始程序,该初始程序或引导程序(bootstrap program)一般位于计算机的固件(firmware),如只读内存(Read-Only Memory, ROM)或电可擦可编程只读内存(Electrically Erasable Programmable Read-Only Memory, EEPROM)。
初始程序初始化系统的各个组件,从 CPU 寄存器、 设备控制器到内存内容。
中断
中断处理7个步骤:
I/O
同步(Synchronous)I/O 和异步(Asynchronous)I/O:
直接存储(Direct Memory Access, DMA)
在高速设备上操作,比如硬盘
Block Device 块设备
Character Device 字符设备
计算机系统的体系结构
单处理器系统
多处理器系统
SMP 对称多处理器:所有处理器、寄存器、访问的内存是一样的,共享内存,主存只有一个
多核系统
核跟核之间的通信高效
NUMA
非统一内存访问
比较少见,多用在服务器上
操作系统的结构
多道程序设计
多道程序设计技术允许多个程序同时进入内存并允许它们在 CPU 中交替运行,这些程序共享系统中的各种硬/软件资源。
多道程序系统的内存分布
通过安排作业(编码与数据)使得 CPU 总有一个执行作业,从而提高 CPU 利用率
多道程序设计的特点:多道、宏观上并行、微观上串行
多道程序设计的优点:资源利用率高、系统吞吐量大
多道程序设计的缺点:用户响应时间较长、不提供人机交互能力
分时(多任务)系统
多道程序的自然延申
分时技术把处理器的运行时间分成很短的时间片,按时间片轮流把处理器分配给各联机作业使用
分时操作系统是指多个用户通过终端同时共享一台主机,这些终端连接在主机上,用户可以同时与主机进行交互操作而互不干扰。
- 分时系统的主要特征:
- 同时性
- 交互性
- 独立性
- 及时性
操作系统的执行
双重模式与多重模式的执行
为了确保操作系统的正确运行,必须区分操作系统代码和用户代码的执行,大多计算机系统采用硬件支持以区分各种执行模式。
用户模式(user mode):在用户模式下,代码没有对硬件的直接控制权限,也不能直接访问地址的内存。程序是通过调用系统接口(System APIs)来达到访问硬件和内存。在这种保护模式下,即使程序发生崩溃也是可以恢复的
内核模式(kernel mode):在内核模式下,代码具有对硬件的所有控制权限。可以执行所有CPU指令,可以访问任意地址的内存。内核模式是为操作系统最底层、最可信的函数服务的。在内核模式下的任何异常都是灾难性的,将会导致整台机器停机
当用户应用通过系统调用,请求操作系统服务时,系统从用户模式切换到内核模式以满足请求
用户模式切换到内核模式的方式:中断、陷阱或系统调用
双重模式执行提供保护手段,以便防止操作系统和用户程序受到错误用户程序的影响。
- 特权指令规定程序具有某种特权才能运行,有以下几种:
- 允许和禁止中断,控制中断禁止屏蔽位
- 在进程间切换处理
- 存取用于主存保护的寄存器
- 执行 I/O 操作
- 停止一个中央处理器的工作
- 修改设备状态表中的条目
- 清理内存
- 设置时钟
- 建立存储键
- 加载 PSW