进程管理及进程调度_第1页
进程管理及进程调度_第2页
进程管理及进程调度_第3页
进程管理及进程调度_第4页
进程管理及进程调度_第5页
已阅读5页,还剩5页未读 继续免费阅读

下载本文档

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

文档简介

1、09.进程管理及进程调度课程名称UNIX系统与软件开发环境教学章节6.1程序和进程概念,6.2UNIX/Linux进程调度,6.3进程管理与调度命令教学目的了解Unix/Linux程序、进程的概念和进程及状态描述,掌握UNIX进程调度 机制和方法教学重点UNIX进程调度教学难点UNIX进程结构与状态、程序的SUID,SGID和sticky属性及使用知识点程序和进程的概念,Unix/Linux进程描述和进程状态,UNIX/Linux进程 调度教学时间班级教学器具课件;多媒体播放系统教学过程6.1程序和进程的概念操作系统的重要任务之一是使用户充分、有效地利用系统资源,也就是在 系统资源一定或有限的

2、情况下,要同时执行更多程序,高效率地完成更多的任 务。进程、作业和任务调度是操作系统的重要任务之一。本章的主要内容是从系统的外部来观察系统中与进程(process)和作业 (job)或任务(task)相关的行为,并实施某些控制让系统工作的更好,或按 照用户的意图来完成指定工作。6.1.1程序、进程、作业和任务程序(program)是一个存储在存储介质上的文件。进程(proccess)是一个程序的执行过程。作业(job)或任务(task)是用户需要计算机完成某项任务时要求计算机 所做工作的集合,一个作业可能需要几个程序联合完成。作业和进程主要的区别与关系如下:作业是用户向计算机提交的任务实体;一

3、个进程是作业或任务的某个执行 过程;一个作业可由多个进程组成。6.1.2三类进程前台进程:是指用户直接控制的用于完成某个任务的进程,因此也叫终端交互式进 程。它从标准输入读数据,向标准输出写数据,将错误信息输出到标准错误。 也可以是用户直接交互控制的完成某种功能的程序。后台进程是指在系统后台运行的、不与用户交互进程。前台的进程也可放在后台运行,这时可能要用到输入输出的重定向。守候进程也叫服务器或精灵进程,它是后台进程的一种。批处理进程批处理进程也叫shell程序,是用户按照某种意图将一批作业和任务通 过编程的方法提交给系统,让系统在某个合适的时间来调度和执行的进程。批 处理进程是在某个shel

4、l程序的控制下解释执行的。6.1.3 Linux操作系统的启动Linux的启动是通过加电和系统自检后,将主引导程序MBR装入内存并把控制权交给它。在MBR的控制下装入Linux的引导程序LBR并把控制权交 给它。在LBR的控制下系统继续引导,核心装入内存。系统开始进步的初始化过程:首先初始化系统内部数据结构(比如构造系统开始进空闲缓冲区、初始化区表结构、页表项等), 下,并创建系统的0#进程、设置它的运行 环境。至此内核启动完成。接着继续创建1#进程,然后由1#进 程做进一步的初始化工作。1#进程继续初始化过程,按照 /etc/inittab文件的内容和规定启动服 务、管理进程,为每个终端生成

5、一个子进 程,等待用户在终端上注册,至此启动过然后将根文件系统安装到根11/11自举、装入内核内核创建0#进程幻建1#进程执行init,根据/etc/inittab文件内容,做进 一步初始化工作、创建终端子进程等程完毕。6.1.4 0#进程与1#进程在UNIX系统中0#进程是唯一只在核心态下执行的进程。它的功能有三: 调度分配处理机;负责进程交换;初始化时创建1#进程。在Linux系统中,0#进程在创建出1#进程后,变成了空闲进程(Idler),当系统中没有其它进 程就绪时运行。1#(init)进程是系统启动时创建的创建进程的进程。它的主要作用是根 据/etc/inittab的内容创建系统运行

6、所需的进程。系统初始化完成后,1# 进程了变成回收进程,专门领养没有父进程的孤儿进程或回收状态为ZOMBIE 的僵尸进程。Linux的进程树(用pstree命令查询)。0#进程创建了 1#进程,它是1#进程的父进程。1#进程在系统启动过程中 创建了系统所需要的其它进程。而子进程又可创建属于自己的子进程。因此除 0#进程外,1#进程是其它所有进程的祖先进程。6.1.5进程及运行模式在UNIX/Linux系统中,进程可在用户态和核心态两种执行模式下执行。 当用户进程需要系统核心提供服务而由用户态转向核心态执行时,需要依 靠中断或陷阱机制来实现,这时要切换处理机(CPU)的工作状态。两种状态 之间的

7、主要区别是,核心态下的进程具有较高的优先级,能够存取核心和用户 数据。而用户态下的进程能存取它自己的指令与数据,但不能存取核心指令和 数据。6.1.6进程状态及转换在操作系统中,一个CPU上同时只能运行一个进程,但在多用户、多任务 环境下,从宏观上来讲,同时运行着很多进程,因此在这些正在运行着的进程 中,在任一时刻只能有一个进程占有处理机而 真正运行。也就是说众多运行着的进程中,它 们宏观上是并行的,但微观上是串行的。因此 就存在着有的进程在运行,有的进程在等待问顷 僵尸 题。外存申睡眠事实上进程的状态远不只执行和等待两 内存中睡眠 个,还有用户态执行、核心态执行、等待、睡 眠、就绪等状态。外

8、存申睡眠UNIX系统的进程状态及转换进程在用户态运行。进程在系统态运行。就绪状态。进程因等待资源而在内存中睡眠。进程在外存中睡眠。外存就绪。进程从系统态返回。进程刚被创建时的状态。僵尸状态。 TOC o 1-5 h z Linux系统的进程状态及转换/p就绪状态(执行)急浅度睡眠厂;4调菖深度睡眠度冒停止状态电& *僵尸状态6.2 UNIX/Linux进程调度用一,、一一、 一,、一出UNIX/Linux系统是分时系统,系统给每个进程A分一个时间片,每个进程在自己的时间片内执行,当时间片结束时或从系统服务中返回时,动态计算进程的优先级,若有优先级 高于当前进程的内存就绪态进程时,系统设置调度标

9、识,并在以后某个时刻剥 夺当前进程的执行权,而让优先级高的进程执行。UNIX/Linux的进程调度按时间片计算优先级,并按优先级的高低 来调度进程,使优先级高的进程占有处理机而得到执行。这里所说的优先级不是一个具体的数字或变量,而是一个衡量优先程度 的指标。6.2.1调度策略与优先级的计算Linux把所有进程分成两类:实时进程和普通进程。对普通进程采用时间片轮转法来调度进程的执行,所有就绪进程按先后排 成队列,依次轮转,时间片用完而未完成任务者排在尾部,如此往复;对于实 时进程则采用FIF。和时间片轮转进行调度。最后经调度模块综合计算出各进 程的优先级,优先级最高者获得执行权。Nice Lev

10、el优先级在优先级计算过程中有一个基本参数参与运算,这就是传统UNIX/Linux Nice Level优先级,按传统做法,把它记为NICE。系统为每个进程设置了一个默认的NICE值(0),通过命令nice用户或 管理员可以调整进程的NICE值,从而达到调整优先级的目的。在Red Hat Linux 9中它的调整范围为-2019,在其它UNIX中,NICE 取值范围可能与此不同。沿用UNIX的传统,NICE的值越大进程的优先级越低。NICE值可以被作为nice命令的参数来调试进程的优先级。6.2.2信号与软中断Unix/Linux中使用很多信号,用于进程通信与控制。进程通信时信号由主进程或系统

11、或硬件等发送到目的进程,当目的进程收 到信号后要进行相应的处理。若在目的进程在用户级执行,则收到信号后立即 处理,若在内核级运行时,先将信号记下来,待返回到用户级时再处理。用户可以向目的进程发送信号,而实现一定程度的通讯,完成指定的工作 或达到某种指定的目的。用户可以对收到的信号采取系统指定的办法进行处 理,也可采取自己的办法进行处理,也可忽略信号。Linux系统的中断Linux系统常用的中断信号可用命令kill,killall和fuser来查询。如表6-1所;在信号日的,比如SI我们通车示。L有的是硬件发出,比如SIGILL、SIGSEGV等,有的是可屏敝 GHUP、SIGQUIT 等,而

12、SIGKILL 和 SIGSTOP 等是不可屏敝。 旨处理的只是一些软中断信号:信号名称信号值默认动作意义和功能描述SIGHUP1终止运行挂机或断线信号,可能是终端控制程序死亡SIGINT2终止运行收到键盘Ctrl+C (有系统为Delete)信号SIGQUIT3写出映像收到键盘退出信号(Ctrl + )SIGTRAP5同上单步执行,程序跟踪SIGABR6同上ABORT信号SIGKILL9终止运行KILL信号,不可屏蔽SIGUSR110同上用户自定义信号1SIGUSR212终止运行用户自定义信号2SIGPIPE13同上断的管道:有写者无读者SIGALRM14同上定时器信号SIGTERM15同上

13、进程终止信号SIGCONT18继续执行继续信号。暂停者一旦收到此信号,便继续运行6.3进程管理与调度命令6.3.1可执行文件的setuid和setgid属性在UNIX/Linux系统中,用户级别和执行权力是相关。但是有些工作,比如修改/etc/passwd和/etc/shadow文件等,对于 普通用户都是必须的,因为它要修改密码。但是系统中这些文件对于普通用户 是不允许有写操作的。于是就出现了普通用户通过某种机制行使超级用户权限 的问题。1可执行文件的setuid和setgid属性当一个程序具有suid属性时,它执行时的uid将是该程序所有者的uid- 即有效uid,记为euid,而执行者的原

14、来uid叫为真实uid,记为ruid。当一个程序具有sgid属性时,它执行时的gid将是该程序的gid-即有 效gid,记为egid,而执行者的原来gid叫为真实gid,记为rgid。suid/sgid属性只对二进制可执行文件有效,对可执行的脚本文件无效。当一个属于超级用户的可执行二进制程序具有suid属性时,则当一般用 户执行它时,也就相当于有了超级用户的身份和权限。同样当一个属于超级用户所在组的可执行二进制程序具有sgid属性时, 则当一般用户执行它时,也就相当于有了该组员的身份和权限。suid和sgid权限的存在可能会给某些程序的执行带来了方便,因为权 限被放大了,但这也是一种危险。因此

15、设置这种权限的可执行二进制程序不宜 太多。常用的设置suid的程序有:/bin/ping 、 /usr/bin/passwd 、 /usr/bin/newgrp 、/usr/bin/sudo、/usr/sbin/suexec 和/usr/sbin/traceroutesetuid 和 setgid 属性管理按照文件的属性,若用八进制表示,对应于suid和sgid的权限则为4000 和 2000。数字方法:chmod 4755 mypl chmod 2775 myp2 chmod 6777 myp3字符方式chmod u+s myp1 chmod g+s myp2 chmod ug+s myp3

16、setuid和数字方法:chmod 4755 mypl chmod 2775 myp2 chmod 6777 myp3字符方式chmod u+s myp1 chmod g+s myp2 chmod ug+s myp3#为myp2设置sgid#为myp3同时设置suid和sgid#为 myp1 设置 suid#为myp2设置sgid#为myp3同时设置suid和sgid修改后权限分U为:-rwsr-xr-x,-rwxrwsr-x 和 rwsrwsrwx目录的sticky权限UNIX/Linux系统允许目录使用sticky位属性(粘着位)。当一个目录设置了 sticky位后,它内部的文件只能被文件

17、主、目录主或 超级用户删除、更名或移动。设置 sticky 位的目录有 /tmp 、 /usr/tmp 和 /var/spool/uucppublic 等。在传统的UNIX系统中sticky对可执行文件还具有特殊意义(略)。sticky权限管理:sticky位是对目录执行权来说的,它的属性值为1000o sticky位也可 用chmod命令通过root用户来设置。设有目录mydir的权限为drwxr-xr-x(755),则可通过以下两种方法 来设置它的sticky位:chmod 1755 mydir #数字方式chmod +t mydir # 字符方式。设置后的权限为drwxr-xr-t或17

18、556.3.2进程管理与调度命令查询进程状态(ps)功能:查询进程状态和信息,给出系统当前正在运行进程信息的快照。用法:ps options 说明:ps支持多种UNIX系统格式的个性化显示方式。且参数较多;可以 配合kill命令结束系统中失控或不必要的进程。参数:-A,-e:显示系统内的所有进程;-a:显示所有与终端相关的进 程;A:显示当前终端的所有进程,也包括其它用户进程;-c:显示CLS和 PRI栏;c:列出进程名,但不包含路径名;-Cpname:显示进程名字为pname 的同名进程信息;-f:显示进程信息时显示带有路径的进程名和进程参数;F: 用ASCII字符显示树状结构的进程间关系;

19、g,-g/-G gid:显示与进程组 相关的信息,gid可以是组名或组号;H:不显示标题; -H:显示树状结构 以表示进程间的关系;J,-j:以作业控制方式显示进程信息;l, -l:以长 格式显示进程信息;L:显示标题栏目信息;p/-p pids :显示指定进程的 信息;T, t/-t tty:显示终端相关进程信息,T只能用于显示当前终端进 程信息;u, U/-U uid:显示与用户相关的信息,uid可以是用户名或用户 号;X:显示所有进程信息,不区分终端。进程的状态:R: Runable,进程在执行中;D: Dlaying,非中断性睡 眠,通常是因为等彳寺I/O; S: Sleep,正在睡眠

20、;T: Traced or stopped, 被跟踪或停止;Z: Zombie,僵尸状态。进程已经终止,但父进程没有对它的 结束作适当处理;W: Wait,无内存页面(被换出);N:低优先级进程;L: Locked,页面被锁进内存(用于实时控制或用户控制的I/O); :高优先级 进程。示例:ps -t tty1#查询与终端(tty1 )相关的进程信息ps -f -u gjshao #查询与用户(gjshao)相关的信息ps -axj#查询整个系统内的进程信息情况按名称终止进程的执行(killall)功能:killall是另一个用来终止程序的命令,它不像kill使用进程的 PID作为操作对象,而

21、是使用进程名。用法: killall -lkillall -e -g -i -q -v -w -V -s signal - name 说明:killall发送的信号可以是信号的名或值。由于在系统可能有同名进程运行,因此使用killall终止进程时可能会 有扩大化的倾向。参数:name:进程名,被终止的对象;-g:终止指定所属组内的所有进 程;-i:交互式工作,终止进程前需要用户确认;-l:列可用信号;-q:安 静模式,当不存在指定进程时也不报错;-s:指定信号(参见-l参数);-v: 报告信号是否发送成功;-w:等待所有被杀进程结束。若被杀进程忽略发送信 号或处于僵尸状态会造成killall无

22、限等待。示例:killall -l#查询可用信号killall man #终止所有名为man的进程确定使用指定文件或文件系统的进程(fuser)功能:确定使用指定文件或文件系统的进程用法: fuser -lfuser -a|-s -n namespace -signal -kimuv name .说明:在fuser的默认输出中,进程号的后面可以跟有c、e、f、r、m 等字符,意义如下:c:当前目录;e:进程正在执行;f:打开文件,默认情 况下不输出此标志;口根目录;m:内存映像文件或共享库。参数:-k:终止所有使用设备或文件系统的进程;-i:在杀死进程前提 示确认,若无-k则忽略此参数;-l:

23、列所使用的信号名;-m:安装的文件系 统;-n namespace:在指定名字空间内搜索,名字空间可是文件、UDP和 TCP等;-s:安静模式;-u:显示用户信息;-signal:指定信号,而非默 认的SIGKILL; -4/-6:只搜索IP4/IP6的sockets信息。默认搜索两者示例:1)杀死所有使用某设备(tty5)的进程:fuser -k /dev/tty52)显示使用本地网络端口的进程fuser telnet/tcp ftp/tcp #监视本地 telnet 和 ftp 端口的 tcp活动情况fuser -u 23/tcp 21/tcp #监视本地 telnet 和 ftp 端口的

24、 tcp 活 动情况#fuser -n tcp 21#监视本地ftp端口的tcp活动情况让进程抗终止运行(nohup)原理:在UNIX/Linux环境下进程可在前台运行,也可在后台运行。但 不论哪种情况,只要启动进程的用户退出了,他创建的所有进程都将终止。这 是因为当用户退出时,它启动的所有进程都将收到HUP信号。按照系统规定, 收到HUP信号的进程都将被终止。为了保证用户退出后,它启动的后台进程仍 能继续运行,就要求进程对信号HUP具有免疫能力。功能:nohup启动的进程对信号HUP就具有免疫力用法:nohup command arguments 说明:后台进程是不能和终端交互的,如果被执行

25、的命令的输出没有重定 向,它将输出追加到当前目录的nohup.out文件。如果当前目录的nohup.out没有写权限,输出将被重定向到 $HOME/nohup.out。如果两者均无写权限,则命令不能执行。如果有写权限 且nohup不存在,则将创建之,在创建时不对同组和其它人赋访问权。若文 件已经存在则不改变原文件的存取权限。程序的未重定向的标准错误也将追加 到U nohup.out 文件。nohup不能直接创建后台进程,创建后台进程应在回车前添加&符号。可以通过返回值来确定执行情况:126-命令不能执行;127-命令找不到; 其它-所执行命令的返回值。改变进程的优先级(nice)功能:通过它可以改变进程NICE值,从而改变进程的优先级。用法:nice options cmd arg 参数:-n:例如:-n5,NICE=5,-n-5,NICE=-5- :例如:-5,NICE=5,-一5,NICE=-5-adjustment= :例如:-adjustment=5,NICE=5说明:对于哪些不急迫的任务,可以通过调高它的NICE值,来降低它的 优先级,以保证紧急任务的执行。当不带参数或变量运行nice时,将显示默认的NICE,如果用nice对 某个进程进行操作

温馨提示

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

评论

0/150

提交评论