一、操作系统的功能
操作系统位于计算机用户与计算机硬件之间。操作系统的目的时提供操作环境,以便用户能够便捷而高效地执行程序。同时,操作系统时管理计算机硬件的软件。
从用户视角来看,操作系统设计的主要目的是用户使用方便,次要的是性能,不在乎的是资源利用。当然,性能对用户来说也重要,不过这种系统优化的重点是单个用户的体验而不是多个用户的需求。
从计算机的角度来看,操作系统是与硬件紧密相连的程序。因此,可将操作系统看作资源分配器。为了解决问题,计算机系统可能具有许多资源:CPU时间、内存空间、文件存储空间、I/O设备等。操作系统管理这些资源。面对许多甚至冲突的资源请求,操作系统应考虑如何为各个程序和用户分配资源,以便计算机系统能有效且公平地运行。
二、操作系统的定义
操作系统一直运行在计算机上的程序通常称为内核态(Kernel)。除了内核外,还有其他两类程序:系统程序和应用程序。前者是与系统运行有关的程序,但不是内核的一部分;后者是与运行无关的所有其他程序。
先在的移动设备的操作系统不只有内核,还有中间件(middleware)。中间件为应用程序开发人员提供其他功能的软件框架。例如,最常见的两个移动操作系统,Apple的iOS和Google的Android,除了内核外,都有中间件以便支持数据。
程序运行有两种状态:
- 用户态:权限受限,无法完整执行操作系统。
- 内核态:可以完全控制整个计算机操作系统。
为什么应用程序不能直接访问外设呢?
- 在计算机中,内核是被信任的第三方。
- 只有内核可以执行特权指令。
- 为了方便应用程序。
三、操作系统的基本概念
系统调用:应用程序主动向操作系统发出服务请求。
异常:非法指令或者其他坏的处理状态。
中断:来自不同的硬件设备的计时器和网络的中断。
中断可分为硬件中断和软件中断。
硬件中断:
- 设置中断标记(CPU初始化)
将内部、外部时间设置中断标记
中断事件的ID
软件中断:
- 保存当前状态
- 中断服务程序处理
- 清除中断标记
- 恢复之前的处理状态
跨越操作系统边界的开销
在执行时间上的开销超过程序调用
开销:
- 建立中断/异常/系统调用号于对应服务例程映射关系的初始化开销
- 建立内核堆栈
- 验证参数
- 内核态映射到用户态的地址空间更新页面映射权限
- 内核态独立地址空间TLB
四、操作系统划分
由于操作系统较为复杂,需要划分为多个模块进行学习。
- 内存管理
- 进程管理
- CPU调度
- 同步机制
- 文件系统管理