进程与程序的简单概述

什么是进程?

所谓进程就是将一个二进制文件加载到内存形成的一个个体,这就是一个进程。

在我们的linux系统中,系统只识别二进制文件,所以一个系统要想正常的运行时,必须启动一些二进制文件,从而形成进程,在以这些进程的方式去执行相应的任务。

 

我们常常听到所谓的程序,那么程序和进程是什么关系呢?

刚刚说过进程是由二进制文件加载到内存中形成的。而这些二进制文件就是程序。

可以这么来理解:

程序是实实在在地文件,是存放在磁盘上的。

进程是一个逻辑概念,进程是存在内存当中的,所以当机器重启,这些进程也随之销毁了。而程序不会,因为他们始终存在磁盘上的。

 

我们知道在我们的系统上,可以同时运行多个程序,进而会产生多个进程,而这些进程最终都会交给CPU处理,但是我们的CPU却只有一个,那么这些CPU是如何处理这些进程的呢?

刚刚说过进程是存在内存当中的。而内存是一块地址空间,所以我们的进程在内存中都占用了一段地址空间,用来存在进程数据。而这些将要被执行的进程放在CPU的可执行队列中,CPU逐个进行处理。并且内核为这些每一个进程分配一段时间,这样CPU可以有效的处理每一个进程,避免CPU长时间的消耗在处理某个进程上。

 

进程是有进程状态的,进程共有一下5种状态:

1、TASK_RUNNING:处于这种状态下的进程正在被CPU执行或者将要被CPU执行

2、TASK_INTERRUPTIBLE:叫做可中断的睡眠状态。这种状态下的进程处于睡眠状态直到其他条件或者事件完成时才会被CPU处理。或者当某个进程已经被CPU处理完了,而内核分配处理的这些进程时间过长,这些进程也会处于睡眠状态。而进程在睡眠状态下,CPU可以去处理其他进程。

3、TASK_UNITERRUPTIBLE:不可中断的睡眠状态。处于该状态下的进程是不可中断的,因此该进程一直等待接受其他信号,因此CPU一直处于等待状态。

4、TASK_STOPPED,TASK_TRACED:停止或者跟踪状态。

        当进程收到一个SIGSTOP信号时,该进程处于停止状态。

        当某个进程被其他进程所监控或者被跟踪的进程所操作时,该进程处于TASK_TRACED状态。

5、TASK_DEAD,TASK_ZOMBIE,僵尸状态:处于该状态下的进程执行完毕后,并不释放所占有的内存空间,因此会导致物理内存的容量变小。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值