进程的概念之PCB

        学习过操作系统的人应该都对于进程这两个不会陌生,当然没学过操作系统的人应该也听过进程这个词,但是进程是什么呢?接下来,就来学习一下进程的相关信息。

从用户角度看:进程是程序的一次动态执行过程,也就是说,只有当一段程序执行起来,它才能称为进程。

从操作系统角度看:进程是操作系统分配系统资源(CPU时间,内存)的基本单元,也是最小单元。

       进程需要相关的数据结构管理,PCB进程控制块,操作系统通过PCB来感知一个进程的存在。也可以说,PCB就是一个进程存在的唯一标示。

        既然程序不等于进程,那程序和进程到底有什么区别呢?

  •     存储位置不同,程序在硬盘上,进程在内存里;
  •    进程不仅仅是由程序组成,进程的描述还有PCB(进程控制块),以及一些描述进程状态的结构体;
  •    进程具有动态属性,即为可以有多种状态
  •    程序没有堆栈因为程序被加载到内存中才会分配堆栈
  •    进程的生命周期短暂,程序永久
  •    一个进程只能对应一个程序,而一个程序可以对应多个进程

        一个进程一直只有一个状态吗?答案肯定不是的。一个进程可以有多种状态。

 


                    


        在Linux中,Linux内核通过一个被称为进程描述符的task_struct结构体来管理进程,这个结构体包含了一个进程所需的所有信息。接下来就来看看这个结构体。

        当然我们知道,在Linux环境下,描述进程当然少不了PCB,而PCB有如何理解呢?

      进程信息被放在一个叫做进程控制块的数据结构中,可以理解为进程属性的集合。而在Linux操作系统下的PCB是:task_struct。task_struct中都有什么内容呢?

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

由此,所有运行在系统里的进程都以task_struct链表的形式存在内核了里。











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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值