2 操作系统运行机制

1.CPU 的构成与基本工作方式

一般的处理器由运算器、控制器、一系列寄存器以及高速缓存构成。
(1)运算器实现任何指令中的算术和逻辑运算,是计算机计算的核心;
(2)控制器负责控制程序运行的流程,包括取指令、维护 CPU 状态、CPU 与内存的交互等;
(3)寄存器是指令在 CPU 内部作处理的过程中暂存数据、地址以及指令信息的存储设备,在计算机的存储系统中它具有最快的访问速度;
(4)高速缓存处于 CPU 和物理内存之间,一般由控制器中的内存管理单元(Memory Management Unit,MMU )管理,它的访问 速度快于内存,低于寄存器,它利用程序局部性原理使得高速指令处理和低速内存访问得以匹配,从而提高CPU 的效率。

2.CPU 状态的转换

(1)在系统运行过程中,CPU 的状态是动态改变的,时而运行于管态,时而运行于目态,即管态和目态这两种状态可以相互转换。
(2)目态到管态的转换:其转换的途径是通过中断或异常。中断响应时交换中断向量,新的中断向量中的PSW 的CPU 状态位标志为管态。
(3) 管态到目态的转换:可通过设置PSW 指令(修改程序状态字),实现从操作系统向用户程序的转换。
(4)当中央处理器处于管态时可执行包括特权指令在内的一切机器指令;当中央处理器处于目态时不允许执行特权指令。系统启动时,CPU的初始状态为管态,然后装入操作系统程序。操作系统退出执行时,让用户程序在目态执行。

3.用户可见寄存器

(1)用户可见寄存器通常对所有程序都是可用的,由机器语言直接使用。
(2) 它一般包括数据寄存器、地址寄存器以及条件码寄存器。
数据寄存器(Data Register)有时又称为通用寄存器,主要用于各种算术逻辑指令和访存指令,
对具有浮点能力和多媒体能力的处理器来说,浮点处理过程的数据寄存器和整数处理时的数据寄存器一般是分离的。
地址寄存器(Address Register)用于存储数据及指令的物理地址、线性地址或者有效地址,用于某种特定方式的寻址。例如变址寄存器 (Index Register)、段指针(Segment Pointer)、栈指针(StackPointer)等。
条件码寄存器保存CPU 操作结果的各种标记位,例如算术运算产生的溢出、符号等,这些标记在条件分支指令中被测试,以控制程序指令的流向。一般来讲,条件码可以被隐式访问,但不能通过显式的方式修改。

4 .中断与异常的概念

4.1 中断

        中断是指 CPU 对系统中或系统外发生的异步事件的响应。中断是所有要打断处理器的正常工作次序,并要求其去处理某一事件的一种常用手段。
        (1)中断事件或中断源:引起中断的那些事件;
        (2)中断请求:中断源向处理器发出的请求信号;
        (3)中断处理程序:处理中断事件的程序;
        (4)中断断点:发生中断时正在执行的程序的暂停点;
        (5)中断响应:处理器暂停当前程序转而处理中断的过程;
        中断返回中断处理结束之后恢复原 来程序的执行。 为了使得中断装置可以找到恰当的中断处理程序,专门设计了中断处理程序入口地址映射表,又称中断向量表。表中的每一项称为一个中断向量,主要由程序状态字PSW 和指令计数器 PC 的值组成。

4.2 异常

        最早中断和异常并没有区分,都把它们叫做中断。随着它们的发生原因和处理方式的差别愈发明显,才有了现在的中断和异常之分。中断是由外部事件引发的,而异常则是由正在执行的指令引发的。

5.中断与异常的分类

(1)中断系统可以分为两大组成部分:中断系统的硬件中断装置和软件中断处理程序。硬件中断装置负责捕获中断源发出的中断请求,并以一定的方式响应中断源,然后将处理器的控制权移交给特定的中断处理程序。

(2)中断处理程序则针对中断事件的性质而执行相应的一系列操作。

(3)典型的中断包括:
①时钟中断。由处理器内部的计时器产生,允许操作系统以一定规律执行函数,如时间片到时、硬件到时等。
②输入输出(I/O)中断。由 I/O 控制器产生,用于通知一个I/O 操作的正常完成或者发生的错误。
④ 硬件故障中断,由掉电、存储器校验错等硬件故障引起等。

(4)异常发生的时间以及位置具有确定性。
典型的异常包括:
①程序性中断。在某些条件下由指令执行结果产生,例如算术溢出、被零除、目态程序试图执行非法指令、访问不被允许访问的存储位置、虚拟存储中的缺页等。
② 访管指令异常。目的是要求操作系统提供系统服务。

6.多级中断与中断优先级

6.1 多级中断

        从硬件上看,多级中断系统表现为有多根中断请求线从不同设备连接到中断逻辑线路上。 连接在不同中断请求线上的中断信号,表示它们有不同的中断级别。中断信号的级别代表了该中断信号是否具有被优先处理的特权,以及这个特权的大小。在多级中断系统中,硬件决定了各个中断的优先级别。

6.2 多级中断的作用

        对各类中断信号依据其紧急程度和重要性划分级别。在多级中断系统中,在同时有多个中断请求时,CPU接收中断优先级为最高的那个中断,而忽略其中断优先级较低的那些中断。解决如果有重要程度相当的多个中断信号同时到达时,如何选择首个被处理的中断信号的问题。在一般情
况下,这两个中断信号具有同等的优先级。如果在同一中断级中的多个设备接口中同时都有中断请求时,一般有两种办法可以采用:
① 固定优先数:给每个设备接口安排一个不同的、固定的优先序。比如以该设备在总 线中的位置来定优先顺序,离CPU 近的设备,其优先数高于离CPU 远的设备。
② 轮转法:用一个表格,依次轮转响应,这是一个较为公平合理的方法。

7.系统调用与一般过程调用的区别

        操作系统利用一种系统调用命令去调用所需的操作系统过程。因此,系统调用在本质上是应用程序请求操作系统核心完成某一特定功能的一种过程调用,是一种特殊的过程调用,它与一般过程调用有以下几方面的区别:
(1)运行在不同的系统状态
        一般过程调用,其调用程序和被调用程序都运行在相同的状态,即核心态或用户态;而系统调用与一般调用的最大区别就在于:调用程序运行在用户态,而被调用程序则运行在系统态。
(2)状态的转换
         调用时,由于调用和被调用过程工作在不同的系统状态,因而不允许由调用过程直接转向被调用过程,通常都是通过软中断机制先由用户态转换为核心态,在操作系统核心分析之后,转向相应的系统调用处理子程序。
(3)返回问题
        一般过程调用在被调用过程执行完后,将返回到调用过程继续执行。但是,在采用抢占式调度方式的系统中,被调用过程执行完后,系统将对所有要求运行的进程进行优先级分析。如果调用进程仍然具有最高优先级,则返回到调用进程继续执行;否则,将引起重新调度,以便让优先级最高的进程优先执行。此时,系统将把调用进程放入就绪队列。
(4)嵌套调用
        像一般过程调用一样,系统调用也允许嵌套调用,即在一个被调用过程的执行期间,还可再利用系统调用命令去调用另一个系统调用。一般情况下,每个系统对嵌套调用的深度都有一定的限制。

8 .交互式操作系统

        交互式操作系统是指用户交互式地向系统提出命令请求,系统接受每个用户的命令,采用时间片轮转方式处理服务请求,并通过交互方式在终端上向用户显示结果。FCFS(先来先服务),最短作业优先,最短剩余时间优先,时间片轮转,最高优先级算法,多级反馈队列算法和最短进程优先都适用于交互式操作系统。

9 .系统调用

        为了从操作系统中获得服务,用户程序必须使用系统调用(system call),系统调用陷入内核并调用操作系统。访管指令把用户态切换成内核态,并启用操作系统。当有关工作完成之后,在系统调用后面的指令把控制权返回给用户程序。
①系统调用程序被看成是一个低级的过程,只能由汇编语言直接访问。
②系统调用是操作系统提供给编程人员的唯一接口。

10.关闭中断响应

        关闭中断响应指令属于特权指令,用户程序不能直接执行,必须要使CPU陷入核心态,由操作系统来执行该特权指令,因此该程序必须先发起访管中断,这是让CPU 由用户态向核心态转换的方法。

11.程序并发执行特性

        所谓程序并发执行是指两个或两个以上程序在计算机系统中同处于已开始执行且尚未结束的状态。 程序并发执行产生了一些和程序顺序执行时不同的特性:① 并发程序在执行期间具有相互制约关系;② 程序与计算不在一一对应;③ 并发程序执行结果不可再现。

12.中断向量表

        80x86 系统是把所有的中断向量集中起来,按中断类型号从小到大的顺序存放到存储器的某一区域内,这个存放中断向量的存储区叫做中断向量表,即中断服务程序入口地址表。

13.函数open()

        open 是多种语言的一种函数,C 语言中open()函数作用:打开和创建文件,是文件操作类系统调用。

14.进程控制块

        进程控制块(PCB)的内容可以分成调度信息和现场信息两部分。调度信息包括进程名、进程号、存储信息、优先级、当前状态、资源清单、“家族”关系、消息队列指针、进程队列指针和当前打开文件等;现场信息只记录哪些可能会被其他进程改变的寄存器,如程序状态字、时钟、界地址寄存器等

  • 16
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值