Linux程序与进程

  一、linux程序与进程

   1、概念介绍

   程序:是一组指令及参数的集合,按照既定的逻辑控制计算机运行来完成特定任务
   进程:则是运行着的程序,是操作系统执行的基本单位,是程序运行的过程,动态,有生命周期及运行状态

  • 从用户的角度来看进程是程序的一次动态执行过程
  • 从操作系统的核心来看,进程是操系统分配的内存、cpu时间片等资源的基本单位
  • 进程是资源分配的最小单位
  • 每一盒进程都有自己独立的地址空间与执行状态
  • 想linux这样的多任务操作西戎能够让徐福噢程序同时运行,每一个运行着的程序就构成了一个 进程

   2、程序和进程的区别

  • 程序时静态的,它只是一组指令的集合,不具有任何的运行意义。而进程是程序运行的动态过程
  • 进程和程序并不是一 一对应的关系,相同的程序运行在不同的数据集上就是不同的进程
  • 进程还具有并发性和交往性,而程序却是封闭的

   3、进程和线程的区别

  • 一个进程可以拥有多个线程,而一个线程同时只能被一个进程所拥有
  • 线程不能单独执行,但是每一个线程都有程序的入口、执行序列以及程序出口,它必须组成进程才能被执行

  二、linux进程基础

   1、进程生命周期

在这里插入图片描述
    父进程复制自己的地址空间(fork)创建一个新的(子)进程结构。每个新进程分配一个唯一的进程ID(PID),满足跟踪安全性之需。PID和父进程ID(PPID)是子进程环境的元素,任何进程都可以创建子进程,所有进程都是第一个系统进程的后代

在centos6中,第一个系统进程是init,而在centos7中,第一个系统进程是systemd。

在这里插入图片描述
在这里插入图片描述

   2、父子进程的关系

       子进程是由一个进程所产生的进程,产生这个子进程的进程称为父进程,在linux中,使用系统调用fork创建进程,fork复制的内容包括父进程的数据和堆栈段以及父进程的进程环境。父进程终止子进程自然终止。
       子进程继承父进程的安全性身份、过去和现在的文件描述符、端口和资源特权、环境变量、以及程序代码。随后,子进程可能exec自己的程序代码。通常,父进程在子进程运行期间处于睡眠状态(sleeping)。当子进程完成时发出(exit)信号请求,在退出时,子进程已经关闭或丢弃了其资源环境,剩余的部分称为僵停(僵尸Zombie)。父进程在子进程退出时收到信号而被唤醒,清理剩余的结构,然后继续执行自己的程序代码。

猜你喜欢

转载自blog.csdn.net/weixin_45440548/article/details/105657667
今日推荐