第7章操作系统接口(系统调用部分)资料
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
中断是指CPU对系统发生某事件时的这样一种响应:
CPU暂停正在执行的程序,在保留现场后自动地转去执行
该事件的中断处理程序;执行完后,再返回到原程序的断
点处继续执行 。
2020/11/11
15
被中断程序
中断处理开始
中断点
中断处理 程序
中断处理结束
图 7 - 4 中断时的CPU轨迹
2020/11/11
2020/11/11
17
2. 系统调用的处理步骤
首先,将处理机状态由用户态转为系统态;之后,由硬 件和内核程序进行系统调用的一般性处理,即首先保护被中 断进程的CPU环境,将处理机状态字PSW、程序计数器PC、 系统调用号、用户栈指针以及通用寄存器内容等,压入堆栈; 然后,将用户定义的参数传送到指定的地方保存起来。
2020/11/11
5
系统调用
操作系统中提供了系统调用,使应用 程序可以通过系统调用的方法,间接调用 操作系统的相关过程,取得相应的服务。
应用程序使用系统调用命令,以取得 操作系统服务时,操作系统将CPU的状态从 用户态转换到系统态,然后执行操作系统 中相应的子程序,完成所需的功能,执行 完成后,系统又将CPU状态从系统态转换到 用户态,再继续执行应用程序。
16
7.3.3 系统调用的实现
1. 中断和陷入硬件机构
(1) 什么是中断和陷入。 外中断:由于外部设备事件所引起的中断
内中断:由于CPU内部事件所引起的中断 内中断(trap)被称为“捕获”或“陷入”
陷入是由于执行了现行指令所引起的,中断则是由于系统 中某事件引起的,事件与现行指令无关。
系统调用引起的中断属于内中断,因此由系统调用引起中 断的指令称为陷入指令
7
系统调用与一般过程调用的区别
系统调用方式(INT)与程序中一般的过程调 用方式的相同点:
改变指令流程 重复执行和公用 改变指令流程后需要返回原处
2020/11/11
8
系统调用与一般过程调用的区别
运行在不同的系统状态 一般过程调用,其调用程序和被调用程序都运行 在相同状态:系统态(核心态,管态)或用户态 (目态) 系统调用:调用程序在用户态,被调用程序在系 统态
11
系统调用与一般过程调用的区别
嵌套调用 系统调用也允许嵌套调用,即在一被调用过程 执行期间,可再利用系统调用命令调用另一系 统调用 一般每个系统对嵌套调用的深度有限制
2020/11/11
12
系统调用与一般过程调用的区别
用户 程序
系统 调 用命 令
调用
系统 功能
返回
系统 调 用命 令
系统 功能 系统 调 用命令 调用 系统子功能
其次,是分析系统调用类型,转入相应的系统调用处理 子程序。
最后,在系统调用处理子程序执行完后,应恢复被中断
的或设置新进程的CPU现场,然后返回被中断进程或新进程,
继续往下执行。
2020/11/11
18
练习:
系统调用的目的是() A、请求系统服务 B、终止系统服务 C、申请系统资源 D、释放系统资源 用户程序通过系统调用creat来创建一新文件时,在执行 系统调用前,用户进程是运行在()下,在执行creat()的 过程中,用户进程是运行在()下。
返回
(a) 系统调用与返回
(b) 程序之间的嵌套调用
2020/11/11
13
7.3.2 系统调用的类型
进程控制 文件操纵 通信管理 系统维护
2020/11/11
14
7.3.3 系统调用的实现
系统调用,由原来的用户态转换为系统态,是借助于中断 和陷入机制来完成的。
1. 中断和陷入硬件机构
(1) 什么是中断和陷入。
2020/11/11
10
系统调用与一般过程调用的区别
返回问题
抢占式调度的系统中,被调用过程执行完后, 系统将对所有要求运行的进程进行优先级分 析。如果调用进程仍有最高优先级,则返回 到调用进程执行。否则,引起重新调度,让 优先级最高的进程优先执行。此时,系统把 调用进程放入就绪队列
2020/11/11
2020/11/11
19
练习:
OS向用户提供的接口有多种:通过(),用户可直接 在终端上键入命令;通过(),用户可以双击窗口中的图 标来运行相应的程序;通过(),用户程序可使用open() 来打开一个文件;通过(),用户可将作业说明书和作业 一起提交给系统,从而让系统按作业说明书的要求来运行 作业。
第七章 操作系统接口
联机命令接口 系统调用 图形用户ห้องสมุดไป่ตู้口
2020/11/11
1
7.3 系统调用
程序接口是OS专门为用户程序设置 的,也是用户程序取得OS服务的唯一途径。 程序接口通常中由各种类型的系统调用所 组成的,系统调用提供了用户程序和操作 系统之间的接口,应用程序通过系统调用 实现其与OS的通信,并取得它的服务。
操作系统在系统态运行,应用程序只能在用 户态运行。
2020/11/11
4
特权指令与非特权指令
CPU的指令分为特权指令和非特权指令。
特权指令:在系统态时运行的指令,关系到全 局的指令。只允许操作系统使用,不允许应用程 序使用。
非特权指令:在用户态时运行的指令,一般应用 程序所使用的都是非特权指令,它只完成一般性 的操作和任务,不能对系统中的硬件和软件直接 进行访问,对内存的访问也局限于用户空间。
2020/11/11
2
7.3.1 系统调用的基本概念
在OS的核心中都设置了一组用于实 现各种系统功能的子程序,并将它们提供 给应用程序调用。
2020/11/11
3
系统态和用户态
为了保证系统程序不被应用程序有意或无意 地破坏,计算机设置了两种状态:系统态 (也称为管态或核心态)和用户态(也称为 目态)。
2020/11/11
9
系统调用与一般过程调用的区别
通过软中断进入
一般的过程调用不涉及系统状态的转换,可直接 由调用过程转向被调用过程
运行系统调用时,调用和被调用过程在不同系统 状态,不允许由调用过程直接转向被调用过程
通过软中断机制先由用户态转换为核心态
在OS核心分析后,转向相应的系统调用处理子程 序
2020/11/11
6
系统调用与一般过程调用的区别
由于操作系统过程的特殊性,使应 用程序不能采用一般的过程调用,而是 利用一种系统调用命令来调用所需的系 统过程。可见系统调用在本质上是应用 程序请求OS内核完成某功能时的一种过 程调用,但它是一种特殊的过程调用, 它与一般的过程调用有明显的差别。
2020/11/11