《Chapter3用户界面.ppt》由会员分享,可在线阅读,更多相关《Chapter3用户界面.ppt(32页珍藏版)》请在得力文库 - 分享文档赚钱的网站上搜索。
1、操作系统的用户界面操作系统的用户界面操作系统的用户界面操作系统的用户界面系统生成和系统初启系统生成和系统初启应用程序的处理应用程序的处理用户界面用户界面系统功能调用系统功能调用操作系统的用户界面操作系统的用户界面 主要内容主要内容1.1.系统生成系统生成系统生成系统生成什么是系统生成什么是系统生成什么是系统生成什么是系统生成所谓系统生成,就是指为了满足物理设备的约束和需 要的系统功能,通过组装一批模块来产生一个清晰的、使用方便的操作系统的过程。系统生成的内容系统生成的内容系统生成的内容系统生成的内容根据硬件部件确定系统构造的参数,编辑系统模块的 参数,并且连接系统模块成为一个可执行的程序。系统
2、生成过程中需确定的信息系统生成过程中需确定的信息系统生成过程中需确定的信息系统生成过程中需确定的信息操作系统的用户界面操作系统的用户界面 系统生成和系统初启系统生成和系统初启2.2.操作系统的初启操作系统的初启操作系统的初启操作系统的初启系统引导的任务系统引导的任务系统引导的任务系统引导的任务 操作系统以文件的形式(可执行的目标代码)存储在某种存储介质中。系统引导也叫系统初启,其任务是将操作系统的必要部分装入主存并对系统进行初始化工作,最终使系统处于命令接收状态。系统引导的三个阶段系统引导的三个阶段系统引导的三个阶段系统引导的三个阶段初始引导初始引导核心初始化核心初始化系统初始化系统初始化操作
3、系统的用户界面操作系统的用户界面 系统生成和系统初启系统生成和系统初启系统引导的方式系统引导的方式系统引导的方式系统引导的方式独立引导方式独立引导方式(滚雪球方式滚雪球方式)OS核心文件存储在系统本身的存储设备中,由系统自己将OS核心程序读入主存并运行,建立一个操作环境。适用于微机和大多数系统适用于微机和大多数系统辅助下装方式辅助下装方式 OS主要文件不放在系统本身的存储设备中,在系统启动后执行下装操作,从另外的计算机系统中将操作系统常驻部分传送到该计算机中,使它形成一个操作环境。适用于多计算机系统、由主控机与前端机构成的系统以适用于多计算机系统、由主控机与前端机构成的系统以 及分布式系统。及
4、分布式系统。操作系统的用户界面操作系统的用户界面 系统生成和系统初启系统生成和系统初启3.3.独立引导方式独立引导方式独立引导方式独立引导方式(滚雪球方式滚雪球方式滚雪球方式滚雪球方式)的过程的过程的过程的过程初始引导初始引导初始引导初始引导系统加电;执行初始引导程序,对系统硬件和配置进行自检,保证系统没有硬件错误;从硬盘中读入操作系统引导程序,并将控制权交给该程序模块。引导程序执行引导程序执行引导程序执行引导程序执行引导程序执行,将操作系统核心文件读入内存,并将控制交给核心的初始化程序。操作系统的用户界面操作系统的用户界面 系统生成和系统初启系统生成和系统初启核心初始化核心初始化核心初始化核
5、心初始化 初始化系统数据结构及参数初始化系统数据结构及参数系统加电建立进程有关的数据结构;获得自由存储空间的容量,建立存储管理的数据结构 ;建立系统设备和文件系统的数据结构;初始化时钟。系统初始化系统初始化系统初始化系统初始化完善OS的操作环境,装载命令处理程序(或图形用户界面),并初始化;在多用户系统中,为每个终端建立命令解释进程,使系统处于命令接收状态。操作系统的用户界面操作系统的用户界面 系统生成和系统初启系统生成和系统初启4.Linux4.Linux系统初启系统初启系统初启系统初启 Linux系统是以滚雪球的方式启动系统是以滚雪球的方式启动 加电或复位 BIOS的启动 Boot Loa
6、der OS初始化系统加电或复位系统加电或复位系统加电或复位系统加电或复位对主存中所有的数据清零,对内存进行校验,若无错,CS:IP BIOS入口。操作系统的用户界面操作系统的用户界面 系统生成和系统初启系统生成和系统初启BIOSBIOS启动启动启动启动 在ROM中的引导程序放在固定位置:FFFF:0000 CPU从这里开始执行。上电自检;对硬件设备进行检测和连接,并将测得的数据输入到BIOS数据区;从盘中读入Boot Loader(引导程序)。从硬盘启动时,读入零柱面零磁道1扇区MBR(Master Boot Record),将控制权交Boot LoaderLoader(Loader(引导程
7、序引导程序引导程序引导程序)功能:将OS读入内存,并将控制权交给OS的初始化程序。操作系统的用户界面操作系统的用户界面 系统生成和系统初启系统生成和系统初启系统核心初始化系统核心初始化系统核心初始化系统核心初始化(由由由由Setup.SSetup.S、Head.SHead.S和和和和start_kernelstart_kernel()()依次依次依次依次执行来完成执行来完成执行来完成执行来完成)Setup.S的工作的工作检查调入内存中的代码检查调入内存中的代码;获取内存容量信息,设置设备模式;获取内存容量信息,设置设备模式;屏蔽中断,准备进入保护模式;屏蔽中断,准备进入保护模式;设置中断描述符
8、表设置中断描述符表(idt),全局描述符表,全局描述符表(gdt);控制权交给;控制权交给 Head.S。Head.S的工作的工作对中断向量表作准备工作;对中断向量表作准备工作;检查检查CPU类型;类型;调用调用Setup_paging进行页面初始化;进行页面初始化;调用调用main.c中的中的Start_kernel()。操作系统的用户界面操作系统的用户界面 系统生成和系统初启系统生成和系统初启 start_kernel()的工作的工作对与对与CPU、内存等最基本硬件相关部分进行初始化;、内存等最基本硬件相关部分进行初始化;对中断向量表进行初始化;对中断向量表进行初始化;为进程调度程序作准备
9、;为进程调度程序作准备;设置基准时钟;设置基准时钟;内核的内存分配;内核的内存分配;对文件系统进行初始化;对文件系统进行初始化;建立建立init进程。进程。init进程对每一个联机终端建立“getty”进程,getty在终端上显示“login”,等待用户登录。操作系统的用户界面操作系统的用户界面 系统生成和系统初启系统生成和系统初启1.1.作业与作业步作业与作业步作业与作业步作业与作业步作业作业作业作业计算机系统按指定步骤对初始数据进行处理并得到计 算结果的加工工作。作业步作业步作业步作业步加工工作中的一个步骤称为作业步。2.2.作业处理步骤作业处理步骤作业处理步骤作业处理步骤编辑编辑编辑编辑
10、建立一个新文件,或对已有的文件中的错误进行修改。编译编译编译编译将源程序翻译成浮动的目标代码。操作系统的用户界面操作系统的用户界面 应用程序的处理应用程序的处理连接连接连接连接主程序和其他所需要的子程序和例行程序连接装配在一起,使之成为一个可执行的、完整的主存映像文件。运行运行运行运行将主存映像文件调入主存,启动运行,得出计算结果。作业步之间的关系作业步之间的关系作业步之间的关系作业步之间的关系每个作业步运行的结果产生下一个作业步所需要的文件;一个作业步能否正确地执行,依赖于前一个作业步是否成功地完成。user.cuser.obj编辑编辑运行运行编译编译连接连接第一个作业步第一个作业步第二个作
11、业步第二个作业步第三个作业步第三个作业步第四个作业步第四个作业步user.exe操作系统的用户界面操作系统的用户界面 应用程序的处理应用程序的处理3.3.连接类型连接类型连接类型连接类型静态连接静态连接静态连接静态连接 一个源程序经编译后,生成一个可重定位的目标模块,并产生内部符号表和外部调用表,供连接程序(Link)使用。内部符号表内部符号表本模块可以被其他程序调用的入口点。外部调用表外部调用表本模块要调用的外部的程序模块名。操作系统的用户界面操作系统的用户界面 应用程序的处理应用程序的处理连接需要做的工作连接需要做的工作将各模块连接成为一个整体;构造全程符号表,在其中填写模块的逻辑地址;查
12、找各程序段的外部调用表,填入对应调用函数的地址。静态连接的缺点静态连接的缺点静态连接将所需的外部函数链接到目标文件中形成 为一个可执行文件。若多个应用程序都调用了同一 个库中的外部函数,那么,应用程序的目标文件中 都包含了这个外部函数对应的代码。操作系统的用户界面操作系统的用户界面 应用程序的处理应用程序的处理动态链接动态链接动态链接动态链接 动态链接不需要将外部函数链接到目标文件中。而是在应 用程序中需要调用外部函数的地方作记录,并说明要使用 的外部函数名和引用入口号。形成函数调用链表形成函数调用链表 所需支持所需支持 DLL(动态链接库动态链接库)当 Windows的装载程序将应用程序和D
13、LL装入主存后,装 载程序会遍历函数调用链表,将DLL中函数在主存的入口 (段:偏移)填入链表中的每个结点。操作系统的用户界面操作系统的用户界面 应用程序的处理应用程序的处理1.1.什么是操作系统的用户界面什么是操作系统的用户界面什么是操作系统的用户界面什么是操作系统的用户界面操作系统的用户界面(或称接口)是操作系统提供给用户与 计算机打交道的外部机制。用户能够借助这种机制和系统 提供的手段来控制用户所在的系统。操作系统的用户界面操作系统的用户界面 用户界面用户界面 操操 作作 系系 统统2.2.操作系统提供的用户界面操作系统提供的用户界面操作系统提供的用户界面操作系统提供的用户界面操作界面操
14、作界面操作界面操作界面(命令接口命令接口命令接口命令接口)用户使用这个操作界面来组织工作流程和控制程序的运行。系统功能服务界面系统功能服务界面系统功能服务界面系统功能服务界面(程序接口程序接口程序接口程序接口)用户程序在其运行过程中,使用系统功能调用来请求操作 系统的服务。操作命令:操作命令:作业控制语言 键盘命令 图形界面 操操 作作 系系 统统系统功能调用系统功能调用操作系统的用户界面操作系统的用户界面 用户界面用户界面3.3.操作命令与操作系统类型的关系操作命令与操作系统类型的关系操作命令与操作系统类型的关系操作命令与操作系统类型的关系作业控制语言作业控制语言 批处理操作系统批处理操作系
15、统键盘命令键盘命令 分时操作系统分时操作系统 个人计算机操作系统个人计算机操作系统 图形用户界面图形用户界面 分时操作系统分时操作系统 个人计算机操作系统个人计算机操作系统 实际操作系统实际操作系统:MS-DOS Windows Linux(UNIX)提供什么样的用户界面提供什么样的用户界面?操作系统的用户界面操作系统的用户界面 用户界面用户界面4.4.实例操作系统提供的用户界面实例操作系统提供的用户界面实例操作系统提供的用户界面实例操作系统提供的用户界面MS-DOS 键盘命令键盘命令 系统功能调用系统功能调用Windows 图形用户界面图形用户界面 系统功能调用系统功能调用 Linux(UN
16、IX)键盘命令键盘命令 图形用户界面图形用户界面(X-Window)系统功能调用系统功能调用操作系统的用户界面操作系统的用户界面 用户界面用户界面1.1.系统功能调用的定义系统功能调用的定义系统功能调用的定义系统功能调用的定义 操作系统如何为用户提供服务操作系统如何为用户提供服务操作系统如何为用户提供服务操作系统如何为用户提供服务 操作系统提供实现各种功能的例行子程序。操作系统提供实现各种功能的例行子程序。应应用用程程序序 i 系统调用系统调用 中中 央央处理机处理机存储器存储器外外 部部设设 备备应应 用用程程 序序计算机系统部件计算机系统部件操作系统的用户界面操作系统的用户界面 系统功能调
17、用系统功能调用 应用程序应用程序如何调用操作服务功能如何调用操作服务功能如何调用操作服务功能如何调用操作服务功能?采用统一进管方式采用统一进管方式采用统一进管方式采用统一进管方式 系统提供系统提供 访管指令、访管中断访管指令、访管中断 显示一个显示一个字符串字符串读文件读文件 应用程序应用程序 j read();操作系统统功能模块操作系统统功能模块 访管指令访管指令访管指令访管指令(自愿进管指令自愿进管指令自愿进管指令自愿进管指令)svc n 其中,其中,svc 表示机器访管指令的操作码记忆符,表示机器访管指令的操作码记忆符,n为地址码为地址码(功能号功能号)操作系统的用户界面操作系统的用户界
18、面 系统功能调用系统功能调用 访管中断访管中断访管中断访管中断 当处理机执行到访管指令时就发生中断,该中断称为访管中断,它表示当处理机执行到访管指令时就发生中断,该中断称为访管中断,它表示 正在运行的程序对操作系统的某种需求。正在运行的程序对操作系统的某种需求。操作系统提供实现各种功能的例行子程序,其中的每一个功能对应访管 指令的一个功能号。举例如下:svc 0 显示一个字符显示一个字符 svc 1 打印一个字符串打印一个字符串 什么是系统调用什么是系统调用什么是系统调用什么是系统调用 系统功能调用是用户在程序一级请求操作系统服务的一种手段,它是系统功能调用是用户在程序一级请求操作系统服务的一
19、种手段,它是 带有一定功能号的带有一定功能号的“访管指令访管指令”。其功能是由操作系统中的程序完。其功能是由操作系统中的程序完成成 的,即由软件方法实现的。的,即由软件方法实现的。操作系统的用户界面操作系统的用户界面 系统功能调用系统功能调用系统调用与一般的函数调用的不同点系统调用与一般的函数调用的不同点系统调用与一般的函数调用的不同点系统调用与一般的函数调用的不同点系统调用是通过中断方式转向相应子程序的,它工作在核系统调用是通过中断方式转向相应子程序的,它工作在核系统调用是通过中断方式转向相应子程序的,它工作在核系统调用是通过中断方式转向相应子程序的,它工作在核 心态(即特权方式);心态(即
20、特权方式);心态(即特权方式);心态(即特权方式);而一般函数调用,仅仅是在用户态下的地址转移。而一般函数调用,仅仅是在用户态下的地址转移。而一般函数调用,仅仅是在用户态下的地址转移。而一般函数调用,仅仅是在用户态下的地址转移。系统调用与一般的过程调用的相同点系统调用与一般的过程调用的相同点系统调用与一般的过程调用的相同点系统调用与一般的过程调用的相同点改变指令流程改变指令流程改变指令流程改变指令流程重复执行和公用重复执行和公用重复执行和公用重复执行和公用改变指令流程后需要返回原处改变指令流程后需要返回原处改变指令流程后需要返回原处改变指令流程后需要返回原处操作系统的用户界面操作系统的用户界面
21、 系统功能调用系统功能调用 a1a0ai例行子程序例行子程序入口地址表入口地址表A+0A+1A+i保护现场;保护现场;取取i值;值;按按i值转移;值转移;恢复现场;恢复现场;访管中断访管中断处理程序处理程序 svc i 用户程序用户程序+ASub mam例行子程序例行子程序Sub 0Sub 1Sub ia0a1ai操作系统的用户界面操作系统的用户界面 系统功能调用系统功能调用2.2.系统功能调用的实现系统功能调用的实现系统功能调用的实现系统功能调用的实现3 3.LinuxLinux 系统功能调用的类型系统功能调用的类型系统功能调用的类型系统功能调用的类型进程控制进程控制创建一进程创建一进程(f
22、ork)(fork)结束进程结束进程(exit)(exit)等待子进程结束等待子进程结束(wait)(wait)执行一个文件执行一个文件(exec)(exec)文件操纵文件操纵创建文件创建文件(creatcreat)打开文件打开文件(open)(open)关闭文件关闭文件(close)(close)读文件读文件(read)(read)写文件写文件(write)(write)进程通信进程通信n获消息队列获消息队列(msggetmsgget)n发送消息发送消息(msgsendmsgsend)n接收消息接收消息(msgrcvmsgrcv)系统维护系统维护n设置时间设置时间(stimestime)n获
23、得时间获得时间(time)(time)n获得进程和子进程时间获得进程和子进程时间(times)(times)n设置文件访问和修改时间设置文件访问和修改时间(utimeutime)n获得当前获得当前unixunix系统的名称系统的名称(unameuname)操作系统的用户界面操作系统的用户界面 系统功能调用系统功能调用4.Linux4.Linux系统功能调用的过程系统功能调用的过程系统功能调用的过程系统功能调用的过程在在在在LinuxLinux系统中,系统中,系统中,系统中,系统调用是通过中断实现的;系统调用是通过中断实现的;系统调用是通过中断实现的;系统调用是通过中断实现的;当执行了当执行了当
24、执行了当执行了intint 0 x80 0 x80指令而发生的软件中断;指令而发生的软件中断;指令而发生的软件中断;指令而发生的软件中断;系统自动将用户态切换为核心态来处理该事件,执行自系统自动将用户态切换为核心态来处理该事件,执行自系统自动将用户态切换为核心态来处理该事件,执行自系统自动将用户态切换为核心态来处理该事件,执行自 陷处理程序陷处理程序陷处理程序陷处理程序(系统调用处理程序系统调用处理程序系统调用处理程序系统调用处理程序);中断处理结束,系统将返回用户态。中断处理结束,系统将返回用户态。中断处理结束,系统将返回用户态。中断处理结束,系统将返回用户态。有很多个系统调用,中断处理程序
25、如何知道调用的是哪有很多个系统调用,中断处理程序如何知道调用的是哪有很多个系统调用,中断处理程序如何知道调用的是哪有很多个系统调用,中断处理程序如何知道调用的是哪一个?一个?一个?一个?操作系统的用户界面操作系统的用户界面 系统功能调用系统功能调用解决方法解决方法解决方法解决方法把系统调用进行编号。把系统调用进行编号。把系统调用进行编号。把系统调用进行编号。形成一张形成一张形成一张形成一张“系统调用表系统调用表系统调用表系统调用表”。需要调用需要调用需要调用需要调用open()open()时,先把时,先把时,先把时,先把openopen()()的编号的编号的编号的编号5 5放在放在放在放在ax
26、ax寄存器寄存器寄存器寄存器中,再发生中断。中,再发生中断。中,再发生中断。中,再发生中断。中断处理程序根据中断处理程序根据中断处理程序根据中断处理程序根据axax查表,查表,查表,查表,得知需要调用的是得知需要调用的是得知需要调用的是得知需要调用的是open()open()。编号 系统调用1exit()2fork()3read()4write()5open()操作系统的用户界面操作系统的用户界面 系统功能调用系统功能调用 abc();abc();syscall;system_call:sys_abc SYSEXITsysabc()用户态用户态核心态核心态用户程序用户程序系统调用系统调用 在在
27、libc标准库标准库中的封装例程中的封装例程系统调用系统调用处理程序处理程序系统调用系统调用服务例程服务例程系统功能调用图示系统功能调用图示系统功能调用图示系统功能调用图示操作系统的用户界面操作系统的用户界面 系统功能调用系统功能调用int main()getuid();int getuid(void)long_res;int$0 x80;ENTRY(system_call)pushl%esx SAVE_ALL GET_CURRENT(%ebx)call sys_getuid16 RESTORE_ALLasmlinkage longsys_getuid16(void)return high2l
28、owuid (current_uid);用户程序用户程序系统调用处理程序系统调用处理程序标准标准C库库内核例程内核例程系统功能调用的例系统功能调用的例系统功能调用的例系统功能调用的例getuidgetuid系统调用过程系统调用过程系统调用过程系统调用过程 操作系统的用户界面操作系统的用户界面 系统功能调用系统功能调用核心态核心态用户态用户态比如有这样一段程序比如有这样一段程序比如有这样一段程序比如有这样一段程序open();open();read();read();write();write();mov ax,5int 0 x80mov ax,3int 0 x80mov ax,4int 0 x
29、80编编号号系系统调统调用用1 1exit()exit()2 2fork()fork()3 3read()read()4 4write()write()5 5open()open()中断处理中断处理程序程序操作系统的用户界面操作系统的用户界面 系统功能调用系统功能调用系统功能调用的例系统功能调用的例系统功能调用的例系统功能调用的例open,read,writeopen,read,write系统调用过程系统调用过程系统调用过程系统调用过程 作业、作业步的概念作业、作业步的概念用户程序的步骤以及个步骤之间的关系用户程序的步骤以及个步骤之间的关系静态连接和动态链接的区别静态连接和动态链接的区别操作系统提供哪两个接口,使用场合操作系统提供哪两个接口,使用场合举例说明实际操作系统的用户界面举例说明实际操作系统的用户界面系统调用的概念及实现方法系统调用的概念及实现方法操作系统的用户界面操作系统的用户界面 小结小结