首页 > 其他分享 >操作系统概述

操作系统概述

时间:2023-03-23 12:35:17浏览次数:48  
标签:操作系统 中断 指令 概述 内核 异常 CPU

操作系统概念

image.png

脱机命令接口又称批处理命令接口,适用于批处理系统。
联机命令接口又称交互式命令接口,适用于分时或实时系统。
程序接口由一系列系统调用(即广义指令)组成。 GUI是通过调用程序接口实现的。

没有任何软件支持的计算机叫做裸机
覆盖了软件的机器叫做扩充机器虚拟机

操作系统的特征

image.png

操作系统的发展

多任务操作系统
https://baike.baidu.com/item/%E5%A4%9A%E4%BB%BB%E5%8A%A1%E6%93%8D%E4%BD%9C%E7%B3%BB%E7%BB%9F/853599image.png

操作系统的运行机制

CPU上会运行两种程序,一种是操作系统内核程序,一种是应用程序。
操作系统内核程序运行在核心态,应用程序运行在用户态
image.png

大多数操作系统的内核包含以下四方面内容:

  1. 时钟管理
  2. 中断机制(只有一小部分属于内核,负责保护和恢复中断现场,转到中断处理程序)
  3. 原语
  4. 系统控制的数据结构以及操作
    1. 进程管理:进程状态管理、进程调度、创建和撤销PCB等。
    2. 存储器管理:存储器空间的分配与回收、内存信息保护程序、代码对换程序等。
    3. 设备管理:缓冲区管理、设备分配和回收等。

核心态指令实际上包括系统调用类指令以及一些针对时钟、中断和原语的操作指令。

用户程序需要先执行陷入(Trap)指令,也叫访管指令,进入到内核态。再执行特权指令(如系统调用等)。
由用户态进入内核态,不仅状态需要切换,而且所用的堆栈也可能需要由用户堆栈切换为系统堆栈(还是属于该进程的)。

中断与异常

中断,是让操作系统内核夺回CPU使用权的唯一途径。也是用户态程序进入核心态的途径。

如果没有中断机制,程序一旦上CPU,就会一直运行下去,也就没有并发的能力。
早期的中断技术是为了处理数据传送。后来中断渐渐地被赋予更多的功能:

  • 实现CPU与I/O设备的并行工作
  • 处理硬件故障与软件异常
  • 实现人机交互。(用户干预机器需要用到中断系统)
  • 实现多道程序、分时操作,多道程序的切换。
  • 实现实时处理、快速响应。
  • 实现用户态与内核态的切换。(称为“软中断”)
  • 多处理器系统中各处理器之间的信息交流与任务切换。

对异常和中断的处理由操作系统(和驱动程序)完成。

异常(内中断)

异常是CPU在执行一条指令时,由CPU在其内部检测到的、与正在执行的指令相关的同步事件

  • 程序性异常(软件中断):在CPU内部因执行指令而引起的中断
    • 故障(Fault)——取指~执行阶段期间,不一定要终止
      • 指令译码出现“非法操作码”(必须终止)
      • 取数据时发生“缺页”(调入页面后,返回当前指令继续执行)
      • 执行除数指令时发现“除数为0”(必须终止)
      • ......
    • 自陷(Trap)——CPU根据不同的Trap指令做相应处理后,返回当前指令的下一条执行。
      • 转移指令(例外,返回到转移目标指令执行)
      • x86中的断点调试的单步跟踪功能
      • 系统调用
      • 条件自陷指令(MIPS中的teq、teqi、tne、tnei等)
  • 硬故障中断(与外中断都叫做硬件中断):在CPU内部因硬连线出现故障而引起的中断
    • 中止(Abort)——必须终止
      • 控制器出错
      • 存储器校验错
      • ......

中断(外中断)

中断是一种典型的由外部设备处罚的、与当前正在执行指令无关的异步事件
包括I/O设备发出的I/O中断(如打印机缺纸、键盘输入等)、或发生某种事件(如按Esc键,定时器计数时间到等)。CPU每执行完一条指令就检测是否由中断信号,如果有,则进入中断相应周期

  • 可屏蔽中断
    • 通过可屏蔽中断请求线(INTR)向CPU发送的中断请求。CPU可以在中断控制器中设置相应的屏蔽字来屏蔽它。
  • 不可屏蔽中断
    • 通过不可屏蔽中断请求线(NMI)向CPU发送的中断请求。通常是非常紧急的硬件故障,如电源掉电等。

中断和异常的响应

从CPU检测的异常或中断事件,到调出相应的处理程序,这个过程称为中断和异常的响应。
响应过程可分为:关中断、保存断点和程序状态、识别中断和异常并转到相应的处理程序。
整个中断响应过程是由软硬件协同实现的。

  1. 关中断

在保存断点和程序状态期间,不允许被新的中断打断。通常通过设置“中断允许”(IF)触发器来实现。1为开中断,0为关中断。

  1. 保存断点和程序状态

为了能在处理完中断和异常后正确地返回到被中断的程序执行,必须将程序的断点(返回地址)送到栈或特定寄存器中。通常保存在栈中,以便更好地支持中断和异常的嵌套。除此之外,还要将程序被中断时的PSWR(程序状态字寄存器)中的内容保存在栈或特定寄存器中,在返回时恢复到PSWR中。

  1. 识别中断和异常并转到相应的处理程序

异常大多采用软件识别的方式。中断可以采用软件识别或硬件识别的方式。

  - 软件识别

CPU设置一个异常状态寄存器,用于记录异常原因。
操作系统使用一个统一的异常或中断查询程序,按优先级查询异常状态寄存器,然后转到内核中相应的处理程序。

  - 硬件识别(向量中断)

中断处理程序的首地址称为中断向量,所有中断向量存放在中断向量表中,并与中断类型号一一对应。
操作系统根据中断类型号快速找到中断向量,从而找到对应的中断处理程序。

image.pngimage.pngimage.png
优先级排序:

  • 一般来说,不可屏蔽中断 > 内部异常 > 可屏蔽中断
  • 内部异常中,硬件故障 > 软件中断
  • DMA中断请求 > I/O设备传送的中断请求
  • I/O传送类请求中,高速设备 > 低速设备 输入设备 > 输出设备 实时设备 > 普通设备

中断优先级包括响应优先级和处理优先级,响应优先级在硬件线路上是固定的,不便改动;处理优先级可利用中断屏蔽技术动态调整,以实现多重中断。

CPU响应中断后,经过中断隐指令,转去执行中断服务程序。
中断隐指令是由硬件直接实现的,并不是一条真正的指令,是硬件的一系列操作。
image.png
原程序的断点(指令无法直接读取的PC和PSW的内容),中断的断点通常是下一条指令的地址,异常的断点通常是当前指令的地址。
x86中 将PC和PSW保存到内存栈中。
MIPS中 没有PSW,只保存PC到特定寄存器中。
image.png
现场和断点,都不能被中断服务程序破坏。
现场信息因为可被指令直接访问,所以通常在中断服务程序中通过指令把它们保存在栈中。(即由软件实现)
断点信息由CPU在响应中断时自动保存在栈或特定寄存器中。(即由硬件实现)
image.pngimage.pngimage.pngimage.pngimage.png

操作系统结构

分层结构

特点:单向依赖。
优点:

  1. 便于系统的调试与验证,简化了设计与实现

如果在调试某层时没有问题,说明其底层都没有问题。

  1. 易扩充与维护

在系统中增加、修改或替换一层中的模块或整层时,只要不改变相应层间的接口,就不会影响到其他层。
缺点:

  1. 合理定义各层比较困难

依赖关系一旦确定,就会显得不够灵活。

  1. 效率较差

操作系统每执行一个功能,通常要自上而下的穿越很多层,各层之间都有通信机制,所以增加了许多开销。

模块结构

衡量模块独立性的两个标准:

  • 内聚性:模块内部各部分联系的紧密程度。内聚性越高,模块独立性越好。
  • 耦合度:模块间相互联系和相互影响的程度。耦合度越低,模块独立性越好。

优点:

  1. 提高了系统设计的正确性、可理解性和可维护性。
  2. 增强了系统的可适应性。
  3. 加速了系统的开发过程。

缺点:

  1. 模块间的接口规定很难满足对接口的实际需求。
  2. 各模块设计者齐头并进,每个决定无法建立在上一个已验证的正确决定的基础上,因此无法找到一个可靠的决定程序。

内核结构

宏内核

将操作系统的主要功能模块作为一个紧密联系的整体运行在核心态。从而为用户程序提供高性能的系统服务。
优点:
由于各管理模块之间共享信息,能有效利用各自的特性,所以具有很大的性能优势。

微内核

在宏内核的基础上,将一些非核心的功能转移到用户空间,只保留最基本的功能在内核。
移出内核的功能根据分层或模块化的原则被划分为若干服务程序。它们的执行相互独立,交互则都借助于微内核进行通信。
因此,微内核将操作系统的结构划分为两大部分:微内核多个服务器
并且机制(微内核功能)与策略(服务器功能)分离。

微内核功能(机制)主要包括:

  1. 进程(线程)管理(调度、切换与同步等)
  2. 低级存储器管理(如页表映射、地址变换机制)
  3. 中断与异常响应(识别中断或异常事件后,发送给相关的服务器处理)
  4. 客户端与服务器之间的通信(消息传递机制等)

而操作系统的绝大部分功能(策略)都放在微内核外的一组服务器(进程)中实现。

例如:

  • 进程(线程)服务器:提供对进程(线程)的管理(用户进程如何分类,优先级的确认方式等)
  • 虚拟存储器服务器:提供对虚拟存储器的管理(采用何种页面替换算法,何种内存分配与回收策略等)
  • .......

它们都是作为进程来实现的,运行在用户态。

客户端与服务器的通信借助微内核中的消息传递机制。

优点:

  1. 拓展性与灵活性

许多功能从内核中剥离出来,当需要修改某些功能或增加新功能时,只需要修改相应的服务器就可。

  1. 可靠性与安全性

一个服务器中的错误只会使对应的功能模块崩溃,不会使整个系统内核崩溃(对应宏内核)。

  1. 可移植性

只有微内核中会有与CPU和I/O硬件相关的代码,其他在各服务器中的代码均与硬件平台无关。

  1. 分布式计算

客户端/服务器模式可以很好地支持分布式系统和网络系统。

外核结构

相对于虚拟机克隆真实机器,另一种策略是对机器进行分区,给每个用户整个资源的一个子集。
在其底层,外核(exokernel)在内核态运行,为各虚拟机分配资源,保证它们互斥。每个虚拟机可以运行自己的操作系统,但限制只能使用自己的资源。
优点:

  1. 减少了映射层
  2. 将多道程序(在外核内)与用户操作系统代码(在用户空间内)加以分离

标签:操作系统,中断,指令,概述,内核,异常,CPU
From: https://www.cnblogs.com/woshi/p/17247012.html

相关文章

  • HTTPS协议概述、HTTPS使用成本
    HTTPS协议概述 HTTPS可以认为是HTTP+TLSTLS是传输层加密协议,它的前身是SSL协议  HTTPS功能介绍内容加密1、非对称密匙交换2、对称内容加密身份认证1、......
  • 数据库系统原理之数据库系统概述
    数据库系统概述一、数据库基本概念1数据数据(Data)是描述事物的符号记录,是指用物理符号记录下来的、可以鉴别的信息。数据以及关于该数据的解释是密切相关的。数据的解......
  • 自己动手从零写桌面操作系统GrapeOS系列教程——21.汇编语言写硬盘实战
    学习操作系统原理最好的方法是自己写一个简单的操作系统。在上一讲中我们学习了用汇编语言读硬盘,本讲我们来学习用汇编语言写硬盘。同样也是设计一个简单的实验,实验内......
  • 在linux操作系统下注销、关机、重启的简单命令
    一、注销的命令——Logout是登陆的相对操作,登陆系统后,若要离开系统,用户只要直接下达logout命令即可:#logout二、关机或重新启动的命令——shutd......
  • 一统天下 flutter - dart: 概述
    一统天下flutterhttps://github.com/webabcd/flutter_demo作者webabcd一统天下flutter-dart:概述示例如下:lib\dart\summary.dart/**dart概述**注:......
  • 操作系统6道面试题
    202303211.进程和线程的区别进程(Process)和线程(Thread)是操作系统中的两个重要概念。一个进程可以看作是一个正在运行的程序实例,它拥有自己的地址空间、内存、数据栈和其......
  • OSPF基本概述及配置
    1.0OSPF的基本概念和工作过程开放式最短路径优先协议(OpenShortestPathFirst,OSPF)是基于开放标准的链路状态路由选择协议,它完成各路由协议算法的两大主要功能:路径交换和......
  • (EVE-NG)江西省职业技能大赛网络设备与操作系统基本配置
    原题:https://blog.csdn.net/qq_50377269/article/details/125017385环境:EVE-NG网络拓扑图(简化了一台linux服务器,原因是还没下载镜像)  网络设备基本配置ISP......
  • 第一章 计算机网络概述
    第一章计算机网络概述互联网的组成核心部分:由网络和连接网络的路由器组成。边缘部分:由连接在网络上的主机构成,也叫做端系统。端系统之间的两种通信方式客户......
  • 操作系统——虚拟内存
    摘要虚拟内存是计算机系统内存管理的一种技术。它使得应用程序认为它拥有连续可用的内存(一个连续完整的地址空间),而实际上,它通常是被分隔成多个物理内存碎片,还有部分暂时存储......