操作系统用户界面.ppt_第1页
操作系统用户界面.ppt_第2页
操作系统用户界面.ppt_第3页
操作系统用户界面.ppt_第4页
操作系统用户界面.ppt_第5页
已阅读5页,还剩47页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1,2.1 简介 2.2 一般用户的输入输出界面 2.3 命令控制界面 2.4 Linux与Windows的命令控制界面 2.5 系统调用 2.6 Linux和Windows的系统调用,第2章 操作系统用户界面,2,2.1 简介 2.2 一般用户的输入输出界面 2.2.1 作业的定义 作业(Job)在一次应用业务处理过程中,从输入开始到输出结束,用户要求计算机所做的有关该次业务处理的全部工作称为一个作业。 作业步一个作业所经历的加工步骤(如编译、连接和运行等)称为作业步。 2.2.2 作业组织 作业由三部分组成 程序、数据和作业说明书。 JCB(Job Control Block) 由作业说明书在系统中生成。,第2章 操作系统用户界面,3,作业说明书的主要内容,第2章 操作系统用户界面,4, JCB的建立 JCB包含了系统对作业进行管理所必须的信息: 作业名、作业估计执行时间、优先数、作业建立时间、作业说明书文件名、程序语言类型、内存要求、外设要求、作业状态以及作业在外存中的存储地址等。 作业的四种状态: 1. 提交状态 2. 后备状态 3. 执行状态 4. 完成状态,第2章 操作系统用户界面,5,2.2.3 一般用户的输入输出方式 SPOOLING(或SPOOL) Simultaneous Peripheral Operations On-Line SPOOLING又可译作外围设备同时联机操作。 “斯普林”操作或“假脱机”操作,第2章 操作系统用户界面,6,2.3 命令控制界面 用户接口 程序一级的接口程序员接口 作业一级的接口操作员接口 作业控制方式分为两大类:脱机控制方式和联机控制方式(即批处理控制方式和交互控制方式) 脱机控制方式用作业控制语言编写作业说明书 联机控制方式用户使用系统提供的操作命令和系统会话,交互地控制程序执行和管理计算机系统。,第2章 操作系统用户界面,7, 联机控制方式的命令种类,第2章 操作系统用户界面,8,2.4 Linux与Windows的命令控制界面 2.4.1 Linux的命令控制界面 Linux命令主要有以下9类: (1) 系统维护及管理命令 date显示和设置系统日期和时间 setenv查询或设置环境变量(set environment variable) (2) 文件操作及管理命令 ls显示文件及目录 find查找文件 (3) 系统维护及管理命令 kill发送一个 signal 给某一个 process at在指定的时间执行指令,第2章 操作系统用户界面,9,(4) 磁盘及设备管理命令 df检查文件系统的磁盘空间占用情况(disk free) du显示磁盘空间的使用情况(disk usage) mount挂载设备 (5) 用户管理命令 adduser新增用户帐户 userdel删除用户帐号 (6) 文档操作命令 csplit分割文件(Split a file into context-determined pieces) sort对文件中的各行进行排序,第2章 操作系统用户界面,10,(7) 网络通信命令 netstat显示网络连接、路由表和网络接口信息 ifconfig显示或设置网络设备 (8) 程序开发命令 ccc编译 link链接 (9) X Window管理命令 startx启动X Window XF86setup图形界面下运行的配置程序,第2章 操作系统用户界面,11,Shell程序组成: (1) 命令或Shell程序; (2) 位置参数; (3) 变量及特殊字符; (4) 表达式比较; (5) 控制流程语句,例如while,case等; (6) 函数。 例:备份当前目录下的所有文件。 mkdir backup for file in ls do cp $ file backup/$ file if $? ne 0 then echo “copying $ file error” fi done,第2章 操作系统用户界面,12,shell预定义变量是由$符和另一个符号组成的,常用的shell预定义变量有: $#:位置参数的数量 $*:所有位置参数的内容 $?:命令执行后返回的状态 $:当前进程的进程号 $!:后台运行的最后一个进程号 $0:当前执行的进程名 其中,“$?”用于检查上一个命令执行是否正确(在Linux中,命令退出状态为0表示该命令正确执行,任何非0值表示命令出错)。,第2章 操作系统用户界面,13,2.4.2 Windows的命令控制界面 Windows命令主要有以下4类: (1) 系统信息命令 timeDisplays or sets the system time. 显示或设置系统时间 dateDisplays or sets the date. 显示或设置日期 memDisplays the amount of used and free memory in your system. driverqueryEnables an administrator to enumerate and display the list of installed device drivers as well as their properties. systeminfoThis command line tool enables an administrator to query for basic system configuration information.,第2章 操作系统用户界面,14,(2) 系统操作命令 shutdown关机 runas允许用户用其他权限运行指定的工具和程序,而不是用户当前登录提供的权限。 taskkillThis command line tool can be used to end one or more processes. Processes can be killed by the process id or image name. (3) 文件系统命令 copyCopies one or more files to another location. del删除文件 mkdir建立目录 (4) 网络通信命令 ping检查网络是否能够连通 netstat显示当前正在活动的网络连接的详细信息 route主要用来管理本机路由表,可以查看,添加、修改或删除路由表条目。,第2章 操作系统用户界面,15,&同时执行多条命令,而不管命令是否执行成功。 Usage:第一条命令 & 第二条命令 & 第三条命令. &同时执行多条命令,当碰到执行出错的命令后将不执行后面的命令,如果一直没有出错则一直执行完所有命令。 Usage:第一条命令 & 第二条命令 & 第三条命令. |同时执行多条命令,当碰到执行正确的命令后将不执行后面的命令,如果没有出现正确的命令则一直执行完所有命令。 Usage:第一条命令 | 第二条命令 | 第三条命令. 1. 直接在命令行输出命令 Systeminfo & mem 2. 批处理 echo off mkdir test echo hello pause,第2章 操作系统用户界面,16,例: echo off mem%1meminfo.txt echo generate memoryinfo ok! echo off type %1*.txt echo type ok! echo off mkdir test call exam2.bat test call exam3.bat test echo call ok! pause,第2章 操作系统用户界面,17,2.5 系统调用 进程(Process)是一个在功能上独立的程序的一次执行过程。 线程(Thread)是进程中进行数据处理操作的执行单位,每个进程中至少拥有一个线程来进行数据处理操作。,第2章 操作系统用户界面,18, 陷阱(Trap)处理机构 陷阱(Trap)处理机构 在系统中为控制系统调用服务的机构。 陷阱指令(或称访管指令) 由于系统调用而引起处理机中断的指令。 系统态(管态) 处理机在系统程序中执行。 用户态(目态) 处理机在用户程序中执行。,第2章 操作系统用户界面,19,2.6 Linux和Windows的系统调用 2.6.1 Linux系统调用 Linux系统调用从功能上可分为如下6类: (1) 设备管理的系统调用 (2) 文件系统操作的系统调用 (3) 进程控制的系统调用 (4) 存储管理的系统调用 (5) 管理用的的系统调用 (6) 通信的系统调用,第2章 操作系统用户界面,20,例:文件复制。 #include #include #define SIZE 1024 void filecopy(char *Infile, char *Outfile) char BufferSIZE; int In_fh, Out_fh, Count; if(In_fh=open(Infile,O_RDONLY)=-1) printf(“Opening Infile“); if(Out_fh=open(Outfile,(O_WRONLY | O_CREAT | O_TRUNC),(S_IRUSR | S_IWUSR)=-1) printf(“Opening Outfile“); while(Count=read(In_fh, Buffer, sizeof(Buffer)0) if(write(Out_fh, Buffer, Count)!=Count) printf(“Writing data“); if(Count=-1) printf(“Reading data“); close(In_fh); close(Out_fh); ,第2章 操作系统用户界面,21,int open(const char *pathname, int flags); int open(const char *pathname, int flags, mode_t mode); int close(int fd); open函数有两个形式,其中pathname是要打开的文件名(包含路径名称,缺省是认为在当前目录下)。flags可以取下面的一个值或者是几个值的组合。 O_RDONLY以只读的方式打开文件 O_WRONLY以只写的方式打开文件 O_RDWR以读写的方式打开文件 O_APPEND以追加的方式打开文件 O_CREAT创建一个文件 O_EXCL如果使用了O_CREAT而且文件已经存在,就会发生一个错误 O_NONBLOCK以非阻塞的方式打开一个文件 O_TRUNC如果文件已经存在,则删除文件的内容,第2章 操作系统用户界面,22,在fcntl.h中有定义: #define O_RDONLY 00000000 #define O_WRONLY 00000001 #define O_RDWR 00000002 #define O_CREAT 00000100 #define O_EXCL 00000200 #define O_NOCTTY 00000400 #define O_TRUNC 00001000 #define O_APPEND 00002000 #define O_NONBLOCK 00004000 NOCTTY(no controlling terminal),第2章 操作系统用户界面,23,前面三个标志只能使用任意的一个,如果使用了O_CREAT标志,那么我们要使用open的第二种形式,还要指定mode标志,用来表示文件的访问权限。 mode可以是以下情况的组合: S_IRUSR用户可以读 S_IWUSR用户可以写 S_IXUSR用户可以执行 S_IRWXU 用户可以读写执行 S_IRGRP组可以读 S_IWGRP组可以写 S_IXGRP组可以执行 S_IRWXG组可以读写执行 S_IROTH其他人可以读 S_IWOTH其他人可以写 S_IXOTH其他人可以执行 S_IRWXO其他人可以读写执行 S_ISUID设置用户执行ID S_ISGID设置组的执行ID,第2章 操作系统用户界面,24,在stat.h中有定义: #define S_IRWXU 00700 #define S_IRUSR 00400 #define S_IWUSR 00200 #define S_IXUSR 00100 #define S_IRWXG 00070 #define S_IRGRP 00040 #define S_IWGRP 00020 #define S_IXGRP 00010 #define S_IRWXO 00007 #define S_IROTH 00004 #define S_IWOTH 00002 #define S_IXOTH 00001 #define S_ISUID 0004000 #define S_ISGID 0002000,第2章 操作系统用户界面,25,2.6.2 Windows系统调用 常用的API(Application Programming Interface)函数调用可分为如下五类: (1) 窗口管理类 (2) 图形设备接口GDI(Graphics Device Interface)类 (3) 系统服务类 (4) 国际特性类 (5) 网络服务类 GDI32.DLL屏幕显示及打印功能的函数集 USER32.DLL鼠标、键盘、通信端口、声音、时钟功能的函数集 KERNEL32.DLL文件及内存管理(核心部分)功能的函数集 MPR.DLLWindows 32网络接口库 MPRMultiple Provider Router,第2章 操作系统用户界面,26,#include / 入口函数 int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, PSTR szCmdLine, int nCmdshow) HANDLE hFile; LPTSTR lpBuffer=“Hello World!“; / 创建文件 hFile=CreateFile(“C:File.txt“,GENERIC_READ | GENERIC_WRITE,0,NULL,OPEN_ALWAYS,FILE_ATTRIBUTE_NORMAL,NULL); CloseHandle(hFile); TCHAR szBuf128; DWORD dwRead; DWORD dwWritten;,第2章 操作系统用户界面,27,/ 打开文件 hFile=CreateFile(“C:File.txt“, GENERIC_READ | GENERIC_WRITE, 0, NULL, OPEN_ALWAYS, FILE_ATTRIBUTE_NORMAL, NULL); / 向文件中写入一个字符串 WriteFile(hFile,lpBuffer,strlen(lpBuffer)+1, ,第2章 操作系统用户界面,28,WinMain函数接收4个参数,这些参数都是在系统调用WinMain函数时,传递给应用程序的。 第一个参数hInstance表示该程序当前运行的实例的句柄,这是一个数值。当程序在Windows下运行时,它唯一标识运行中的实例(注意,只有运行中的程序实例,才有实例句柄)。一个应用程序可以运行多个实例,每运行一个实例,系统都会给该实例分配一个句柄值,并通过hInstance参数传递给WinMain函数。 第二个参数hPrevInstance表示当前实例的前一个实例的句柄。通过查看MSDN我们可以知道,在Win32环境下,这个参数总是NULL,即在Win32环境下,这个参数不再起作用。,第2章 操作系统用户界面,29,第三个参数lpCmdLine是一个以空终止的字符串,指定传递给应用程序的命令行参数。例如:在D盘下有一个sunxin.txt文件,当我们用鼠标双击这个文件时将启动记事本程序(notepad.exe),此时系统会将D:sunxin.txt作为命令行参数传递给记事本程序的WinMain函数,记事本程序在得到这个文件的全路径名后,就在窗口中显示该文件的内容。要在VC+开发环境中向应用程序传递参数,可以单击菜单【Project】【Settings】,选择“Debug”选项卡,在“Program arguments”编辑框中输入你想传递给应用程序的参数。 第四个参数nCmdShow指定程序的窗口应该如何显示,例如最大化、最小化、隐藏等。这个参数的值由该程序的调用者所指定,应用程序通常不需要去理会这个参数的值。,第2章 操作系统用户界面,30, UNIX发展历史与特点 UNIX概述 A multi-user, multitasking OS A Time-Sharing System Kernel and Shell UNIX的两大流派: (1) UNIX System V Res4.0,记:SVR4 (2) UNIX 4.4BSD BSDBerkeley Software Distribution,第2章 操作系统用户界面,31, UNIX的移植产品或变种 如:SUN公司的Solaris 2.6, IBM公司的AIX 4.2, 微机上的SCO UNIX,Xenix和Linux等。 UNIX标准化 (1) SVID标准 国际UNIX组织和AT&T公司于85年宣布的System V Interface Definition,即SVID。 该文件在系统调用、例行程序库和实用程序等方面 描述了UNIX System V。 它给出了定义UNIX System V的基准,UNIX System V的所有提供者必须遵循这一基准。 (2) POSIX规范(Portable Operating System Interface) 美国的UNIX用户协会和美国的IEEE学会在85年制订 的一个可移植的操作系统规范。 它包括可移植操作系统的规范、命令语言Shell和其 它工具、以及验证测试方法等。,第2章 操作系统用户界面,32, UNIX系统的特点 (1) UNIX系统是一个可供多用户同时操作的会话式分时操作系统。 (2) UNIX系统向用户提供了两种用户友好的界面或接口: 程序一级的界面系统调用 操作一级的界面命令(Shell) (3) UNIX系统具有一个可装卸的分层树型结构文件系统。 (4) UNIX系统把所有的外部设备都当作文件,并分别赋予它们对应的文件名。 (5) UNIX系统核心程序的绝大部分源代码和系统上的支持软件都用C语言编写。且UNIX系统是一个开放式系统。,第2章 操作系统用户界面,33,如何在Windows主机上练习Unix命令 申请帐号 Internet上的Unix主机(美国),提供免费帐号供使用。可以先去那里申请一个帐号,然后就可以在那里练习Unix命令。 连接 成功申请帐号之后,可用下列方法连上主机: (1) DOS 在提示符下输入telnet (2) Windows在IE地址栏里telnet:/ 输入用户名和密码后,出现系统提示符: %,第2章 操作系统用户界面,34,Unix通过Shell实现系统与用户的交互,在Shell提示符下,用户键入Unix命令。 UNIX System V 的常用Shell 是Bourne Shell(现在多为Korn Shell),缺省提示符是$。 Bourne shell可以说是第一个UNIX shell,它是由AT&T贝尔实验室的Stephen Bourne 所编写。 Korn shell 是AT&T贝尔实验室的David Korn 所开发,是Bourne shell的增强版本,综合了Bourne shell和C shell的特点和约定,而Korn shell则比Bourne和C shell执行得更快。 UNIX BSD的常用Shell 是C Shell,缺省提示符是%。 C shell是由Berkeley的Bill Joy编写,是标准BSD (Berkeley System Distribution)命令解释。,第2章 操作系统用户界面,35, UNIX系统结构,第2章 操作系统用户界面,36, UNIX的命令控制界面 UNIX通过Shell向用户提供的命令可分为以下两类: 基本类 (1) 系统访问命令,例如login登录;logout退出。 (2) 编辑和文件管理命令,例如vi, emacs编辑文件; cp复制文件;rm删除目录或文件;ls列出文件或目录名。 (3) 编译、链接命令,例如ccC 编译;link链接。 (4) 维护、管理命令,例如adduser增加用户; chown改变文件或目录的所有权。 (5) 调试命令,例如dbx程序调试器。 (6) 记帐、日期等的命令,例如date打印或设置系统日期和时间。 (7) 网络通信用命令,例如mailx电子邮件程序(发送或接收电子邮件)。,第2章 操作系统用户界面,37, 特殊类 (1) 后台命令“&” 例如:cc pgm.c &要求系统在空闲时编译程序pgm.c。 (2) 通配符“*”和“?” *任意字符串,?任意字符 例如:a*.c,a?.c (3) 输入输出重定向“”、“” 、输出重定向。 0标准输入(键盘),1标准输出(显示器),2标准错误信息输出。 例如:ab,ab,lsb (4) 管道命令“|” 例如:ls | sort | prlsfile1,sort file1file2,pr file2 (5) 滤波器功能 grep查找字符串(模式匹配)。例如:grep abc file1 Sort排序。 tail输出文件的末尾部分(缺省为10行)。,第2章 操作系统用户界面,38, UNIX的编程界面 UNIX的系统调用可分为如下几类: 1. 有关设备管理的系统调用 ioctlI/O总控制函数,read读文件,write写文件,open打开文件,close关闭文件。 2. 有关文件系统的系统调用 read读文件,write写文件,open打开文件,close关闭文件,creat创建新文件,unlink删除链接,execl执行文件,fcntl文件控制,flock文件加/解锁,stat取文件状态信息,mount安装文件系统。,第2章 操作系统用户界面,39, 文件系统的安装与拆卸: mount安装文件系统 格式:#mount t type device mountpoint 例: #mount t msdos /dev/fd0 /mnt #mount t vfat /dev/fd0 /mnt umount拆卸文件系统 格式:#umount device 例: #umount /dev/fd0 #umount /mnt,第2章 操作系统用户界面,40,例:合并文件 main(argc, argv) int argc; char *argv; int fd1, fd2, fd3, n; char buf512, ch=n; fd1=open(argv1, 0); /* 打开argv1对应的文件,返回标识符fd1 */ fd2=open(argv2, 0); /* 打开argv2对应的文件,返回标识符fd2 */ fd3=creat(argv3, 0664); /* 创建argv3对应的文件,返回标识符fd3 */ while (n=read(fd1, buf, 512)0) write(fd3, buf, n); write(fd3, ,第2章 操作系统用户界面,41,文件网络连接、FIFO、管道、终端、文件 文件描述符(fd)一个和打开的文件相关联的整数 fd=open(name, mode) name文件名 mode 文件的存取权 (0读,1写,2读写) fd=creat(name, mode) name文件名 mode 文件的存取权 xxx xxx xxxrwx rwx rwx (r读,w写,x执行execute) 文件主Owner 文件主同组用户Group 其他用户Others,第2章 操作系统用户界面,42,3. 有关进程控制的系统调用 fork创建一个新进程,wait等待子进程终止,exit中止进程,getpid获取进程标识号,getppid获取父进程标识号,getpriority获取调度优先级,nice改变分时进程的优先级,kill向进程或进程组发信号,signal允许进程处理可能发生的意外事件和中断,pause挂起进程等待信号,pipe创建管道。 4. 有关进程通信的系统调用 5. 有关存储管理的系统调用 6. 管理用系统调用,第2章 操作系统用户界面,43,例:创建进程 main( ) int i; while (i=fork( )= -1) ; /* 若创建失败,则反复创建 */ printf(“i=%dn“, i); /* 打印进程标识符 */ if (i) printf(“It is a parent process! n“); /* i0,在父进程中 */ else printf(“It is a child process! n“); /* i=0,在子进程中 */ ,第2章 操作系统用户界面,44,kill(pid, sig) 发送信号 pid为接收进程的标识符,sig为发送信号的类型。 signal(sig, func) 接收或捕获信号 sig为接收或捕获的信号类型,func为信号处理方式。 func可为: 1. 常数SIG_IGN忽略此信号(ignore) 2. 常数SIG_DFL系统默认动作(default) 3. 调用函数的地址,第2章 操作系统用户界面,45,上机步骤 已安装LINUX的电脑直接启动 没有安装LINUX的电脑可以通过telnet访问 开始菜单运行: telnet LINUX 服务器IP地址 大机房电脑连接到 01 其他机房电脑连接到 Login: 用户名 Password: 口令 logout或exit或D注销用户,第2章 操作系统用户界面,46,常用shell命令(LINUX环境) 目录和文件操作 ls列出当前目录中所有的文件和目录名 cd改变当前目录 mkdir创建目录 rmdir删除目录 cp拷贝文件 rm删除文件 mv移动文件或重命名文件,第2章 操作系统用户界面,47,调试C程序步骤 1. 输入源程序 $ gedit compxx.c $ vi compxx.c xx学号末2位 2. 编译 $ cc compxx.c -o compxx $ cc compxx.c (缺省为a.out) 3. 运行 $ . / compxx $ . / a.out 命令提示符$:系统工具终端 gedit:附件文本编辑器,第2章 操作系统用户界面,48,vi中多种工作方式的转换关系,第2章 操作系统用户界面,49,全屏幕编辑工具vi(visual interpreter) 命令行方式下常用命令 h()左移 l()右移 k()上移 j()下移 0光标移至行首 $光标移至行尾 H光标移至屏幕的最上行 M光标移至屏幕的中部 L光标移至屏幕的最下行 G光标移至文件最后一行行首 nG光标移至文件第n行行首 dd删除光标所在行 4dd删除从光标所在

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论