关于Liunx下的进程概念

目录

基本概念

关于进程的描述 --- PCB         

task_struct-PCB的一种

task_ struct内容分类

如何查看进程

通过系统调用获取进程标识符


基本概念

书本概念:程序的一个执行实例,正在执行的程序等

内核观点:担当分配系统资源(CPU时间,内存)的实体。
示例:(Linux环境)
        当我们执行一指令,或者通过 ./ 的方式运行一个程序的时候,本质上,就是在系统层面上创建一个进程,Linux是可以同时加载多个可执行程序的,意味着系统中是会出现同时存在大量进程的情况。
  •  那么这么些个进程需不需要被系统管理起来呢?答案是肯定的。
  •  那么系统是如何进行管理大量进程的呢? --- 先描述,再组织。
例图:

上述是一个草图,本质上想描述的是 完整的进程 = 对应的文件(代码+数据)+ 对应的PCB结构体(进程)

通过对进程对应的PCB结构的增删查改,也就实现了对进程的管理。

关于进程的描述 --- PCB         

进程信息被放在一个叫做进程控制块的数据结构中,可以理解为进程属性的集合。
书本上称之为PCB(process control block),Linux操作系统下的PCB是:task_struct

task_struct-PCB的一种

在Linux中描述进程的结构体叫做task_struct。
task_struct是Linux内核的一种数据结构,它会被装载到RAM(内存)里并且包含着进程的信息。

task_ struct内容分类

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

如何查看进程

1.ps

ps:查看在当前终端下的进程
ps axj:查看在系统中的所有进程

示例:

示例2:

2.top:显示系统中存在的所有进程(相当于Windows下的任务资源管理器)

示例:

通过系统调用获取进程标识符

  • 进程id(PID) --- getpid
  • 父进程id(PPID)--- getppid

代码示例:

  • 5
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值