作业管理举例说明.ppt

上传人:xin****828 文档编号:14619944 上传时间:2020-07-26 格式:PPT 页数:67 大小:404KB
返回 下载 相关 举报
作业管理举例说明.ppt_第1页
第1页 / 共67页
作业管理举例说明.ppt_第2页
第2页 / 共67页
作业管理举例说明.ppt_第3页
第3页 / 共67页
点击查看更多>>
资源描述
2.5 用户界面举例,2.5.1 作业控制语言,1. 命令行 2. 环境变量,脱机作业控制:用户输入作业说明书,整个作业的运行由系统控制。 联机作业控制:通过人-机会话方式控制作业运行。用户登录(控制台登录或远程登录),由系统自动执行一些命令脚本后,并进入shell(字符或GUI界面),接受用户的命令和操作,最后退出系统。,1. 命令行,命令行:一行可有一个或多个命令,每次一行,包含一个或多个命令。 shell给出提示符时可输入,以回车键提交。如: “ls -a -l”列出当前目录文件列表; 命令格式:一个命令可有命令参数,格式包括选项/开关 (option/switch)或参数(argument)。 如UNIX系统: cp -r doc /tmpargv0, argv1, .(含子目录的文件复制:/tmp为目标地址),命令分类:内部命令和外部命令 内部命令:直接由shell本身完成,功能简单、使用频繁;常驻内存,如:DOS的copy命令。 外部命令:运行相应的可执行文件,在使用时加载。如:DOS的xcopy命令。 命令简化:利用参数替换可简化命令输入,通配符(?, *)用于匹配一组文件名如:UNIX的cp命令:当前目录上有两个1.tar和2.tar时,cp *.tar /tmp等同于cp 1.tar /tmp; cp 2.tar /tmp,2. 环境变量,环境变量也可以作为shell参数,如命令提示符的式样,外部命令的查找目录路径等。 如:PATH=/bin:/usr/bin:/usr/sbin:. HOME=/home/thisuser 环境变量是传递命令参数的另一种途径。如: cd $HOME; 环境变量可按名字访问,可以新建、赋值或撤销。 有效范围:只对本进程里的环境变量能够直接进行操作, 此外,在执行新进程时(UNIX中是exec()调用),可以给出环境变量的初始值,通常就是直接复制当前进程的所有环境变量继承。,环境变量(environment variable)应用进程地址空间中的特殊变量区。,2.5.2 作业管理举例*,2.2.1 MS DOS的作业管理 2.2.2 UNIX的作业管理,返回,2.5.3 MS DOS的作业管理,命令分类: 内部命令:如dir, cd, copy 外部命令:如format, xcopy 命令行选项 命令行选项通常是:/option;如:/?选项可显示各命令的命令行选项列表。 通配符:由外部命令自己处理。如:xcopy *.c . argv1=*.c,2.5.3.1. DOS命令处理程序,(或其他程序如DOS shell):驻留内存,在系统运行期间不再退出。为了给应用程序的执行提供更大内存空间,又分为常驻部分和暂驻部分(可被应用程序覆盖),输入输出重定向和管道(pipe) , , |, 基于临时文件 ”为输出重定向,“”为添加输出重定向。如: “dir temp.txt”将把“dir”命令在屏幕上的输出保存在新文件“temp.txt”中; 而dir temp.txt将屏幕输出追加在文件temp.txt的结尾。,管道|是将前一个命令的屏幕输出作为后一个命令的键盘输入。如:dir | sort将把dir命令的输出按行进行排序。 环境变量 set PATH=c:tools;%PATH%原PATH=c:dos 则后PATH=c:tools;c:dos 系统引导时加载 系统引导时加载:autoexec.bat,2.5.3.2. DOS批处理:由执行,循环:循环执行命令。 FOR /R drive:path %variable IN (set) DO command command-parameters 遍历根在drive:path上的目录树,在树的每个目录中执行 FOR 语句。如果在 /R 后没有指定任何目录规范,那么假设为当前目录。如果 set 仅是一个句号(.),那么它 将仅列出目录树。,有简单的变量替换,有条件转移和跳转、循环和注释语句rem,关于循环的实例,for %字母 in (文件列表) do 命令 %字母:命令描述时的某个参数. 文件列表:可以是1个文件或多个文件. 命令:用户指定. 例: c:for %A in (c:,d:) do chkdsk %A 依此对C:,D:进行chkdsk命令,%A顺序取C:,D:,如下面批处理将显示当前目录及其子目录所有后缀为ppt的文件名(含路径名); for /R %f in (*.ppt) do echo %f 可能的显示结果: C:usersxyongwork2001-02-20 chapter1.ppt C:usersxyongworktemp2001-02-18 chapter1.ppt C:usersxyongworktemp2000-08-09 Linux Lecture2000-08-15 Linux.ppt,分支,IF NOT ERRORLEVEL number command IF NOT string1=string2 command IF NOT EXIST filename command NOT 只有在条件为假时,才需运行命令。 ERRORLEVEL number 如果最近程序运行返回的退出码等于或大于指定的号码时,则设定条件为真。 command 当符合条件时,指定要运行的命令。 string1=string2 当指定字符串匹配时,设置条件为真。 EXIST filename 当指定文件名存在时,设置条件为真。 如: IF ERRORLEVEL 1 goto okay :okay echo okay,2.5.4 UNIX的用户界面,2.2.2.1. shell命令处理程序 2.2.2.2. shell批处理,2.5.4.1 shell命令处理程序,1. shell的类型 2. 初始化文件 3. 基本特征 4. 输入输出重定向 5. 管道 6. 后台执行 7. 环境变量和内部变量 8. 别名 9. 常用的外部命令,shell的类型,Bourne shell(/bin/sh) Bourne shell 的作者是 Steven Bourne。它是 UNIX 最初使用的shell 并且在每种 UNIX 上都可以使用。Bourne shell 在 shell 编程方面相当优秀,但在处理与用户的交互方面作得不如其他几种 shell。 Bourne shell 最大的缺点在于它处理用户的输入方面。在 Bourne shell 里键入命令会很麻烦,尤其当你键入很多相似的命令时。,UNIX上有许多种shell,主要功能是相同的,在细节上有一些区别。几种shell 都有它们的优点和缺点。,C shell(/bin/csh) C shell 由 Bill Joy 所写,它更多的考虑了用户界面的友好性。它支持象命令补齐(command-line completion)等一些 Bourne shell 所不支持的特性。普遍认为C shell 的编程接口做的不如 Bourne shell, 但 C shell 被很多 C 程序员使用因为 C shell的语法和 C语言的很相似,这也是C shell名称的由来。,Korn shell (ksh) Korn shell (ksh) 由 Dave Korn 所写。它集合了C shell 和 Bourne shell 的优点并且和 Bourne shell 完全兼容。,Bourne Again shell (bash) Bourne Again shell (bash)是 Bourne shell 的扩展。bash 与 Bourne shell 完全向后兼容,并且在 Bourne shell 的基础上增加和增强了很多特性。bash 也包含了很多 C 和 Korn shell 里的优点。bash 有很灵活和强大的编程接口,同时又有很友好的用户界面。 bash 有几种特性使命令的输入变得更容易。,其他shell 除了这些 shell 以外,许多其他的 shell 程序吸收了这些原来的 shell 程序的优点而成为新的 shell 。如: tcsh (csh 的扩展) Public Domain Korn shell (pdksh, ksh 的扩展),2. 初始化文件,B Shell执行.profile C Shell执行.cshrc和.login两个文件 K Shell执行.profile和$ENV两个文件 (sh) .profile与(csh) .login对应,进行注册时的初始化;而在csh在非注册启动时都读入.cshrc;,3. 基本特征,内部命令:如cd, exec区分大小写,exec的功能是执行一个命令; 外部命令:如ls, mkdir 命令行选项通常是:-option 如:ls -a -l中的-a表示列出所有文件,-l表示列出所有信息。 通配符:由shell处理后再传递给外部命令。 如:cat *.c 则argv1=a.c, argv2=b.c,而 cat *.c 则argv1=*.c(cat的功能是读入所有文件,并显示),4. 输入输出重定向,和为标准输出重定向; 2和2为标准错误输出重定向(2表示标准错误输出的设备号,只对sh有意义); ,7. 环境变量和内部变量,set可给出内部变量列表,env可给出环境变量列表。继承只对环境变量有效。 sh: PATH=/usr/bin:$PATH ; export PATH注意:在export前为内部变量,之后为环境变量。 csh: set setenv PATH /usr/bin:$PATH-注意:在csh中环境变量的赋值(setenv)没有等号,而内部变量的赋值(set)有等号。,内部变量不能被子进程继承(如同C里的局部变量);改环境变量就会自动改内部变量,反之不然。,8. 别名,alias 的格式: alias aliasname=string . 把 aliasname 直接用来取代后面的 string ,如有任何跟在后面的 argument 将会出现的其后。利用该功能,使用者可以将常用却冗长的指令以其他的名字存起。 如:alias dir=ls -a -l为ls -a -l定义了一个别名dir;,给复杂命令定义别名:alias/unalias,9. 常用的外部命令,man查看手册 echo, wc, grep, sed, awk(用于文本扫描和处理), sort, cut(对每行进行特定删除处理)字符串操作; pwd, ls, mkdir, rmdir, cp, rm, mv, ln文件和目录操作; chmod, chown, chgrp(修改文件所在的用户组)文件权限和属主; cat, more, tail(显示文件的最后部分)查看文件; test, expr检测和数值计算; vi全屏幕编辑;,2.5.4.2. 批处理,1. 变量替换 2. 条件转移 3. 循环 4. 分支 5. 函数,称为脚本 shell script:注释用 #,续行用 解释执行,效率较低;而且要加载外部命令; 指定解释执行脚本的程序:#!/bin/sh或 #!/opt/bin/perl perl, Practical Extraction and Report Language是一个文本文件分析工具。 执行脚本(sh):cmd(cshsource cmd), exec cmd, cmd(sh cmd, sh cmd) source命令是运行tcl脚本;exec是用指定命令新建shell,以取代当前shell;sh命令是运行sh脚本。,1. 变量替换,如:下面是一个变量定义和引用的例子: temp=test message echo $temp echo AAA$tempBBB echo CCC$tempDDD echo $temp,变量赋值格式:变量名=值 值串中包括空格、制表符或换行符时,值要放在号内;变量引用格式:$变量名 如引用前后紧接其它字符,引用方式为:$变量名或$变量名; $variable, 双引号:“进行变量替换”, 单引号:不作任何替换;,其运行结果为: test message AAAtest messageBBB CCCtest messageDDD $temp,2. 条件转移,if command; then . ; else . ; fi,例: # 调用test命令,注意:方括号和判断条件之间必须有空格 ! # 下面脚本在有参数时显示Have arguement(s),无参数时显示No arguement; # 其中, a$1 = a 用于判断$1是否为空串; if a$1 = a ; then echo No arguement else echo Have arguement(s) fi,运行结果为: xyongwell /work./temp.txt No arguement xyongwell /work./temp.txt we Have arguement(s),例: # 下面脚本在命令行参数个数不对(其中,test $# = 4测试命令行参数个数是否为4),提示出错信息; if test $# = 4 ; then echo $4 $3 $2 $1 else echo $0 usage: arg1 arg2 arg3 arg4 fi,运行结果如下: xyongwell /work$ ./temp.txt ./temp.txt usage: arg1 arg2 arg3 arg4 xyongwell /work$ ./temp.txt a b c d d c b a,3. 循环,while 1 ; do . ; done,例: # 下面脚本在文件lockfile可读时每暂停5秒重复测试一次(其中,test -r lockfile判断文件lockfile是否存在); while test -r lockfile; do sleep 5 done 运行结果为:有文件lockfile时,脚本一直不结束;直到该文件被删除后,脚本才结束。,4. 分支,基于模式匹配的多路分支结构,它依据word的不同,执行不同的命令序列; case word in pattern1) pat1-list; pattern2) pat2-list; esac,例: # 下面脚本依据命令行参数的不同,显示不同内容; case $1 in *.c) echo C:$1 ; *.a) echo A:$1 ; *.f) echo F:$1 ; esac,运行结果如下: xyongwell /work$ ./temp.txt c.a A:c.a xyongwell /work$ ./temp.txt c.c C:c.c xyongwell /work$ ./temp.txt c.f F:c.f,5. 函数,例: #这里$*和$1是new_func的参数,而$0为脚本的参数) new_func () echo $* echo $1 new_func $0 arg2 运行结果为: xyongwell /work./temp.txt asb ./temp.txt arg2 ./temp.txt,2.5.4.3图形用户接口(GUI, GRAPHIC USER INTERFACE),2.4.1 概述 2.4.2 MS Windows* 2.4.3 X Window* 2.4.4 事件驱动模式(event-driven)*,返回,在命令行方式下,用户与操作系统的交互要求用户记忆命令格式。在图形用户接口方式下,用户可利用鼠标对屏幕上的图标进行操作,完成与操作系统的交互,从而减少记忆内容,方便用户使用。它的技术基础是高分辩显示器和鼠标。,1 概述,1. 窗口系统(window system)的特点 2. 窗口系统的图形元素及其状态 3. 窗口管理器(window manager),1. 窗口系统(window system)的特点,利用图形元素表示功能: 同屏多窗口与并发进程相对应: 输入方式:鼠标指针点击 一致的图形元素风格 优点:操作直观 交互的并发性好、传递信息量大,2. 窗口系统的图形元素及其状态,窗口(window):屏幕上的矩形区域(可以通过掩模mask来显示任意形状) 包括:标题条(title bar)、边框(border)、窗口角(corner)、系统菜单框(system menu box)、最大化/最小化按钮(maximize/minimize)、滚动条(scroll bar)等 状态:当前/非当前窗口(active/inactive) 接受输入,最大化/最小化/恢复原大小(restore),窗口的前后遮盖Z轴,焦点(focus)接受键盘输入(而非鼠标) 桌面(desktop)和墙纸(wallpaper) 图标(icon):,鼠标指针(mouse pointer): 按钮(button): 菜单(menu): 对话框(dialog box):,3. 窗口管理器(window manager):形成统一的使用风格,处理窗口的普遍特性,如:窗口的大小、位置(窗口的标题条、边框、控制菜单框)窗口中由应用程序管理的部分称为客户区(client area) 协调各窗口间的相互关系,如:窗口之间的前后遮盖关系,桌面,MS Windows,1. 特点 2. MS Windows结构 3. 基本概念 4. 消息处理:两种方法,1. 特点,是OS 的一部分,提供默认的窗口风格(如菜单、对话框) 除Windows2000外,窗口应用程序只能在控制台(本地)执行。,2. MS Windows结构,OS系统服务(KERNEL):内存管理、程序加载(包括DLL)、任务调度、文件管理 用户接口(USER):窗口和消息管理,以及菜单、控制、对话框、定时器等 图形设备接口(GDI, Graphic Device Interface):管理显示器,为USER与应用程序提供与硬件设备独立的接口,可分成三个部分。,3. 基本概念,消息(message):消息作为窗口的输入,如用户操作、其他窗口或系统发出的请求或通知。 窗口过程(window procedure):消息由各窗口自己的窗口过程来作处理。 窗口过程的调用参数:接收窗口句柄(可以在多个窗口共用一个窗口过程时加以区分)、消息ID(消息的类型)、消息参数(16+32位或32+32位值,整数或指针) 还可以取得消息的发生时间和屏幕坐标,4. 消息处理:两种方法,排队消息:放到进程(线程)的FIFO消息队列里。如应用程序发送的消息,系统的鼠标、键盘、定时器、窗口绘制和退出等。排队消息所用的API: 发送消息到消息队列PostMessage; 从消息队列读取消息GetMessage, PeekMessage; 分发一个消息到相应窗口DispatchMessage; 非排队消息:直接发送到指定窗口的窗口过程。非排队消息所用的API: SendMessage,直到接收方窗口过程处理完才返回 接收方正处于GetMessage,而接受并处理SendMessage送来的消息之后,仍处于GetMessage。为防止死锁,一般要:if (InSendMessage() ReplyMessage(TRUE);,消息循环:不断移出消息,并加以处理。用户不作处理的消息,应传给默认窗口过程加以处理:DefWindowProc() WM_PAINT消息:通知窗口客户区中的某部分(region)已被改变,应用程序应该对其重新绘制。总是被排在线程消息队列的最后,并且多个WM_PAINT消息中的region会自动被合并为一个。,X Window,1.特点 2. X Window的结构 3. 基本概念 4. X lib和工具箱(toolkit) 5. X Window的使用,Client-Server结构:X client和server都是应用程序 一个server可以为不同计算机上的多个client提供服务, server对有关I/O设备具有访问权 一个client也可以连接不同计算机上的多个server 显示设备独立性和支持多种网络协议:(在TCP/IP, DECnet之上的X protocol) X不是计算机操作系统的一部分:其他大部分窗口系统都是以OS核心为基础的,如:MS Windows, Macintosh, SunView 支持自由风格(policy free):只提供机制不提供风格;包括窗口管理器、菜单、按钮、滚动条等的管理和操作,如:Motif, Open Look, Tcl/Tk等,1. 特点,2. X Window的结构,X Window的结构,各client、窗口管理器和X server可以在一台或多台计算机上 用户对server所控制设备的操作都使server发送事件(event),如:鼠标移动、点击,键盘输入; 事件是一个数据块,内容包括:事件类型、相关的窗口等 client对来自server的事件进行处理,然后向server发送请求(request),如:窗口操作、显示图形或正文 X protocol使用的传送信道:异步字节流。server不断发送事件而由client中的先进先出FIFO队列加以缓冲,client不断发送请求而由server中的FIFO队列加以缓冲。,X Window的队列,3. 基本概念,屏幕(screen)和显示器(display):屏幕指显示设备硬件,而显示器指X server(及其控制的键盘、鼠标和屏幕)。X允许一个显示器控制多个屏幕(即显示设备硬件)。 资源(resource):是X window使用的窗口、位图(bitmap)、字体(font)、调色板(color map)和其他数据结构的总称。 资源在X server中创建和存储,按照client的请求来加以管理,而client退出时撤销对应的资源。 通过资源标识(resource ID,整数类型)来标识不同的资源(包括系统资源)资源的自身不体现风格 窗口树:层次,子窗口只显示出被父窗口剪切(clip)的区域,4. X lib和工具箱(toolkit),X lib函数库,将接收到的X protocol转换为事件,并将请求转换为发送X protocol。其代码链接在X client中。如: 打开显示器:XOpenDisplay(char *display_name)与X server建立连接 取得X connection的文件描述符:XConnectionNumber(),X toolkit:提供各种构件的例程库,便于用户使用,体现不同的风格。如:Motif, Open Look, Tcl/Tk构件的数据结构存储在X client Xt Intrinsics:对构件的管理和操作,如:建立和撤销widget、管理资源(包括widget的初始值)、处理事件并调用相应的处理程序(回调过程call-back) widget set:构件集合构件类(widget class)和构件实例(widget instance),构件(widget):由多个资源(最终是resource ID)复合而成,具有特定外观和功能的部件,如:按钮、菜单和滚动条如同建筑上的预制件。本质是:对某些事件给出了默认响应(通常是改变外观),并可以挂接回调过程来进行用户定义的处理,方便用户使用。如Tcl/Tk:button .app.button2 -image icon2 -command incr x0 各个widget也构成widget tree,最顶层是top-level widget(在toolkit初始化时建立) editres命令:查看widget tree,并对X 应用进程中的资源进行动态修改,5. X Window的使用,1)本地,起动X server 2)本地,允许访问X server:xhost +hostC 3)本地,发起远程登录:telnet hostC并输入用户名和口令 4)远地,运行X终端程序:/usr/openwin/bin/xterm -display hostS:0.0 /usr/openwin/bin/xterm /* C1:管道1可读*/ if (C2) P2; /* C2:管道2可写*/ if (C3) P3;/* C3:定时器的时间到*/ ,事件驱动模式,While (!done) NextEvent(Event); /* 获取下一个事件,若无事件则等待直到有事件*/ switch (Event.Type) case C1:P1; case C2:P2; case C3:P3; ,将多路判断和等待汇集为一路 UNIX系统中相应的系统调用或库函数为:select()(Solaris 2.3库函数,Linux系统调用), poll()(Solaris 2.3系统调用) 特点: 节省运行CPU开销无事件时等待而不是反复查询,有事件时才处理 当处理分支较多时,switch语句变得复杂和不易掌握,3. 分发驱动模式,特点: 通过对象管理机构(如X toolkit)创建多个对象或构件,输入事件通过对象各自的回调过程(call-back procedure)来处理 通过对象管理机构,将输入事件分发给适当的元素无须了解分发过程的实现,CreateObject(object1, P1); CreateObject(object2, P2); CreateObject(object3, P3); While (!done) NextEvent(Event); /* 获取下一个事件,若无事件则等待直到有事件*/ Dispatch(Event);/* 分发事件给相应的回调过程*/ ,4. 举例,MS Windows的消息处理:,WinMain(.) CreateWindow(MainWndClass, SampleName, .); /* 窗口过程的人口指针包括在WNDCLASS结构中,通过RegisterClass注册窗口类*/ while (GetMessage( ,X Window的事件处理:Xt Intrinsics,main(.) topWidget = XtAppInitialize(.); XtRealizeWidget(.); while (1) /* 这里的while循环等价于XtAppMainLoop 函数*/ XtAppNextEvent(., ,小结,作业组织和控制:脱机、联机(命令行) 系统调用:与普通过程调用的区别、与高级语言函数库的区别、实现过程 作业管理举例:DOS、UNIX(shell) 图形用户接口(GUI):概述、X Window、MS Windows、事件驱动模式,谢谢!,Thank you,
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 图纸专区 > 课件教案


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!