2 - 处理器管理

2 - 处理器管理

标签: 操作系统


处理器状态

  1. 处理器至少分用户态和内核态。
状态 指令 程序 资源
用户态 非特权指令 运行用户程序 申请资源
内核态 可用特权指令 运行系统程序 管理、分配资源
  1. 处理器状态的转换

    • 用户态->内核态
      a. 请求操作系统服务
      b. 程序运行时发生中断事件按
      c. 程序运行时产生异常事件
    • 内核态 -> 用户态
      通过计算机提供的加载程序状态字特权指令

      1. 用户栈、核心栈
    • 用户栈:用户进程空间中的一部分,保存函数间相互调用的参数、返回值、返回点、函数的局部变量
    • 核心栈:
      • 保存中断现场
      • 操作系统的函数间相互调用的参数、返回值、返回点、函数的局部变量

中断技术

中断源的分类

中断分为内中断和外中断。
• 内中断即中断,异步中断。包括时钟中断、键盘中断、、、可分为可屏蔽、不可屏蔽中断
• 外中断即异常,同步中断。可分为访管中断、硬件故障中断、程序性异常。

两者区别

  1. 中断与当前程序无关,与CPU异步,CPU是被动的,可发生在用户态or内核态。
    异常由CPU控制单元产生,与CPU同步。基本发生在用户态,内核态只有缺页异常。
  2. 中断要快速处理,不能阻塞,异常可以被阻塞
    中断可以嵌套,异常大多一重。异常可能产生中断,中断不会被异常打断。

进程及其实现

进程的属性

  • 动态性
  • 共享性
  • 独立性
  • 制约性
  • 并发性

进程的状态和转换

  1. 三态模型
    进程执行过程中,至少要定义的三种进程状态
    a. 运行态
    b. 就绪态
    c. 等待态
  2. 七态模型
    a. 新建态
    b. 终止态
    c. 挂起就绪态
    d. 挂起等待态

进程的描述和组成 P75

  • 进程映像:
    • 进程控制块:
      • 标识信息
      • 现场信息
      • 控制信息
    • 进程程序块
    • 进程核心栈
    • 进程数据块
  • 进程上下文:
    • 用户级上下文:程序块、数据块、共享内存区、用户栈
    • 寄存器上下文:状态寄存器、指令计数器、栈指针、通用寄存器
    • 系统级上下文:进程控制块、核心栈、内存管理信息

线程及其实现

线程

  • 目的:减少程序并发执行所付出的时空开销,使得并发粒度更细,并发性力度更好。
  • 方法:把进程的“独立分配资源”和“被调度分派执行”分离开。
  • 线程的状态:运行、就绪、等待、终止

内核级线程

  • 内核级线程:管理工作由内核完成,提供线程API来使用线程
  • 优点:
    1. 在多处理器上同一进程中的多线程并行执行
    2. 若进程中的一个线程被阻塞,内核能够调度同一进程的其他线程占有处理器。
    3. 具有小数据结构和堆栈,切换速度快。
  • 缺点:控制权在线程间转换时需经历 用户态-内核态-用户态

用户级线程

  • 用户级线程:管理工作由应用程序来做,在用户空间内实现,内核不知道线程存在。
  • 运行环境:线程库
  • 优点:
    1. 切换无需内核特权方式
    2. 允许进程按照特定的调度算法
    3. 跨平台
  • 缺点:
    1. 一个用户级线程的阻塞会引起进程的阻塞
    2. 用户级线程不能利用多重处理的优点。

线程调度

  • 用户级线程:内核不知道线程的存在,以进程为单位调度。
  • 内核级线程:选择一个优先级高的线程运行,不考虑线程属于那个进程。

处理器调度

  • 调度层次:高级、中级、低级
  • 高级调度:控制多道程序的道数。
  • 中级调度:

你可能感兴趣的:(2 - 处理器管理)