《第二章操作系统用户界面wppt课件.ppt》由会员分享,可在线阅读,更多相关《第二章操作系统用户界面wppt课件.ppt(67页珍藏版)》请在三一办公上搜索。
1、第 2 章 操作系统用户界面,本章主要从用户使用和系统管理两方面出发,讨论操作系统为用户提供的编程接口和命令控制接口。首先讨论操作系统的命令控制接口及与其相关的作业控制和管理概念,然后介绍系统调用与编程接口,最后介绍操作系统用户界面示例。,PART 2.1,PART 2.2,PART 2.3,PART 2.4,简介,一般用户的输入输出界面,命令控制界面,Linux与Windows的命令控制界面,PART 2.5,PART 2.6,系统调用,Linux与Windows的系统调用,第 2 章 操作系统用户界面,学习目标:1.掌握:作业的定义、组成、建立;系统调用的实现过程。2.理解:作业的输入方式
2、,控制方式,OS为用户提供的接口。3.了解:系统调用与一般用户程序、库函数、实用程序的区别。学习要点:OS为用户提供了三种接口:命令接口、程序接口和图形接口。从操作命令控制接口出发,弄清楚什么是作业和作业的建立;接着掌握系统调用的实现过程。,2.1,PART 2.1,简介,2.1 简介,简介,用户,操作系统,用户界面,提交服务需求,提供服务,2.1 简介,简介,用户,被服务者,程序开发人员,普通用户,管理员,2.1 简介,简介,操作系统为不同的用户提供不同的用户界面不同的操作系统为用户提供的用户操作命令和表现形式不同。不同时期的操作系统为用户提供的操作命令和表现形式也不同。操作系统为普通用户和
3、管理员用户提供一组不同操作命令的集合,实现用户所要求的不同功能,提供相应服务。为编程人员提供一组系统调用的集合,允许编程人员使用操作系统和程序。,2.2,PART 2.2,一般用户的输入输出界面,2.2 一般用户的输入输出界面,作业的定义,作业:是要求计算机系统按指定步骤对应用程序进行处理并得到计算结果的加工工作。在一次应用业务处理过程中,从输入开始到输出结束,用户要求计算机所做的有关该次业务处理的全部工作。(用户的观点)作业步:对应用程序进行处理的步骤。作业由不同的顺序相连的作业步组成 作业步是在一个作业的处理过程中,计算机所做的相对独立的工作,2.2 一般用户的输入输出界面,作业组成,作业
4、由程序、数据和作业说明书三部分组成。(系统的观点),程序和数据:完成用户所要求的业务处理工作。每个作业至少包含一个程序作业说明书:体现用户的控制意图。系统通过作业说明书控制文件形式的程序和数据,使之执行和操作。作业基本情况:用户名、作业名、编程语言、最大处理时间等作业控制描述:作业控制方式、作业步的操作顺序、作业执行出错处理作业资源要求描述:处理时间、优先级、内存空间、外设类型和数量等,2.2 一般用户的输入输出界面,作业组成,作业基本情况描述,用户名,作业名,编程语言,最大处理时间,作业控制描述,控制方式,操作顺序,出错处理,.,作业资源要求描述,要求处理时间,内存大小,处理机优先级,库函数
5、或实用程序,2.2一般用户的输入输出界面,作业建立过程,作业的输入:输入数据、程序、作业说明书等;JCB的建立:申请创建作业的JCB,标志着系统中存在该作业。作业控制块是作业说明书在系统中生成的一张表格。操作系统通过该表了解到作业的要求,并分配资源和控制作业中程序和数据的编译、链接、装入和执行等。,当一个作业的全部程序和数据输入到外存并且在系统中建立了相应的作业控制块之后,一个作业就建立了。,2.2一般用户的输入输出界面,作业建立过程,作业名估计执行时间优先数(用于调度)作业说明书文件名程序语言类型(表明需调用的程序)资源要求:如内存、外设要求(静态/动态申请)作业状态:提交/后备/执行/就绪
6、/等待/完成作业在外存中的存储地址(以便迅速调入内存)作业控制块和作业之间是一一对应关系,包含运行过程中系统对作业进行管理的必要信息:,2.2一般用户的输入输出界面,作业建立过程,“作业”的补充说明:批处理系统中,作业是抢占内存的基本单位。也就是说,批处理系统以作业为单位进行调度。作业的概念一般用于早期批处理系统和现在的大型机、巨型机系统中,对于广为流行的微机和工作站系统,一般不太使用作业的概念。,问答题,为什么分时系统没有作业的概念?,因为在分时系统中,每个用户得到的时间片有限,用户的程序和数据信息直接输入到内存工作区中和其他程序一起抢占系统资源投入执行,而不必进入外存输入井等待作业调度程序
7、选择。因此,分时系统没有作业控制表,也没有作业调度程序,从而没有作业的概念。,2.2 一般用户的输入输出界面,作业输入输出方式,联机:通过交互会话来输入输出作业。由主机直接控制I/O;作业处理与I/O不能并行(CPU利用率低)。脱机(又称为预输入方式):通过后援存储器(磁带/磁盘)在外围处理机与主机之间交换作业。提高了主机的利用率,但需人工干预。直接耦合:保留脱机输入输出快速输入的优点,又没有脱机输入输出方式的人工干预的缺点。SPOOLING(Simultaneously Peripheral Operation On Line,外围设备同时联机操作):多台外围设备通过通道/DMA器件和主机与
8、外存连接起来。网络联机:用户把在计算机网络中某一台主机上输入的信息传送到网中另一台主机上进行操作或执行。,2.2 一般用户的输入输出界面,一般用户的输入输出方式,联机输入输出方式用于交互式系统外围设备和主机直接相连一台主机可对应多台外围设备,2.2 一般用户的输入输出界面,一般用户的输入输出方式,脱机输入输出方式,脱机输入输出方式解决了联机输入输出时速度太慢的问题,提高了主机的资源利用率,但以牺牲低档机为代价的。而且,脱机输入需要用户进行干预或进行一定的操作,例如移动存储介质和连接后援存储器等。,2.2 一般用户的输入输出界面,一般用户的输入输出方式,直接耦合方式快速输入,不需人工干预。将主机
9、和外围机通过一个公用外存直接耦合起来。慢速输入输出由外围机完成;高速读写由主机完成。需要一个在容量的公用存储器。,主机,公用存储器,低档PC,低档PC,2.2 一般用户的输入输出界面,一般用户的输入输出方式,spooling系统Simultaneous Peripheral Operations On-Line,同时的外围设备联机操作,也称假脱机。在SPOOLING系统中,作业的输入输出过程由主机控制、通道操作完成,需由中断技术支持。操作系统的输入程序包含两个独立的过程:读过程:负责从外部设备把信息读入缓冲区;写过程:负责把缓冲区的信息送到外存输入井中,2.2一般用户的输入输出界面,SPOOL
10、ING系统工作原理在系统输入模块收到作业输入请求信号后,输入管理模块中的读过程负责将信息从输入装置读入缓冲区。当缓冲区满时,由写过程将信息从缓冲区写到外存输入井中。,3.读过程和写过程反复循环,直到一个作业输入完毕。当读过程读到一个硬件结束标志之后,系统再次驱动写过程把最后一批信息写入外存,并调用中断处理程序结束该次输入。4.系统为该作业建立作业控制块JCB,从而使输入井中的作业进入作业等待队列,等待作业调度程序选中后进入内存。,2.2一般用户的输入输出界面,一般用户的输入输出方式,spooling系统特点在SPOOLING系统中,作业的输入输出过程由主机控制、通道操作完成,需由中断技术支持.
11、spooling系统组成 硬件:大容量外存(磁盘)软件:预输入程序:I/O输入井;作业调度程序:选择后备作业进入内存;井读程序:输入井内存;井写程序:内存输出井;缓输出程序:输出井 I/O;,2.2一般用户的输入输出界面,作业的执行周期与状态转换图,一般用户的输入输出方式,spooling系统,2.2一般用户的输入输出界面,一般用户的输入输出方式,网络联机方式以上述几种输入输出方式为基础。通过计算机网络中的某一台设备对另一台主机进行输入输出操作。,2.3,PART 2.3,命令控制界面-用户接口,2.3命令控制界面-用户接口,什么是用户接口(界面):是操作系统提供给用户与计算机打交道的外部机制
12、。用户通过用户接口向计算机提交服务请求计算机通过用户接口向用户提供所需要的服务 计算机系统的三类用户普通用户:只是使用计算机的应用服务管理员用户:负责计算机系统的正常与安全运行程序员用户:编程、开发新的应用程序针对不同的用户,操作系统提供不同的用户接口,2.3 命令控制界面,接口,命令接口:(操作接口一般用户、管理用户)组织工作流程、控制程序的运行。操作命令图形界面,系统调用:(程序接口程序员)用户程序在其运行过程中,使用系统功能调用来请求操作系统的服务。,接口,2.3 命令控制界面,脱机方式,用户以作业控制说明书方式或命令文件方式提交给系统,由系统按照作业说明书或命令文件中所规定的顺序控制作
13、业执行。如:Linux系统下shell程序。,联机方式,用户直接使用操作命令与系统进行交互式会话完成系统的控制和管理。Windows用户日常操作都属于联机方式。在现代操作系统中,大都提供脱机(批处理)方式和联机控制方式。,命令接口,2.3 命令控制界面,环境设置命令,联机控制方式的命令:,资源要求命令,通信命令,编辑编译链接装配和执行编辑命令命令,文件管理命令,系统管理命令,执行权限管理,命令接口,2.5,PART 2.5,系统调用,系统调用是操作系统提供给软件开发人员的唯一接口。系统调用像一个黑箱子那样,对用户屏蔽了操作系统的具体动作而只提供有关的系统功能供开发人员使用。OS核心中都有一组实
14、现系统功能的过程(子程序),系统调用就是对上述过程的调用。,(1)系统调用及其功能(2)系统调用的实现过程(3)系统调用与普通过程调用的异同点,系统调用,2.5 系统调用,系统调用,每个操作系统提供几十到上百种系统调用,包括:外存文件与目录的读写,各种I/O设备的使用,在程序中启动另一个程序,查询和统计系统资源使用情况等等。,1)设备管理:请求和释放设备,启动设备操作等2)文件管理:创建、删除文件,读、写文件操作,移动文件指针等3)进程控制:创建、执行、撤销进程等控制4)进程通信:进程间传递消息或信号的系统调用5)存储管理:内存块的申请、释放,获取作业占用内存块的首址、大小等6)系统管理:设置
15、和读取时间、读取用户和主机标识等ref232个windows系统调用函数表.pdf,系统调用的功能,2.5 系统调用,2.5 系统调用,系统调用分类:,系统调用,2.5 系统调用,为了提供系统调用功能,操作系统事先编制好的实现这些功能的子程序或过程。由于这些程序或过程是操作系统程序模块的一部分,不能直接被用户程序调用。,陷阱指令(或称陷入指令,访管指令):指由于系统调用引起处理机中断的指令。陷阱(trap)处理机构:是控制系统调用服务的中断处理机构,以保证系统调用时操作系统程序不被用户程序破坏。,系统调用的功能,2.5 系统调用,系统调用方式:,2.5 系统调用,处理机的执行状态:,处理机的执
16、行状态用户态(目态、普态):处理机在用户程序中执行称为用户态。此状态只能执行非特权指令,如果在目态下用户执行了特态指令,则产生中断,由操作系统得到控制权,而特权指令被停止。系统态(管态、特态):处理机在系统程序中执行称为系统态。此状态下能执行指令全集(包括特权,非特权指令),具有改变CPU状态的能力,操作系统在管态下运行。,2.5 系统调用,处理机的执行状态:,在系统发生访管中断(陷阱中断)时,为了不让用户程序直接访问系统程序,反映处理机硬件状态的处理机状态字PSW中的相应位要从目态转换为管态。这一转换在发生访管中断时由硬件自动实现。CPU状态的转换:目态 管态:其转换的唯一途径是通过中断。管
17、态 目态:可用设置PSW(修改程序状态字)可实现。,系统调用 和 普通调用 的相同与不同?,相同点改变指令流程重复执行和公用改变指令流程后需要返回原处不同点系统调用是动态调用,而CALL调用方式是静态调用;执行状态不同进入方式不同与进程调度的关系不同:嵌套或递归调用,系统调用 和 普通调用 的相同与不同?,1.系统调用是动态调用,而CALL调用方式是静态调用;,系统调用是动态调用,程序中不包含被调用代码 好处:(1)用户程序长度缩短(2)当OS升级时,调用方不必改变系统调用方式的调用地址和返回地址都是不固定的:系统调用指令中不包含调用地址,只包含功能号;系统调用返回指令中也不包含返回地址,通过
18、栈保存和弹出返回地址。CALL调用方式是静态调用:被调用代码与调用代码在同一程序之内。CALL调用方式,其调用地址是固定的,包含在调用语句中。,2.执行状态不同,调用和返回经历了不同的系统状态:核心和应用程序的代码分别运行在CPU的不同的状态下(系统态/管态/特态和用户态/目态/普态)。,3.进入方式不同,利用int或trap指令进行系统调用;利用call或jmp指令进入普通的过程调用;,4.与进程调度的关系不同,采用抢先式调度的系统,在系统调用返回时,要进行重新调度的检查是否有更高优先级的任务就绪(创建或唤醒)。,5.嵌套或递归调用,对系统调用,一般不允许在同一个进程中发生嵌套或递归。,2.
19、5 系统调用,系统调用特点:,系统调用是操作系统提供给程序员的唯一接口。利用系统调用,在源程序一级动态请求和释放系统资源,调用系统中已有的系统功能,完成与硬件相关的工作以及控制程序的执行速度等。对程序员屏蔽了具体动作而只提供功能接口。命令控制界面也是在系统调用的基础上开发而成。,2.5 系统调用,系统调用方式:,类似于硬件中断处理机制。OS中系统调用服务机构称为陷入(trap)处理机构。与此对应,把由于系统调用引起处理机中断的指令称为陷入指令(或称访管指令)。每个系统调用对应一个事先给定的功能号,如1,2,3陷阱指令中要包含功能号、给陷阱处理机构和内部处理程序的参数。系统设计人员为系统调用功能
20、的子程序编制入口地址表,入口地址与系统子程序名一一对应。,2.5 系统调用,系统调用中的参数传递方式:,陷阱指令自带参数。使用相关通用寄存器来传递参数。,2.4,PART 2.4,Linux与Windows的命令的控制界面,2.4 Linux与Windows的命令的控制界面,趋势:朝着人类自身的交流方式逼近,如Microsoft的Cortana,苹果的Siri.,2.4 Linux与Windows的命令的控制界面,Linux的命令控制界面,源代码免费、开放。命令控制用图形化窗口以及shell程序进行。命令包括:系统维护及管理命令,如datesetenv等文件操作及管理命令,如ls,find进程
21、管理命令,如kill、at等磁盘及设备管理命令,如dfdumount等用户管理命令,如adduser,userdel等文档操作命令,如csplitsort等网络通信命令,如netstatifconfig等程序开发命令,如cclink等X Windows开发命令,如startxXE86Setup等。允许用户自己编写Shell程序以采用批处理方式操作。,2.4 Linux与Windows的命令的控制界面,Linux的命令控制界面,命令或其它Shell程序位置参数变量及特殊字符表达式比较控制流语句,例如while case等函数,Shell命令的组成:,Shell 是一个用C语言编写的程序,它是用户
22、使用Linux的桥梁。Shell既是一种命令语言,又是一种程序设计语言。Shell 是指一种应用程序,这个应用程序提供了一个界面,用户通过这个界面访问操作系统内核的服务。,Shell命令:,2.4 Linux与Windows的命令的控制界面,Linux的命令控制界面,Shell命令:,#!/bin/bashecho Hello World!,#!是一个约定的标记,它告诉系统这个脚本需要什么解释器来执行,即使用哪一种Shell。echo命令用于向窗口输出文本,Mkdir:创建子目录backupDo 循环建立当前目录下所有文件的备份,2.4 Linux与Windows的命令的控制界面,Linux的
23、命令控制界面,Shell命令优缺点:,可定制性强 支持命令广 良好的作业控制能力 功能方便,执行效率低操作粒度粗糙不适合直接操作存储和IO设备,2.4 Linux与Windows的命令的控制界面,Linux的命令控制界面,Linux窗口系统命令操作和控制:,和windows一致,鼠标+键盘。,2.4 Linux与Windows的命令的控制界面,Windows的命令控制界面,命令解释部分:cmd.exe,窗口交互部分:鼠标和键盘对图形化界面进行操作,2.4 Linux与Windows的命令的控制界面,Windows的命令控制界面,命令分类:系统信息命令,如Time,Date,等系统操作命令,如S
24、hutdown,Runas 和Taskkill文件系统命令,如Copy,Del 和Mkdir网络系统命令,如Ping,Netstat和Route等。命令组合:Command1 paramenter2,2.4 Linux与Windows的命令的控制界面,Windows的命令控制界面,命令使用方式:直接在命令行输入命令 运行cmd.exe,快捷键win+R使用批处理文件 无格式文本文件 一条或多条指令 扩展名为.bat 或.cmd批处理文件之间可以相互调用。,2.4 Linux与Windows的命令的控制界面,Windows的命令控制界面,命令使用举例:echo offmkdir testecho
25、 hellopauseNote:-不显示当前命令本身,off-不显示后面的命令 Mkdir 当前目录下新建文件夹 echo hello 表示打印hello字符 pause 暂停执行,等待用户响应。,2.6,PART 2.6,Linux和Windows的系统调用,2.6 Linux和Windows的系统调用,Linux 系统调用,核心函数部分:提供共享代码,驻留内存。接口函数部分:提供API接口,将系统调用号和入口参数地址传送给相应的核心函数。,2.6 Linux和Windows的系统调用,Linux 系统调用功能分类,设备管理的系统调用。文件操作系统的系统调用。进程控制的系统调用。存储管理的系
26、统调用。管理用的系统调用。通信的系统调用。,2.6 Linux和Windows的系统调用,Windows系统调用,系统调用库函数DLLAPI,2.6 Linux和Windows的系统调用,Windows系统调用API分类,窗口管理类图形设备接口类(GDI)系统服务类国际特性类网络服务类E:Democwinmain.c,本章小结,脱机控制联机控制,多窗口、菜单、按键、声音,提供给编程人员的唯一接口,习题,什么是作业和作业步?作业由哪几部分组成?这几部分各有什么功能?作业的输入方式有哪几种?各有何特点?叙述SPOOLING系统的工作原理。简述作业控制块及其作用。操作系统提供哪些接口?它们的区别是什么?什么是系统调用?系统调用与一般用户程序有什么区别?与 库函数和实用程序有什么区别?8.简述系统调用的实现过程。9.为什么说分时系统没有作业的概念?,习题,在装有Linux系统的计算机上查看Shell的基本命令,编写一 个Shell程序,完成一个已有数据文件的复制和调用。12.用Linux文件读写的相关系统调用编写Copy程序。13.用Windows的DLL接口编写copy程序。,加量不加价,学习Linux系统的安装。学习Linux系统的基本配置方法。学习Linux系统的基本命令操作。,THANKS,18258467388,张 伟,