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