第二章-中断和信号机制3

合集下载

linux中的signal机制

linux中的signal机制

Linux支持的信号列表如下。很多信号是与机器的体系结构相关的,首先列出的是POSIX.1中列出的信号:
信号 值 处理动作 发出信号的原因
----------------------------------------------------------------------
break;
case 2:
printf("Get a signal -- SIGINT ");
break;
(对于SIGSYS,SIGXCPU,SIGXFSZ,以及某些机器体系结构下的SIGBUS,Linux缺省的动作是A (terminate),SUSv2 是C (terminate and dump core))。
下面是其它的一些信号
信号 值 处理动作 发出信号的原因
(1) 与进程终止相关的信号。当进程退出,或者子进程终止时,发出这类信号。
(2) 与进程例外事件相关的信号。如进程越界,或企图写一个只读的内存区域(如程序正文区),或执行一个特权指令及其他各种硬件错误。
(3) 与在系统调用期间遇到不可恢复条件相关的信号。如执行系统调用exec时,原有资源已经释放,而目前系统资源又已经耗尽。
收 到信号的进程对各种信号有不同的处理方法。处理方法可以分为三类:第一种是类似中断的处理程序,对于需要处理的信号,进程可以指定处理函数,由该函数来处 理。第二种方法是,忽略某个信号,对该信号不做任何处理,就象未发生过一样。第三种方法是,对该信号的处理保留系统的默认值,这种缺省操作,对大部分的信 号的缺省操作是使得进程终止。进程通过系统调用signal来指定进程对某个信号的处理行为。
传递给信号处理例程的整数参数是信号值,这样可以使得一个信号处理例程处理多个信号。系统调用signal返回值是指定信号signum前一次的处理例程或者错误时返回错误代码SIG_ERR。下面来看一个简单的例子:

操作系统ppt chapter2处理器管理

操作系统ppt chapter2处理器管理
√ f. Modify entries in device-status table.
g. Switch from user to kernel mode.
h. Access I/O device.
9
处理器状态(内核态和用户态)
• 处理器怎么知道当前是操作系统还是一般用户程序 在运行呢?
• 处理器状态标志: 管理状态(内核态、特权状态、系
操 PSW(Program Status Word)来区别不同的处理器 作 工作状态

统 • PSW用来控制指令执行顺序并保留和指示与程序有 关的系统状态,主要作用是实现程序状态的保护和 恢复
• 每个程序都有一个与其执行相关的PSW,每个处理 器都设置一个PSW寄存器。程序占有处理器执行, 它的PSW将占有PSW寄存器

统 ,停止处理器运行,将故障信息向操作员报告, 并对故障所造成的破坏进行估计和恢复。
30
程序错误包括:语法错误、逻辑错误和
操 执行过程中产生的异常(定点溢出、阶码下
作 溢、除数为0等)


操作系统主要处理第三类错误,操作系
统可以借助信号机制,将捕获的中断事件交
由程序自行处理
31
产生I/O中断的情况: 操 ➢ I/O操作正常结束
操 值、返回点以及子程序的局部变量。

系 核心栈:内存中属于操作系统空间的一块区域, 统 用于保存中断现场和操作系统程序间相互调用的
参数、返回值、返回点以及程序的局部变量。
12
2.1.2 程序状态字寄存器(1)
• 计算机如何知道当前处于何种工作状态?这时能否 执行特权指令?通常操作系统都引入程序状态字
统和分布存储(松散耦合)多处理

操作系统习题及答案

操作系统习题及答案

优先级,后者所得到的是
优先级。
25. 在 机。
调度算法中,按照进程进入就绪队列的先后次序来分配处理
26. 作业调度是高级调度,进程调度是低级调度。( 是否正确? )
27. 线程与进程的根本区别在于进程是
单位,而线程是
单位,
具有自己的主存空间,
共享该主存空间并对其所有主存空间都有存
取权限。
28.在多用户环境下,由多个程序共享一台计算机,机内资源状态将由多个程序 来改变,因此使程序失去了在顺序执行上时具有的________和________特 征。
2、( )优先权是在创建进程时确定的,确定之后在整个进程运行期间不再改变。 A.先来先服务 B.静态 C.动态 D.短作业
3、以下关于死锁的必要条件的叙述中错误的是( )。 A.只要具备了死锁的必要条件,就一定发生死锁现象 B.解决死锁问题可以从死锁的必要条件出发
C.一旦出现死锁现象,处于死锁状态的进程一定同时具备死锁的必要条件 D.死锁的四个必要条件之间不是完全独立的,但也不是等价的
的值为( )。
A. > 0
B.< 0
C.>= 0
D.<=0
6、如果进程 PA 对信号量 S 执行 P 操作,则信号量 S 的值应(

A.加 1
B.减 1
C.等于 0 D.小于 0
7、从静态角度上看,进程是由程序、数据及(
)三部分组成。
A. JCB
B. PCB
C. FCB
D .I/O 缓冲区
H、处于(

2. 进程是一个
态的概念,程序是一个
态的概念。
3. 操作系统中,可以并行工作的基本单位是 组成。
,它是由程序、

数据库作业第二章第三章

数据库作业第二章第三章

第二章一、思考题1.什么是PSW,它有何作用?psw:操作系统将程序运行时的一组动态信息会聚在一起,称为程序的状态字作用:实现程序状态的保护和恢复3.为什么要把机器指令分成特权指令和非特权指令?应用程序在执行有关资源管理的机制指令时易于导致系统混乱,造成系统或用户信息被破坏,因此在多道程序设计环境中,从资源管理和控制程序执行的角度出发,必须把指令系统中的指令分成这两类。

4.试分别从中断事件的性质、来源和实现角度对其进行分类从中断事件的性质和激活的手段来说,可以分成两类:(1)强迫性中断事件强迫性中断事件不是正在运行的程序所期待的,而是由于某种事故或外部请求信息所引起的,分为:机器故障中断事件。

程序性中断事件。

外部中断事件。

输入输出中断事件。

(2)自愿性中断事件自愿性中断事件是正在运行的程序所期待的事件。

按事件来源和实现手段分类:(1)硬中断;硬中断分为外中断(中断、异步中断)和内中断(异常、同步中断);(2)软中断;软中断分为信号和软件中断。

9.什么是系统调用?试述API、库函数及系统调用间的关系。

叙述系统调用执行流程。

由操作系统实现的所有系统调用所构成的集合即程序接口或应用编程接口(Application Programming Interface,API)。

系统调用是一种API,是应用程序同系统之间的接口。

库函数是语言本身的一部分,可以调用多个系统调用;系统调用(函数)是内核提供给应用程序的接口,属于系统的一部分,可以认为是某种内核的库函数;操作系统API是有系统调用(函数)的集合(也就是将许多的系统调用封装在了一起)。

一是编写系统调用服务例程;二是设计系统调用入口地址表,每个入口地址都指向一个系统调用的服务例程,有的还包括系统调用自带的参数个数;三是陷阱处理机制,需要开辟现场保护区,以保存发生系统调用时应用程序的处理器现场。

应用程序执行系统调用,产生中断指向内核态,进入陷阱处理程序,它将按功能查询入口地址表,并转至对应服务例程执行,完成后退出中断,返回应用程序断点继续运行。

计算机操作系统每章习题及答案

计算机操作系统每章习题及答案

计算机操作系统每章习题及答案《操作系统》复习题第一章操作系统引论一、单项选择题1、操作系统是一种( B )。

A.应用软件B. 系统软件C.通用软件D. 工具软件2、操作系统是一组( C )。

A.文件管理程序B.中断处理程序C.资源管理程序D.设备管理程序3、现代操作系统的基本特征是( C )、资源共享和操作的异步性。

A.多道程序设计B. 中断处理C.程序的并发执行D. 实现分时与实时处理4、( D )不是操作系统关心的主要问题。

A. 管理计算机裸机B. 设计、提供用户程序与计算机硬件系统的界面C. 管理计算机系统资源D. 高级程序设计语言的编译器5、引入多道程序的目的在于( A )。

A. 充分利用CPU,减少CPU等待时间B. 提高实时响应速度C. 有利于代码共享,减少主、辅存信息交换量D. 充分利用存储器6、( A )没有多道程序设计的特点。

A. DOSB. UNIXC. WindowsD.OS/27、下列操作系统中,为分时系统的是( C )。

A. CP/MB. MS-DOSC. UNIXD. Windows NT8、在分时系统中,时间片一定,( B ),响应时间越长。

A.内存越多B.用户数越多C.后备队列越短D.用户数越少9、批处理系统的主要缺点是( B )。

A.CPU的利用率不高B.失去了交互性C.不具备并行性D.以上都不是10、在下列性质中,( D )不是分时系统的特征。

A. 交互性B. 同时性C. 及时性D. 独占性11、实时操作系统追求的目标是( C )。

A.高吞吐率B.充分利用内存C. 快速响应D. 减少系统开销12、CPU状态分为系统态和用户态,从用户态转换到系统态的唯一途径是( C )。

A. 运行进程修改程序状态字B. 中断屏蔽C. 系统调用D. 进程调度程序13、系统调用的目的是(A )。

A.请求系统服务B.终止系统服务C.申请系统资源D.释放系统资源14、系统调用是由操作系统提供的内部调用,它(B )。

16信号(一)

16信号(一)
10
总结
中断 信号 信号与中断 signal
11
第十七章
信号(二)
12
本章目标
信号分类 可靠信号与不可靠信号 信号发送 pause
13
信号分类
可靠信号 不可靠信号 实时信号 非实时信号
14
不可靠信号
linux信号机制基本上是从unix系统中继承过来的。早期 unix系统中的信号机制比较简单和原始,后来在实践中暴 露出一些问题,它的主要问题是:
sigprocmask(2-1)
#include <signal.h> int sigprocmask(int how, const sigset_t *set, sigset_t *oset); 功能:读取或更改进程的信号屏蔽字。 返回值:若成功则为0,若出错则为-1 如果oset是非空指针,则读取进程的当前信号屏蔽字通过 oset参数传出。如果set是非空指针,则更改进程的信号屏 蔽字,参数how指示如何更改。如果oset和set都是非空指 针,则先将原来的信号屏蔽字备份到oset里,然后根据set 和how参数更改信号屏蔽字。假设当前的信号屏蔽字为 mask,下表说明了how参数的可选值。
4
信号
信号是UNIX系统响应某些状况而产生的事件,进 程在接收到信号时会采取相应的行动。 信号是因为某些错误条件而产生的,比如内存段 冲突、浮点处理器错误或者非法指令等 信号是在软件层次上对中断的一种模拟,所以通 常把它称为是软中断
5
信号与中断
信号与中断的相似点:
(1)采用了相同的异步通信方式; (2)当检测出有信号或中断请求时,都暂停正在执行 的程序而转去执行相应的处理程序; (3)都在处理完毕后返回到原来的断点; (4)对信号或中断都可进行屏蔽。

第4.3节 VxWorks信号中断和定时

第4.3节 VxWorks信号中断和定时
ISR没有任务控制块(TCB),并且所有的 ISR共享一个堆栈
18
VxWorks中断处理流程
保存CPU寄存器 从中断控制器读中断向量号 顺序调用该中断服务程序 通知中断控制器中断服务程序结束 恢复CPU寄存器 返回
第4章
.
19
中断和优先级
第4章
.
20
ISR的使用限制
第4章
.
ISR执行完成之前,其它任务不能执行 ISR中不能调用某些VxWorks函数,尤其是,ISR不
信号量
ISR释放信号量,任务等待接收信号量
消息队列
ISR发送消息,任务等待接收消息,如果消息队列满,该消息被丢弃
管道
ISR向管道写消息,任务读消息
信号
ISR可以向任务发送signal。
23
调试中断
第4章
.
中断处理程序可以调用logMsg()向系统输出诊断信 息
logMsg(“foo = %d\n”,foo,2,3,4,5,6) 向tLogTask发送请求为我们实现printf()的功能
轮询硬件 检查系统错误
VxWorks提供对两种定时器的相同的接口
系统时钟 辅助时钟
26
系统时钟
第4章
.
系统时钟完成下列工作
增加ticks计数(使用tickGet()获得计数值)
更新延时和超时计数器
检查循环调度
默认的时钟频率是60Hz
sysClkRateSet()
设置时钟频率
参考sigLib (组件:INCLUDE_SIGNALS)
6
信号编号
第4章
.
31个信号编号,从1-31
#define #define #define #define

操作系统的逻辑结构

操作系统的逻辑结构

管态
用户态
操作系统的程序执行
使用全部指令
(包括一组特权指令)
使用全部系统资源
(包括整个存储区域)
用户程序执行 禁止使用特权指令
只允许用户程序访问 自己的存储区域
处理机的状态不断变化, 它有时会处于用户态, 有时会处于管态。
a
中断 嵌套
中断 自陷核态Fra bibliotek用户态中断自陷 返回
UNIX系统处理机状态转换 11
4. 特权指令集
在核态下操作系统可以使用所有指令,包括一 组特权指令。
• 改变机器状态的指令 • 修改特殊寄存器的指令 • 涉及外部设备的输入/输出指令
允许和禁止中断; 在进程之间切换处理机; 存取用于内存保护的寄存器; 执行输入和输出操作; 停止一个中央处理机的工作。
a
12
实例操作系统如何区分处理机的状态
a
13
必要的硬件支持
存储器
主存储器(主存、内存):
处理机能直接访问的存储器称为主存储器,用来存放正在或 将要执行的系统和用户程序和数据以及程序执行时要求的临 时存储空间。 只读存储器ROM(Read-only memory): ROM称为BIOS,
用来存放基本的I/O程序。 随机访问存储器 RAM(random access memory)
辅存储器(辅存、外存):
处理机不能直接访问的存储器,如磁盘、磁带、光盘等,用 来存放大量的数据信息。
a
14
时钟
时钟是操作系统运行时必不可少的硬设施,它以固 定的时间间隔产生中断信号,这对于实施进程调度、 计算系统资源的消耗、实时控制等功能是必不可少 的。
在操作系统中需时钟支持的工作有:
处理机调度; 实时控制; 提供用户和系统所需的绝对时间(日历时钟、墙钟)。
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

2.2.2 系统调用的处理方式



一般的函数调用序列并不能把进程的运行模式 从用户态变为核心态,而系统调用却可以做到 这一点。 实现它们的汇编代码形式通常以trap指令开头 (在Linux系统中是通过中断指令“INT 0X80” 实现的)。 trap指令的一般格式是: trap xx 参数1 参数2 ……
2.3.4 信号的检测和处理
图8-9 信号的检测与处理流程图
图8-2 硬件级的中断结构与过程
2.1.2 中断的处理过程
2.中断响应


对中断请求的整个处理过程是由硬件和软 件结合起来而形成的一套中断机构实施的。 硬件对中断请求做出反应的过程,称为中 断响应。 ① 中止当前程序的执行; ② 保存原程序的断点信息(主要是程序 计数器PC和程序状态寄存器PS的内 容); ③ 转到相应的处理程序。
16
17 18 19
SIGUSER1
SIGUSER2 SIGCLD SIGPWR
用户定义信号1
用户定义信号2 子进程终止 电源故障
2.信号的产生和传送
图8-8 有关信号的内部结构
2.3.3 信号的处理方式
u_signal[i]的值 零 非零奇数 非零偶数
信号的处理方式 进程终止自己 忽略该信号 其值为用户空间处理程序的入口地 址 表8-5 信号处理方式
(3)中断屏蔽的方式

可以用于整级屏蔽,也可用于单个屏蔽。
3.多重中断
(1)顺序处理方式
图8-4 多重中断的控制转移
(2)嵌套处理方式
图8-5 多重中断示例
2.2 系统调用处理 2.2.1 陷入事件的处理方式

在UNIX系统中,对异常的处理称做陷入。 引起陷入的事件可以分为两组:一组是自愿进 入陷入,称做自陷。 另一组是由于程序运行过程中出现软、硬件故 障或错误,也称做捕俘。 陷入处理的基本过程与中断处理基本相同。 统一进入陷入处理子程序(trap)。 ① 请求系统管理人员干预。 ② 按用户规定方式进行处理。 ③ 用户栈自动扩充。 ④ 系统调用处理。
图 系 统 调 用 实 现 过 程 示 例
8-6
2.3 信 号 机 制
1.信号的概念
2.3.1 信号机制概念
图8-7 利用信号机制实现进程间通信
2.信号与中断机制的异同
(1)信号机制与中断机制的相似之处 ① 信号机制与中断机制在概念上是一致 的。 ② 二者都是“异步”的。 ③ 二者在实现上都采用“向量表”的方 式。 ④ 都有屏蔽的手段。
图8-1 中断示意图
2.1.1 中断概述





引起中断的事件或发出中断请求的来源称为中 断源。 中断源向CPU提出的处理请求称为中断请求。 发生中断时,被打断程序的暂停点称为断点。 中断最初是作为通道(或设备)与CPU之间进 行通信的工具。 中断的概念后来得到进一步扩展。 其他部件也可以造成中断。 中断概念的另一个发展是访管指令(或系统调 用)的使用。
2.2.2 系统调用的处理方式


所有的陷入事件有一个总的服务程序,即陷入总 控程序。 系统调用处理函数根据trap指令后面的系统调用号 去查系统调用入口表,然后转入各个具体的系统 调用处理程序。
2.2.2 系统调用的处理方式
参数个数 0 1 标 志 1 1 处理程序 nosys rexit 注 释 0=indir 1=exit
4 5
diskintr
softintr
ttyintr
otherintr
表8-1 示意性中断向量表
Байду номын сангаас
中断号
0 1
说明
除法错误 调试异常
中断号
11 12
说明
段不存在 堆栈故障
2
3 4
空中断
断点 INTO检测溢出
13
14 15
一般性保护
页面故障 (Intel保留,未用)
5
6 7
边界范围异常
无效操作码 设备不可用
0
3 3 3
1
0 0 0
fork
read write open
2=fork
3=read 4=write 5=open
1

0

close

6=close

表8-3 系统调用入口表sysent结构
2.2.3 系统调用实现过程示例


设用户进程A在运行中要向已打开的文件(用 fd表示)写一批数据,为此在用户C源程序中 可用如下系统调用语句: rw=write (fd,buf,count); 这条语句经编译以后形成的汇编指令形式如下: trap 4 参数1 参数2 参数3 k1:……
16
17 18
浮点错误
调整检查 机器检查
8
9 10
双精度故障
无效任务状态段
19-31
(Intel保留,未用)
可屏蔽中断
协处理器段超限(保留) 22-255
表8-2 Intel Pentium处理器中断向量表
2.1.2 中断的处理过程
3.中断处理
(1)保存现场 ① 集中式保存是在系统内存区中设置一个 中断现场保存栈,所有中断的现场信息统一 保存在这个栈中。 ② 分散式保存是在每个进程的PCB中设置 一个核心栈,一旦其程序被中断,它的中断 现场信息就保存在自己的核心栈中。

8-4 UNIX S_5 的 信 号 分 类 及 其 含 义
9
10 11 12 13 14 15
SIGKILL
SIGBUS SIGSEGV SIGSYS SIGPIPE SIGALRM SIGTERM
要求终止该进程
总线超时 段违例 系统调用错 pipe文件只有写进程,没有读进程 报警信号 软件终止信号
(2)信号机制与中断机制的差别
① 中断机制是通过硬件和软件的结合来实 现的,而信号则完全由软件实现。 ② 中断向量表在系统空间中,每个中断向 量所对应的中断处理程序也在系统空间 中。信号机制与此不同,其“向量表” 在系统空间中,相应的信号处理程序却 在用户空间中。 ③ 一般情况下,CPU接到中断请求后会立 即做出响应和处理。而信号的检测和响 应要在特定情况下进行,如退出中断之
2.中断系统的作用



提高主机的利用率,使高速CPU可以和 低速的外部设备并行工作。 及时进行事故处理。 实现分时操作。 实现实时操作。 方便程序调试。
3.中断类型
不同的分类方法有不同的中断类型。 (1)按功能划分 机器故障中断。 I/O中断。 外部中断。 程序性中断。 访管中断。
2.1.1 中断概述
(2)按产生中断的方式划分 强迫中断。 自愿中断。
(3)按中断事件来源划分

中断。它是由CPU以外的事件引起的。 异常(Exception)。它是来自CPU内部 的事件或程序执行中的事件引起的过程。

系统调用也称软件中断(或陷入)。
2.1.2 中断的处理过程
1.中断的硬件结构
图 中 断 处 理 的 一 般 过 程
8-3
2.1.2 中断的处理过程
(2)分析原因
确定“中断源”或查证中断发生,识别 中断类型(确定是时钟中断还是盘中断)和 中断设备号(哪个磁盘引起的中断)。
(3)处理中断 (4)恢复现场
① 选取可以立即执行的进程。 ② 恢复工作现场。
2.1.3 中断优先级和多重中断
1.中断优先级


硬件设计时,一般把紧迫程度大致相当 的中断源归并为一组,称为一个中断级。 与某种中断相关的优先权称做它的中断 优先级。
2.中断屏蔽
(1)中断屏蔽和中断禁止 中断屏蔽是指在提出中断请求之后,CPU不予响 应的状态。 中断禁止是指在可引起中断的事件发生时系统不 接收该中断信号,因而就不可能提出中断请求而 导致中断。 (2)中断屏蔽的作用 ① 延迟或禁止对某些中断的响应。 ② 协调中断响应与中断处理的关系。 ③ 防止同类中断的相互干扰。
2.1.2 中断的处理过程

中断号 中断向量表 中断向量表的表项是中断向量。 中断向量因机器而异,通常包括相应中 断处理程序入口地址和中断处理时处理 机状态字PSW。
2.1.2 中断的处理过程
中 断 号 中断处理程 序
Clockintr
中 断 号
中断处理程 序
devintr
0
1 2
3
第2章 中断 概述
2.1 中 断 处 理 2.2 系统调用处理 2.3 信 号 机 制
2.1.1 中断概述
1.中断的概念 所谓中断是指CPU对系统发生的某个事件做出的一种 反应,它使CPU暂停正在执行的程序,保留现场后自 动执行相应的处理程序,处理该事件后,如被中断进 程的优先级最高,则返回断点继续执行被“打断”的 程序。
2.3.2 信号的分类、产生和传送
1.信号分类
信号号码
符号表示
含 义
1
2 3 4 5 6 7 8
SIGHUP
SIGINT SIGQUIT SIGILL SIGTRAP SIGIOT SIGEMT SIGEPE
进程被挂起
用户在键盘上按下Delete键或Ctrl+C 用户在键盘上按下Quit(Ctrl+\)键 非法指令 断点或跟踪指令 IOT指令 EMT指令 浮点运算溢出
相关文档
最新文档