操作系统提供服务和用户接口

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
13
4.系统调用与过程(函数) 调用的区别 (1) 调用形式和实现方式不同。过程(函数)使用一般调用指令
其转向地址包含在跳转语句中,但系统调用不包含处理程 序入口,仅仅提供功能号,按功能号调用。 (2) 被调用代码的位置不同。在过程(函数)调用中,调用程序 和被调用代码在同一程序内,经过连接编译后作为目标代 码的一部分。当过程(函数)升级或修改时,必须重新编 译连接。系统调用的处理代码在调用程序之外(在操作系 统中),系统调用处理代码升级或修改时,与调用程序无 关。 (3)提供方式不同。过程(函数)往往由编译系统提供,不 同编译系统提供的过程(函数)可以不同;系统调用由操 作系统提供,一旦操作系统设计好,系统调用的功能、种 类与数量就固定不变了。
系统调用是一种中介,把用户和硬件隔离开,程序只有通过系统 调用才能请求系统服务并且使用系统资源。
系统调用的作用: 内核可以基于权限和规则对资源访问进行裁决,可以保证系统的
安全性; 系统调用对资源进行抽象,提供一致性接口,避免用户在使用资
源时发生错误,并且使编程效率提高。 注意:系统调用是应用程序获得操作系统服务的唯一途径!
其工作方式如下: • 用户使用JCL语句,把运行意图(需要对作业进行的控制和干 予)写在作业说明书上,将作业连同作业说明书一起提交给系 统。 • 批处理作业被调度执行时,系统调用JCL语句处理程序或命 令解释程序对作业说明书进行解释处理,完成对作业的运行 和控制。
19
实例:
一个需要编译、连结编辑的作业,源程序和数据穿在
3
二、操作系统提供的用户接口 (2)
(程序接口)
(操作接口)
用户和操作系统间的两种接口
4
系统调用:内核提供一系列具有预定功能的内核函数,通过一组 接口(系统调用)提供给用户。
系统调用把应用程序的请求传送至内核,调用相应的内核函数完 成所需要的处理,把处理结果返回给应用程序。
内核的主体是系统调用的集合,可以把内核看作特殊的公共子程 序。
16
四、操作接口与系统程序(3)
第二类进程管理类:at、kill、mail、nice、nohup、ps、ti write、mesg。 第三类文本加工类:cat、crypt、grep、norff、uniq、wc、 spell、tail、troff。 第四类软件开发类:cc、f77、login、logout、size、yacc、 emacs、dbs、lex、make、lint、ld。 第五类系统维护类:date、man、passwd、stty、tty、who。 ②批命令方式 思想:规定一种特别的文件称批命令文件,通常该类文件具 有特殊的文件扩展名(如MS-DOS约定为BAT),用户可预先 把一系列命令组织在该类文件中,一次建立,多次执行。操 作系统还支持命令文件使用一套控制子命令,可写出带形式 参数的批命令文件。这样的批命令文件可执行不同的命令序 列,增强命令接口的处理能力。
.
•/*
•//
UNIX/Linux中的Shell也可以认为是一种作业控制语言JCL。
21
2.命令解释程序 (1) 命令解释程序的主要功能是:接受和执行一条用户从键盘 输入的命令,它通常保存一张命令名字(动词)表,其中记 录着所有操作命令及其处理程序的入口地址或有关信息。当 新的批作业被启动,或新的交互型用户登录时,系统就自动 地执行命令解释程序,它负责读入控制卡或命令行,并作出 相应解释和执行。 (2) 命令解释程序实现的两种方式 •一种是它自身包含了命令的执行代码。 •另一种是由专门的“系统程序” 实现,自身不含命令处理代 码,也不进行处理,仅仅把这条命令对应的命令文件装入内 存执行。
9
三、程序接口与系统调用 (5)
Windows和UNIX/Linux的部分系统调用:
UNIX/Linux fork waitpid open/close read/write lseek mkdir/rmdir stat
Win32
说明
CreatProcess
创建进程
WaitForSingleObject 等待进程终止
卡片上,编译、连结编辑的结果需在行式打印机上输出,编
译结果要存盘,连结编辑结果还要从穿孔机输出,此作业用
JCL语句组织如下:
•// HAROLD
JOB,WILSON,MSGLEVEL=(2,0),PRTY=6,CLASS=b
•// COMP EXEC PGM=IEYFORT
•// SYSPRINT DD SYSOUT=A
陷阱或异常处理机制------在操作系统中,实现系统调用功 能的机制称为陷阱或异常处理机制。 访管指令(陷阱指令或异常中断指令)----由于系统调用而 引起处理器中断的机器指令称为访管指令(陷入指令或异 常中断指令)。 (2)系统调用的实现要点: 一. 是编写系统调用处理程序; 二. 是设计一张系统调用入口地址表,每个入口地址都指向一个 系统调用的处理程序,有的系统还包含系统调用自带参数 的个数; 三. 是陷入处理机制需开辟现场保护区,以保存发生系统调用 时的处理器现场。
6
Windows操作系统也提供与POSIX兼容的子系统。 Windows不公开系统调用,仅提供以库函数形式定义的API,叫
做Win32API。 在用户程序角度看,库函数和系统调用之间差别不大,但是在操
作系统实现的角度看,两者存在重要差别: 使用库函数可以隐藏访管指令的细节,使系统调用形式上类似函
数调用; 对用户隐藏系统调用,可以在操作系统内核改动时,应用程序不
17
UNIX和Linux的Shell不但是一种交互型命令解释程序, 也是命令级程序设计语言解释系统。 2) 图形化用户界面
图形化用户接口GUI(Graphics User Interface)使用 口、图标、菜单和鼠标等技术,将系统的功能、各种应用程 序和文件用图形符号直观、逼真地表示出来,用户可通过选 择窗口、菜单、对话框和滚动条完成对它们的作业的各种控 制和操作。 3) 新一代用户界面
装函数,屏蔽其下层的复杂性,负责把操作系统所提供的服务 接口——系统调用封装成应用程序能够直接调用API(应用编 程接口)。 一个库函数就是一个API,它介于操作系统和应用程序之间。 一个API可能使用一个系统调用,也可能使用多个系统调用;也 可能若干API封装相同的系统调用。 有的库函数可能与系统调用无关。
12
(4) 系统调用的参数传递 不同的系统调用需传递给系统调用处理程序不同的参数,系统
调用执行的结果也要以参数形式返回给用户程序。 实现用户程序和系统调用之间的参数传递可用以下方法: 一是由访管指令或陷入指令自带参数,可以规定指令之后的若
干个单元存放的是参数,这称为直接参数;或者在指令之 后紧靠的单元中存放参数的地址,这称为间接参数。 二是通过CPU的通用寄存器传递参数,或在内存的一个块或表 中存放参数,其首地址送入寄存器,实现参数传递。 三是在内存中开辟专用堆栈区域传递参数。
虚拟现实技术的研究和应用,多感知通道用户接口, 自然化用户接口,智能化用户接口的研究。
18
(2)脱机用户接口-----作业控制语言(命令) 这种接口是专为批处理作业用户提供的,也称批处理
用户接口。操作系统提供了一个作业控制语言JCL(Job Control Language),它由一组作业控制卡,或作业控制语句 或作业控制操作命令组成。
14
四、操作接口与系统程序(1)
1.作业控制方式 用户如何来向操作系统提交作业和说明运行意图?操作
系统提供了联机作业控制方式和脱机作业控制方式两个作业级 的接口,这两个接口的使用手段为:操作控制命令和作业控制 语言(命令)。 (1)联机用户接口-----操作控制命令 这是为联机用户提供的调用操作系统功能,请求操作系统为其 服务的手段,它由一组命令及命令解释程序组成,也称为命令 接口。其工作方式为:用户在键盘上键入一条命令后,系统立 即转入命令解释程序,对该命令进行处理和执行。
8
三、程序接口与系统调用 (4)
实例: Windows支持API(应用编程接口)的三个组件: • Kernel包含了多数操作系统函数,如内存管理、进程管理; • User集中了窗口管理函数,如窗口创建、撤销、移动、对话等
相关函数; • GDI提供画图函数、打印函数。 Windows将三个组件置于动态链接库DLL中。
5
2.API、库函数和系统调用 直接使用系统调用存在两个困难:第一,接口复杂、使用困难;
第二,应用程序的跨平台可移植性受到很大限制。 POSIX标准:规定内核的系统调用接口标准,应用程序在遵循此
标准的不同操作系统之间具有可移植性。 UNIX/Linux在标准C函数库中为每个系统调用构造一个同名的封
性的获取和设置。 (3)设备管理:设备的申请、输入输出、释放、重定向,设备属
性的获取和设置。 (4) 内存管理:内存的申请和释放。 (5)进程通信:通信连接的建立、连接和断开、信息的发送和接
受;传递状态信息;连接和断开远程设备。 (6)信息维护:日期、时间及系统数据的获取和设置;获取和设
置信息;生成诊断和统计数据。
2
二、操作系统提供的用户 接口 (1)
操作系统为用户提供两种调用其服务和功能的接口: 程序接口:允许运行程序调用操作系统的服务和功能。
许多操作系统的程序接口由一组系统调用(System Call)) 组成,用户程序使用“系统调用”就可获得操作系统的底 层服务,使用或访问系统的各种软硬件资源。 操作接口:又称作业级接口,操作系统为用户提供的操作控 制计算机工作和提供服务手段的集合,通常有操作控制命 令、图形操作界面(命令)、以及批处理系统提供的作业控 制语言(命令)等实现手段。
CreatFile/CloseHandle 创建或打开/关闭文件 ReadFile/WriteFile 读/写文件
SetFilePointer
移动文件指针
Creat/Remove Directory 建立/删除目录
GetFileAttributesEx 获得文件属性
10
3.系统调用的实现要点 (1)有关概念
15
四、操作接口与系统程序(2)
常用的用户界面有以下几种: 1)字符显示用户界面 主要通过命令语言来实现,又可分成两种方式: ①命令行方式 它以命令为基本单位来完成预定的工作任务。每个命令以命 令行的形式输入并提交给系统。一个命令行由命令动词和一 组参数构成,其一般形式如下: Command arg1 arg2 . . . Argn Command-----命令名,又称命令动词。 arg1 arg2 . . . argn-----命令参数。 Linux常用的五大类命令: 第一类文件管理类:cd、chmod、chgrp、comm、cp、crypt、 diff、file、find、ln、ls、mkdir、mv、od、pr、pwd、rm、 rmdir。
11
三、程序接口与系统调用 (7)
(3) 系统调用的处理过程
系统调用陷入机
用户程 陷入指


System Call
保护构CPU现 入口地址


A0
取系统功能
号找入口地 A1
址表

相应入口地 Ai

Ai
A…n
结束处理
恢复现场
系统调用处理子 程序
A0 SUB0 A1 SUB1
… Ai SUBi
… An SUBn
•// SYSIN DD*

.

<Source Program Card>
••// GO EXEC PGM=FORTLINK
•// SYSPRINT DD SYSOUT=A
•// FTOTF001 DD UNIT=SYSCP
•// GO SYSIN DD*

.

<Data Card>

需要改动。 库函数属于用户程序,在CPU用户态工作,系统调用属于系统程
序(操作系统),在核心态运行。 用户可以替换库函数,但是不能替换系统调用。
7
三、程序接口与系统调用 (3)
3.系统调用的分类 (1)进程管理:进程的创建、装入、执行、撤销、终止,进程属
性的获取和设置。 (2)文件操作:文件的建立、打开、读写、关闭、删除,文件属
1.3 操作系统的基本服务和用户接口
主要内容: 操作系统提供的基本服务 操作系统提供的用户接口 程序接口与系统调用 操作接口与操作命令
1
一、操作系统提供的基本服务
创建程序和执行程序 数据I/O 和信息存取:文件操作 通信服务:进程通信 差错检测和处理 还具有另外一些功能: 1.资源分配 2. 统计 3. 保护
相关文档
最新文档