(三)操作系统的运行环境

一、操作系统的运行机制

几个基本概念

  • 内核程序  < = = = > 应用程序
  • 核心态     < = = = > 用户态
  • 特权指令  < = = = > 非特权指令

在这里插入图片描述

1. 时钟管理

通过硬件提供

  • 计时:提供系统时间
  • 时钟中断:比如进程切换

2. 中断机制

  • 提高多道程序环境下CPU利用率
    • 例如发生I/O阻塞时,CPU不再继续等待I/O,挂起当前任务先去执行其他任务
  • 外中断:中断信号来源于->外部设备
    • 例如来自于I/O设备
  • 内中断:中断信号来源于->当前指令
    • 正在运行的的程序引发指令或者发生了一些问题导致中断(也叫:异常/陷入/例外)
      • 陷阱/陷入(Trap):由应用程序主动引发(不是产生)
      • 故障(Fault):由错误条件引发
      • 终止(Abort):由致命错误引发
        陷入指令中断 故障中断

中断处理过程
无论是内中断还是外中断都有对应的中断处理程序
中断处理过程
大致分为三个步骤

  1. 保存现场
  2. 执行中断程序
  3. 恢复现场继续执行后面的指令

3. 原语

原语运行在内核空间

  • 由若干条指令组成(程序段)
  • 用来完成某个特定功能
  • 执行过程不会被中断(原子性)
    • 通过关中断、开中断实现

原语是对一组操作的封装,并且这一组操作运行时间较短,不能被中断

4. 系统数据结构

一般只涉及到对数据结构的操作,不涉及硬件

  • 进程管理:作业控制块、进程控制块
  • 存储器管理:存储器分配与回收
  • 设备管理:缓冲区、设备控制块

5. 系统调用

  • 有操作系统实现,给应用程序调用
  • 是一套接口的集合
  • 应用程序访问内核服务的方式

操作系统底层实现了一套接口,提供给应用程序调用,系统调用的处理运行在核心态,通过陷入指令(在用户态执行)的方式实现系统调用
在这里插入图片描述

二、操作系统体系结构

1. 传统的操作系统结构(大内核)

第一代:无结构OS

  • 一系列过程(程序)的集合,过程间可以互相调用
  • 结构复杂且混乱,难以调试、阅读和维护
    无结构OS

第二代:模块化结构OS:模块-接口法OS

  • 给予“分解”和“模块化”原则
  • 按照功能划分模块/子模块,规定模块间的接口
  • 模块独立性标准:高内聚、低耦合
  • 优点:
    • 提高OS设计的正确性、可理解性和可维护性
    • 增强OS的适应性
    • 加速开发过程
  • 缺点
    • 模块接口设计难以扩展后续需求
    • 模块设计没有同一决策标准,导致模块接口设计不可靠

模块化OS

第三代:分层式结构OS

  • 有序分层法,自顶向下依次依赖
  • 设计时,自底向上:每一步建立在可靠的基础上
  • 优缺点:
    • 容易保证系统正确性
    • 容易扩充和维护
    • 自上而下的层次通信,导致系统效率降低

分层式结构OS

2. 微内核OS结构

微内核的基本概念

  • 足够小的内核,只实现OS核心功能

    • 与硬件处理紧密相关的部分,比如硬件处理、客户与服务器通信和其它基本功能
    • 一些较基本的功能
    • 客户和服务器之间通信 (客户/服务器模式)
  • 应用采用“机制与策略分离”原理

  • 采用面向对象技术

微内核的优缺点

  • 微内核OS的优点
    • 提高OS的可扩展性、可靠性、可移植性
    • 支持分布式系统
    • 融入了面向对象技术
  • 微内核OS的缺点
    • 相较早期OS,降低了一定的效率(用户态、内核态切换次数较 大内核OS 更多)
      在这里插入图片描述
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值