第七章 操作系统接口

(1) 操作系统接口概述

人-计算机接口:操作系统

用户与操作系统之间进行交互的接口:操作系统接口

(2) 操作系统接口分类

  • 命令接口\

    联机用户接口:面向联机用户的操作接口;\

    脱机用户接口:面向脱机(批处理)用户的操作接口;

  • 图形用户接口(GUI, Graphical User Interface)\

    面向联机用户的操作接口。

  • 程序接口\

    面向程序员的接口,程序可以直接调用操作系统核心功能。

7.1 联机命令接口

7.1.1 联机命令的基本形式

  • 联机命令的基本形式\

    Command Param1 Param2 …

    • Command:命令名称。

    • Param1,Param2,..: 命令参数和选项;

  • 实例\

    DIR\

    COPY C:\t.txt d:\td.txt\

    cp file1 file2

7.1.2 联机命令接口的组成

  • 键盘终端处理程序\

    负责实现基本的命令编辑、接收和回显功能。

    • 接收用户从终端打入的字符;

    • 字符缓冲,用于暂存所接收的字符;

    • 字符回显;

    • 屏幕编辑;

    • 特殊字符处理;

  • 命令解释程序\

    负责实现对用户输入命令的解释,并转入相应命令处理程序去执行。

7.2 Shell程序接口

  • Shell编程(UNIX)

利用UNIX操作系统提供的命令,将需要完成的命令按执行次序写成文件,形成所谓shell程序文件。

执行这类文件,可以实现一批命令的自动执行。

7.3 程序接口:系统调用

7.3.1 系统调用的基本概念

(1) 什么是系统调用

用户在程序中调用操作系统所提供的一些子功能。通常也把被调用的操作系统功能,称为系统调用。

(2) 系统调用过程

(3) 系统调用特点

  • 这是特殊的过程调用,由特殊的机器指令实现(每种机器的机器指令集中都有一条系统调用指令——访管指令)

  • 这个指令还将系统转入管态

  • 系统调用是一个低级过程,只能由汇编语言直接访问

  • 系统调用是操作系统提供给编程人员的唯一接口

  • 系统调用和函数调用区别:

    • 进入和退出方式不同:\

      系统调用:INT/IRET,函数调用: CALL/RET;

    • CPU状态变化不同:\

      系统调用:用户态 → 系统态 → 用户态;\

      函数调用:无CPU状态变化。

(4) 系统调用处理过程

  • 在系统中为控制系统调用服务的机构称为陷入(TRAP)或异常处理机构。相对应,把由于系统调用引起处理机中断的指令称为陷入或异常指令(或称访管指令);

  • 在操作系统中,每个系统调用都对应一个事先给定的功能号,例如0、1、2、3等;

  • 在陷入指令中必须包括对应系统调用的功能号。有些陷入指令中,还带有传给陷入处理机构和内部处理程序的有关参数;

  • 必须为实现系统调用功能的子程序编造入口地址表,每个入口地址与相应的系统程序名对应;

  • 陷入处理程序把陷入指令包含功能号与入口地址表有关项对应, 系统调用功能号驱动有关子程序执行;

  • 在系统调用处理结束之后,用户程序需利用系统调用返回结果继续执行.

Last updated