《Linux基础及应用教程》-陈英-电子教案 第4章 进程控制开发

上传人:E**** 文档编号:89398488 上传时间:2019-05-24 格式:PPT 页数:40 大小:108.50KB
返回 下载 相关 举报
《Linux基础及应用教程》-陈英-电子教案 第4章 进程控制开发_第1页
第1页 / 共40页
《Linux基础及应用教程》-陈英-电子教案 第4章 进程控制开发_第2页
第2页 / 共40页
《Linux基础及应用教程》-陈英-电子教案 第4章 进程控制开发_第3页
第3页 / 共40页
《Linux基础及应用教程》-陈英-电子教案 第4章 进程控制开发_第4页
第4页 / 共40页
《Linux基础及应用教程》-陈英-电子教案 第4章 进程控制开发_第5页
第5页 / 共40页
点击查看更多>>
资源描述

《《Linux基础及应用教程》-陈英-电子教案 第4章 进程控制开发》由会员分享,可在线阅读,更多相关《《Linux基础及应用教程》-陈英-电子教案 第4章 进程控制开发(40页珍藏版)》请在金锄头文库上搜索。

1、陈英 梁建武主编 中国水利水电出版社,Linux基础及应用,第四章 进程控制开发,陈英 梁建武主编 中国水利水电出版社,4.1 Linux下进程概述,4.1.1 进程的概念 1进程的引入 2进程及其特征 (1)动态性 (2)并发性 (3)独立性 (4)异步性 (5)结构特征:进程由程序、数据和进程控制块三部分组成,陈英 梁建武主编 中国水利水电出版社,3进程与程序的关系 程序是指令的有序集合,其本身没有任何运行的含义,是一个静态的概念。而进程是程序在处理机上的一次执行过程,它是一个动态的概念。 程序可以作为一种软件资料长期存在,而进程是有一定生命期的。程序是永久的,进程是暂时的。,陈英 梁建武

2、主编 中国水利水电出版社,4.1.2 进程的结构,(1)进程状态 (2)调度信息 (3)标识符 (4)内部进程通信信息 (5)链接信息,陈英 梁建武主编 中国水利水电出版社,(6)时间和计时器 (7)文件系统 (8)虚拟内存信息 (9)处理器信息,陈英 梁建武主编 中国水利水电出版社,4.2 Linux进程控制编程,4.2.1 进程的创建 方法:调用系统调用 fork 系统调用的语法格式: pid = fork();,陈英 梁建武主编 中国水利水电出版社,4.2.2 进程的等待,pid_t wait(int *stat_loc) ; pid_t waitpid(pid_t pid,int *s

3、tat_loc,int options) ; wait系统调用会使父进程阻塞直到一个子进程结束。如果没有父进程,没有子进程或者其子进程已经结束,wait会立即返回。成功时wait将返回子进程的ID,否则返回-1,并设置全局变量errno.stat_loc是子进程的退出状态。,陈英 梁建武主编 中国水利水电出版社,4.2.3 进程的终止,核心为系统调用exit完成下列操作: (1)撤销所有的信号量 (2)释放其所有的资源,包括存储空间、已打开文件、工作目录、信号处理表等。 (3)把进程状态置为“终止态” (4)向其父进程发送子进程终止的信号。 (5)执行相应的进程调度。,陈英 梁建武主编 中国水

4、利水电出版社,4.2.4 进程映像的更换,核心为系统调用exec完成下列操作: (1)验证文件的可执行性,即用户有权执行它。 (2)读文件头,检查它是一个可装入模块。 (3)释放原有的内存空间。 (4)按照可执行文件的要求分配新的内存空间,并装入内存。,陈英 梁建武主编 中国水利水电出版社,4.3 Linux守护进程,守护进程(Daemon)是运行在后台的一种特殊进程。它独立于控制终端并且周期性地执行某种任务或等待处理某些发生的事件。 守护进程是一种很有用的进程。Linux的大多数服务器就是用守护进程实现的。,陈英 梁建武主编 中国水利水电出版社,4.3.1 守护进程及其特性,守护进程最重要的

5、特性是后台运行。在这一点上DOS下的常驻内存程序TSR与之相似。 守护进程必须与其运行前的环境隔离开来。,陈英 梁建武主编 中国水利水电出版社,4.3.2 守护进程的编程要点,(1)在后台运行。 (2)脱离控制终端、登录会话和进程组 (3)禁止进程重新打开控制终端 (4)关闭打开的文件描述符 (5)改变当前工作目录 (6)重设文件创建掩模 (7)处理SIGCHLD信号,陈英 梁建武主编 中国水利水电出版社,4.4 Linux内核简介,Linux 内核的主要用途就是为了与计算机硬件进行交互,实现对硬件部件的编程控制和接口操作,调度对硬件资源的访问,并为计算机上的用户程序提供一个高级的执行环境和对

6、硬件的虚拟接口。 Linux 内核主要由5 个模块构成,它们分别是:进程调度模块、内存管理模块、文件系统模块、进程间通信模块和网络接口模块。,陈英 梁建武主编 中国水利水电出版社,4.5 shell基本工作原理及编程,Linux系统的shell作为操作系统的外壳,为用户提供使用操作系统的接口。它是用户和Linux内核之间的接口程序。 shell是一个命令语言解释器,类似于DOS下的程序,它拥有自己内建的shell命令集,shell也能被系统中其他应用程序所调用。,陈英 梁建武主编 中国水利水电出版社,shell有很多种,如:csh,tcsh,pdksh,ash,sash,zsh,bash等。L

7、inux的缺省shell为bash(Bourne Again shell)。 用户如何知道安装的Linux版本支持哪些shell?在提示符下输入: cat /etc/shells 如果用户想知道自己现在使用的是哪种shell,可以在提示符后输入: echo $SHELL,陈英 梁建武主编 中国水利水电出版社,4.5.1 shell的基本工作原理,(1)读取用户由键盘输入的命令行。 (2)分析命令,以命令名作为文件名,并将其它参数改造为系统调用execve()内部处理所要求的形式。 (3)终端进程调用fork()建立一个子进程。 (4)终端进程本身用系统调用wait4()来等待子进程完成(如果是

8、后台命令,则不等待)。,陈英 梁建武主编 中国水利水电出版社,(5)如果命令末尾有&号(后台命令符号),则终端进程不用系统调用wait4()等待,立即发提示符,让用户输入下一个命令,转。如果命令末尾没有&号,则终端进程要一直等待,当子进程(即运行命令的进程)完成处理后终止,向父进程(终端进程)报告,此时终端进程醒来,在做必要的判别等工作后,终端进程发提示符,让用户输入新的命令,重复上述处理过程。,陈英 梁建武主编 中国水利水电出版社,4.5.2 创建和执行shell脚本,1创建shell脚本 shell脚本是使用用户环境shell提供的语句所编写的命令文件。用户可以用任何编辑器来编写shell

9、脚本。因为shell脚本是解释执行的,所以不需要编译成目标文件。,陈英 梁建武主编 中国水利水电出版社,2执行shell脚本 执行shell脚本的方式基本上有三种: (1)输入定向到shell脚本 利用输入重定向,使shell命令解释程序的输入取自指定的文件。一般形式是: $ bash 脚本名 例如: $ bash hellotest shell从文件hellotest中读取命令行,并执行它们。当shell到达文件末尾时就终止执行,并把控制返回到shell命令状态。要注意的是,这种执行方式脚本名后面不能带参数。 (2)以脚本名作为参数 其一般形式是: $ bash 脚本名 参数 例如:$bas

10、h iftest morn 其执行过程与上一种方式一样,但这种方式能在脚本名后面带参数,从而将参数值传递给程序中的命令。 (3)用chmod命令使shell脚本权限设置为可执行的,陈英 梁建武主编 中国水利水电出版社,4.5.3 shell变量,1用户变量 用户变量是最常用的变量,使用也十分简单。变量名必须是以字母和下划线开头的字母、数字及下划线序列组成,并且变量名是大小写敏感的。用户变量的赋值很简单,一般形式为: 变量名字符串/数字,陈英 梁建武主编 中国水利水电出版社,2系统变量 系统变量是Linux所提供的一种特殊类型的变量,shell常用的系统变量并不多,但却十分有用,特别是在做一些参

11、数检测的时候。,陈英 梁建武主编 中国水利水电出版社,3环境变量 shell 环境变量是所有shell 程序都会接受的参数。shell程序运行时,都会接收一组变量,这组变量就是环境变量。 常用的shell环境变量有: (1)HOME 用于保存注册目录的全路径名。 (2)PATH 用于保存用冒号分隔的目录路径名。 (3)UID 当前用户的识别字,取值是由数位构成的字串。 (4)PWD 当前工作目录的绝对路径名,该变量的取值随cd命令的使用而变化。 (5)PS1 主提示符,在特权用户下,默认的主提示符是#,在普通用户下,默认的主提示符是$。 (6)PS2 在shell接收用户输入命令的过程中,如果

12、用户在输入行的末尾输入“”然后回车,或者当用户按回车键时shell判断出用户输入的命令没有结束时,就显示这个辅助提示符,提示用户继续输入命令的其余部分,默认的辅助提示符是。 (7)TERM 用户终端的类型。,陈英 梁建武主编 中国水利水电出版社,4位置参数 位置参数是一种在调用shell程序的命令行中按照各自的位置决定的变量,是在程序名之后输入的参数。位置参数之间用空格分隔,shell取第一个位置参数替换程序文件中的$1,第二个替换$2,依次类推。$0是一个特殊的变量,它的内容是当前这个shell程序的文件名,所以,$0不是一个位置参数,在显示当前所有的位置参数时是不包括$0的。,陈英 梁建武

13、主编 中国水利水电出版社,4.5.4 shell的特性,1通配符和命令补齐功能 通配符(wildcards)是转义字符的子集,下表给出了通配符的含义 :,陈英 梁建武主编 中国水利水电出版社,2输入输出重定向 系统定义三个标准文件:标准输入(stdin)、标准输出(stdout)、标准错误输入(stderr)。 (1)注释和管道符 注释:在shell脚本中,以“#”开头的正文行表示注释。特别的是,第一行以“#!”开头,表示脚本所使用的shell的绝对路径。 例:#!/bin/bash #This script is a test! 管道线:将一个命令的输出连接到另一个命令的输入。 例:ls |

14、sort,陈英 梁建武主编 中国水利水电出版社,(2)过滤器(filters):用来接收标准输入,经过一定的转化,再写到标准输出。所以,过滤器一般放在管道符中间。 常用的过滤器如下:expand,sed,awk,fmt,tac,tr,grep,nl,pr。,陈英 梁建武主编 中国水利水电出版社,重定向用来改变程序运行的输入来源和输出地点。我们可以通过重定向将程序的输入定向到某个指定的文件,或者将程序的输出结果定向到某个指定的文件。 输出重定向 命令 文件名: 将命令执行结果送到指定的文件,而不在屏幕上显示。如果指定的文件不存在,则新建这一文件;如果指定文件存在,则原来的内容被覆盖。 命令文件名

15、:在进行重定向时,只是追加到已有的文件之后,该文件原有的内容不被破坏。,陈英 梁建武主编 中国水利水电出版社,输入重定向 命令文件名:把命令的标准输入重新定向到指定文件。 命令文件名:here文档,也称即时文档。当前命令的标准输入来自命令行中一对分隔符之间的正文。,陈英 梁建武主编 中国水利水电出版社,3命令换行符 多条命令可以输入到一行中,并用“;”字符分隔。在一行命令后加“”表示另起一行继续输入,下一行的提示符变为“”,继续输入命令,按回车结束。,陈英 梁建武主编 中国水利水电出版社,4别名 使用alias命令,可以定义一些别名。 例:#alias rm f rm,陈英 梁建武主编 中国水利水电出版社,5更改登录用户 命令 su 的意思是“substitute users”(代替用户),它允许用户暂时

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 高等教育 > 大学课件

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号