1.3 操作系统运行环境

本文详细阐述了计算机系统中处理器的运行模式,区分了用户态和核心态,介绍了操作系统内核的构成及其管理的四个方面,包括时钟管理、中断机制、原语和系统调用。同时讲解了中断和异常的概念、分类以及处理过程,涉及设备管理、文件管理、进程控制等内容。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1.3.1 处理器运行模式

在计算机系统中,通常CPU执行两种不同性质的程序:

  1. 一种是操作系统内核程序;
  2. 另一种是用户自编程序(即系统外层的应用程序,或简称“应用程序”)。
    对操作系统而言,这两种程序的作用不同,前者是后者的管理者,因此“管理程序”(即内核程序)要执行一些特权指令,而“被管理程序”(即用户自编程序)出于安全考虑不能执行这些指令。
  • 特权指令,是指不允许用户直接使用的指令,如I/O指令、置中断指令,存取用于内存保护的寄存器、送程序状态字到程序状态字寄存器等的指令。
  • 非特权指令,是指允许用户直接使用的指令,它不能直接访问系统中的软硬件资源,仅限于访问用户的地址空间,这也是为了防止用户程序对系统造成破坏。

在具体实现上,将CPU的运行模式划分为用户态(目态)和核心态(又称管态、内核态)

![[CPU的状态.png]]

操作系统的各项功能分别被设置在不同的层次上。

  • 一些与硬件关联较紧密的模块,如时钟管理、中断处理、设备驱动等处于最低层。
  • 其次是运行频率较高的程序,如进程管理、存储器管理和设备管理等。
    **这两部分内容构成了操作系统的内核。这部分内容的指令操作工作在核心态。

内核是计算机上配置的底层软件,它管理着系统的各种资源,可以看作是连接应用程序和硬件的一座桥梁。
大多数操作系统的内核包括4方面的内容:

1. 时钟管理

操作系统需要通过时钟管理,向用户提供标准的系统时间。

2. 中断机制

引入中断技术的初衷是提高多道程序运行环境中CPU的利用率,而且主要是针对外部设备的。
中断机制中,只有一小部分功能属于内核,它们负责保护和恢复中断现场的信息,转移控制权到相关的处理程序。这样可以减少中断的处理时间,提高系统的并行处理能力。

3. 原语

原语的特点如下:

  1. 处于操作系统的最底层,是最接近硬件的部分。
  2. 这些程序的运行具有原子性,其操作只能一气呵成(出于系统安全性和便于管理考虑)。
  3. 这些程序的运行时间都较短,而且调用频繁
    *通常把具有这些特点的程序称为原语(Atomic Operation)。定义原语的直接方法是关闭中断,让其所有动作不可分割地完成后再打开中断。

系统中的设备驱动、CPU切换、进程通信等功能中的部分操作都可定义为原语,使它们成为内核的组成部分。

  1. 系统控制的数据结构及处理
    系统需要一些基本的操作,常见的操作有以下3种:
  2. 进程管理。进程状态管理、进程调度和分派、创建与撤销进程控制块等。
  3. 存储器管理。存储器的空间分配和回收、内存信息保护程序、代码对换程序等。
  4. 设备管理。缓冲区管理、设备分配和回收等。
    从上述内容可以了解,核心态指令实际上包括系统调用类指令和一些针对时钟、中断和原语的操作指令。

1.3.2 中断和异常的概念

发生中断或异常时,运行用户态的CPU会立即进入核心态,这是通过硬件实现的(例如,用一个特殊寄存器的一位来表示CPU所处的工作状态,0表示核心态,1表示用户态。若要进入核心态,则只需将该位置0即可)。

1.中断和异常的定义

中断(Interruption) 也称外中断,是指来自CPU执行指令外部的事件。

通常用于信息输入/输出,如设备发出的I/O结束中断,表示设备输入/输出处理已经完成。时钟中断,表示一个固定的时间片已到,让处理机处理计时、启动定时运行的任务等。

异常(Exception)也称内中断,是指来自CPU执行指令内部的事件。

如程序的非法操作码、地址越界、运算溢出、虛存系统的缺页及专门的陷入指令等引起的事件。异常不能被屏蔽,一旦出现,就应立即处理。

关于内中断和外中断的联系与区别如图所示:
![[内中断和外中断的联系.png]]

2.中断和异常的分类

外中断可分为可屏蔽中断和不可屏蔽中断。

  • 可屏蔽中断是指通过INTR线发出的中断请求,通过改变屏蔽字可以实现多重中断,从而使得中断处理更加灵活。
  • 不可屏蔽中断是指通过NMI线发出的中断请求,通常是紧急的硬件故障,如电源掉电等。此外,异常也是不能被屏蔽的。

异常可分为故障、自陷和终止。

  • 故障(Fault) 通常是由指令执行引起的异常,如非法操作码、缺页故障、除数为0、运算溢出等。
  • 自陷(Trap) 是一种事先安排的“异常”事件,用于在用户态下调用操作系统内核程序,如条件陷阱指令。
  • 终止(Abort) 是指出现了使得CPU无法继续执行的硬件故障,如控制器出错、存储器校验错等。故障异常和自陷异常属于软件中断(程序性异常),终止异常和外部中断属于硬件中断。

3.中断和异常的处理过程

![[中断处理过程.png]]

1.3.3 系统调用

#概念
系统调用是指用户在程序中调用操作系统提供的一些子功能,系统调用可视为特殊的公共子程序。

系统调用按功能大致可以分为如下几类:

  • 设备管理。完成设备的请求或释放,以及设备启动等功能。
  • 文件管理。完成文件的读、写、创建及删除等功能。
  • 进程控制。完成进程的创建、撤销、阻塞及唤醒等功能。
  • 进程通信。完成进程之间的消息传递或信号传递等功能。
  • 内存管理。完成内存的分配、回收以及获取作业占用内存区大小及始址等功能。

系统调用的处理需要由操作系统内核程序负责完成,要运行在核心态。
用户程序可以执行陷入指令(又称访管指令或trap指令)来发起系统调用,请求操作系统提供服务。
![[系统调用执行过程.png]]

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值