Linux中进程的认识

进程

概念

进程的概念主要有两点:第一,进程是一个实体。每一个进程都有它自己的地址空间,一般情况下,包括文本区域(text region)、数据区域(data region)和堆栈(stack region)。文本区域存储处理器执行的代码;数据区域存储变量和进程执行期间使用的动态分配的内存;堆栈区域存储着活动过程调用的指令和本地变量。第二,进程是一个“执行中的程序”。程序是一个没有生命的实体,只有处理器赋予程序生命时(操作系统执行之),它才能成为一个活动的实体,我们称其为进程。

进程和程序的区别
  • 程序是指令和数据的有序集合,其本身没有任何运行的含义,是一个静态的概念。而进程是程序在处理机上的一次执行过程,它是一个动态的概念。
  • 程序可以作为一种软件资料长期存在,而进程是有一定生命期的。程序是永久的,进程是暂时的。
  • 进程更能真实地描述并发,而程序不能;
  • 进程是由进程控制块、程序段、数据段三部分组成;
    进程具有创建其他进程的功能,而程序没有。
  • 同一程序同时运行于若干个数据集合上,它将属于若干个不同的进程,也就是说同一程序可以对应多个进程。
  • 在传统的操作系统中,程序并不能独立运行,作为资源分配和独立运行的基本单元都是进程。
进程的描述

进程的信息被放在一个叫做进程控制块-PCB的数据结构中,可以理解为进程属性的集合,每一个进程都有属于进程本身的进程编号-PID,并且拥有三种状态分别是就绪态、运行态和阻塞态。
这里写图片描述
在linux中描述进程的结构体叫做task_struct。task_struct是linux内核的一种数据结构,它会被装载到RAM(内存)里并且包含着进程的信息。标⽰示符: 描述本进程的唯⼀一标⽰示符,⽤用来区别其他进程。
task_struct内容分类

  • 状态: 任务状态,退出代码,退出信号等。
  • 优先级: 相对于其他进程的优先级。
  • 程序计数器: 程序中即将被执⾏行的下⼀一条指令的地址。
  • 内存指针: 包括程序代码和进程相关数据的指针,还有和其他进程共享的内存块的指针
  • 上下⽂文数据: 进程执⾏行时处理器的寄存器中的数据[休学例⼦子,要加图CPU,寄存器]。
  • I/O状态信息: 包括显⽰示的I/O请求, 分配给进程的I/O设备和被进程使⽤用的⽂文件列表。
  • 记账信息: 可能包括处理器时间总和,使⽤用的时钟数总和,时间限制,记账号等。
  • 其他信息

查看进程的方法
进程的信息可以通过/proc系统文件夹查看,例如要获取PID为1的进程信息,可以查看 /proc/1 这个⽂文件夹。或者通过ps指令来查看。最常用的方式是ps -ef | -grep “进程名”,比如我们要查找关于“a.out”相关的进程,使用截图如下:

这里写图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值