计算机层次结构

  • 硬件层:处理器(CPU)、存储器、I/O设备…
  • 操作系统层:操作系统软件
  • 系统程序层:编译器、数据库系统 …
  • 应用层:面向特定用户和特定应用的软件

操作系统的任务

  • 为应用开发人员提供简洁易用的资源抽象
  • 管理种类繁多、纷繁复杂的硬件资源

资源管理(处理器管理、存储管理、设备管理、文件管理等)
控制执行(进程调度、并发进程控制等)
提供接口(作业管理等)

操作系统特征

  • 并发性
    • 并发性:多个事件活动在同一时间段发生。提高效率
    • 并行性:完全同时发生
  • 共享性
    • 资源可以被多个并发的任务使用
    • 互斥方位
    • 同时访问
  • 异步性
    • 处理事件和事件不定
  • 虚拟性
    • 把物理实体变成逻辑上的多个对应物

操作系统运行机制

  • 计算机引导过程
    • BIOS->Bootloader->Kernel->user-space init
  • 操作系统初始化到用户程序执行
  • 操作系统的基本形态
  • 操作系统代码如何获得主导地位
    • 硬件机制的保障:核心态和用户态
    • 主存保护机制
  • 用户代码的执行与切换机制

操作系统的发展与形成

  • 手工操作阶段, 电子继电器-真空管
    • 用户独占,效率低
    • 人工参与,浪费时间且出错
    • 全程联机,导致计算时间长
  • 管理程序阶段,晶体管
    • 批处理方式,减少了人工干预,提高了效率
    • 单道程序设计,导致系统资源利用率仍然较低
    • 独占方式使用,单个作业等待时间过长
  • .多道程序设计和分时系统,集成电路
    • 多道批处理系统。其目标是提高作业的输入、输出和整个系统资源的利用率
    • 分时系统。其目标是在多个用户共享时,保证能够以较快的速度响应用户的命令

操作系统分类
按功能与使用方式分类(基本分类方法):

  • 批处理操作系统
    • 用户脱机工作
    • 成批处理作业
    • 多道程序运行(早期为单道程序运行)
    • 作业周转时间长
  • 分时操作系统
    • 同时性,多个用户同时
    • 独立性,每个用户相对独立
    • 及时性,快速响应用户请求
    • 交互性,用户联机工作
  • 实时操作系统:必须在一个事先定义好的时间限制内,对外部或内部的事件进行响应和处理
    • 硬实时系统
    • 软实时系统

操作系统提供

  1. 用户接口
  2. 程序接口

image.png

  1. 系统调用,应用程序请求内核操作系统服务的过程。由用户程序调用访管指令(陷入trap, 或异常)开始
    1. 参数传递方式
      1. 由访管指令或陷入指令自带参数(直接参数)
      2. 紧邻访管指令存放参数
      3. 通过CPU的通用寄存器传递参数:直接参数(值)。间接参数(值存放的主存地址)
      4. 主存中开辟专用堆栈区域传递参数
  2. 和函数调用的区别
    1. 调用和实现的方式不同。call,trap,int
    2. 被调用函数代码的位置不同,一个是函数程序,另一个是系统调用实现,在内核代码里
    3. 提供的方式不同

操作系统的结构

  1. 内核的静态结构,模块的划分和关系
  2. 内核的运行模型,内核的运行过程,与其上层的应用之间关系

操作系统结构发展与分类

  1. 整体性结构
    1. 结构紧密,组合方便,效率高
    2. 模块独立性差,结构不清晰,正确性难保障,可靠性差,维护困难
  2. 层次式结构
    1. 维护方便,每层功能相对独立,复杂问题可分层化简
    2. 通信开销大,效率较低
  3. 虚拟机结构
    1. 灵活方便,满足不同用户对机器的需求
    2. 运行效率相对较低
  4. 客户服务器以及微内核结构
    1. 基本设计原则是策略与机制的分离
    2. 具有较好的一致性、可扩展性、可移植性、可靠性
    3. 通信开销大,效率稍低

操作系统举例

  1. DOS
  2. Windows
  3. UNIX
  4. MiniX
  5. Linux

问题

  1. 在Fork出来的进程应该是完全拷贝,执行exec之后会不会继续回到和原来进程一样的位置继续执行还是就结束了(被exec的东西替换了)