第7章
操作系统接口
第7章 操作系统接口
7.1 系统功能调用
7.2 图形用户接口7.3 用户管理
习题
第7章
操作系统接口
7.1 系统功能调用7.1.1 系统调用及实现 1.程序的状态 在计算机系统中运行的程序,大体上可以分为两 类:系统程序和用户程序。这两类程序的作用是不同 的,前者是后者的管理者和控制者,系统程序享有普
通用户程序不能享有的特权。
第7章
操作系统接口
户程序的运行和系统程序的运行区分开来: 把操作系统程序运行的状态称为管态或者系统态;
把用户程序运行的状态称为算态或者目态。在UNIX中,系统程序运行的状态叫核心态,用户程 序运行的状态叫做用户态。
第7章
操作系统接口
为了区分只能在管态下允许执行,而不能在算态 下调用的一类专用指令,引进了特权指令。特权指令 是一类只能在管态下执行而不能在算态下执行的特殊 的指令。这些指令在不同的机器中有不同的规定,通 常与硬件有很大的关系。常见的特权指令有如下几类:
第7章
操作系统接口
(1) 传送程序状态字指令。该指令负责从内存单元 取出程序状态字,送到程序状态寄存器中,可用来改 变程序的运行状态。 (2) 启动、测试和控制外设的指令。这些指令直接 用于操纵外部设备的运行。
(3) 存取特殊寄存器的指令。特殊寄存器是指系统中的中断寄存器、时钟寄存器、上/下界地址寄存器等, 这些寄存器只能在管态下由系统程序存取。
第7章
操作系统接口
7.系统功能调用 (1) 需要有这样一条指令,它能使处理机从算态进 入管态,并向操作系统提出要代为完成的工作。 (2) 在管态下由操作系统完成用户程序提出的请求。 (3) 操作系统完成所做工作后,应返回到用户程序,
即从管态又回到原来的算态。
第7章
操作系统接口
7.系统调用与普通过程调用的区别 系统调用在本质上是一种过程调用,但它是一种
特殊的过程调用,与一般用户程序中的过程调用有明显的区别。 1) 运行在不同的系统状态
一般的过程调用,其调用或被调用的过程要么都是子程序,要么都是系统程序,而且都运行在同一系 统状态下,即系统态(管态)或用户态(目态)。
第7章
操作系统接口
2) 通过软中断进入一般的过程调用可直接由调用过程转向被调用过程。 而执行系统调用时,因为调用过程和被调用过程处于不 同的系统状态,所以不允许由调用过程直接转向被调用 过程,只能通过软中断机制,先进入操作系统核心,经 核心处理后,才能转向相应的命令处理程序。
第7章
操作系统接口
3) 返回问题 一般的过程调用,当被调用过程执行完后,将返
回
到调用过程继续执行。然而,在采用了抢占剥夺调度方式的系统中,在被调用过程执行完后,要对系统 中所有要求运行的进程进行优先权的分析。
第7章
操作系统接口
4. 系统调用的功能 1) UNIX的系统功能 UNIX的系统调用接口见图7.4。UNIX提供的系统 功能主要包含有设备管理、文件管理、进程和存储管 理等。
(1) 设备管理:设备的读写和控制。其系统调用见表7.8。 (2) 文件管理:文件读写和文件控制。其系统调用 见表7.9。
第7章
操作系统接口
用户用户接口 库接口 系统功能 调用接口
用户
用户
标准应用程序,如Shell、编译器等 标准库 (open,close,write,fork等) 用户模式
UNIX操作系统 (设备管理,文件管理,进程管理,存储管理等) 硬件 (CPU,内存,磁盘,终端等)
核心模式
图7.4 UNIX的系统调用接口
第7章
操作系统接口
表7.8 设备管理系统调用
ioctl open
设备配置 设备打开
closeread write
设备关闭读设备 写设备
第7章
操作系统接口
表7.9 文件管理系统调用open close read write seek creat stat mount chmod 文件打开 文件关闭 读文件 写文件 读/写指针定位 文件创建 读文件状态 安装文件系统 修改文件属性
第7章
操作系统接口
(3) 进程控制:创建、终止、暂停等控制。其系统 调用见表7.10。 (4) 进程通信:消息队列、共享存储区、socket等 通信渠道的建立、使用和删除。其系统调用见表7.11。 (5) 存储管理:内存的申请和释放。其系统调用见
表7.12。(6) 系统管理:设置和读取时间、读取用户和主机 标识等。其系统调用见表7.13。 (7) 文件保护系统调用见表7.14。
第7章
操作系统接口
表7.10 进程控制系统调用
fork exit
创建进程 进程自我终止
waitsleep getpid
阻塞当前进程进程睡眠 读父进程标识
第7章
操作系统接口
表7.11 进程通信系统调用
msgget msgsnd msgrcv shmget shmat semget semop
获取消息队列标识数 向消息队列发消息 从消息队列中接收一个消息 创建共享内存段 共享内存段映射到进程的虚拟地址 创建一个信号灯组 对信号灯组的控制
…… 此处隐藏:85字,全部文档内容请下载后查看。喜欢就下载吧 ……