- 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操作系统提供的服务和用户接口 1.3.1 基本服务和用户接口 1.3.2 程序接口与系统调用 1.3.3 作业接口与操作命令 1.3.1操作系统提供的基本服务 ?创建程序 ?执行程序 ?数据I/O ?信息存取 ?通信服务 ?错误检测和处理 还具有另外一些功能:资源分配,统计, 保护。 1.3.2程序接口与系统调用 系统调用 (程序接口) 操作命令 操作系统 裸 机 应用程序 系统程序 (作业接口) 操作系统提供的程序接口(1) 系统调用是应用程序获得操作系统服务的唯一途径。 内核的主体是系统调用的集合,内核可以看成是特殊的公共子程序。 什么是系统调用?(2) 操作系统的功能通过一组称为系统调用(system call)的接口呈现给用户,内核提供一系列实现预定功能的内核函数,系统调用把应用程序的请求传达给内核,内核调用对应的内核函数完成请求所需处理后,再将处理结果返回给应用程序。 系统调用的作用(3) 系统调用是一种中介角色,把用户与硬件隔离开来,应用程序通过系统调用才能请求系统服务和使用系统资源。 其作用有: 一是内核可基于权限和规则对资源访问进行裁决,保证系统的安全性; 二是系统调用封装资源抽象,提供一致性接口,避免用户使用资源时可能发生的错误,且使编程方便效率高。 操作系统提供的程序接口(4) POSIX(Portable Operating System Interface for Computer Environment)标准 API和库函数 库函数和系统调用 操作系统提供的程序接口(5)应用程序、库函数、系统调用的调用关系链 调用fprintf( ) 应用程序 C函数库 内核 系统调用处理程序 C库中的fprintf( ) 封装程序 C库中的write( ) 封装程序 用户态 核心态 sys_write( )内核函数 操作系统提供的用户接口(6) UNIX/Linux系统程序、库函数、系统调用分层关系 用户 操作系统 (进程管理、存储管理、文件管理、设备管理等) 标准库函数 (打开、关闭、读、写、创建、撤销等) 标准系统程序(实用程序) (汇编、编译、编辑、Shell等) 用户接口 库函数 接口 系统调用 接口 硬件 (处理器、存储器、磁盘、打印机、终端等) 用 户 态 核 心 态 系统调用的分类 ?(1)进程和作业管理 (2)文件操作 (3)设备管理 (4)主存管理 (5)信息维护 (6)通信 Win32 API和UNIX/Linux系统调用对应关系 UNIX/Linux Win32 说明 fork CreatProcess 创建进程 waitpid WaitForSingleObject 等待进程终止 open/close CreatFile/CloseHandle 创建或打开文件/关闭文件 read/write ReadFile/WriteFile 读/写文件 lseek SetFilePointer 移动文件指针 mkdir/rmdir Creat/Remove Directory 建立/删除目录 stat GetFileAttributesEx 获得文件属性 系统调用的处理过程 System Call 用户程序 A0 SUB0 SUB1 SUBi SUBn A1 Ai An … … 系统调用处理子程序 取系统功能号 找入口地址表 相应入口地址 结束处理 恢复现场 A0 A1 … Ai … An 保护CPU现场 陷入指令 系统调用陷入机构 入口地址表 Linux系统调用执行流程 应用程序 int main( ) { … read( …); … } C库展开 int read { … int $0x80; … } 中断处理 entry (system_call) push %eax; SAVE_ALL … call sys_read … entry(ret_from_sys_call) … restore all; } 内核函数 asmlinkage long sys_read( ) { … return } 用户态 核心态 1.3.3作业接口与操作命令 操作接口又称作业级接口,是操作系统为用户操作控制计算机工作和提供服务的手段集合,通常可借助操作控制命令、图形操作界面(命令)、以及作业控制语言(命令)等来实现 作业控制方式 联机作业控制方式与作业控制语言
文档评论(0)