操作系统引论

  • 该系列博文主要是针对操作系统课程中的一些知识点进行梳理。
  • 更多地是介绍相关概念,后续会结合部分代码介绍
  • 操作系统系列之一

第一章 操作系统引论

1.1 操作系统的目标及作用

1.1.1 操作系统的概念

  • An Operating System is a program that managers the computer hardware provides a basis for application programs acts as an intermediary between the computer user and the computer hardware
  • OS is a resource allocator Manages all resources Decides between conflicting requests for efficient and fair resource use
  • OS is a control program Controls execution of programs to prevent errors and improper use of the computer
  • 操作系统定义:操作系统是位于硬件层(HAL)之上,所有其它系统软件层之下的一个系统软件。其主要作用是管理好这些设备,提高它们的利用率和系统的吞吐量,并为用户和应用程序提供一个统一的接口,便于用户使用。

1.1.2 操作系统的位置

  • 位于硬件层(HAL)之上,所有其它系统软件层之下的一个系统软件
    image

1.1.3 操作系统的目标

  • 有效性:操作系统允许以更有效的方式使用计算机系统资源。(提高系统资源利用率、提高系统的吞吐量)
  • 方便性:操作系统使计算机更易于使用。
  • 可扩充性:在操作系统中,允许有效地开发,测试和引进新的系统功能。
  • 开放性:实现应用程序的可移植性和互操作性,要求具有统一的开放的环境。

1.1.4 操作系统的作用

  • OS 看做是用户与计算机硬件系统之间的接口。

含义:OS 处于用户与计算机硬件系统之间,用户通过OS来使用计算机系统。

image
  • OS作为计算机系统资源的管理者
    • 从资源管理的观点看,则可把OS视为计算机系统资源的管理者。

处理机管理
存储器管理
I/O设备管理
文件管理

  • OS实现了对计算机资源的抽象
    对于一个完全无软件的计算机系统(即裸机),它向用户提供的是实际硬件接口(物理接口),用户必须对物理接口的实现细节有充分的了解,并利用机器指令进行编程,因此很难使用。

通过OS的I/O管理实现了对计算机资源的抽象,帮助用户对硬件资源的使用和管理。

1.2 操作系统的发展历程 *(了解)

  • 操作系统的产生
    • 手工操作阶段
    • 成批处理阶段
    • 执行系统阶段
  • 操作系统的完善
    • 多道批处理系统
    • 分时系统
    • 实时处理系统
    • 通用操作系统
  • 操作系统的发展
    • 计算机网络的出现
    • 微型计算机的普及
    • 极强的计算和处理能力
    • 微内核操作系统
    • 多核操作系统

1.2.1 无操作系统的计算机系统

1.2.1.1 人工操作方式(20世纪50年代)
  • 人工控制
1.2.1.2 脱机输入/输出方式
  • 在一台外围机的控制下,把纸带(卡片)上的数据(程序)输入到磁带上。当CPU需要这些程序和数据时,再从磁带上将其高速地调入内存。

1.2.2 单道批处理系统

系统对作业的处理都是成批进行的,且在内存中始终仅存一道作业运行,运行结束或出错,才自动调另一道作业运行,故称为单道批处理系统。

image
  • 单道批处理系统主要特征:自动性、顺序性、单道性。
  • 优点:减少人工操作,解决了作业的自动接续。
  • 缺点:平均周转时间长,没有交互能力。

1.2.3 多道批处理系统

在内存中存放多道作业运行,运行结束或出错,自动调度内存中的另一道作业运行。多道程序。

  • 主要特征:多道性、无序性、调度性(进程调度和作业调度)。
  • 优点:
    • 提高CPU的利用率。
    • 提高内存和I/O设备利用率。
    • 增加系统吞吐率。
  • 缺点:平均周转时间长,没有交互能力。
  • 需要解决的问题:
    • 处理机管理:分配和控制CPU。
    • 存储器管理:为每道程序分配必要的内存空间。
    • I/O设备管理:I/O设备的分配与操纵。
    • 文件管理:文件的存取、共享和保护。
    • 作业管理:如何组织作业运行。

1.2.4 分时操作系统 (重要)

分时系统是指在一台主机上连接了多个带有显示器和键盘的终端,同时允许多个用户通过自己的终端,以交互方式使用计算机,共享主机中的资源。

  • 分时系统能很好地将一台计算机提供给多个用户同时使用,提高计算机的利用率。还可以满足用户对人---机交互的需求。
  • 它被经常应用于查询系统中,满足许多查询用户的需要。
  • 特点:
    • 多路性:一个主机与多个终端相连;
    • 交互性:以对话的方式为用户服务;
    • 独占性:每个终端用户仿佛拥有一台虚拟机。
    • 及时性:用户的请求能在很短的时间内获得响应。

1.2.5 实时操作系统 (重要)

所谓实时系统:是计算机及时响应外部事件的请求,在规定的时间内完成对该事件的处理,并控制所有实时设备和实时任务协调一致的运行。

  • 实时系统的特征:
    • 多路性:能对多个对象进行控制。
    • 独立性:独立运行,不混淆,不破坏。
    • 交互性:仅限于访问系统中某些特定的专用服务程序。
    • 可靠性:高可靠性,应具有过载防护能力。
    • 及时性:不同的系统要求不一样,控制对象必须在截止时间内完成。

1.2.6 微机操作系统

配置在微型机上的操作系统称为微机操作系统。

1.单用户单任务操作系统
2.单用户多任务操作系统
3.多用户多任务操作系统

1.3 操作系统的基本特性 (重要)

  • 现代OS的四个基本特征:
      1. 并发性
      1. 共享性
      1. 虚拟性
      1. 异步性

并发是最重要的特征,其它特征都以并发为前提。

1.3.1 并发性

  • 并行性:是指两个或多个事件在同一时刻发生。
  • 并发性:是指两个或多个事件在同一时间间隔内发生。

在多道程序环境下,并发性是指在一段时间内,宏观上有多个程序在同时运行,但在单处理机系统中,每一时刻却仅能有一道程序执行,故微观上这些程序只能是分时地交替执行。

1.3.2 共享

共享:是指系统中的资源可供内存中多个并发执行的进程共同使用。

1.3.2.1 互斥共享
  • 把在一段时间内只允许一个进程访问的资源,称为临界资源。
  • 系统中的临界资源可以提供给多个进程使用,但一段时间内仅允许一个进程使用,称为互斥共享方式。
1.3.2.2 同时访问方式
  • 一段时间内,多个进程可以同时使用这个资源。
  • 从微观上看,多个进程交替互斥地使用系统中的某个资源。例如磁盘。

1.3.3 虚拟性

虚拟:是指通过某种技术把一个物理实体变为(映射为)若干个逻辑上的对应物,用于实现虚拟的技术称为虚拟技术。

  • 虚拟处理机技术:分时实现
  • 虚拟设备技术:SPOOLING技术(第五章)
  • 虚拟磁盘技术:
  • 虚拟存储器技术:虚拟存储器(第四章)

1.3.4 异步性 (易错)

  • 执行结果不确定,程序不可再现。
  • 异步性,多道程序环境下程序(进程)以异步的方式执行,每道程序在何时执行、各自执行的顺序、完成时间都是不确定的,也是不可预知的。
  • CSDN同步异步解析

1.4 操作系统的主要功能

  1. 处理机管理(CPU)
  2. 存储器管理
  3. 设备管理
  4. 文件管理
  5. 操作系统与用户之间的接口

1.4.1 处理机管理功能

主要功能 :创建和撤销进程(或者线程),对诸进程的运行进行协调,实现进程之间的信息交换,以及按照一定的算法把处理机分配给进程。

1.4.1.1 进程控制

进程控制的主要功能:是为作业创建进程、撤消已结束的进程,以及控制进程在运行过程中的状态转换。

1.4.1.2 进程同步和互斥

进程同步的主要任务是为多个进程的运行进行协调。

1.4.1.2.1 进程互斥方式
  • 这是指诸进程(线程)在对临界资源进行访问时,应采用互斥方式
1.4.1.2.2 进程同步方式
  • 指进程相互合作去完成共同的任务时,诸进程之间的协调。
1.4.1.3进程通信

进程通信——是进程之间的信息交换。

  • 通信方式:消息队列、管道、套接字等。
1.4.1.4 调度
  • 作业调度(高级调度):从后备队列中按照一定的算法选择出若干个作业,为他们分配资源,调入内存,建立进程,插入就绪队列中。
  • 进程调度(低级调度):是从进程的就绪队列中按照一定的算法选择一个新进程,把处理机分配给它,使进程投入执行。

1.4.2 存储器管理功能

主要任务:为多道程序的运行提供良好的环境,方便用户使用存储器,提高存储器的利用率以及能从逻辑上扩充内存。

  • 内存分配
  • 内存保护
  • 地址映射
  • 内存扩充
1.4.2.1 内存分配
1.4.2.1.1 静态分配方式
  • 每个作业运行之前分配好内存空间,在作业的整个运行期间不再改变。
1.4.2.1.2 动态分配方式
  • 每个作业在运行前或运行中,均可申请新的附加内存空间,以适应程序和数据的动态增涨。
1.4.2.2 内存保护
  • 确保每道用户程序都只在自己的内存空间内运行,彼此互不干扰。
  • 绝不允许用户程序访问操作系统的程序和数据,也不允许用户程序转移到非共享的其它用户程序中去执行。
1.4.2.3 地址映射
  • 地址空间:目标程序或装入程序限定的空间,称为“地址空间”。单元的编号称为逻辑地址,又称为相对地址。
  • 内存空间: 由内存中的一系列单元所限定的地址范围称为“内存空间”,其中的地址称为“物理地址”
  • 地址映射:运行时,将地址空间中的逻辑地址转换为内存空间中与之对应的物理地址,称为地址映射 。
1.4.2.4 内存扩充

借助于虚拟存储技术:从逻辑上去扩充内存容量,使用户所感觉到的内存容量比实际内存容量大得多。

  • 请求调入功能;
  • 置换功能;
1.4.3 设备管理功能

设备管理的主要任务:

  • 完成用户进程提出的I/O请求;
  • 为用户进程分配其所需的I/O设备;
  • 提高CPU和I/O设备的利用率;
  • 提高I/O速度;
  • 方便用户使用I/O设备。

设备管理具有的功能:

  • 缓冲管理:有效地缓和CPU和I/O设备速度不匹配的矛盾 ,提高CPU的利用率。
  • 设备分配:根据I/O请求,分配其所需的设备。
  • 设备处理:设备处理程序又称为设备驱动程序。
1.4.4 文件管理功能

对用户文件和系统文件进行管理,以方便用户使用,并保证文件的安全性。

主要功能:

  • 文件存储空间的管理:对诸多文件及文件的存储空间,实施统一的管理。
  • 目录管理
  • 文件的读/写管理和保护
1.4.5 方便用户使用的用户接口
  • 计算机用户需要的用户命令

由OS实现的所有用户命令所构成的集合常被人们称为OS的Interface(用户接口);有时也称为命令接口。

  • 应用软件需要的System Call(系统调用)

由OS实现的所有系统调用所构成的集合被人们称为程序接口或应用编程接口(Application Programming Interface,API)。

用户接口
  • 命令接口——用户可通过该接口向作业发出命令以控制作业的运行。

  • 程序接口 ——由一组系统调用组成,每一个系统调用都是一个能完成特定功能的子程序,每当应用程序要求OS提供某种服务(功能)时,便调用具有相应功能的系统调用。

  • 图形接口(GUI)
    图形用户接口采用了图形化的操作界面,用非常容易识别的各种图标(icon)来将系统的各项功能、各种应用程序和文件,直观、逼真地表示出来。用户可用鼠标或通过菜单和对话框,来完成对应用程序和文件的操作。

1.5 操作系统的体系结构

  • 操作系统是一个大型系统软件,其结构已经历了四代的变革:
    • 第一代的OS是无结构的;
    • 第二代OS采用了模块式结构;
    • 第三代是层次式结构
    • 现代OS结构是微内核结构;

1.5.1 无结构操作系统

  • 在早期开发操作系统时,设计者只是把他的注意力放在功能的实现和获得高的效率上,缺乏首尾一致的设计思想。
  • OS是为数众多的一组过程的集合,各过程之间可以相互调用,在操作系统内部不存在任何结构,因此,有人把它称为整体系统结构。
  • 缺陷:
    • 设计出的操作系统既庞大又杂乱,缺乏清晰的程序结构。
    • 编制出的程序错误很多,给调试工作带来很多困难;增加了维护人员的负担。

1.5.2 模块化OS结构

  • 使用分块结构的系统包含若干module(模块);其中,每一块实现一组基本概念以及与其相关的基本属性。
  • 块与块之间的相互关系:

所有各块的实现均可以任意引用其它各块所提供的概念及属性。

image
  • 优点:
    • 提高了OS设计的正确性、可理解性和可维护性。
    • 增强了0S的可适应性。
    • 加速了OS的开发过程。
  • 缺点:
    • 对模块的划分及对接口的规定要精确描述很困难
    • 从功能观点来划分模块时,未能将共享资源和独占资源加以区别;

1.5.3 分层式OS结构

使用分层系统结构包含若干layer(层);其中,每一层实现一组基本概念以及与其相关的基本属性。

  • 层与层之间的相互关系:
    • 所有各层的实现不依赖其以上各层所提供的概念及其属性,只依赖其直接下层所提供的概念及属性;
    • 每一层均对其上各层隐藏其下各层的存在。
      image

1.5.4 微内核OS结构

  • 客户/服务器模式(Client-Server Model)
    image

  • 所谓微内核技术,是指精心设计的、能实现现代OS核心功能的小型内核,它与一般的OS(程序)不同, 它更小更精炼,它不仅运行在核心态,而且开机后常驻内存, 它不会因内存紧张而被换出内存。

  • 微内核所提供的功能:
    操作系统的另一部分是内核,用来处理客户和服务器之间的通信, 即由内核来接收客户的请求,再将该请求送至相应的服务器;同时它也接收服务器的应答, 并将此应答回送给请求客户。

  • 优点:

    • 提高了系统的可扩展性
    • 增强了系统的可靠性
    • 可移植性好
    • 提供了对分布式系统的支持
  • 缺点

    • 运行效率有所降低:消息传递开销+模式切换开销