内功修炼之操作系统学习(处理器管理)

发表于:2012-6-26 10:11

字体: | 上一篇 | 下一篇 | 我要投稿

 作者:ithzhang    来源:51Testing软件测试网采编

  处理器管理是操作系统的重要组成部分,它负责调度、管理和分配处理器并控制程序的执行。处理器管理中最重要的是处理器调度,即进程调度,也就是控制、协调进程对处理器的竞争。为了提高并发粒度和降低并发开销,现代操作系统引进了线程的概念,此时进程仍然是资源分配和保护的单位。

  处理器包括控制器、运算器和寄存器。如果计算机系统只有一个运算器则被称为单处理器,如果包含多个则被称为多处理器。也就是说运算器的个数决定是单处理器还是多处理器。

  寄存器所存储器的信息构成处理器现场。它与程序的执行密切相关。

  处理器状态可以表明当前cpu是运行内核程序还是运行用户应用程序。处理器状态又称为处理器模式,可划分为核心态(管态)和用户态(目态)。当处理器处于核心态时,cpu运行可信软件,硬件允许执行全部机器指令。当处理器处于用户态时,cpu运行非可信软件,程序无法执行特权指令,且访问权限仅限于当前cpu上进程的地址空间。Intel x86处理器的状态有四种。0级为内核级,3级为应用程序级。但运行在此处理器上的windows操作系统只使用0级和3级。

  有两种情况会导致处理器模式切换。一是程序请求操作系统服务,执行系统调用。二是在程序运行时,产生中断或异常事件,运行程序被中断,转向中断处理程序。这两种情况都是通过中断机制发生,可以说中断和异常是用户态到核心态转换的唯一途径。

  当系统产生中断或异常,处理器将作出响应并交换程序状态字,此时处理器会从用户态到核心态转换。处理完成后计算机通过加载程序状态字的特权指令来实现从核心态返回用户态。

  中断是指在 程序执行过程中,遇到急需要处理的事件时,暂时中止现行程序在cpu上的运行,转而执行相应的事件处理程序,处理完成后再返回断点或调度其他程序。它是现在带计算机系统的重要组成部分之一。每当应用程序执行系统调用要求获得操作系统服务等都要通过中断机制产生中断信号并启动内核工作。可以说操作系统是由中断驱动的。

  Cpu会在执行在两条指令之间检查有无中断发生。

  自愿性中断事件时正在运行的程序所期待的,是由于执行访管指令而引起的,它表示运行的程序对操作系统的有某种需求,一旦机器执行访管指令,就会使cpu状态从用户态转向核心态,停止现行程序的执行而转入内核的相应系统调用例程进行处理。这被称为访管中断。

  硬中断分为外中断和内中断。外中断,又称中断,是指来自处理器之外的中断信号。包括时钟中断、键盘中断、设备中断等。内中断又称为异常。是指来自cpu内部的中断信号。又分为三种:访管中断,由系统调用引起。硬件故障中断,如电源失效,奇偶校验错误,总线超时等;程序性中断,如非法操作,地址越界,页面故障,除数为0,浮点数溢出。所有这些异常均有异常处理程序处理,且不能被屏蔽。

  中断和异常的区别:中断是由于当前程序无关的中断信号触发的,cpu对中断的响应是被动的,且与cpu模式无关。既可以发生在用户态,又可以发生在核心态。通常在发生两条机器指令之间才响应中断。通常在两条机器指令之间才能响应中断。异常是由cpu控制单元产生的,源于现行程序执行指令过程中检测到例外。大部分异常发生在用户态。异常处理程序所提供的服务通常是当前进程所需要的。如程序出错或页面故障。异常处理程序在当前程序的上下文执行。

  Cpu对异常和中断的响应是一致的。即当执行完当前指令后,或在执行当前指令的中途,根据中断源所提供的中断向量,在主存中找到响应服务程序的入口地址并调用此服务。中断向量由硬件或操作系统的内核预先分配和设置。系统调用所对应的向量在访管指令中给出。中断和异常以统一的模式加以实现,这也是许多书中将它们都归入中断机制的原因。

  在两条指令中间,cpu会检查中断寄存器是否有中断事件发生,若无中断信号或中断信号被屏蔽,则继续执行后续指令。否则将暂停当前程序,转向内核的中断处理程序。

  中断和异常的响应需要做四件事:1、发现中断源;2、保护现场;3、转向中断/异常处理程序;4、恢复现场。

  访管中断是由程序执行访管指令而引起的,表示当前运行的程序对操作系统功能的调用。它包括操作码和访管参数两部分。前者表示此指令是访管指令,后者表示具体的访管要求。当程序发出访管请求时,cpu控制设备发出中断向量,然后指定系统调用号,表示想要调用的系统调用。

  时钟是操作系统进行调用工作的重要工具,如维护系统绝对日期和时间,让分时进程按时间片轮转,让实时进程定时发送或接收控制信号,系统定时唤醒或阻塞进程。利用定时器能够确保操作系统必要时获得控制权,使陷入死循环的进程最终会因为时间片耗尽而被迫让出处理器。时钟通常是一个硬件,它按照固定周期发出中断请求,分为绝对时钟和间隔时钟。系统设置一个绝对时钟寄存器,定时的把此寄存器的内容加一。间隔时钟在每个时间切换点将间隔时钟寄存器的内容减一。当减为0时,就产生间隔时钟中断。操作系统经常利用间隔时钟进行调度

  发生中断的每个设备都有一个相应的中断处理程序。一个设备的中断处理程序是它设备驱动程序的一部分。中断处理程序是被内核调用来响应中断的,工作在核心态的中断上下文中,不允许被阻塞。

41/41234>
《2023软件测试行业现状调查报告》独家发布~

关注51Testing

联系我们

快捷面板 站点地图 联系我们 广告服务 关于我们 站长统计 发展历程

法律顾问:上海兰迪律师事务所 项棋律师
版权所有 上海博为峰软件技术股份有限公司 Copyright©51testing.com 2003-2024
投诉及意见反馈:webmaster@51testing.com; 业务联系:service@51testing.com 021-64471599-8017

沪ICP备05003035号

沪公网安备 31010102002173号