1.1 操作系统的基本概念

1.1.1 操作系统的概念

  1. 计算机由上到下的四部分:硬件,操作系统,软件,用户
    1. image.png
  2. 操作系统(Operating System,OS)是指:
    1. 控制和管理整个计算机系统的硬件和软件资源,并合理地组织调度计算机的工作和资源的分配
    2. 提供给用户和其他软件方便的接口和环境
    3. 计算机系统中最基本的系统软件

1.1.2 操作系统的特征

  1. 并发:两个或者多个事件在同一时间间隔内发生
    1. 操作系统的并发是通过分时实现的;使得系统具有处理和调度多个程序同时执行的能力
    2. 并行是指多个操作同时发生,需要硬件支持
  2. 共享
    1. 互斥共享方式:例如打印机、磁带,虽然可供多个进程使用,但在一段时间内只允许一个进程访问该资源;这种资源称作临界资源或者独占资源;计算机中的大多数物理设备都是临界资源
    2. 同时访问方式:例如磁盘,一段时间内允许多个进程“同时”访问该资源;这里的同时是宏观的概念,在微观上实际是交替的分时访问
  3. 虚拟
    1. 一个物理上的实体变为若干逻辑上的对应物,这种技术也被称为虚拟技术
    2. 虚拟处理器:采用多道程序并发的方式,让每个终端用户感觉到有多个处理器(时分复用技术)
    3. 虚拟存储器:将物理存储变为虚拟存储器,逻辑上扩充存储器(空分复用技术)
    4. 将一台IO设备虚拟为多台逻辑上的IO设备,并允许每个用户占用一台逻辑上的IO设备
  4. 异步
    1. 多道程序走走停停,进程以不可预知的速度向前进
      • 并发和共享的关系
        • 操作系统的并发指同时运行多个程序
        • 操作系统的共享指资源可供多个并发的程序共同使用
        • 因此, 共享是并发的前提 ; 并发是共享的存在原因
      • 并发和虚拟的关系
        • 虚拟性的应用是为解决用户对硬件资源的独占, 即用虚拟设备为用户提供独占资源的假象
        • 失去了并发性,则一个时间段内系统中只需运行一道程序,那么就失去了实现虚拟性的意义
      • 并发与异步的关系
        • 并发的条件之下才会有异步的发生
      • 因此, 并发与共享是最基本的特征

1.1.3 操作系统的目标和功能

  1. 系统资源的管理者
    1. 处理机管理: 即进程管理
    2. 存储器管理: 即内存管理
    3. 文件管理: 计算机中的信息均以文件形式存在,文件系统的管理是操作系统的功能
    4. 设备管理: 完成I/O设备的请求, 方便使用, 提高设备利用率
  2. 为用户和计算机硬件之间提供接口
    1. 命令接口: 通过操作命令行来控制作业的执行
      1. 联机命令接口: 交互式命令,说一句答一句
      2. 脱机命令接口: 批处理命令,说一堆做一堆
    2. 程序接口: 请求操作系统的打包服务
      1. 程序接口由一组系统调用(广义指令)组成,用户在程序中使用这些系统调用来请求操作系统为其提供服务
      2. 图形用户界面(GUI), 调用命令属于操作系统的一部分
  3. 操作系统用以扩充机器
    1. 将覆盖了软件的机器称为扩充机器或虚拟机

      库函数和系统调用的区别与联系

      • 需要向操作系统请求服务, 只能通过系统调用的方式
      • 库函数是编程过程中使用的封装手段,以使编程方便直观
      • 应用程序实现功能时,既可以通过库函数,也可以通过系统调用
      • image.png

1.2 操作系统的发展与分类

1.2.1 手工操作阶段 (无操作系统)

  1. 所有工作都需要人工干预,当计算机的计算速度越来越快时,人机矛盾也越来越大
  2. 缺点: 一个用户独占全机, 资源利用率低 ; CPU等待时间长, CPU利用不充分

    1.2.2 批处理阶段 (操作系统出现)

  3. 单道批处理系统

    1. 系统成批的处理作业, 内存中只有一个程序
    2. 自动地, 顺序地, 单道地完成一个作业 ; 当出现I/O请求时,CPU等待I/O设备完成操作后再运行
  4. 多道批处理系统

    1. 允许多个程序同时进入内存并在CPU上交替的运行它们
    2. 宏观上并行,微观上串行: 用户感知上认为多进程都在同时运行,但实际上只是不同的进程在轮流占用CPU,交替完成各自的任务
    3. 作业调度程序自动完成作业的选择安排,让计算机中的各部分都忙起来 ; 但缺点也很明显, 如不提供人机交互能力,响应时间长,作业提交后自动运行,用户不能控制计算机的运行

      1.2.3 分时操作系统

  5. 计算机以时间片为单位轮流为各个用户/作业服务,各个用户可通过终端与计算机进行交互

  6. 用户请求可以被即时响应, 实现了人机交互问题, 时间片很短时, 用户感觉自己在独占资源
  7. 缺点: 不能优先处理一些紧急任务, 操作系统对各个用户/作业都是完全公平的,循环地为每个用户/作业服务一个时间片,不区分任务的紧急性

    1.2.4 实时操作系统

  8. 为解决紧急任务而不需要时间片排队

    1. 硬实时系统: 绝对要在规定时间完成
    2. 软实时系统: 可以偶尔违反规定

      1.2.5 网络操作系统和分布式计算机系统

  • 网络操作系统:是伴随着计算机网络的发展而诞生的,能把网络中各个计算机有机地结合起来,实现数据传送等功能,实现网络中各种资源的共享(如文件共享)和各台计算机之间的通信。(如:Windows NT 就是一种典型的网络操作系统,网站服务器就可以使用)
  • 分布式操作系统:主要特点是分布性和并行性。系统中的各台计算机地位相同,任何工作都可以分布在这些计算机上,由它们并行、协同完成这个任务

    1.2.6 个人计算机系统

  • 个人计算机操作系统:如Windows XP、MacOS,方便个人使用


1.3 操作系统的运行

1.3.1 运行机制

  1. CPU中的程序有两种, 一种是操作系统的内核程序,运行在核心态;一种是用户的自编程序,运行在用户态
  2. 操作系统的内核功能与硬件的关联会很高,一般有:

    1. 支撑功能:计算机功能的实现基础
      1. 时钟管理:时钟是最关键的设备;时钟中断才能实现进程的切换,还有时间片的轮转调度等等
      2. 中断处理:多道程序的并发需要中断,其他设备的请求处理需要中断,现代操作系统是靠中断驱动的软件
      3. 原语操作:这些操作在计算机操作的最底层最接近硬件的部分,只能一气呵成而不能被中断,运行时间短且调用频繁;原语操作是内核的组成部分
    2. 资源管理功能:一些计算机可能不将此作为内核功能
      1. 进程管理
      2. 存储器管理
      3. 设备管理

        1.3.2 中断和异常的概念

  3. 系统区分核心态和用户态以保护系统程序,用户态下不能使用特权指令,当用户态的程序请求进入核心态时,就需要发出访管指令,进入中断状态,实现状态的切换

  4. 中断时需要保存的数据,程序计数器PC,以及程序状态字PSW由硬件专门保存;而通用寄存器和其他需要保存的内容由操作系统负责
  5. 外中断的响应发生在指令执行完成后,而异常的响应发生在指令的执行过程中;一旦发生异常,CPU内部自动检测,并立即停止执行当前指令

    1.3.3 系统调用

  6. 为保证系统的安全才区分核心态和系统调用,所以,也有不需要调用且权限很大的操作系统

  7. 因为系统中的资源由操作系统统一管理,因此凡是与资源有关的操作都必须向操作系统发出服务请求,让操作系统代为完成
  8. 进入核心态才能实现系统调用,即在用户态下发出陷入指令(访管指令,trap指令)实现状态的转换,过程由硬件完成

    1.4 操作系统的体系结构

  9. 大内核

    1. 主要功能模块作为一个整体运行在核心态,性能更高;但是计算机规模越来愈大时,将难以定义清晰的关系或界限
  10. 微内核
    1. 内核只保留最基本的功能,而将其他操作放到用户态中,降低了内核的维护难度,接口更清晰,各部分独立的发展演化,保证了操作系统的可靠性,但是因为需要频繁切换状态会让性能变低