操作系统
概述
操作系统是一种复杂的系统软件,是不同程序代码、数据结构、数据初始化文件的集合。
目标:承上启下
- 操作系统与硬件部分的相互作用
- 为运行在计算机上的应用程序提供执行环境
主要作用
- 支持多任务
- 作为资源的管理者
核心功能
1. 处理机管理
- 决定把处理机先给哪个程序用,后给哪个程序用
- 主要包括:
- 进程的描述与组织
- 进程控制
- 进程同步
- 进程通信及进程调度
2. 内存管理
- 给程序分配内存
主要功能:
-
内存分配
- 静态分配:先把内存划分成大小数量固定的区域,大小数量不再变化
- 动态分配:根据进程实际请求分配内存,大小数量动态变化
-
内存保护
- 使操作系统内核空间不会被用户随意访问,以保证系统的安全和稳定
- 确保每道用户程序都在自己的内存空间中运行,互不干扰
-
地址映射
-
内存扩充
3. 设备管理
- 完成设备分配、选择和连接等任务
- 主要完成用户的 I/O 请求,为用户分配 I/O 设备
主要功能:
- 缓冲管理:管理各种缓冲区
- 设备分配:分配用户 I/O 所需要的设备
- 设备处理:由设备驱动程序来实现 CPU 与设备控制器之间的通信
- 设备独立性和虚拟设备:
- 设备独立性功能使应用程序独立于设备
- 虚拟设备:把一个物理设备变换为多个对应的逻辑设备,使一个物理设备能供多个用户共享
4. 文件管理
- 为每个文件分配空间,建立目录,对目录进行组织管理
- 根据用户请求从外存储读取数据或将数据写入外存
主要功能:
- 文件存储空间的管理
- 目录管理
- 文件的读、写管理和存取控制
5. 网络管理
- 网卡管理
- 带宽管理
用户接口
为了方便用户使用操作系统,操作系统向用户提供了用户与操作系统之间的接口。
1. 命令接口
目的:为了便于用户与计算机系统的交互
- 联机:常命令接口由一组键盘操作命令和命令解释程序组成
- 脱机:为批处理作业的用户提供,也称为批处理用户接口
2. 图形用户接口
用户可以通过选择窗口、菜单、对话框、滚动条、图标等简单的操作来完成对作业和任务的提交与控制。
3. 程序接口
向程序员提供应用程序与操作系统之间的接口,即系统调用。
操作系统发展历史
1. 单道批处理系统
内存中只有一道作业,CPU 和内存资源被用户作业独占。
特点:
- 自动性
- 顺序性
- 单道性
优点:
- 减少了等待人工操作的时间
缺点:
- CPU 资源不能得到充分利用
2. 多道批处理系统
有操作系统的作业调度程序按一定策略从后备作业队列中选择若干个作业调入内存,使它们共享 CPU 和系统中的各种资源。
特点:
- 多道性
- 无序性
- 调度性
- 复杂性
优点:
- 能提高 CPU、内存、I/O 设备的利用率和系统的吞吐量
缺点:
- 系统平均周转时间长
- 缺乏交互能力
3. 分时操作系统
允许多个用户通过终端机同时使用计算机,每个用户通过终端与主机交互时都能得到快速响应。
特点:
- 多路性
- 独立性
- 及时性
- 交互性
优点:
- 向用户提供了人机交互的方便性
- 使多个用户可以通过不同的终端共享主机
4. 实时操作系统
实时系统必须及时响应外部事件的请求,在规定时间内完成对该事件的处理,主要用于实时控制和实时信息处理领域。
特点:
- 多路性
- 独立性
- 及时性
- 交互性
- 可靠性
现代操作系统产品现状
| 操作系统 | 运行主体 | 提供服务 |
|---|---|---|
| 主机操作系统 | 大型主机 | 批处理、事务处理、分时处理 |
| 服务器操作系统 | 网络服务器 | 通过网络为众多用户服务,允许用户共享硬件和软件资源。服务器可提供打印服务、文件服务、Web 服务 |
| 微机操作系统 | 微型计算机 PC 机 | 为单个用户提供良好的应用环境和应用软件开发环境 |
| 嵌入式操作系统 | 嵌入式设备中 | 采用更易于移植的方法,以适应越来越多的新处理器 |
现代操作系统特征
多任务特性
具有并发、共享、虚拟和异步性的特征:
- 并发:两个或者多个事件在同一时间间隔发生
- 共享:系统中的资源可供内存中多个并发执行的进程共同使用
- 互斥共享:任意时刻一种资源只能被一个进程访问
- 同时共享:从宏观上看,资源可以被多个进程同时访问
- 虚拟:最常用内存虚拟化,用户感觉的内存大于实际内存
- 异步:进程以不可预知的速度向前推进
注:并发与共享的关系是相互依赖的
扩展概念:
- 并行:多个事件在同一时间同时发生
操作系统的体系结构
1. 简单的监控程序模型
- 功能简陋,任意时刻系统中只能运行一个任务
- 保证了对系统信息的互斥访问,保护了系统数据的安全
2. 单体结构模型
- 所有的软件和数据结构都放置在一个逻辑模块中
- 对外层的用户程序提供一个完整的内核界面-系统调用
3. 层次结构模型
- 基本思想是将操作系统分解为多个小的、容易理解的层
- 系统功能被隔离在不同层中
4. 客户/服务器模型与微内核结构
- 核心思想是核心功能外移
- 把传统操作系统内核中一些组成部分发到内核之外作为一个独立的服务器进程来实现
5. 动态可扩展结构模型
- 基本思想就是在运行过程中,能够动态地实现系统行为扩展的结构
- 也可称为弹性结构
指令系统
程序是指令的集合,程序的执行就是按照某种控制流执行指令的过程。
指令周期
- 一个单一指令需要的处理称为指令周期
- 一个指令周期可以划分为两个步骤:
- 取指周期
- 执行周期
指令执行
- 程序计数器(PC)保存有下一次要取的指令的地址
- 取到的指令被放置在处理器的指令寄存器(IR)中
- 指令中包含确定处理器要采取动作的位
- 处理器解释指令并执行要求的动作