本文引用地址:http://www.eepw.com.cn/article/257132.htm
7.1.3Linux下进程的模式和类型
在Linux系统中,进程的执行模式划分为用户模式和内核模式。如果当前运行的是用户程序、应用程序或者内核之外的系统程序,那么对应进程就在用户模式下运行;如果在用户程序执行过程中出现系统调用或者发生中断事件,那么就要运行操作系统(即核心)程序,进程模式就变成内核模式。在内核模式下运行的进程可以执行机器的特权指令,而且此时该进程的运行不受用户的干扰,即使是root用户也不能干扰内核模式下进程的运行。
用户进程既可以在用户模式下运行,也可以在内核模式下运行,如图7.3所示。
图7.3用户进程的两种运行模式
Linux下的进程管理包括启动进程和调度进程,下面就分别对这两方面进行简要讲解。
1.启动进程
Linux下启动一个进程有两种主要途径:手工启动和调度启动。手工启动是由用户输入命令直接启动进程,而调度启动是指系统根据用户的设置自行启动进程。
(1)手工启动。
手工启动进程又可分为前台启动和后台启动。
n 前台启动是手工启动一个进程的最常用方式。一般地,当用户键入一个命令如“ls-l”时,就已经启动了一个进程,并且是一个前台的进程。
n 后台启动往往是在该进程非常耗时,且用户也不急着需要结果的时候启动的。比如用户要启动一个需要长时间运行的格式化文本文件的进程。为了不使整个shell在格式化过程中都处于“瘫痪”状态,从后台启动这个进程是明智的选择。
(2)调度启动。
有时,系统需要进行一些比较费时而且占用资源的维护工作,并且这些工作适合在深夜无人值守的时候进行,这时用户就可以事先进行调度安排,指定任务运行的时间或者场合,到时候系统就会自动完成这一切工作。
使用调度启动进程有几个常用的命令,如at命令在指定时刻执行相关进程,cron命令可以自动周期性地执行相关进程,在需要使用时读者可以查看相关帮助手册。
2.调度进程
调度进程包括对进程的中断操作、改变优先级、查看进程状态等,在Linux下可以使用相关的系统命令实现其操作,在表7.1中列出了Linux中常见的调用进程的系统命令,读者在需要的时候可以自行查找其用法。
表7.1 Linux中进程调度常见命令选项参数含义
ps查看系统中的进程
top动态显示系统中的进程
nice按用户指定的优先级运行
renice改变正在运行进程的优先级
kill向进程发送信号(包括后台进程)
crontab用于安装、删除或者列出用于驱动cron后台进程的任务。
bg将挂起的进程放到后台执行