第九章 操作系统接口
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
联机用户接口也叫联机命令接口、交互式用户两种形式:
用户组终端键盘键入的命令被称为命令语言,由一组命令动词和参数组成,以命令行的形式
每一条命令指示系统完成特定的功能。
完整的命令集反映了系统提供给用户可使用的全部功能。
命令语言又可分为两种方式:
命令行方式
用户从终端直接输入命令,系统反馈后才能输入下一条
命令的执行时间断的,伴随着用户和系统之间的不断交互
一般形式:
Command arg1 arg2 …argn
将多条命令写入批命令文件,一次建立,多次用户不必记忆和键入命令,系统可连续执行多
为了实现命令方式下的人机交互,系统需配备:
7.1.4 命令解释程序
位于是OS的最高层,以便与用户交互。 功能: 先对用户输入的命令进行解释 再转入相应命令的处理程序去执行 例如: MS-DOS中的 UNIX中的Shell
11
7.1.4 命令解释程序
1. 作用
在屏幕上给出提示符、读入和识别命令, 转入相应命令处理程序的入口地址,把控 制权交给该处理程序执行,将处理结果回 送到屏幕显示。 2. 组成 3. 工作流程
12
7.3 系统调用
程序接口:OS专为用户程序设置的接口,是 用户程序取得OS服务的唯一途径,由各种类 型的系统调用组成。 系统调用的概念 系统调用的类型 POSIX标准 系统调用的实现
1. 2. 3. 4.
13
7.3.1 系统调用的基本概念
OS核心中的一组实现各种系统功能的子程序 (过程),可以提供给应用程序使用。 但是,为了避免破坏OS,不允许用户程序直接 调用这些子程序(过程),OS提供了一系列系 统调用命令,应用程序只能通过系统调用去调 用所需系统过程。
14
系统态和用户态
为了防止系统程序被破坏,为计算机设置了两 种状态: 系统态(管态、核心态)
操作系统
用户态(目态)
应用程序
实际运行中,处理机会在系统态和用户态切换。 使用系统调用时,需要进行两种状态的切换。
15
特权指令和非特权指令
特权指令 系统态时运行的指令 对内存空间访问不受限制,可访问用户空间,也可 访问系统空间 如:启动外设、设置系统时钟、关中断… 只允许操作系统使用,不允许应用程序使用 非特权指令 用户态时运行的指令 只能访问用户空间 不能直接访问系统中的硬件和软件,避免应用程序 运行异常时破坏系统 采用硬件实现权限的限制 16
系统调用
前述机制带来的矛盾: 为了安全性,应用程序不能直接调用操作系统过程 不使用操作系统提供的服务,应用程序做不了什么 有价值的工作,甚至无法正常工作 系统调用的作用: 使应用程序可以间接调用OS的相关过程,取得相应 的服务。 系统调用的本质 应用程序向OS请求服务时的过程调用 是一种特殊的过程调用 17
系统调用的特殊性
与一般的过程调用相比,系统调用具有一定的特殊性
系统调用 运行状态 状态切换 返回问题 嵌套调用 主调程序:用户态 被调程序:系统态 通过软中断进入状态 切换 可能引起调度 有深度限制 一般过程调用 主调程序和被调程序 同在用户态或系统态 不切换 不调度 不限制深度
18
系统调用举例——读写文件
用户程序
输入文件
读 写
open create read write close exit … 系统调用
输出文件
用户态
系统态
19
中断机制
系统调用通过中断机制实现,一个操作系统的 所有系统调用都通过同一个中断入口来实现。 如:
MS-DOS提供了INT 21H Linux使用80h
20
用户态到系统的转换,需借助中断和陷入机制包括:
过程
系统调用号
系统调用号及其他参数的传递方法
int
int *
_P_OVERLAY _P_WAIT
_P_NOWAIT _P_DETACH
trap.s
CPU