《教学课件第4章进程管理》由会员分享,可在线阅读,更多相关《教学课件第4章进程管理(33页珍藏版)》请在金锄头文库上搜索。
1、PPT模板下载:/moban/ 行业PPT模板:/hangye/ 节日PPT模板:/jieri/ PPT素材下载:/sucai/PPT背景图片:/beijing/ PPT图表下载:/tubiao/ 优秀PPT下载:/xiazai/ PPT教程: /powerpoint/ Word教程: /word/ Excel教程:/excel/ 资料下载:/ziliao/ PPT课件下载:/kejian/ 范文下载:/fanwen/ 试卷下载:/shiti/ 教案下载:/jiaoan/ 字体下载:/ziti/ 教学课件第4章 进程管理第四章 进程管理 第第4 4章进程管理章进程管理4.1 Linux4.1
2、Linux进程概述进程概述 4.2 4.2 进程状态进程状态4.3 Linux4.3 Linux的进程控制的进程控制 4.4 4.4 进程调度进程调度4.5 Linux4.5 Linux进程通信进程通信4.6 4.6 守护进程守护进程 4.7 4.7 启动进程启动进程4.8 4.8 4.9 4.9 进程文件系统进程文件系统/proc/proc第四章 进程管理 4.1Linux进程概述进程概述 Linux是一个多用户、多任务的操作系统。在这样的系统中,各种计算机资源(如文件、内存、CPU等)的分配和管理都以进程为单位。为了协调多个进程对这些共享资源的访问,操作系统要跟踪所有进程的活动,以及它们对
3、系统资源的使用情况,从而实施对进程和资源的动态管理。第四章 进程管理 4.1.1 进程的含义 程序是存储在磁盘上包含可执行机器指令和数据的静态实体,而进程是在操作系统中执行的特定任务的动态实体。一个程序允许有多个进程,而每个运行中的程序至少由一个进程组成。 Linux操作系统包括如下3种不同类型的进程 :1.交互进程2.批处理进程3.守护进程4.1Linux进程概述进程概述第四章 进程管理 4.1.2 Linux进程的组成 进程可划分为3个部分:PCB、指令与数据。 task_struct结构的包括:进程调度信息、进程队列指针、进程标识等信息。 4.1Linux进程概述进程概述第四章 进程管理
4、 4.1.3进程控制块 Linux系统中的进程都具有以下4个要素 : (1)有一个程序正文段供其执行; (2)有进程专用的系统堆栈空间; (3)有一个进程描述符; (4)有一个独立的地址空间。4.1Linux进程概述进程概述第四章 进程管理 4.2进程状态进程状态进程至少要有3种基本状态 : 1. 运行态 2. 就绪态 3. 阻塞态 4.2.1 进程基本状态执行态就绪态阻塞态进程调度I/O请求I/O完成第四章 进程管理 4.2进程状态进程状态进程状态: (l)运行态(TASK RUNNING) (2)等待态 (3)停止态(TASK STOPPED) (4)僵死态(TASK ZOMBIE.) 4
5、.2.2 Linux进程状态及其转换第四章 进程管理 4.2进程状态进程状态4.2.2 Linux进程状态及其转换(续)被唤醒所需资源已满足所需资源已满足时间片到进程调度未申请到所需资源未申请到所需资源进程终止收到停止命令而暂停停止态僵死态运行态就绪态不可中断等待态可中断等待态第四章 进程管理 4.2进程状态进程状态4.2.3 进程状态的切换时机 在Linux系统中,进程的执行模式划分为用户模式和内核模式 。 按照进程的功能和运行的程序分类,进程可划分为两大类:1.系统进程 2.用户进程 第四章 进程管理 4.2进程状态进程状态4.2.4 进程的工作模式进程主动放弃CPU 分为两种: 1. 隐
6、式地主动放弃CPU 2.显式地主动放弃CPU 第四章 进程管理 4.3 Linux的进程控制的进程控制 Linux系统中各个进程构成树形的进程族系。当系统启动时,系统运行在内核方式。系统初始化结束时,初始进程启动一个内核线程(即init),而自己则处于空循环状态。当系统中没有可运行的进程时,调度程序将运行这一空闲进程。空闲进程的task_struct是唯一一个非动态分配的任务结构,该结构在内核编译时分配,称为init_task。除此之外,所有其他的进程和内核线程都由原始进程或其子孙进程所创建。 4.3.1进程的创建第四章 进程管理 4.3 Linux的进程控制的进程控制 父进程创建子进程的目的
7、是让子进程替自己完成某项工作。因此,父进程创建子进程之后,通常等待子进程运行终止。父进程可用系统调用wait3()等待它的任何一个子进程终止,也可以用系统调用wait4()等待某个特定的子进程终止。4.3.2 进程的等待第四章 进程管理 4.3 Linux的进程控制的进程控制 在Linux系统中,进程主要是作为执行命令的单位运行的,这些命令的代码都以系统文件形式存放。当命令执行完,希望终止自己时,可在其程序末尾使用系统调用exit()。用户进程也可使用exit()终止自己。exit()首先释放进程占用的大部分资源,然后进入TASK_ZOMBIE状态,调用schedule()重新调度。4.3.3
8、 进程的终止第四章 进程管理 4.3 Linux的进程控制的进程控制 子进程被创建后,通常处于“就绪态”,以后被调度程序选中才可运行。由于在创建子进程的过程中,要把父进程的上下文复制给子进程,所以子进程开始执行的入口地址就是父进程调用fork()建立子进程上下文时的返回地址,此时二者的上下文基本相同。 如果子进程不改变其上下文,必然重复父进程的过程。为此,需要改变子进程的上下文,使其执行另外的特定程序(如命令所对应的程序)。4.3.4 进程上下文切换第四章 进程管理 4.4 进程调度进程调度进程调度策略 :SCHED_FIFO:先进先出(First In First Out)策略。SCHED_
9、RR:轮转调度(RoundRobin)策略。SCHED_OTHER:其他策略。4.4.1调度策略第四章 进程管理 4.4 进程调度进程调度 Linux 是在一个运行队列中实现这3种不同的调度。发生进程调度时,调度程序要在运行队列中选择一个最值得运行的进程来执行,这个进程便是通过在运行队列中一一比较各个可运行进程的权重来选择的。 权重越大的进程越优先,而对于相同权重的进程,在运行队列中的位置越靠前越优先。4.4.2 进程的调度算法及其执行过程第四章 进程管理 4.5 Linux进程通信进程通信 1.信号概述 信号是UNIX系统中最古老的进程间通信机制之 一,它主要用来向进程发送异步的事件信号。
10、2.进程对信号的操作 信号操作: (1)忽略信号 (2)阻塞信号 (3)由进程处理的信号 (4)由内核进行默认处理 4.5.1 信号第四章 进程管理 4.5 Linux进程通信进程通信 信号量也用来保护关键代码或数据结构(即临界资源)。 Linux信号量数据结构中包含的信息主要有以下内容 :1.count(计数)2.waking(等待唤醒计数)3.waitqueue(等待队列)4.lock(锁)4.5.2 PV操作第四章 进程管理 4.5 Linux进程通信进程通信 管道是指用于连接一个读进程和一个写进程以实现他们之间通信的一个共享文件,又名pipe文件。 管道通过调用pipe()函数创建,管
11、道两端可分别用描述字fd0以及fd1来描述 4.5.3管道第四章 进程管理 4.5 Linux进程通信进程通信 内存中开辟一个共享存储区,多个进程通过该存储区实现通信。Linux与共享存储有关的系统调用有4个 :1.shmget(key,size,permflags) 2.shmat(shm_id,daddr,shmfflags) 3.Shmdt(memptr) 4.Shmctl(shm_id,command,&shm_stat) 4.5.4共享存储区与消息队列通信机制第四章 进程管理 4.6 守护进程守护进程 守护进程(Daemon,也称为精灵进程)是指在后台运行而又没有终端或登录shell
12、与之结合在一起的进程。启动守护进程方法如下:1.在引导系统时启动 2.人工手动从shell提示符启动 3.使用crond守护进程启动 4.执行at命令启动 4.6.1守护进程简介 第四章 进程管理 4.6 守护进程守护进程 在Fedora 11中,可以通过定义守护进程的启动脚本的运行级别,文件一般位于/etc/init.d目录下。在Fedora中,进程的运行级别为0到6 。 ckgconfig命令主要用来检查、设定系统的各种守护进程,语法:chkconfig -add-del-list系统服务 例如:rootlocalhost #chkconfig -list 4.6.2检查和设定守护进程 第
13、四章 进程管理 4.6 守护进程守护进程4.6.3重要守护进程介绍 守护进程功能说明amd自动安装NFS(网络文件系统)apmd高级电源管理httpdWeb服务器xinetd支持多种网络服务的核心守候程序arpwatch记录日志并构建一个在LAN接口上看到的以太网地址和IP地址对数据库autofs自动安装管理进程automount,与NFS相关,依赖于NISbootparamd引导参数服务器,为LAN上的无盘工作站提供引导所需的相关信息crondLinux下的计划任务dhcpd启动一个DHCP(动态IP地址分配)服务器第四章 进程管理 4.7 启动进程启动进程 at命令被用来在指定时间内调度一
14、次性的任务。基本用法:at -V -q queue -f file -mldbv time 例如:rootlocalhost # at 6: 35pm 4.7.1定时执行-at命令 第四章 进程管理 4.7 启动进程启动进程 要在系统平均载量降到0.8以下时执行某项一次性的任务,使用batch命令,它用来执行低优先级运行作业 。语法:batch -V -q queue -f file -mv time 例如:rootlocalhost # batch 4.7.2空闲时执行-batch命令 第四章 进程管理 4.7 启动进程启动进程 1.crontab语法: crontab -u user fi
15、le crontab -u user -l | -r | -e 2. crontab语法:userllocalhost $crontab job 4.7.3周期性执行cron和crontab命令 第四章 进程管理 4.8管理进程管理进程 ps命令是查看进程状态的最常用的命令,可以提供关于进程的许多信息。根据显示的信息可以确定哪个进程正在运行、哪个进程被挂起、进程已运行多长时间、进程正在使用的资源、进程的相对优先级,以及进程的标识号( PID)等信息。语法:ps option 4.8.1查看进程状态-ps命令 第四章 进程管理 4.8管理进程管理进程 top命令和ps命令的基本作用是相同的,显示
16、系统当前的进程及其状态,但是top是一个动 态显示过程 。语法:top bciqsS d n 4.8.2查看进程状念-top命令 第四章 进程管理 4.8管理进程管理进程 kill命令是通过向进程发送指定的信号来结束相应进程。 语法:kill -s信号|-p 进程号或者kill-l 信号。其中,选项各选项的含义如下。(1)-s:指定要发送的信号,既可以是信号名(如kill),也可以是对应信号的号码(如)。(2)-p:指定kill命令只是显示进程的pid(进程标识号),并不真正发出结束信号。(3)-1:显示信号名称列表,这也口T以在usr/include/linux/signal.h文件中找到。
17、 4.8.3终止进程 第四章 进程管理 4.8管理进程管理进程 Linux下程序分为前台运行和后台运行两种,并能暂时停止前台正在进行的进程。这两种运行方式是可以转换的。需要用到的命令有 fg、bg、jobs等。4.8.4前后台运行和暂停进程 第四章 进程管理 4.8管理进程管理进程 【应用程序】-【系统工具】-【系统监视器】 4.8.5 图形化工具管理进程 第四章 进程管理 4.9 进程文件系统进程文件系统PROC proc文件系统是一种内核和内核模块用来向进程(process)发送信息的机制(所以叫做/proc)。这个伪文件系统让你可以和内核内部数据结构进行交互,获取有关进程的有用信息,在运行中改变设置(通过改变内核参数)。 与其他文件系统不同,/proc存在于内存之中而不是硬盘上。 1.查看/proc目录下的内容 rootlocalhost # ls /proc