二、操作系统运行机制

139 阅读2分钟

操作系统运行机制

用户空间和内核空间

  • 用户空间运行应用程序,内核空间运行系统程序
  • cpu在执行应用程序时为用户态,在执行系统程序时为内核态
  • 应用程序的指令为非特权指令,系统程序的指令为特权指令

时钟管理

  • 时钟管理提供计时机制
  • 时钟管理提供中断功能

时钟中断

  • 外中断:中断来源是外部设备,属于被迫中断
  • 内中断:中断来源程序本身,属于主动中断
  • 中断可以提高cpu的利用率。例如网络IO十分耗时,此时程序可以中断,cpu可以去执行其他任务
内中断三种情况
  • 陷入(Trap):由程序主动引起。当程序中需要cpu去执行特权指令时,就会发起陷入中断,cpu由用户态转变为内核态
  • 故障(fault):由一些正常机制而引发的中断。待中断处理程序执行后,应用程序可继续往下执行。例如内存缺页故障,在运行大程序时,只会将核心功能加载到内存中,当执行的功能内存没有加载时,引发内存缺页故障,加载所需功能,然后继续执行
  • 终止(abort):由致命错误引起。例如数组越界,内存溢出等。这种情况下引发的中断一般会停止程序运行
中断处理流程
  1. 关中断:cpu响应中断,并且不再响应其他中断请求
  2. 保存断点:保存程序计数器的内容,以便中断处理完后,回来继续执行应用程序
  3. 引出中断服务程序:加载中断服务程序入口地址,以便后面执行
  4. 保存现场:保存应用程序的上下文信息
  5. 开中断:此时cpu可以响应其他中断
  6. 执行中断服务程序:此时cpu在执行中断服务程序,期间可以响应其他中断
  7. 关中断:cpu不再响应其他中断
  8. 恢复现场:将应用程序上下文信息加载到寄存器
  9. 开中断:cpu可以响应其他中断,如果没有其他中断,cpu返回执行应用程序

原语

  • 原语是若干个指令组成的程序段
  • 原语运行在内核空间
  • 原语实现了某个特定功能
  • 原语具有原子性,不能被中断

操作系统结构

  • 传统操作系统的内核空间有进程管理服务,进程调度服务等,属于大内核
  • 微内核操作系统的内核空间中有与硬件处理紧密相关的程序。这些程序是操作系统的核心功能。但是光微内核不足以构成操作系统
  • 微内核与大内核相比,少了些非核心功能