《操作系统提供的服务和用户接口.pptx》由会员分享,可在线阅读,更多相关《操作系统提供的服务和用户接口.pptx(21页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、1.3.21.3.2程序接口与系统调用程序接口与系统调用 系统调用(程序接口)操作命令操作系统裸 机 应用程序系统程序(作业接口)第1页/共21页操作系统提供的程序接口操作系统提供的程序接口(1)什么是系统调用?系统调用的作用?系统调用是应用程序获得操作系统服务的唯一途径。内核的主体是系统调用的集合,内核可以看成是特殊的公共子程序。第2页/共21页什么是系统调用什么是系统调用?(2)?(2)操作系统的功能通过一组称为系统调用(system call)的接口呈现给用户,内核提供一系列实现预定功能的内核函数,系统调用把应用程序的请求传达给内核,内核调用对应的内核函数完成请求所需处理后,再将处理结果
2、返回给应用程序。第3页/共21页系统调用的作用系统调用的作用(3)(3)系统调用是一种中介角色,把用户与硬件隔离开来,应用程序通过系统调用才能请求系统服务和使用系统资源,其作用有:一是内核可基于权限和规则对资源访问进行裁决,保证系统的安全性;二是系统调用封装资源抽象,提供一致性接口,避免用户使用资源时可能发生的错误,且使编程方便效率高。第4页/共21页操作系统提供的程序接口操作系统提供的程序接口(4)(4)应用程序能直接使用系统调用吗?POSIX(Portable Operating System Interface for Computer Environment)标准 API和库函数库函数
3、和系统调用第5页/共21页操作系统提供的程序接口操作系统提供的程序接口(5)应用程序、库函数、系统调用的调用关系链应用程序、库函数、系统调用的调用关系链调用fprintf()应用程序C函数库内核系统调用处理程序C库中的fprintf()封装程序C库中的write()封装程序用户态核心态sys_write()内核函数第6页/共21页操作系统提供的用户接口操作系统提供的用户接口(6)(6)UNIX/LinuxUNIX/Linux系统程序、系统程序、库函数、系统调用分层关系库函数、系统调用分层关系 用户 操作系统(进程管理、存储管理、文件管理、设备管理等)标准库函数(打开、关闭、读、写、创建、撤销等
4、)标准系统程序(实用程序)(汇编、编译、编辑、Shell等)用户接口库函数 接口系统调用 接口 硬件(处理器、存储器、磁盘、打印机、终端等)用户态核心态第7页/共21页系统调用的分类系统调用的分类 (1)进程和作业管理:(2)文件操作:(3)设备管理:(4)主存管理:(5)信息维护:(6)通信:第8页/共21页Win32 APIWin32 API和和UNIX/LinuxUNIX/Linux系统调用系统调用对应关系对应关系 UNIX/Linux Win32说明forkCreatProcess创建进程waitpidWaitForSingleObject等待进程终止open/closeCreatFi
5、le/CloseHandle创建或打开文件/关闭文件read/writeReadFile/WriteFile读/写文件lseekSetFilePointer移动文件指针mkdir/rmdirCreat/Remove Directory建立/删除目录statGetFileAttributesEx获得文件属性第9页/共21页系统调用的实现要点系统调用的实现要点 一.是编写系统调用处理程序;二.是设计一张系统调用入口地址表,每个入口地址都指向一个系统调用的处理程序,有的系统还包含系统调用自带参数的个数;三.是陷入处理机制需开辟现场保护区,以保存发生系统调用时的处理器现场。第10页/共21页系统调用的
6、处理过程系统调用的处理过程System Call用户程序A0SUB0SUB1SUBiSUBnA1AiAn系统调用处理子程序取系统功能号找入口地址表相应入口地址结束处理恢复现场A0A1AiAn保护CPU现场陷入指令系统调用陷入机构入口地址表第11页/共21页LinuxLinux系统调用执行流程 应用程序int main()read();C库展开int read int$0 x80;中断处理entry(system_call)push%eax;SAVE_ALLcall sys_readentry(ret_from_sys_call)restore all;内核函数asmlinkage longsy
7、s_read()return 用户态核心态第12页/共21页系统调用的参数传递系统调用的参数传递一是由访管指令或陷入指令自带参数,直接参数 间接参数二是通过CPU的通用寄存器传递参数,或 在主存的一个块或表中存放参数,其首地址送入寄存器,实现参数传递。三是在主存中开辟专用堆栈区域传递参数。第13页/共21页系统调用与函数调用的区系统调用与函数调用的区别别1)调用形式和实现方式不同。2)被调用代码的位置不同。3)提供方式不同。第14页/共21页1.3.31.3.3作业接口与操作命令作业接口与操作命令 操作接口又称作业级接口,是操作系统为用户操作控制计算机工作和提供服务的手段集合,通常可借助操作控
8、制命令、图形操作界面(命令)、以及作业控制语言(命令)等来实现 作业控制方式联机作业控制方式与作业控制语言脱机作业控制方式与操作控制命令第15页/共21页联机用户接口联机用户接口操作控制命操作控制命令令 命令行方式 批命令方式 图形化方式第16页/共21页脱机用户接口脱机用户接口作业控制语言作业控制语言 批处理接口:作业控制语言JCL(Job Control Language)。用户使用JCL语句,把运行意图(需要对作业进行的控制和干予)写在作业说明书上,将作业连同作业说明书一起提交给系统。批处理作业的调度执行过程,系统调用JCL语句处理程序或命令解释程序。第17页/共21页IBM IBM 3
9、70370使用使用JCLJCL处理处理批作批作业的业的例子例子/HAROLD JOB,WILSON,MSGLEVEL=(2,0),PRTY=6,CLASS=B/COMP EXEC PGM=IEYFORT/SYSPRINT DD SYSOUT=A/SYSIN DD*/*/GO EXEC PGM=FORTLINK/SYSPRINT DD SYSOUT=A/FTOTF001 DD UNIT=SYSCP/GO SYSIN DD*/*/第18页/共21页支撑程序支撑程序(1)(1)支撑程序又称标准程序或实用程序(Utilities),虽非操作系统的核心,但却必不可少,为用户程序的开发、调试、执行、和维护解决带有共性的问题或执行公共操作,操作系统以外部操作命令形式向用户提供系统程序。它的功能和性能很大程度上反映了操作系统的功能和性能。第19页/共21页支撑程序支撑程序(2)(2)支撑程序的分类:文件管理 状态信息 程序设计语言支持 程序的装入和执行支持 通信 其它软件工具 第20页/共21页感谢您的观看!第21页/共21页
限制150内