资源描述
单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,计算机操作系统,2.1,简介,2.2,命令控制接口及界面,2.3,系统调用,第二章 操作系统用户界面,2.1 简介,用户接口是操作系统的五大功能之一,是操作系统的重要组成部分,负责用户和操作系统之间的交互。,用户,操作系统,提交服务请求,提供用户所需的服务,计算机用户的分类,使用和管理计算机应用程序的用户,普通用户:使用计算机的应用服务,管理员用户:负责计算机和操作系统的正常和安全运行,程序开发人员:使用操作系统所提供的编程功能开发新的应用程序,完成用户所要求的服务。,不同的用户接口及界面,命令控制界面:为普通用户、管理员用户提供的界面由一组以不同形式表现的操作命令组成;对两者提供的命令集也不一样,图形界面,命令行方式,系统调用:为编程人员提供的界面,使用“系统调用”就可获得操作系统的底层服务,使用或访问系统的各种软硬件资源。,操作系统提供的用户接口,用户和操作系统间的两种接口,系统调用,命令控制界面,操 作 系 统,裸 机,2.2 一般用户的输入输出界面,要了解计算机是怎样和用户交互的,就必须了解用户怎样使用计算机提供的各种命令以及学会怎样把编制的应用程序变成普通用户可以使用的命令。,一般用户的输入输出方式,命令控制界面,举例,基本概念,作业的定义,作业组织,一般编程过程,作业定义,用户角度:在一次应用业务处理过程中,从输入开始到输出结束,用户要求计算机所做的有关该次业务处理的全部工作称为一个,作业,。,系统角度:作业则是一个比程序更广的概念。它由程序、数据和作业说明书组成。系统通过作业说明书控制文件形式的程序和数据,使之执行和操作。,作业组织,作业由三部分组成,即程序、数据和作业说明书。,作业控制块(,JCB,),的表格。该表格登记该作业所要求的资源情况、预计执行时间和执行优先级等。,作业输入输出方式,联机输入输出方式,脱机输入输出方式,直接耦合方式,SPOOLING(Simultaneous Peripheral Operations On-Line)系统,外围设备同时联机操作,网络联机方式,联机输入方式,外围设备直接和主机相连接,一台主机可以连接一台或多台外围设备。这些设备可以是键盘、鼠标、显示器或打印机等。,脱机输入方式,在个人机上,用户通过联机方式把数据或程序首先输入到后援存储器,例如磁盘或磁带上;然后,用户把装有输入数据的后援存储器拿到主机的高速外围设备上和主机连接,从而在较短的时间内完成作业的输入工作。,脱机输入解决了快速输入输出问题,提高了主机的资源利用率,而且脱机输入需要用户进行干预或进行一定的操作,例如移动存储介质和连接后援存储器等。另外,脱机输入输出方式存在灵活性差的缺点,即遇到紧急任务需要处理时,无法直接交给主机以便优先处理。,直接耦合方式,保留脱机输入方式的快速输入的优点,又没有脱机输入方式的人工干预的缺点和具有较强灵活性的输入方式是直接耦合方式。,直接耦合方式把主机和外围低档机通过一个公用的大容量外存直接耦合起来,从而省去了在脱机输入中那种依靠人工干预来传递后援存储器的过程。在直接耦合方式中,慢速的输入输出过程仍由外围低档机自己管理,而对公用存储器中的大量数据的高速读写则由主机完成。,SPOOLING系统,SPOOLing系统既不同于脱机方式,也不同于直接耦合方式,SPOOLing 技术实际上是一种外围设备同时联机操作技术,又称为排队转储技术。,它在输入和输出之间增加了“输入井”和“输出井”的排队转储环节,以消除用户的“联机”等待时间。,SPOOLING系统,在系统输入模块收到作业输入请求信号后,输入管理模块中的读过程负责将信息从输入装置中读入输入井缓冲区。当缓冲区满时,由写过程将信息从缓冲区写到外存的输入井中,读过程和写过程反复循环,直到一个作业输入完毕。,当读过程读到一个硬件结束标志之后,系统再次驱动写过程把最后一批信息写入外存输入井并调用中断处理程序结束该次输入。,然后,系统为该作业建立作业控制块,从而使输入井中的作业进入作业等待队列,等待作业调度程序选中后进入内存运行。,将一台独享打印机改造为可供多个用户共享的打印机,是应用SPOOLing技术的典型实例。,具体做法是:系统对于用户的打印输出,但并不真正把打印机分配给该用户进程,而是先在输出井中申请一个空闲盘块区,并将要打印的数据送入其中;然后为用户申请并填写请求打印表,将该表挂到请求打印队列上。若打印机空闲,输出程序从请求打印队首取表,将要打印的数据从输出井传送到内存缓冲区,再进行打印,直到打印队列为空。,SPOOLing技术的特点:,提高了I/O速度.从对低速I/O设备进行的I/O操作变为对输入井或输出井的操作,如同脱机操作一样,提高了I/O速度,缓和了CPU与低速I/O设备速度不匹配的矛盾.,设备并没有分配给任何进程.在输入井或输出井中,分配给进程的是一存储区和建立一张I/O请求表.,实现了虚拟设备功能.多个进程同时使用一独享设备,而对每一进程而言,都认为自己独占这一设备。,网络联机方式,当用户需要把在计算机网络中某一台主机上输入的信息传送到同一网中另一台主机上进行操作或执行时,就构成了网络联机方式。,命令控制界面,操作系统的命令控制界面就是用来组织和控制作业运行的。使用操作命令进行作业控制的方式有:,脱机方式,:用户将作业的执行顺序和出错处理方法一并以作业控制说明书的方式或命令文件方式提交给系统,由系统按照作业说明书或命令文件中所规定的顺序控制作业执行。执行过程中,用户无法干涉,只能等待作业正常执行结束或出错停止之后查看执行结果或出错信息,以便修改作业内容或控制过程。,联机方式,:不要求用户填写作业说明书,系统只为用户提供一组键盘或其他操作方式的命令。,与脱机控制方式相比,联机控制方式的命令种类要丰富得多。这些命令可大致分为以下几类:,(1)环境设置。,(2)执行权限管理。,(3)系统管理。,(4)文件管理。,(5)编辑、编译、链接装配和执行。,(6)通信。,(7)资源要求。,联机控制方式大大地方便了用户。但在某些情况下,用户反复输入众多的命令也会浪费不必要的时间。因此,在现代操作系统中,大都提供批处理方式和联机控制方式。这里,批处理方式既指传统的作业控制语言编写的作业说明书方式,也指那些把不同的交互命令按一定格式组合后的命令文件方式。,举例:Linux命令控制界面,主要有9类命令:,系统维护及管理命令:date,文件操作及管理命令:ls,find,进程管理命令:kill,at,磁盘及设备管理命令:df,du,mount,用户管理命令:adduser,userdel,文档操作命令:csplit,sort,网络通信命令:netstat,ifconfig,程序开发命令:cc,link,X windows管理命令,startX,举例:Linux命令控制界面,批处理方式(shell 脚本),#!/bin/sh,echo Now install OURS-PXA270-EP Linux develop environment!.,#find out the current path,export FIND_OUT_CURRENT_PATH=pwd,SRC_DIR=$FIND_OUT_CURRENT_PATH,echo copy arm-linux,cp$SRC_DIR/arm-/usr/local,cp$SRC_DIR/pxa270_linux.tar.bz2/,cd/usr/local,tar xzf arm-,cd/,tar xjf,举例:Windows命令控制界面,系统信息命令:time,date,systeminfo,系统操作命令:shutdown,taskkill,文件系统命令:copy,del,mkdir,网络通信命令:ping,netstat,route,举例:Windows命令控制界面,使用批处理,mkdir test,echo hello,pause,2.3 系统调用,系统调用是操作系统提供给编程人员的唯一接口。编程人员利用系统调用,在源程序一级动态请求和释放系统资源,调用系统中已有的系统功能来完成那些与机器硬件部分相关的工作以及控制程序的执行速度等。因此,系统调用像一个黑箱子那样,对用户屏蔽了操作系统的具体动作而只提供有关的功能。事实上,命令控制界面也是在系统调用的基础上开发而成的。,为了保证操作系统程序不被用户程序破坏,一般操作系统都不允许用户程序访问操作系统的系统程序和数据。,编程人员给定了系统调用名和参数之后是怎样得到系统服务的呢?,这需要有一个类似于硬件中断处理的中断处理机构。当用户使用系统调用时,产生一条相应的指令,处理机在执行到该指令时发生相应的中断,并发出有关信号给该处理机构。该处理机构在收到了处理机发来的信号后,启动相关的处理程序去完成该系统调用所要求的功能。,Linux内核结构图,2.3,系统调用,1.,系统调用的分类,(1)设备管理,(2)文件管理,(3)进程控制,(4)进程通信,(5)存储管理,(6)线程管理,系统调用(2),2.,系统调用的实现要点,一.是编写系统调用处理程序;,二.是设计一张系统调用入口地址表,每个入口地址都指向一个系统调用的处理程序;,三.陷入处理机制需开辟现场保护区,以保存发生系统调用时的处理器现场。,系统调用(3),系统调用的处理过程,系统调用(4),Linux系统调用,Linux系统调用由两部分组成:,核心函数,是实现系统调用功能的(内核)代码。,接口函数,是提供给应用程序的API,以库函数形式存在Linux的lib.a中。,系统调用(5),Linux系统调用入口程序entry.s,ENTRY(sys-call-table),.long SYMBOL-NAME(sys-ni-syscall)0,.long SYMBOL-NAME(sys-exit)1,.long SYMBOL-NAME(sys-fork)2,.long SYMBOL-NAME(sys-read)3,.long SYMBOL-NAME(sys-write)4,.long SYMBOL-NAME(sys-open)5,.long SYMBOL-NAME(sys-close)6,.long SYMBOL-NAME(sys-vfork)190,系统调用,(,6),Linux系统调用号就是系统调用入口表中位置序号,系统调用通过接口函数将调用号传给内核,内核转入系统调用控制程序再通过调用号位置来定位核心函数,Linux内核的陷入由0 x80(int 0X80)中断实现。,操作系统提供的用户接口(7),Windows,支持,API,的,三个组件:,Kernel,包含了多数操作系统函数,如内存管理、进程管理;,User,集中了窗口管理函数,如窗口创建、撤销、移动、对话等相关函数;,GDI,提供画图函数、打印函数。,Windows,将三个组件置于动态链接库,DLL,中。,小结,操作系统为用户提供了哪些接口?它们的区别是什么?,什么是系统调用?系统调用与一般用户程序有什么区别?与库函数和实用程序又有什么区别?,
展开阅读全文