第3章用户接口.

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

第3章操作系统的用户接口操作系统的用户接口用户工作环境运行一个应用程序的过程操作系统用户界面系统功能调用Linux系统功能调用1操作系统的用户接口——主要内容用户工作环境操作系统的用户接口——用户工作环境2用户身份合法性检查用户工作区:操作命令语言操作系统的用户接口——用户工作环境1.如何形成用户工作环境(1)系统提供各种硬件、软件资源(2)设计并提供使用方便的命令集合(3)将OS装入计算机并初始化,形成可供使用的工作环境2.两种形式的用户工作环境(1)交互工作环境(2)批量工作环境作业控制语言3将操作系统的必要部分装入主存并对系统进行初始化工作,最终使系统处于命令接收状态。操作系统的用户接口——用户工作环境3.系统生成(1)系统生成是指在一台裸机上(或者安装新的操作系统)安装操作系统的过程。(2)一般情况下,系统生成的工作是由系统程序员来完成的,在系统生成的过程中涉及到机器的硬件配置和操作系统核心参数的设置。还涉及软件系统的版权的问题(3)在微机上的系统生成是用户自己完成的,比如安装WINDOWS98、LINUX、MINIX、UNIX。4.操作系统的初启(1)系统引导的任务4OS核心文件存储在系统本身的存储设备中,由系统自己将OS核心程序读入主存并运行,建立一个操作环境。适用于微机和大多数系统OS主要文件不放在系统本身的存储设备中,在系统启动后执行下装操作,从另外的计算机系统中将操作系统常驻部分传送到该计算机中,使它形成一个操作环境。适用于多计算机系统、由主控机与前端机构成的系统以及分布式系统。①现场独立引导方式(滚雪球方式、bootup)②辅助下装方式(download)(2)系统引导的方式操作系统的用户接口——用户工作环境5①初始引导系统加电,执行系统初启程序。(该程序存在非易失内存中的指定位置。PC:0xffff:0000);初启程序对系统硬件和配置进行自检,保证系统没有硬件错误;从硬盘中读入操作系统引导程序,并将控制权交给该程序模块。0X7C00(3)独立引导方式(滚雪球方式)的过程操作系统的用户接口——用户工作环境6主引导块磁盘的第一个物理块。512byte的程序和数据,确定活动磁盘分区。这一部分代码也可以是只负责装入引导装入程序(如lilo),再由后者装入OS。引导块每个逻辑磁盘的第一个物理块。②引导程序执行引导程序执行,将操作系统核心文件读入内存,并将控制交给核心的初始化程序。操作系统引导程序操作系统的用户接口——用户工作环境7③核心初始化初始化系统数据结构及参数系统加电建立进程有关的数据结构;获得自由存储空间的容量,建立存储管理的数据结构;建立系统设备和文件系统的数据结构;初始化时钟。④系统初始化完善OS的操作环境,装载命令处理程序(或图形用户界面),并初始化;在多用户系统中,为每个终端建立命令解释进程,使系统处于命令接收状态。操作系统的用户接口——用户工作环境8ROMBIOS自检运行装入系统盘中的主引导块装入活动OS引导块装入OSOS初始化形成用户界面(4)PC初启操作系统的用户接口——用户工作环境9BIOS引导程序主引导块IO.SYS(I/O初始化)DOS.SYS(文件系统,简单内存初始化)COMMAND.COM(简单任务管理)C:\(5)DOS启动操作系统的用户接口——用户工作环境10Linux系统是以滚雪球的方式启动加电或复位→BIOS的启动→BootLoader→OS初始化①系统加电或复位上电自检;对硬件设备进行检测和连接,并将测得的数据送入BIOS数据区;对主存中所有的数据清零,对内存进行校验,若无错,BIOS入口→CS:IP。(6)Linux系统初启操作系统的用户接口——用户工作环境11②BIOS启动在ROM中的引导程序放在固定位置:FFFF:0000CPU从这里开始执行。从盘中读入BootLoader(引导程序)。从硬盘启动时,读入零柱面零磁道1扇区MBR(MasterBootRecord),将控制权交BootLoader。③Loader(引导程序)功能:将OS读入内存,并将控制权交给OS的初始化程序。grub/lilo等操作系统的用户接口——用户工作环境12④系统核心初始化(Setup.s)Setup的工作检查调入内存中的代码;获取内存容量信息,设置设备模式;屏蔽中断,准备进入保护模式;设置中断描述符表(idt),全局描述符表(gdt);控制权交给Heads。Heads的工作对中断向量表作准备工作;检查CPU类型;调用Setup_paging进行页面初始化;调用main.c中的Start_kernel()。操作系统的用户接口——用户工作环境13Start_kernel()的工作对与CPU、内存等最基本硬件相关部分进行初始化;对中断向量表进行初始化;为进程调度程序作准备;设置基准时钟;内核的内存分配;对文件系统进行初始化;建立init进程。init进程对每一个联机终端建立“getty”进程,getty在终端上显示“login”,等待用户登录。操作系统的用户接口——用户工作环境应用程序的处理操作系统的用户接口——应用程序的处理141.作业、作业步(1)作业计算机系统按指定步骤对初始数据进行处理并得到计算结果的加工工作。(2)作业步加工工作中的一个步骤称为作业步。操作系统的用户接口——应用程序的处理152.处理应用程序的步骤(1)编辑建立一个新文件,或对已有的文件中的错误进行修改。(2)编译将源程序翻译成浮动的目标代码。操作系统的用户接口——应用程序的处理(3)连接主程序和其他所需要的子程序和例行程序连接装配在一起,使之成为一个可执行的、完整的主存映像文件。(4)运行将主存映像文件调入主存,启动运行,得出计算结果。16编译器或汇编器目标模块源程序其他目标模块主存中运行动态装入的系统库编译时间连接装配时间动态链接加载运行时间连接装配程序主存映像文件应用程序处理步骤示意图应用程序处理步骤操作系统的用户接口——应用程序的处理172.连接类型(1)静态连接一个源程序经编译后,生成一个可重定位的目标模块,并产生内部符号表和外部符号表,供连接程序(Link)使用。①内部符号表本模块可以被其他程序调用的入口点。②外部调用表本模块要调用的外部的程序模块名。操作系统的用户接口——应用程序的处理18③连接需要做的工作将各模块连接成为一个整体;构造全程符号表,在其中填写模块的逻辑地址;查找各程序段的外部调用表,填入对应调用函数的地址。④静态连接的缺点静态连接将所需的外部函数链接到目标文件中形成为一个可执行文件。若多个应用程序都调用了同一个库中的外部函数,那么,多个应用程序的目标文件中都会包含这个外部函数对应的代码。操作系统的用户接口——应用程序的处理19(2)动态连接动态连接不需要将外部函数链接到目标文件中。而是在应用程序中需要调用外部函数的地方作记录,并说明要使用的外部函数名和引用入口号。————形成函数调用链表所需支持——DLL(动态链接库)当Windows的装载程序将应用程序和DLL装入主存后,装载程序会遍历函数调用链表,将DLL中函数在主存的入口(段:偏移)填入链表中的每个结点。操作系统的用户接口——应用程序的处理用户接口操作系统的用户接口——用户接口201.什么是操作系统的用户界面操作系统的用户界面(或称接口)是操作系统提供给用户与计算机打交道的外部机制。用户能够借助这种机制和系统提供的手段来控制用户所在的系统。操作系统的用户接口——用户接口操作系统用户通过操作系统使用计算机示意图212.操作系统提供的用户界面(1)操作界面(命令接口)用户使用操作界面来组织工作流程和控制程序的运行。(2)系统功能服务界面(程序接口)用户程序在其运行过程中,使用系统功能调用来请求操作系统的服务。操作命令:作业控制语言键盘命令图形界面操作系统系统功能调用操作系统提供的用户接口示意图操作系统的用户接口——用户接口223.操作命令与操作系统类型的关系(1)作业控制语言──批处理操作系统(2)键盘命令──分时操作系统个人计算机操作系统(3)图形用户界面──分时操作系统个人计算机操作系统实际操作系统:MS-DOSWindowsLinux(UNIX)提供什么样的用户界面?操作系统的用户接口——用户接口234.实例操作系统提供的用户界面(1)MS-DOS──键盘命令系统功能调用(2)Windows──图形用户界面系统功能调用(3)Linux(UNIX)─键盘命令(XWindow)系统功能调用操作系统的用户接口——用户接口系统功能调用操作系统的用户接口——系统功能调用241.什么是系统功能调用(1)操作如何为用户提供服务操作系统提供实现各种功能的例行子程序。应用程序i系统调用中央处理机存储器外部设备应用程序计算机系统部件系统功能调用示意图操作系统的用户接口——系统功能调用25(2)如何调用操作服务功能①采用统一进管方式——系统提供访管指令、访管中断显示一个字符串读文件应用程序jread();操作系统统功能模块②访管指令(自愿进管指令)svcnsvc表示机器访管指令的操作码记忆符,n为地址码(功能号)系统功能调用示意图操作系统的用户接口——系统功能调用26③访管中断当处理机执行到访管指令时发生中断,该中断称为访管中断,它表示正在运行的程序对操作系统的某种需求。操作系统提供实现各种功能的例行子程序,其中的每一个功能对应访管指令的一个功能号。例如:svc0显示一个字符svc1打印一个字符串(3)什么是系统功能调用系统功能调用是用户在程序一级请求操作系统服务的一种手段,它是带有一定功能号的“访管指令”。其功能是由操作系统中的程序完成的,即由软件方法实现的。操作系统的用户接口——系统功能调用274.系统调用的实现a1a0┇ai例行子程序入口地址表A+0A+1┇A+i保护现场;取i值;按i值转移;恢复现场;访管中断处理程序svci用户程序+ASubmam例行子程序Sub0Sub1Subi┇a0a1ai┇系统调用的执行过程操作系统的用户接口——系统功能调用操作系统的用户接口——系统功能调用(1)实现系统调用必须完成的工作编写各服务功能的例行子程序访管中断处理程序:保护现场、调用例行子程序、恢复现场构造例行子程序的入口地址表:功能号与例行服务子程序一一对应。用户程序中安排访管指令:intn(2)参数传递问题由陷入指令自带参数:陷入指令的长度有限,且还要携带系统调用功能号,只能自带有限的参数通过有关通用寄存器来传递参数:这些寄存器应是系统程序和用户程序都能访问的,由于寄存器个数限制,无法传递较多的参数在内存中开辟专用堆栈区来传递参数28操作系统的用户接口——系统功能调用(3)系统调用与一般过程调用的区别①系统调用方式(INT)与程序中一般的调用方式的相同点改变指令流程重复执行和公用改变指令流程后需要返回原处②系统调用方式(INT)与程序中一般的调用方式的不同点运行在不同的系统状态过程调用:调用前后状态相同,用户态或核态系统调用:INT指令,用户态→核态返回问题过程调用:正常返回调用过程系统调用:可能引起进程调度①系统调用命令中,同一程序中不包含被调用代码:好处?系统调用涉及到PSW:状态管理、标志寄存器29操作系统的用户接口——系统功能调用(4)系统调用与库函数系统调用代码属于OS,库函数由软件开发商提供,由编译工具链入用户程序。系统调用代码的执行引起CPU状态的变化:用户态核心态库函数的执行不会引起CPU状态的变化:用户态30Linux的系统功能调用Linux系统——Linux系统功能调用311.Linux系统功能调用的过程在Linux系统中,系统调用通过异常类型实现;当执行了int0x80指令而发生的软件中断;系统自动将用户态切换为核心态来处理该事件,执行自陷处理程序(系统调用处理程序)。Linux系统——Linux系统功能调用32(1)系统功能调用过程abc();abc();{syscall;}system_call:sys_abcSYSEXITsysabc(){}用户态核心态用户程序系统调用在li

1 / 56
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功