进程管理(1.0)

linux是一个多用户、多任务操作系统。在这样的系统中,各种计算机资源的分配和管理都以进程为单位,为了协调多个进程对这种共享资源的访问,操作系统要跟踪多个进程的活动,以及他们对系统资源的使用情况,从而实施对进程和资源的动态管理。

进程和作业的基本概念

进程和作业简介

1.进程

进程是指一个具有独立功能的程序的一次运行过程,也是系统进行资源分配和调度的基本单位,即每个程序模块和它执行所处理的数据组成了进程。进程不是程序,但由程序产生。进程和程序的区别在于:程序是一系列指令的集合,是静态的概念,而进程则是程序的一次运行过程,是动态的概念;程序可以长期保存,而进程只能暂时存在、动态的产生、变化和消亡。进程和程序并不是一一对应的,一个程序可以包含若干个进程,一个进程可以调用多个程序。

2.作业

正在执行的一个或多个相关进程可以形成一个作业。使用管道命令和重定向命令,一个作业可以启动多个进程。

根据作业的运行方式不同,可将作业分为两大类

前台作业:运行与前台,用户可对其进行交互操作

后台作业:运行于后台,不接受终端的输入,单行终端输出执行结果

作业既可以在前台运行也可以在后台运行,但在同一时刻,每个用户只能有一个前台作业

进程的基本状态及其转换

1.进程的基本状态

通常在操作系统中,进程至少要有3种基本状态,分别为:运行态、就绪态和阻塞态。进程状态及其变化如下所示


运行态(running):指当前进程分配到CPU,它的程序正在处理器上执行时的状态。处于这种状态的进程个数不能大于CPU的数目。在单CPU机制中,任何时刻处于运行状态的进程至多有一个。

就绪态(ready):指进程已具备运行条件,但因为其他进程正占用CPU,暂时不能运行而等待分配CPU的状态。一旦CPU分给它,立即就可运行。

阻塞态(blocked):也叫等待态,指进程等待某种事件发生而暂时不能运行的状态,即处于封锁状态的进程尚不具备运行条件,即使CPU空闲,它也无法使用。这种状态有时也称为不可运行状态或挂起状态。

2.进程间的转移

一个运行的进程可因满足某种条件而放弃CPU,变成封锁状态;以后条件得到满足时,又变成就绪态;仅当CPU被释放时才从就绪进程中挑选一个合适的进程去执行,被选中的进程从就绪态变成运行态。

进程的类型

linux操作系统包括3种不同类型的进程,每个进程都有其自己的特点和属性。

交互进程:由一个shell启动的进程,既可以运行在前台,也可以运行在后台

批处理进程:不需要与终端相关,提交在等待队列的作业。

守候进程:linux系统启动时自动启动,并在后台运行,用于监视特定服务。

linux守候进程介绍

守候进程是linux系统的三大进程之一,而且是系统中比较重要的一种,该进程可以完成很多工作,包括系统管理、网络服务等。下面介绍守候进程。

1.守候进程介绍

守候进程是在后台运行而没有终端或登录shell与之结合在一起的进程。守候进程在程序启动时开始运行,在系统结束时停止。这些进程没有终端控制,所以称为在后台运行。linux系统有许多标准的守候进程,其中一些周期性的运行来完成特定的任务,其余的连续运行,等待处理系统中发生的某些特定的事件。启动守候进程有如下几种方法。

在引导系统时启动:此种情况下的守候进程通常在系统启动script的执行期间被启动,这些script一般存放在/etc/rc.d中。

手动从shell提示符启动:任何具有相应的执行权限的用户都可以使用这种方法启动守候进程

使用crond守候进程启动:这个守候进程是放在/var/spool/cron/crontabs目录中的一组文件,这些文件规定了需要周期性执行的任务

执行at命令启动:在规定的一个日期执行一个程序。

2.重要的守候进程介绍

下面列出了linux系统中一些比较重要的守候进程及其所具有的功能,用户可以通过这些进程方便的使用系统以及网络服务。

守候进程                                                        功能说明

amd                                                   自动安装nfs(网络文件系统)

apmd                                                 高级电源管理

httpd                                                  web服务器

xinetd                                                 支持多种网络服务的核心守候进程

crond                                                 linux下的计划任务

dhcpd                                                启动一个dhcp(动态ip地址分配)服务器

gated                                                 网关路由守候进程,使用动态的ospf路由选择协议

lpd                                                     打印服务

named                                               dns服务

netfs                                                   安装nfs、Samba、netware网络文件系统

network                                              激活已配置网络接口的脚本程序

nfsd                                                    nfs服务器

sendmail                                             邮件服务器sendmail

smb                                                    Samba文件共享/打印服务

snmpd                                               本地简单网络管理守候进程

syslog                                               一个让系统引导时启动syslog和klogd系统日志守候进程的脚本

 进程和作业启动方式

进程是由于一个程序执行而启动的,在RHEL5系统中启动进程的方式有以下两种。

1.手工启动

手工启动是指由用户输入shell命令后直接启动进程,又可分为前台启动和后台启动。

前台:这是手工启动进程最常用的方式,一般直接输入程序名(如:vi)就可以启动一个前台进程

后台:直接在后台手工启动进程用得比较少一些。从后台启动一个进程其实就是在程序名后加&(如:vi&),输入命令后,出现数字代表该进程的进程号

上述两种启动方式有个共同的特点,就是新进程都是由当前shell进程产生的,也就是说shell创建了新进程,因此称这种关系为进程间的父子关系。shell是父进程,新进程是子进程。一个父进程可以有多个子进程。

2.调度启动

系统在指定时间运行指定的程序,可用at、batch和cron调度。

猜你喜欢

转载自blog.csdn.net/mez_blog/article/details/80469304
今日推荐