Linux进程管理

  
  

博文结构
什么是程序
工作管理
程序管理

     

一。什么是程序

  

1。在Linux系统当中:“触发任何一个事件时,系统都会将他定义成为一个程序,并且给予这个程序一个ID,称为PID,同时依据启发这个程序的使用者与相关属性关系,给予这个PID一组有效的权限设置。

  

<强> 2。程序与进程(流程,程序)

  

执行一个程序或指令”就可以触发一个事件而取得一个PID啰!我们说过,系统应该是仅认识的二进制文件,那么当我们要让系统工作的时候,当然就是需要启动一个二进制文件,那个二进制文件就是程序(程序)

  

癓inux进程管理"

  

如上图所示,程序一般是放置在实体磁盘中,然后通过使用者的执行来触发。触发后会载入到内存中成为一个个体,那就是程序。为了操作系统可管理这个程序,因此程序有给予执行者的权限/属性等参数,并包括程序所需要的指令码与数据或文件数据等,最后再给予一个PID。系统就是通过这个PID来判断该过程是否具有权限进行工作的

  
      <李>   

    <强>程序(程序):通常为二进制程序,放置在储存媒体中(如硬盘,光盘,软盘、磁带等),为实体文件的型态存在,

      李   <李>   

    <强>进程(流程):程序被触发后,执行者的权限与属性,程序的程序码与所需数据等都会被载入内存中,操作系统并给予这个内存内的单元一个识别码(PID),可以说,进程就是一个正在运行中的程序。

      李   <李>   

    <强>子程序与父程序:程序彼此之间是有相关性的!以上面的图示来看,连续执行两个bash后,第二个bash的父程序就是前一个bash。因为每个程序都有一个PID,那某个程序的父程序该如何判断?就通过父PID (PPID)来判断即可。
    癓inux进程管理"

      李   <李> <强>叉和exec:程序调用的流程
    其实子程序与父程序之间的关系还挺复杂的,最大的复杂点在于程序互相之间的调用。在Linux的程序调用通常称为fork-and-exec的流程程序都会借由父程序以复制(叉)的方式产生一个一模一样的子程序,然后被复制出来的子程序再以exec的方式来执行实际要进行的程序,最终就成为一个子程序的存在。   
  

如图:   

癓inux进程管理"

  

(1)系统先以叉的方式复制一个与父程序相同的暂存程序,这个程序与父程序唯一的差别就是PID不同的!但是这个暂存程序还会多一个PPID的参数,PPID如前所述,就是父程序的程序识别码啦!然后
(2)暂存程序开始以exec的方式载入实际要执行的程序,以上述图示来讲,新的程序名称为回调,最终子程序的程序码就会变成调了!

  

二。工作管理

  
      <李>   

    这个工作管理(作业控制)是用在bash环境下的,也就是说:“当我们登陆系统取得bash shell之后,在单一终端机接口下同时进行多个工作的行为管理”。举例来说,我们在登陆bash后,想要一边复制文件,一边进行数据搜寻,一边进行编译,还可以一边进行vim程序撰写!当然我们可以重复登陆那六个命令行的终端机环境中

      李   <李> <>强要进行bash的工作管理必须要注意到的限制是:   
  

这些工作所触发的程序必须来自于你外壳的子程序(只管理自己的bash);
前景:你可以控制与下达指令的这个环境称为前景的工作(前景);
背景:可以自行运行的工作,你无法使用[ctrl] + c终止他,可使用bg/fg调用该工作,
背景中“执行”的程序不能等待终端(终端)/壳的输入(输入)

  

例如:可以隐藏执行程序

  
 <代码> [root@localhost ~] #焦油-zpcf/tmp/etc.tar。广州/etc/&
  3433 \ \ [1]PID  
  
      <李> <>强观察目前的背景工作状态:工作   
  
 <代码> root@localhost ~ #工作
  参数如下:
  - l:除了列出工作数量与指令串之外,还列出PID
  - r:仅列出正在背景运行的工作
  :仅列出正在背景当中暂停(停止)的工作
  root@localhost ~ #工作- l
  [1]- 3516停止vim aaa
  [2]+ 3520停止vim abbb