ch1-1.3操作系统基本服务和用户接口_第1页
ch1-1.3操作系统基本服务和用户接口_第2页
ch1-1.3操作系统基本服务和用户接口_第3页
ch1-1.3操作系统基本服务和用户接口_第4页
ch1-1.3操作系统基本服务和用户接口_第5页
已阅读5页,还剩23页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1.3.1操作系统基本服务1.基本服务创建程序执行程序数据I/O信息存取通信服务错误检测和处理还具有其他功能:资源分配,统计,保护。2用户接口系统调用(程序接口)操作命令操作系统机应用程序系统程序(操作接口)1.3.2程序接口与系统调用系统调用?系统调用的作用?系统调用是应用程序获得操作系统服务的唯一途径。内核的主体是系统调用的集合,内核可以看成是特殊的公共子程序。系统调用?操作系统的功能通过一组称为系统调用(system

call)的接口呈现给用户,内核提供一系列实现预定功能的内核函数,系统调用把应用程序的请求传达给内核,内核调用对应的内核函数完成请求所需处理后,再将处理结果返回给应用程序。系统调用的作用系统调用是一种中介角色,把用户与硬件开来,应用程序通过系统调用才能请求系统服务和使用系统资源,其作用有:一是内核可基于权限和规则对资源进行裁决,保证系统的安全性;二是系统调用封装资源抽象,提供一致性接口,避免用户使用资源时可能发生的错误,且使编程方便效率高。API、库函数、系统调用应用程序能直接使用系统调用吗?POSIX(Portable

OperatingSystemInterface

for

Computer

Environment)标准;API和库函数库函数和系统调用应用程序、库函数、系统调用的调用关系链调用fprintf()应用程序C函数库内核系统调用处理程序C库中的fprintf()封装程序用户态态sys_write()内核函数Linux系统程序、库函数、系统调用分层关系用户(进程管理、操作系统管理、文件管理、设备管理等)系统程序(实用程序)(汇编、编译、编辑、S 等)标准库函数(打开、关闭、读、写、创建、撤销等)用户接口库函数接口系统调用接口(处理器、硬件

器、磁盘、、终端等)用户态核心态系统调用分类(1)进程和作业管理:

(2)文件操作:(3)设备管理:

(4)主存管理:(5)信息

:(6)通信:系统调用实现一.是编写系统调用处理内核函数;二.是设计一张系统调用地址表,每个

地址都指向一个系统调用的处理内核函数,有的系统还包含系统调用自带参数的个数;三.是陷入处理机制需开辟现场保护区,以保存发生系统调用时的处理器现场。系统调用处理过程System

CallA0

SUB0SUBiSUBnA1

SUB1AiAn……系统调用处理子程序取系统功能号找相应地址表地址结束处理恢复现场A0A1…Ai…An保护CPU现场用户程序 陷入指令系统调用陷入机构地址表系统调用参数传递一是由访管指令或陷入指令自带参数,直接参数间接参数二是通过CPU的通用寄存器传递参数,或在主存的一个块或表中存放参数,其首地址送入寄存器,实现参数传递。三是在主存中开辟

堆栈区域传递参数。系统调用与函数调用的区别调用形式 方式不同。被调用代码的位置不同。提供方式不同。1.3.3操作接口与系统程序1.作业控制方式作业接口是操作系统为用户操作控制计算机工作和提供服务

段集合,通常可借助操作控制命令、图形操作界面(命令)、以及作业控制语言(命令)等来实现作业控制方式–联机作业控制方式与作业控制语言–脱机作业控制方式与操作控制命令联机作业控制接口--操作控制命令命令行方式批命令方式图形化方式脱机•批作处理业接控口制:作接业口控制—语作言业JCL控(

J制ob语言Control

Language)。用户使用JCL语句,把运行意图(需要对作业进行的控制和干予)写在作业说明书上,将作业连同作业说明书一起提交给系统。批处理作业的调度执行过程,系统调用JCL语句处理程序或命令解释程序。IBM370使用JCL处理批作业的例子······ARDS>··//

HAROLDJOB,WILSON,MSGLEVEL=(2,0),PRTY=6,CLASS=B//COMP

EXECPGM=IEYFORT//

SYSPRINT

DD

SYSOUT=A//

SYSLIN

DDDSNAME=SYSL,DISP=OLD,VOLUME=SER=123//

SYSIN

DD*••<SOURCE

PROGRAM

CARDS>••/*//

GO

EXECPGM=FORTLINK//

SYSPRINT

DD

SYSOUT=A//

FTOTF001

DD

UNIT=SYSCP//

GO

SYSIN

DD*••<D••/*//2.

命令解释程序命令命令解释程序的实现:一是自带命令执行代码,收到命令后,便转向相应命令处理代码执行,可以使用“系统调用

”帮助完成任务,由于用到终端进程的地址空间,故这类命令不宜过多;二是由专门“实用程序”实现,执行时把命令对应的处理文件装入主存,完成命令功能。操作系统把两者结合起来,简单命令由命令解释程序直接处理;复杂命令由独立的实用程序完成。3.Linux命令解释器s执行流程id≠0无有读命令行获命令名,按exec()组织参数id=fork()终端进程Id=0有”&”吗Wait等子进程结束显示提示符”$”子进程exec()替换进程映象运行命令文件exit()出让处理器子进程终止子进程运行4.系统程序(1)系统程序又称实用程序或支撑程序(Utilities),虽非操作系统的,但却必不可少,为用户程序的开发、调试、执行、和 解决带有共性的问题或执行公共操作,操作系统以操作命令形式向用户提供系统程序。它的功能和性能很大程度上反映了操作系统的功能和性能。支撑程系序统的程分序类(:2)文件管理状态信息程序设计语言支持程序的装入和执行支持通信其它 工具.3.1实u

系调用及现机x)

u行流int

main(

){

…read(

…);…}int

read

{…int

$0x80;…}Entry

(system_call)push

%eaxSAVE_ALL…Call*SYS_NAME(sys_call_table)(,%eax;)…Entry

(

ret_from_sys_call)restore_all:RESTORE_ALLIret;}asmlinkage

longsys_read(

)

{…return;}用户态内核态应用程序L

C库封装例程统异常处理程序内核函数制(2)Linux系统调用实现机制1)系统调用初始化set_system_gate(0x80,&system_call)2)系统调用公共

system_call(

)是系统调用的公共

,功能是:保护现场,进行正确性检查,根据系统调用号跳转到具体内核函数,该内核函数执行完毕时转向下一步。ret_from_sys_call(),完成返回用户空间前的最后检查,用RESTORE_ALL宏恢复现场并执行iret指令返回用户断点。3)保护现场系统调用处理时的栈内容硬件完成…SSESPEFLAGSCSEIP完成系统调用号ESDSEAXEBPEDIESIEDXECXEBX….4)参数传递系统调用参数在5个以下。依次存放在寄存器EBX、ECX、EDX、ESI及EDI中。系统调用返回值放在EAX中返回。系统调用参数超过5个时,存放在内存参数区,其地址通过寄存器传送。5)

系统调用号和系统调用表(1)#define_NR_exit#define

_NR_fork#define

_NR_read#define

_NR_write#define

_NR_open#define_NR_close…123456系统调用号和系统调用表(2).dataENTRY(sys_call_table).long

SYMBOL_NAME(sys_ni_syscall).long

SYMBOL_NAME(sys_exit).long

SYMBOL_NAME(sys_fork).long

SYMBOL_NAME(sys_re

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论