OS 操作系统简介
操作系统的概述
操作系统(OS - Operating System):是一种复杂的 系统软件,是不同程序代码、数据结构、数据初始化文件的集合,可执行。提供了计算机用户与计算机硬件之间的接口,并管理计算机软件和硬件资源。
- 操作系统的主要目标:
- 与硬件部分相互作用,为包含在硬件平台上的所有底层可编程部件提供服务。
- 为运行在计算机系统上的应用程序提供执行环境。
- 操作系统的主要功能:
- 处理机管理。
- 内存管理。
- 设备管理。
- 文件管理。
- 相关概念
- 程序:是指令的集合,程序的执行是 CPU 依次、逐条执行指令的过程。
- 吞吐量:是指单位时间内计算机系统处理的作业量。
操作系统的发展
无操作系统
第一代计算机(1945~1955年)使用 电子管 作为主要的电子器件,用插板上的硬连线或穿孔卡片来表示程序,没有用来存储程序的内存,无操作系统,代表为 ENIAC。
单道批处理系统
第二代计算机(1955~1965年)使用的主要电子器件是 晶体管,开始使用磁性存储设备,内外存容量增加,计算机运算速度提高,出现了早期的单道批处理系统。
多道程序系统
计算机开始采用 集成电路芯片 作为主要的电子器件,IBM 360 是第一个采用小规模集成电路芯片的主流机型。OS/360 是 IBM 开发的第一个多道程序系统。
微机操作系统
实时操作系统
实时计算的正确性不仅依赖于系统计算的逻辑结果,还依赖于产生正确结果的时间。
实时系统可以使用操作系统,也可以不用操作系统。在高端的实时系统中通常都有高可靠性和支持实时资源调度的实时操作系统(RTOS - Real-Time Operating System)。VxWorks 操作系统是美国 WindRiver 公司于 1983 年设计开发的一种嵌入式实时操作系统;Linux 系统也支持实时性。
各种系统的特点
- 单道批处理系统的特点:
- 自动性。
- 顺序性。
- 单道性。
- 多道批处理系统的特点:
- 多道性。
- 无序性。
- 调度性:多道程序系统必须具有作业调度和进程调度功能。
- 复杂性。
- 分时系统的特点:
- 多路性。
- 独立性。
- 及时性。
- 交互性。
- 实时系统的特点:
实时系统主要用于实时控制和实时信息处理领域。
- 多路性。
- 独立性。
- 及时性。
- 交互性。
- 可靠性。
操作系统现状
- 主要操作系统:是运行在大型主机上的操作系统,主要提供三类服务:批处理、事物处理和分时处理。一个大型主机操作系统同时具有批处理、事务处理和分时处理的功能。IBM 的 OS/360 和 OS/390 是典型的大型主机操作系统。
- 服务器操作系统:运行在网络服务器上的操作系统,通过网络为用户提供服务,允许用户共享硬件和软件资源。服务器操作系统有 Solaris、FreeBSD、Linux 和 Windows Server 200X。
- 微机操作系统:也称个人操作系统,为单个用户提供良好的应用环境和软件开发环境。微机系统有 Windows 的个人计算机操作系统系列、Linux 的不同发行版、Macintosh 和 ChromeOS 等。
- 嵌入式操作系统:概念出现在 20 世纪 70 年代,是宿主于非计算机设备中的计算机系统。运行于嵌入设备中的操作系统。具有代表性的有 VxWork、QNX、WinCE 和 Android 等。在物联网快速发展的情况下,出现了物联网操作系统。
嵌入式操作系统特点:
- 小巧。
- 实时性。
- 可装卸。
- 代码固化。
- 弱交互性。
- 强稳定性。
- 接口统一。
- 低能耗。
操作系统的特征
- 并发:是指两个或多个事件在同一时间间隔内发生。
- 共享:是指系统中的资源可供内存中多个并发执行的进程共同使用。资源共享有两种方式,即互斥共享和同时共享。
- 虚拟:指通过某种技术把一个物理实体变成若干个逻辑上的对应物。
- 异步:现代操作系统需要很好地处理异步事件。
操作系统的功能
内存管理
内存管理的主要任务是为多道程序的运行提供良好的环境,方便用户使用内存,提高内存的利用率,以及从逻辑上扩充内存以实现虚拟存储。
- 内存分配:
内存分配的主要任务是为每道程序分配内存空间,使它们各得其所。提高存储器的利用率,以减少不可用的内存空间。
内存分配方式:
- 静态分配方式:把内存划分成固定大小的和数据一定的区域,在系统运行过程中各分区的大小和数量不再变化。
- 动态分配方式:在系统运行过程中,根据进程的请求分配内存,内存中分区的大小和数量都是动态变化的。
实现内存分配,需要以下数据结构和功能的支持:
- 用于内存分配的数据结构。
- 内存分配功能。
- 内存回收功能。
- 内存保护:
内存保护的任务:
- 使操作系统内核的空间不会被用户随意访问,以保证系统的安全和稳定。
- 确保每道用户程序都在自己的内存空间运行,互不干扰。
- 地址映射:
逻辑地址:CPU 执行程序过程中访问内存是地,通常会形成若干个目标程序,这些目标程序再经过链接而形成可装入程序。这些程序中指令和数据的地址都是相对于编译链接后的机器代码程序的起始地址计算的,由这些地址所形成的地址范围称为地址空间,其中的地址称为逻辑地址。
物理地址:由内存中的一系列单元所限定的地址范围称为内存空间,其中的地址称为物理地址,CPU 访问内存需要将物理地址送入地址总线,以选中要访问的内存单元。
地址映射:在多道程序中,地址空间中的逻辑地址和内存中的物理地址是不一致的。因此,存储器管理必须提供地址映射功能,以将逻辑地址转换为对应的物理地址。地址映射在硬件的支持下完成。
- 内存扩充:
内存扩充的任务是借助于虚拟技术,从逻辑上扩充内存容量,使系统能够向用户提供比物理内存大的存储容量。
为了能从逻辑上扩充内存,系统必须具有内存扩充机制,以实现下列功能:
- 请求调入功能。
- 转换功能。
进程管理
进程可以被认为是程序的执行实体。进程管理的功能主要包括进程的描述与组织、进程控制、进程同步、进程通信及进程调用。
设备管理
设备管理主要完成用户的 I/O 请求,为用户分配 I/O 设备。为了完成这些任务,设备管理具有以下功能:
- 缓冲管理。
- 设备分配。
- 设备处理。
- 设备独立性和虚拟设备。
文件管理
- 文件存储空间的管理。
- 目录管理。
- 文件的读、写管理和存取控制。
提供用户接口
系统调用是操作系统实现的具有某种功能的程序模块,应用程序可以通过系统调用的接口使用操作实现的功能,获得操作系统内核的服务。
- 命令接口:
- 联机用户接口:由一组键盘操作命令和命令解释程序组成。
- 脱机用户接口:为批处理作业的用户提供的,也称批处理用户接口。
- 图形用户接口:20 世纪 90 年代在操作系统中引入图形化用户接口。
- 程序接口:操作系统提供给程序员的接口是 系统调用。
操作系统的体系结构
软件体系结构简介
软件体系结构是一个复杂软件系统的高层结构,为软件系统提供一个结构、行为和属性的高级抽象,包括系统元素的结构、元素间的相互关系,以及指导元素集成的模式和约束三个方面。
操作系统体系结构的分析
- 简单的监控程序模型:
- 单体结构模型:
- 层次结构模型: