实验9 linux进程管理与系统监视.docx

上传人:b****5 文档编号:7287337 上传时间:2023-01-22 格式:DOCX 页数:13 大小:254.73KB
下载 相关 举报
实验9 linux进程管理与系统监视.docx_第1页
第1页 / 共13页
实验9 linux进程管理与系统监视.docx_第2页
第2页 / 共13页
实验9 linux进程管理与系统监视.docx_第3页
第3页 / 共13页
实验9 linux进程管理与系统监视.docx_第4页
第4页 / 共13页
实验9 linux进程管理与系统监视.docx_第5页
第5页 / 共13页
点击查看更多>>
下载资源
资源描述

实验9 linux进程管理与系统监视.docx

《实验9 linux进程管理与系统监视.docx》由会员分享,可在线阅读,更多相关《实验9 linux进程管理与系统监视.docx(13页珍藏版)》请在冰豆网上搜索。

实验9 linux进程管理与系统监视.docx

实验9linux进程管理与系统监视

广东技术师范学院实验报告

学院:

广东技术师范学院

专业:

软件工程

班级:

09软件

成绩:

姓名:

学号:

组别:

组员:

实验地点:

工业中心204

实验日期:

2011.10.27

指导教师签名:

预习情况

操作情况

考勤情况

数据处理情况

实验9项目名称:

进程管理

1、实验目的

理解进程管理的基本原理方法,掌握在Linux系统中查看进程状态、控制进程以及调整进程优先级等基本方法。

2、实验内容

2.1进程管理的基本概念

什么是进程管理?

要理解这个概念,就必须理解什么是进程。

进程是在《操作系统原理》课程中的一个核心概念。

进程(Process)是程序的一个执行过程。

进程需要占用各种系统资源,包括CPU、内存等,需要读写各类文件,调用各种系统功能。

自然,从进程的创建到撤销,操作系统会为它安排一切。

不过,操作系统的安排是根据固定的算法所进行,纵使这些算法能根据当前情况不断调整,但不可能预先知道你的需要,然后让某个进程在特定某个时间挂起,让某个进程的优先级升高等等。

因此,进程管理是指根据当前实际需求,对进程加以特定的控制。

作为一个管理员,定时查看当前系统中各个进程的具体状态,捕捉各种进程运行的异常,合理分配各类资源,特别是CPU资源给不同的进程,对各类进程有计划地控制等等,都属于进程管理的内容。

系统为管理员提供了一系列的工具和命令,以让管理员完成管理工作。

2.2进程管理的基本方法

2.2.1查看进程状态

获知进程状态是进程管理的第一步。

UNIX系统为进程留了许多接口、命令和工具。

最典型的是/proc文件系统。

这是一个特殊的文件系统。

在此文件系统中,每个目录对应于一个进程,目录的名称即为进程的PID号。

进入某个进程对应的目录,里面有若干文件,这些文件记录了该进程当前运行的各种相关状态信息。

应用程序可通过对这些文件打开并读取(部分甚至还能通过写文件控制进程)来获取进程信息。

例子:

查看/proc文件系统

#cd/proc/

#ls

012294163922131442868637691853274688280864256

1124523816397421723829511838100856130869666876674

……

#cd1

#ls

#credlwppsinfosigactstatus

对于管理员,更常用的方法是利用ps命令来获知进程的基本状态。

请参考以下例子并完成问题。

命令:

ps

功能:

列出当前活动进程的状态

格式:

ps[选项][参数]

选项:

如果不使用任何选项,则列表显示当前工作站的活动进程,并且仅显示部分字段的内容。

由于关于ps的选项很多,没必要全部列出并记忆,更常用的做法是记住一些有特定功能的选项组合。

常用的选项含义如下:

-f:

生成一个长列表(部分字段仍然省略了,但比不加该选项的要多)

-l(list):

显示进程的全部列表字段信息

-e:

显示除内核进程外的全部进程

-a:

显示用户的全部进程

-u(user):

显示特定用户的进程,

-k(kernel):

显示内核进程

ps命令的一些常见的选项组合示例如下:

(1)仅显示当前工作站的活动进程

#ps

PIDTTYTIMECMD

270396pts/90:

00ps

725186pts/90:

00–bash

 

(2)显示系统中除内核外的所有进程

#ps-e-f

UIDPIDPPIDCSTIMETTYTIMECMD

root100Aug24-0:

02/etc/init

……

Zianed1343542741620019:

29:

52-0:

00sshd:

Zianed@pts/1

 

(3)显示关于特定用户的进程

#ps-luuser

FSUIDPIDPPIDCPRINIADDRSZWCHANTTYTIMECMD

40001A85287421918905408060201d9664001012-0:

00sshd

240001A85287503876421918060203b494001168f1000600021e1478pts/70:

00bash

(4)显示系统内核的进程

#ps-k

PIDTTYTIMECMD

0-0:

29swapper

8196-2395:

12wait

12294-0:

00sched

 

(5)查看各个进程占用CPU的情况

#psaux

USERPID%CPU%MEMSZRSSTTYSTATSTIMETIMECOMMAND

root819612.10.0384384-AAug243630:

51wait

……

上述每个例子返回结果都是以列表形式出现,列表中主要字段的含义如下,

●PID:

进程标识号

●PPID:

进程的父进程标识号

●UID:

进程所属的用户ID

●TTY:

进程所属的终端号

●TIME:

进程的执行时间总和

●CMD(command):

进程的命令名

●STIME:

进程的启动时间

●PRI(priority):

进程的优先级,数字越大优先级越低

●NI(nice):

进程的谦让度

●S(status):

进程的状态,对于一般进程主要状态有:

A(活动的)、T(已停止)、Z(已取消)等。

对于内核进程主要状态有:

R(正在运行)、S(休眠)、T(已停止)、Z(已取消)等。

 

2.2.2控制作业的基本操作

除对进程进行控制外,作业(job)是另一个与进程控制密切相关的概念。

简单来说,作业是用户向系统提交的一个任务请求,系统根据请求创建相应的进程完成该任务。

用户每输入的一个shell命令其实都是一个作业,这个作业经解释后对应于一个到多个进程加以执行。

作业可以在前台执行,这是用户可以跟作业进行交互。

当用户并不需要与作业交互,则作业也可以在后台执行。

如果用户想作业启动之初就让其在后台运行,就需要在关于该作业的shell命令结尾加上“&”。

作业执行时有作业号,用户可根据作业号对作业进行相应的控制,最基本的控制是将作业在终端的前后台之间切换。

命令:

jobs

功能:

查看当前用户的作业情况

格式:

jobs

命令:

bg

功能:

将前台作业切换到后台执行

格式:

bg作业号

命令:

fg

功能:

将后台作业切换到前台执行

例子:

作业控制的基本命令。

#vijobtest&

[1]1110094

#jobs-l

[1]+1110094Stoppedvijobtest

#fg1将作业1调出调到前台,按ctrl+z可将其切换到后台

vijobtest

~

~

……

#bg1利用bg命令将作业1调到后台(功能与ctrl+z一样)

[1]+vidd&

 

2.2.3进程与信号量

在UNIX系统中,用户可通过向进程发送相应的信号量来控制进程。

AIX中一些常用的信号量如下,信号量旁的括号内标示的是该信号量的编号:

●SIGINT

(2):

程序终止(interrupt)信号,用于通知前台进程组终止进程,用户键入ctrl+c后前台进程终止。

●SIGQUIT(3):

与SIGINT相似,进程终止后会生成文件core,用户键入ctrl+\后进程终止。

●SIGKILL(9):

该信号不能被忽略,因此常用于强行终止某进程。

●SIGTSTP(18):

终止进程,但该信号可以被处理和忽略.用户键入ctrl+z发出这个信号,进程转入后台并挂起。

命令:

kill

功能:

向特定某个进程发送信号。

格式:

kill-信号编号进程PID

例子:

利用kill命令向进程发送信号。

#vitest&

[1]761968

#kill-9761968

[1]+Stoppedvitest

#ps-a

PIDTTYTIMECMD

761976pts/110:

00ps

1032196pts/150:

00ksh

1359972pts/00:

00ksh

[1]+Killedvitest

例子:

利用kill命令列出所有的信号量及其编号

#kill-l

1)SIGHUP2)SIGINT3)SIGQUIT4)SIGILL

5)SIGTRAP6)SIGABRT7)SIGEMT8)SIGFPE

9)SIGKILL10)SIGBUS11)SIGSEGV12)SIGSYS

13)SIGPIPE14)SIGALRM15)SIGTERM16)SIGURG

17)SIGSTOP18)SIGTSTP19)SIGCONT20)SIGCHLD

21)SIGTTIN22)SIGTTOU23)SIGIO24)SIGXCPU

25)SIGXFSZ27)SIGMSG28)SIGWINCH29)SIGPWR

30)SIGUSR131)SIGUSR232)SIGPROF33)SIGDANGER

34)SIGVTALRM35)SIGMIGRATE36)SIGPRE37)SIGVIRT

38)SIGALRM139)SIGWAITING60)SIGKAP61)SIGRETRACT

62)SIGSOUND63)SIGSAK

2.2.4进程与优先级

进程的优先级是指系统在进程调度时用于判决进程是否能够获取CPU的依据。

进程的优先级越高,则越能在竞争中胜出而获得CPU时间。

在Linux系统中,进程的优先级以一个整数表达,数值越低,优先级越高。

每个普通进程的优先级默认为60。

根据动态优先级原理,操作系统会在调度进程的过程中对进程优先级进行调整。

同时,管理员可以根据实际需要自行对某些进程的优先级加以调整。

这里涉及到另外一个概念,进程的“nice”值。

nice值可翻译为“谦让度”,因为nice是一个从-20~19的值,nice默认等于0(也即不起作用),进程的nice值为负数时,其优先级升高(也即代表优先级的数值下降),而进程的nice值为正数时,则进程的优先级下降(也即优先级的数值升高了)。

在Linux中,普通用户一般只能调高优先级数值,也即让自己的进程“谦让”一点。

如果要让某个服务进程能够及时响应请求,可将其nice值提高。

命令:

nice

功能:

设定要启动的程序的优先级

格式:

nice-增量启动的命令及其选项和参数,nice=原nice值+增量,nice默认为0。

命令:

renice

功能:

调整进程的优先级

格式:

renice-n增量进程PID号

例子:

nice命令与renice命令的使用,注意进程的优先级(PRI)和nice值(NI)的变化。

#nice-2vi

~

~

~

~

按ctrl+z将vi程序切换到后台

#ps-al

FSUIDPIDPPIDCPRINIADDRSZWCHANTTYTIMECMD

200811T8528774958875785806422303f1400876pts/150:

00vi

#renice-n5749588

#ps-al

FSUIDPIDPPIDCPRINIADDRSZWCHANTTYTIMECMD

200811T8528774958875785807427303f1400876pts/150:

00vi

2.3守护进程

Linux在启动时需要启动很多系统服务,提供这些服务的程序是由运行在后台的守护进程(daemons)来执行的。

守护进程独立于控制终端,周期性地执行某种任务或等待处理某些发生的事件。

守护进程的生存期较长,常常在系统引导装入时启动,在系统关闭时终止。

一些重要的守护进程:

●init:

系统的1号进程,主要工作是为系统提供初始化服务。

●kudzu:

硬件自动检测程序,会自动检测硬件是否发生变动,并相应进行硬件的添加、删除工作。

●crond:

周期性地运行用户调度的任务。

●syslog:

日志记录的守候进程。

●sshd:

OpenSSH服务器守护进程。

●smb:

Samba文件共享/打印服务守护进程。

●network:

激活/关闭启动时的各个网络接口的守护进程。

●httpd:

Web服务器Apache守护进程。

●vsftpd:

vsftpd服务器的守护进程。

●named:

DNS(BIND)服务器守护进程。

●dhcpd:

动态主机控制协议(DynamicHostControlProtocol)的服务守护进程。

 

作业:

请完成如下作业,并给出详细的步骤和截图。

(1)启动vi编辑器,并将其调入后台,再调出前台,最后退出vi。

(2)启动vi编辑器,并将其调入后台,再将该作业杀死。

(3)启动两个vi编辑器,均调入后台后,查看当前有那些作业正在执行。

使用ctrl+z将作业放到后台:

(4)列出你在当前系统中的所有进程。

指出你在该系统中最早启动的进程是那个,在什么时候启动?

最早在:

15:

58分启动。

(5)列出当前系统中占用CPU时间比例最高的进程。

Root中id为3578占用时间最长。

(6)系统内核的进程中那个进程的运行时间最长,为什么?

#ps-k

PIDTTYTIMECMD

0-0:

29swapper

8196-2395:

12wait

12294-0:

00sched

 

(7)获得ls命令的帮助手册后,将其转入后台,在转出到前台,并退出手册。

(8)先后新建文件a和文件b,并相应启动vi对它们进行编辑。

一开始要求文件a在前台执行,b在后台执行。

对文件a输入一些文字后,将其切换到后台,然后将文件b调到前台,同样输入一些文字。

最后将打开a文件的vi进程杀死,b文件保存并退出vi。

(9)列出当前系统中的所有进程(包括普通进程和守护进程),并指出哪些进程的优先级较高,这些进程有什么特点?

(10)守护进程中那些进程优先级比较高,那些进程的优先级比较低,你能发现优先级比较低是些什么样的进程?

优先级比较高的又是什么样的进程?

请找一两个典型的进程加以说明(Google一下这些进程)。

 

(11)利用nice程序启动三个vi程序,其nice分别为5,10,15,观察这三个vi程序的优先级,nice值与进程的优先级呈怎样的数值关系?

或者说,nice值每增加1,优先级的数值是否也增加1,还是增加得更多?

(可利用renice命令不断调整进程的nice值以获得实际规律)。

nice值与进程的优先级呈关系:

反比

(12)选取三个2.3节中所列的守护进程,列出他们的PID以及nice值。

●init:

系统的1号进程,主要工作是为系统提供初始化服务。

PID为:

1nice值为:

0

●sshd:

OpenSSH服务器守护进程。

PID为:

3194nice值为:

0

●syslog:

日志记录的守候进程。

PID为:

2787nice值为:

0

 

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 农林牧渔 > 林学

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1