Unix操作系统基础:Unix 进程

Unix操作系统基础:Unix 进程


 

内容:    目标:
 进程;    定义Unix系统的进程
 进程的环境;   了解进程的生命周期、构成、状态等信息
 进程是如何创建的;  了解如何显示进程的信息
 如何获取进程信息;  了解父进程和子进程
 如何终止进程的运行;
--------------------------------------------------------------------------------------
1.什么是进程:
    Unix是一个多用户、多任务的系统。而且系统中可以有多个用户同时工作,每个用户又可以
  同时完成几个任务。Unix是通过对进程的管理来管理用户和系统的各种命令和程序的运行的。
    进程就是一项任务。一个正在系统中运行的程序就是一个进程。
一、进程监控
1. 进程及进程状态
   进程和程序的主要区别是:
 a.进程是动态的,它有自己的生命周期和不同状态;而程序是静态的,通常存放在某种介质上。
    b.进程具有运行控制结构和作用数据区;程序没有。
 c.一个程序可以同时在内存中有多个运行实例,即同时作为多个进程的组成部分。
   进程的状态:(创建->运行->等待->运行...等待->运行->结束)(类似的生命周期)
 a.运行态:进程正占用CPU和其它资源进行计算。
 b.就绪态:进程已做好一切准备,等待获得CPU投入运行。
 c.睡眠态:进程因等待输入输出或其它系统资源而让出CPU资源,等待运行条件的满足。

 状态转换:(Unix系统中CPU按时间片分配,分给每个用户的时间都是非常短的)
 #就绪态——(得到CPU)——>运行态
 #睡眠态——(I/O完成或睡眠时间到)——>就绪态
 #运行态——(等待I/O或调用Sleep)——>睡眠态
 #运行态——(运行时间片到)——>就绪态

   2.获取进程状态信息:
     ps命令(无参时,显示该用户当前活动进程的基本信息)
       PID  进程标识号(系统每个进程在其生命周期都有一个唯一的PID)
       TTY  启动该进程的终端号
       TIME 进程累计占用CPU的时间
       COMMAND  产生该进程的命令
  swapper(交互进程)
  init(初始进程)(进程号为1)
  sh(处于$系统提示符状态)
  cron(定时启动进程)
  getty(处于logging)
     -e(-a) 显示系统中所有活动进程的信息
       ?表示系统后台进程
     -f     显示该进程的所有信息
 UID 进程所有者的用户标识数
 PID 进程标识数
 PPID 本进程的父进程标识数
 C 进程调度参数,反映本进程使用CPU的状况
 STIME 进程的启动时间
 TTY 启动进程的终端
 TIME 进程累计占用CPU的时间
 COMMAND 启动该进程的命令名

   3.暂停进程运行:sleep 命令
 sleep time (使运行的进程暂停time指定的秒数.)
 sleep 10;who (进程暂停10秒后,显示系统中登录的用户名)

   4.终止进程运行: kill 命令
 通常在三种情况下进程被终止运行.
 a.进程运行完成,自动消亡;
 b.用户按Ctrl+c或Del等中断键,强制终止前台进程的运行;
 c.用户发出kill命令,可以强行终止或键盘锁住了的前台进程的运行.

 kill 常用三种常用格式为:
 kill PID  #正常结束进程,完成善后工作,类似于按Del键.
 kill -1 PID  #先挂起该进程,终止子进程,
                         完成善后工作,终止该进程.
 kill -9 PID #立即强行终止该进程,不作任何善后处理,
                         可能出现资源浪费和"孤儿"进程.

   5. 进程的有关概念
 a. 生存周期
  在Unix系统中,所有进程都有其完整的生存周期。
  生存周期是指创建进程开始到运行结束为止,在进程生存的这段时间内,
  总要进行数据交换,CPU处理数据、存取内存和外设、及其它由程序规定的工作。
  进程的生存周期不一样长,许多进程的生存周期很短,有的进程则要持续运行。
     shell进程的生存周期:从用户登录开始到退出系统才消亡.
     每个shell进程在其生存周期中要做:
  a.印出提示符$
  b.等待用户输入命令行
  c.解释命令行
  d.执行命令行中指定的命令
  e.等待命令完成
  f.印出新的提示符并重复以上过程
        查看当前shell(正在运行的进程)的进程id,使用命令:$echo $$(这个进程id的值由内核随机分配)
 
   6. 进程的环境
 进程之间存在父子间的层次关系。
 每个进程都是由某个已经存在的进程创建的(pid为0的除外),这个进程称为该进程的父进程。
 由一个命令或程序启动的进程就是父进程,子进程是父进程的产物。
 一个父进程可以有多个子进程,但一个子进程只有一个父进程。
 当一个进程被创建的时候,它将从它的父进程那里继承许多重要的信息。
   7. 父进程与子进程
 进程id是进程的标识数,内核通过它来区分不同的进程。
 系统启动的第一个进程,它的进程id为1.
 PPID是父进程的标识数。
   8. 控制进程
 前台进程:从终端启动,并与终端进行交互的进程。
 调用前台进程:只需在命令行中键入命令的名字即可。
 后台进程:进程启动后,独立地运行(与启动它的终端不进行交互)。
 调用后台进程:需要在命令行的末尾加上&符号。
 进程可以在后台运行的充分必要条件是:
  1.它不需要键盘的输入;
  2.在调用命令启动它时,命令行的最后一个字符是&.

   9. 中止进程
 对前台进程可以用ctrl+c中断。
 对后台进程必须使用kill命令中断。
 根用户可以使用kill命令中止任何进程。如果非根用户,你只能中止自己启动的进程。

   10. 监督进程(守护进程daemons)
 是一个永远不会中止的进程。通常它用来控制系统资源的进程。
 在系统启动时开始运行,直到系统关闭才中止。
 常用的监督进程有corn,qdamemon(),errdaemon等.
 在通信方面等还有一些其他的端口监督进程。

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值