作业管理举例说明培训课程

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

最新文档


当前位置:首页 > 管理文书 > 金融资料


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

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


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