0%

《操作系统》概论(一)

操作系统:控制和管理整个计算机系统的硬件和软件资源,并合理组织调度计算机工作和资源的分配,以提供给用户和其他软件方便的接口和环境,它是计算机系统中最基本的系统软件

概念语功能

提供的功能

  • 处理机管理
  • 存储器管理
  • 文件管理
  • 设备管理

目标

  • 安全
  • 高效

为上层提供服务

  • 普通用户
    • GUI
    • 命令接口
  • 软件/程序员
    • 程序接口/系统调用

基本特征

  • 并发: 宏观上同时发生,微观上交替发生,CPU的调度
  • 共享: 多个进程共同使用同一资源
  • 虚拟: 对资源的抽象(虚拟内存,分时CPU等)
  • 异步: 多道程序环境下,IO资源有限,带来的时间等待

并行:宏观和微观上都是同时发生,多核CPU

运行机制

两类程序

  • 内核程序: 多个内核程序组成操作系统内核
  • 应用程序: 基于操作系统之上的的应用程序

两种指令

  • 特权指令: 只允许操作系统调用(保护计算机安全)
  • 非特权指令: 可以被上层应用程序调用

两种处理器状态

  • 内核态
  • 用户态

CPU通过内核态用户态区分特权指令,CPU通过程序状态字寄存器(PSW)标志位区分内核态还是用户态

  • 内核态->用户态: 执行特权指令修改PSW标志位
  • 用户态->内核态: 通过中断引发,由硬件自动完成

中断

中断是操作系统内核夺回CPU的使用权的的唯一途径(用户态->内核态)

  • 内中断: CPU内部触发
    • 陷阱,陷入:由程序主动引发,如系统调用
    • 故障:由错误条件引起,内核修复故障后,会把CPU使用权还给程序,如缺页故障
    • 终止:由致命错误引起的,CPU无法修复,会终止引用程序,如除数为0,非法执行特权指令
  • 外中断: 每一条指令执行结束时,CPU都会检查是否有外中断信号(由硬件完成,效率高)
    • 时钟中断(50nm)实现并发
    • IO设备发出的中断信号(如:打印机准备就绪)

系统调用

应用程序通常使用操作系统提供的一组应用程序接口(库函数)来使用系统的服务,而这些应用程序接口由一组系统调用组成,更底层

  • 应用程序: 可以直接使用库函数,也可以直接使用系统调用(比较少)
  • 库函数:通常由编程语言通过库函数的方式提供,封装了系统调用,有些库函数不包含系统调用
  • 系统调用(可以通过汇编语言调用)

系统调用是操作系统对底层资源管理的抽象,可以让上层更安全的使用系统资源,凡事与共享资源有关的操作(存储/IO/文件),都必须通过系统调用的方式向操作系统内核提出服务请求,保证系统的稳定性和安全性,防止用户非法操作,主要分为下面几类

  • 设备管理: 启动/请求/释放
  • 文件管理: 读/写/创建/删除
  • 进程控制: 创建/阻塞/唤醒
  • 进程通信: 消息传递/信号传递
  • 内存管理: 内存的分配/回收
  1. 应用程序把对应的参数放到寄存器
  2. 调用陷入指令(trap),让CPU内核切换到内核态
  3. CPU调用对应的系统调用(内核程序)
  4. CPU把使用权返还给应用程序

体系结构

  • 底层
    • 时钟管理
    • 中断处理
    • 原语
      • 处于最底层,最接近硬件
      • 原子性操作
      • 运行时间短,调用频繁
  • 管理
    • 进程管理
    • 存储器管理
    • 设备管理

由于进程管理,存储器管理,设备管理不直接操作底层,也可以作为用户态执行

  • 大内核/宏内核: 将操作系统主要功能模块作为系统内核,运行在内核态
    • 优点:高性能
    • 缺点:内核代码庞大
    • 常用操作系统:Linux,Unix
  • 微内核:只保留最基本的功能在内核
    • 优点:性能低
    • 缺点:内核代码少,易维护
    • 常用操作系统:Windows, MacOS