资源预览内容
第1页 / 共31页
第2页 / 共31页
第3页 / 共31页
第4页 / 共31页
第5页 / 共31页
第6页 / 共31页
第7页 / 共31页
第8页 / 共31页
第9页 / 共31页
第10页 / 共31页
第11页 / 共31页
第12页 / 共31页
第13页 / 共31页
第14页 / 共31页
第15页 / 共31页
第16页 / 共31页
第17页 / 共31页
第18页 / 共31页
第19页 / 共31页
第20页 / 共31页
亲,该文档总共31页,到这儿已超出免费预览范围,如果喜欢就下载吧!
点击查看更多>>
资源描述
单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,单击此处编辑母版标题样式,*,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,单击此处编辑母版标题样式,*,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,单击此处编辑母版标题样式,*,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,单击此处编辑母版标题样式,*,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,单击此处编辑母版标题样式,*,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,单击此处编辑母版标题样式,*,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,单击此处编辑母版标题样式,*,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,单击此处编辑母版标题样式,*,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,单击此处编辑母版标题样式,*,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,单击此处编辑母版标题样式,*,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,单击此处编辑母版标题样式,*,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,单击此处编辑母版标题样式,*,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,单击此处编辑母版标题样式,*,1.3,操作系统基本服务和用户接口,1.3.1,基本服务和用户接口,1.3.2,程序接口与系统调用,1.3.3,操作接口与系统程序,1.3.4 Linux,系统调用及实现机制,1.3操作系统基本服务和用户接口1.3.1 基本服务和用户接,1.3.1,操作系统基本服务,1.基本服务,创建程序,执行程序,数据,I/O,信息存取,通信服务,错误检测和处理,还具有其他功能,:,资源分配,统计,保护。,1.3.1操作系统基本服务 1.基本服务,2用户,接口,系统调用,(,程序接口,),操作命令,操作系统,裸 机,应用程序,系统程序,(,操作接口,),2用户接口系统调用操作命令操作系统裸 机 应用程序系统,1.3.2,程序接口与系统调用,什么是系统调用,?,系统调用的作用,?,系统调用,是,应用程序获得操作系统服务的唯一途径,。,内核,的主体是系统调用的集合,内核可以看成是特殊的公共子程序。,1.3.2 程序接口与系统调用什么是系统调用?,什么是系统调用,?,操作系统的功能通过一组称为,系统调用,(system call),的,接口,呈现给用户,内核提供一系列实现预定功能的,内核函数,,系统调用,把应用程序的请求传达给内核,,,内核调用对应的,内核函数,完成请求所需处理,后,再,将处理结果返回给应用程序,。,什么是系统调用?操作系统的功能通过一组称为系统调用(syst,系统调用的作用,系统调用是一种中介角色,把用户与硬件隔离开来,应用程序通过系统调用才能请求系统服务和使用系统资源。,其作用有:,1,、,内核可基于权限和规则对资源访问进行裁决,,,保证系统的安全性,;,2,、系统调用,封装资源抽象,,,提供一致性接口,,,避免,用户使用资源时可能发生的,错误,,且使编程,方便效率高,。,系统调用的作用系统调用是一种中介角色,把用户与硬件隔离开来,,API、,库函数,、,系统调用,应用程序能直接使用系统调用吗,?,POSIX,(Portable Operating System Interface for Computer Environment),标准,;,API,和库函数,库函数和系统调用,API、库函数、系统调用应用程序能直接使用系统调用吗?,应用程序、库函数、,系统调用的调用关系链,调用,fprintf(),应用程序,C,函数库,内核,系统调用处理程序,C,库中的,fprintf(),封装程序,用户态,核心态,sys_write(),内核函数,应用程序、库函数、系统调用的调用关系链调用fprintf,Linux,系统程序、库函数、,系统调用分层关系,用户,操作系统,(,进程管理、存储管理、文件管理、设备管理等,),标准库函数,(,打开、关闭、读、写、创建、撤销等,),系统程序,(,实用程序,),(,汇编、编译、编辑、,Shell,等,),用户接口,库函数,接口,系统调用,接口,硬件,(,处理器、存储器、磁盘、打印机、终端等,),用,户,态,核,心,态,Linux系统程序、库函数、系统调用分层关系,系统调用分类,(1),进程和作业管理,(2),文件操作,(3),设备管理,(4),主存管理,(5),信息维护,(6),通信,系统调用分类(1)进程和作业管理,系统调用实现,1.,编写,系统调用处理内核函数,;,2.,设计一张系统,调用入口地址表,,每个入口地址都指向一个系统调用的处理内核函数,有的系统还包含系统调用自带参数的个数;,3.,陷入处理机制需开辟,现场保护区,,以保存发生系统调用时的处理器现场。,系统调用实现 1.编写系统调用处理内核函数;,系统调用处理过程,System Call,用户程序,A,0,SUB,0,SUB,1,SUB,i,SUB,n,A,1,A,i,A,n,系统调用处理子程序,取系统功能号,找入口地址表,相应入口地址,结束处理,恢复现场,A,0,A,1,A,i,A,n,保护,CPU,现场,陷入指令,系统调用陷入机构,入口地址表,系统调用处理过程 用户程序A0SUB0SUB1SUBiSU,系统调用参数传递,1,、由,访管指令,或,陷入指令,自带参数,,,直接参数,间接参数,2,、通过,CPU,的通用寄存器,传递参数,或,在主存的一个块或表,中存放参数,其,首地址,送入寄存器,实现参数传递。,3,、在主存中开辟,专用堆栈,区域传递参数。,访管指令,是一条可以在目态下执行的指令,用户程序中凡是要调用,操作系统,功能时就安排一条,访管指令,。当处理器执行到访管指令时就产生一个中断事件(自愿中断),暂停用户程序的执行,而让操作系统来为用户服务,系统调用参数传递1、由访管指令或陷入指令自带参数,访管指令,系统调用与函数调用的区别,系统调用:,1.,使用,INT,和,IRET,指令,内核和应用程序使用的是,不同的堆栈,,因此存在堆栈的切换,从用户态切换到内核态,从而,可以使用特权指令,操控设备。,2.,依赖于内核,,不保证移植性,。,3.,在用户空间和内核上下文环境间切换,,开销较大。,4.,是操作系统的一个,入口点,。,系统调用与函数调用的区别系统调用:1.使用INT和IR,系统调用与函数调用的区别,函数调用:,1.,使用,CALL,和,RET,指令,调用时,没有堆栈,切换。,2.,平台,移植性好,。,3.,属于过程调用,调用,开销较小,。,4.,一个普通功能函数的调用。,系统调用与函数调用的区别函数调用:1.使用CALL和R,1.3.3,操作接口与系统程序,1.,作业控制方式,作业接口是操作系统为用户操作控制计算机工作和提供服务的手段集合,通常可借助操作控制命令、图形操作界面,(,命令,),、以及作业控制语言,(,命令,),等来实现。,作业控制方式:,联机,作业控制方式与,作业控制语言,脱机,作业控制方式与,操作控制命令,1.3.3操作接口与系统程序 1.作业控制方式,联机作业控制接口,-,操作控制命令,命令行方式,批命令方式,图形化方式,联机作业控制接口-操作控制命令 命令行方式,脱机作业控制接口,作业控制语言,批处理接口:作业控制语言,JCL,(,Job Control Language,)。,用户使用,JCL,语句,把运行意图,(,需要对作业进行的控制和干予,),写在作业说明书上,将作业连同作业说明书一起提交给系统。,批处理作业的调度执行过程,系统调用,JCL,语句处理程序或命令解释程序。,脱机作业控制接口作业控制语言 批处理接口:作业控制语言,IBM 370,使用,JCL,处理批作业的例子,/HAROLD JOB,WILSON,MSGLEVEL=(2,0),PRTY=6,CLASS=B,/COMP EXEC PGM=IEYFORT,/SYSPRINT DD SYSOUT=A,/SYSLIN DD DSNAME=SYSL,DISP=OLD,VOLUME=SER=123,/SYSIN DD*,/*,/GO EXEC PGM=FORTLINK,/SYSPRINT DD SYSOUT=A,/FTOTF001 DD UNIT=SYSCP,/GO SYSIN DD*,/*,/,IBM 370使用JCL处理批作业的例子/HARO,.,命令解释程序,命令解释程序,的实现:,1,、,自带,命令执行代码,,收到命令后,便转向相应命令处理代码执行,,可以,使用“系统调用”帮助完成任务,由于用到终端进程的地址空间,故这类命令不宜过多;,2,、,由,专门“实用程序”,实现,执行时把命令对应的处理文件装入主存,,完成命令功能。,3,、,操作系统把,两者结合,起来,简单命令由命令解释程序直接处理;复杂命令由独立的实用程序完成。,.命令解释程序命令解释程序的实现:,3.Linux,命令解释,器,shell执行流程,id0,无,有,读命令行,获命令名,按,exec(),组,织参数,id=fork(),终端进程,Id=0,有”,&”,吗,Wait,等子进,程结束,显示提示符”,$”,子进程,exec(),替换,进程映象,运行命令,文件,exit(),出让,处理器,子进程,终止,子进程,运行,3.Linux命令解释器shell执行流程id0无有,4.,系统程序,(1),系统程序又称实用程序或支撑程序(,Utilities,),虽非操作系统的核心,但却必不可少,为用户程序的开发、调试、执行、和维护解决带有共性的问题或执行公共操作,,操作系统以,操作命令,形式向用户提供系统程序。它的功能和性能很大程度上反映了操作系统的功能和性能。,4.系统程序(1)系统程序又称实用程序或支撑程序(Utili,系统程序,(2),支撑程序的分类:,文件管理,状态信息,程序设计语言支持,程序的装入和执行支持,通信,其它软件工具,系统程序(2)支撑程序的分类:,1.3.4 Linux,系统调用及实现机制,(,1,),Linux,系统调用执行流程,int main(),read();,int read,int$0 x80;,Entry(system_call),push%eax,SAVE_ALL,Call*SYS_NAME(sys_call_table)(,%eax;),Entry(ret_from_sys_call),restore_all:,RESTORE_ALL,Iret;,asmlinkage long,sys_read(),return;,用户态,内核态,应用程序,C,库封装例程,异常处理程序,内核函数,1.3.4 Linux系统调用及实现机制(1)Linu,(,2,),Linux,系统调用实现机制,1),系统调用初始化,set_system_gate(0 x80,&system_call),(2)Linux系统调用实现机制1)系统调用初始化,2),系统调用公共入口,system_call(),是系统调用的公共入口,功能是:保护现场,进行正确性检查,根据系统调用号跳转到具体内核函数,该内核函数执行完毕时,转向下一步。,ret_from_sys_call(),,,完成返回用户空间前的最后检查,用,RESTORE_ALL,宏恢复现场并执行,iret,,,指令返回用户断点。,2)系统调用公共入口 system_call()是系统调,3),保护现场,系统调用处理时的核心栈内容,SS,ESP,EFLAGS,CS,EIP,系统调用号,ES,DS,EAX,EBP,EDI,ESI,EDX,EC
点击显示更多内容>>

最新DOC

最新PPT

最新RAR

收藏 下载该资源
网站客服QQ:3392350380
装配图网版权所有
苏ICP备12009002号-6