- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
1.3操作系统提供服务与用户接口
主要内容:
一、操作系统提供的基本服务
二、操作系统提供的用户接口
三、程序接口与系统调用
四、操作接口与系统程序 ;创建程序:提供程序的编辑、调试、编译等生成工具。
执行程序
数据I/O
信息存取:文件操作
通信服务:进程通信
错误检测和处理
还具有另外一些功能:资源分配,统计,保护。 ;操作系统为用户提供两种调用其服务和功能的接口:
程序接口:又称应用编程接口API(Application Programming Interface),允许运行程序调用操作系统的服务和功能。
许多操作系统的程序接口由一组系统调用(System Call))组成,用户程序使用“系统调用”就可获得操作系统的底层服务,使用或访问系统的各种软硬件资源。 ;操作接口:又称作业级接口,操作系统为用户提供的操作控制计算机工作和提供服务手段的集合,通常有操作控制命令、图形操作界面(命令)、以及批处理系统提供的作业控制语言(命令)等实现手段。 ;用户和操作系统间的两种接口 ;1.系统调用
(1)概念
系统调用是为了扩充机器功能、增强系统能力、方便用户使用而在内核中建立的过程(函数),它是用户程序或其它系统程序获得操作系统服务的唯一途径,系统调用也称为广义指令。
机器指令由硬件实现,广义指令(系统调用)是由操作系统在机器指令基础上实现的过程或子程序。;(2)实现形式
早期操作系统的系统调用使用汇编语言编写。最新推出的一些操作系统,如UNIX新版本、Linux、Windows、OS2等,其系统调用用C语言编写,并以库函数形式提供。(有些库函数与系统调用无关,一般地说,库函数属于用户程序而非系统程序)。 ;三、程序接口与系统调用 (3);2.系统调用的分类
(1)进程和作业管理:进程的创建、装入、执行、撤销、终止,进程属性的获取和设置。
(2)文件操作:文件的建立、打开、读写、关闭、删除,文件属性的获取和设置。
(3)设备管理:设备的申请、输入输出、释放、重定向,设备属性的获取和设置。
(4)内存管理:内存的申请和释放。
(5)信息维护:日期、时间及系统数据的获取和设置。
(6)通信:通信连接的建立、连接和断开、信息的发送和接受。 ;实例:
Windows支持API(应用编程接口)的三个组件:
? Kernel包含了多数操作系统函数,如内存管理、进程管理;
? User集中了窗口管理函数,如窗口创建、撤销、移动、对话等相关函数;
? GDI提供画图函数、打印函数。
Windows将三个组件置于动态链接库DLL中。 ;Windows和UNIX/Linux的部分系统调用: ;3.系统调用的实现要点
(1)有关概念
陷入或异常处理机制------在操作系统中,实现系统调用功能的机制称为陷入或异常处理机制。
访管指令(陷入指令或异常中断指令)----由于系统调用而引起处理器中断的机器指令称为访管指令(陷入指令或异常中断指令)。 ;(2)系统调用的实现要点:
一、是编写系统调用处理程序;
二、是设计一张系统调用入口地址表,每个入口地址都指向一个系统调用的处理程序,有的系统还包含系统调用自带参数的个数;
三、是陷入处理机制需开辟现场保护区,以保存发生系统调用时的处理器现场。 ;(3) 系统调用的处理过程 ;(4) 系统调用的参数传递
不同的系统调用需传递给系统调用处理程序不同的参数,系统调用执行的结果也要以参数形式返回给用户程序。
实现用户程序和系统调用之间的参数传递可用以下方法:
一是由访管指令或陷入指令自带参数,可以规定指令之后的若干个单元存放的是参数,这称为直接参数;或者在指令之后紧靠的单元中存放参数的地址,这称为间接参数。;二是通过CPU的通用寄存器传递参数,或在内存的一个块或表中存放参数,其首地址送入寄存器,实现参数传递。
三是在内存中开辟专用堆栈区域传递参数。 ;三、程序接口与系统调用 (12);4.系统调用与过程(函数) 调用的区别
(1)调用形式不同。过程(函数)使用一般调用指令,其转向地址包含在跳转语句中,但系统调用不包含处理程序入口,仅仅提供功能号,按功能号调用。
(2)被调用代码的位置不同。在过程(函数)调用中,调用程序和被调用代码在同一程序内,经过连接编译后作为目标代码的一部分。当过程(函数)升级或修改时,必须重新编译连接。系统调用的处理代码在调用程序之外(在操作系统中),系统调用处理代码升级或修改时,与调用程序无关。 ;(3)提供方式不同。过程(函数)往往由编译系统提供,不同编译系统提供的过程(函数)可以不同;系统调用由操作系统提供,一旦操作系统设计好,系统调用的功能、种类与数量就固定不变了。
(4)调用的实现不同。程序使用一般机器指令(跳转指令)来调用过程(函数),
文档评论(0)