第一章 操作系统简介
什么是操作系统
操作系统的定义
操作系统(Opearting System, OS)是一种复杂的 系统软件,是不同 程序代码、数据结构、数据初始化文件 的集合,可执行。
用户与硬件之间的接口
操作系统屏蔽了对硬件操作的细节,提供了计算机用户与计算机硬件之间的 接口,并且通过这个接口使 应用程序 的开发变得简单、高效。
操作系统必须完成的 目标:
- 操作系统 与硬件部分相互作用;
- 为运行在计算机上的 应用程序提供执行环境;
接口:硬件接口(USB接口) + 软件接口(C语言的
printf())
资源的管理者
现代计算机系统的一个重要特点就是支持 多任务,即允许在同一个系统内同时驻留多个应用程序。
操作系统是资源的管理者。包括:
- 处理机管理:决定把处理机先给哪个程序用,后给哪个程序用(CPU);
- 内存管理(存储管理):给程序分配内存空间(运行内存);
- 设备管理:完成怎么分配设备,分配给哪台设备,怎么和设备连接等(输入|输出设备,如:键盘、鼠标);
- 文件管理:为每个文件分配空间、建立目录,将数据写入外存(磁盘);
操作系统的发展
操作系统的 发展:
- 无操作系统;
- 单道 批处理系统;
- 多道程序系统:多道 批处理系统、分时 操作系统;
- 实时 操作系统;
- 微机 操作系统;
单道批处理系统
单道批处理系统 内存中只有一道作业,CPU和内存资源被用户作业 独占。

单道批处理系统的 特点:
- 自动性;
- 顺序性;
- 单道性;
单道批处理系统的 优点:减少了等待 人工操作 的时间。
单道批处理系统的 缺点:CPU资源 不能得到充分利用。
多道批处理系统
由操作系统的 作业调度程序 按一定策略从 后备作业队列 中选择 若干 个工作调入内存,使它们共享CPU和系统中的各种资源。

多道批处理系统的 特点:
- 调度性:进程调度、作业调度;
- 无序性;
- 多道性;
- 复杂性;
多道批处理系统的 优点:提高了 CPU、内存和IO设备 的利用率和系统的 吞吐量。
多道批处理系统的 缺点:
- 系统 平均周转时间 长;
- 缺乏 交互功能;
分时操作系统
允许 多个用户 通过终端机 同时使用 计算机,每个用户通过终端与主机交互时都能得到 快速响应。

分时操作系统的 特点:
- 多路性;
- 独立性;
- 及时性;
- 交互性;
分时操作系统的 优点:向用户提供了 人机交互的方便性,使多个用户可以通过不同的终端 共享主机。
补充:原理上是将一个时间间隔内进行切片,每个应用程序在每个切片内多次执行
实时操作系统
实时系统必须 及时响应 外部事件的请求,在规定时间内完成对该事件的处理。主要用于 实时控制 和 实时信息处理 领域。
实时计算的正确性不仅依赖于系统计算的 逻辑结果,还依赖于产生正确结果的 时间。
实时操作系统的 特点:
- 多路性;
- 独立性;
- 及时性;
- 交互性;
- 可靠性;
交互性:仅限于访问系统某些特定的专用服务程序。
操作系统的特征
现代操作系统支持 多任务,具有以下特性:
- 并发:两个或多个事件在 同一时间间隔 内发生;
- 共享:系统中的 资源 可供内存中 多个 并发执行的进程 共同使用;
- 虚拟:最常用 内存虚拟化,用户感觉到的内存大于实际内存;
- 异步性:进程以 不可预知的速度 向前推进;
并发与共享的关系是 相互依赖 的。
扩展知识点
并行:两个或多个事件 同时 发生。
互斥共享:任意 时刻 一种资源只能被一个进程访问。
同时共享:从 宏观 上看,资源可以被多个进程同时访问。
内存虚拟化:将 物理(内存条) 变成 逻辑(运行内存) 的过程。
操作系统的功能
操作系统的功能有 内存管理、进程管理、设备管理、文件管理 和 提供用户接口 等功能。
内存管理
内存管理的主要任务是为多道程序的运行提供良好的环境,方便用户使用内存,提高 内存的利用率,以及从 逻辑上扩充内存 以实现 虚拟存储。
内存管理的内容:内存分配、内存保护、地址映射、内存扩容。
内存分配
静态分配:先把内存划分成大小数量 固定 的区域,大小数量 不再变化。
动态分配:根据进程实际请求分配内存,大小数量 动态变化。
内存保护
内存保护的 主要任务:
- 使操作系统 内核的空间 不被用户随意访问,保证系统的安全和稳定;
- 确保 每道用户程序 都在 自己的内存空间 中运行,互不干扰;

地址映射
将 逻辑地址 映射为 物理地址 的过程。

内存扩充
虚拟技术:从 逻辑 上扩充内存容量,使系统能够向用户提供比物理内存大的存储容量。


进程管理
进程管理的 内容:
- 进程的描述与组织;
- 进程控制;
- 进程同步;
- 进程通信;
- 进程调度;
设备管理
设备管理主要完成用户的 I/O请求,为用户 分配I/O设备。
设备管理的 功能:
- 缓存管理;
- 设备分配;
- 设备处理;
- 设备独立性和虚拟设备;
文件管理
文件管理 功能:
- 文件存储空间的管理:为每个文件分配必要的 外存空间,提高 外存的利用率,并能有助于提高 文件访问的速度;
- 目录管理:建立 目录项,并对众多目录项进行有效组织。目录项包括:文件名、属性、大小、地址等;
- 文件的读、写管理和存取控制:根据用户的请求,从外存中读取数据 或 将数据写入外存。防止未经审核的用户进行文件的操作;
提供用户接口
用户接口的 分类:
- 命令接口;
- 图形用户接口;
- 程序接口;
命令接口
命令接口的 目的:为了便于用户与计算机系统的交互。
命令接口的 分类:联机 用户接口和 脱机 用户接口。
联机:命令接口由一组 键盘操作命令 和 命令解释程序 组成。
脱机:为批处理作业的用户提供,也称为 批处理用户接口。
图形用户接口
用户可以轻松地通过 选择窗口、菜单、对话框、滚动图、图标等 简单的操作来完成对作业和任务的提交和控制。
程序接口
向程序员提供应用操作与操作系统之间的接口,就是 系统调用。
操作系统的体系结构
操作系统的体系结构是操作系统作为一种 软件 的体系结构,对操作系统的可靠性、灵活性和可移植性等方面有重要影响。
操作系统的体系结构的 发展:
简单的监控程序模型
功能简陋,任意时刻系统中只能运行一个任务,保证了对系统信息的互斥访问,保护了系统数据的安全。
单体结构模型
所有的软件和数据结构都放置在一个逻辑模块中,对外层的用户程序提供一个完整的内核界面。
例子:unix、mx-dos、linux、macos、bsd
层次结构模型
基本思想是 将操作系统分解为多个小的、容易理解的层,系统功能被隔离在不同层中。
客户/服务器模型与微内核结构
核心思想是 核心功能外移,即把 传统操作系统内核中 的一些组成部门放到内核之外作为一个独立的服务器进程来实现:
- 出去:文件系统、网络和驱动程序;
- 保留:处理机调度、存储管理和消息通信;
例子:windows NT、COS-IX V2.3、Vxworks
动态可扩展结构
基本思想就是在运行过程中,能够 动态地实现 系统行为扩展的结构,也可称之为 弹性结构。
指令的执行
程序是指令的集合,程序的执行就是按照某种控制流执行指令的过程。
指令周期
一个 单一指令 需要的 处理 称为 指令周期。
一个指令周期可以划分为两个步骤,分别是 取指周期 和 执行周期。

程序计数器(PC)保存有 下一次 要取的指令的 地址。
取到 的指令被放置在 处理器 的 指令寄存器(IR)中。
取指令和执行指令
指令中包含确定处理器要采取动作的位,处理器解释指令并执行要求的动作。

这些动作可分为:
- 处理器与存储器 之间的 指令或数据传送 操作;
- 处理器与I/O设备 之间的 指令或数据传送 操作;
- 算术运算 操作或 逻辑运算 操作;
- 控制 操作,即 修改指令的执行顺序 的操作;