进程及进程控制块「建议收藏」

进程及进程控制块「建议收藏」进程是程序的一个执行实例,是一个正在执行的程序。能分配处理器并由处理器执行的实体。     在一个系统上可以同时运行多个程序。并发运行,一个进程的指令和另一个进程的指令是交错执行的。     进程的两个基本元素是程序代码(可能被执行相同程序的其他进程共享)和代码相关联的数据集。进程是一种动态描述,但并不代表所有的进程都在运行(进程在内存中因策略或调度需求,会处于各种状态)。

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全家桶1年46,售后保障稳定

         进程是程序的一个执行实例,是一个正在执行的程序。能分配处理器并由处理器执行的实体。

         在一个系统上可以同时运行多个程序。并发运行,一个进程的指令和另一个进程的指令是交错执行的。

         进程的两个基本元素是程序代码(可能被执行相同程序的其他进程共享)和代码相关联的数据集。进程是一种动态描述,但并不代表所有的进程都在运行(进程在内存中因策略或调度需求,会处于各种状态)。

        从内核看进程担当分配系统资源(CPU时间,内存)的实体。广义上,所有的进程信息被放在一个叫做进程控制块的数据结构中,可以理解为进程属性的集合。


 进程控制块

         每个进程在内核中都有一个进程控制块(PCB)来维护进程相关的信息,Linux内核的进程控制块是task_struct的结构体。

task_struct是Linux内核的一种数据结构,它会被装载到RAM里并包含进程的信息。每个进程都把它的信息放在task_struct这个数据结构里面,而task_struct包含以下内容: 
标示符:描述本进程的唯一标示符,用来区别其他进程。 
状态:任务状态,退出代码,退出信号等。 
优先级:相对于其他进程的优先级。 
程序计数器:程序中即将被执行的下一条指令的地址。 
内存指针:包括程序代码和进程相关数据的指针,还有和其他进程共享的内存块的指针。 
上下文数据:进程执行时处理器的寄存器中的数据。 
I/O状态信息:包括显示的I/O请求,分配给进程的I/O设备和正在被进程使用的文件列表。 
记账信息:可能包括处理器时间总和,使用的时钟总数,时间限制,记账号等。

保存进程信息的数据结构叫做task_struct,并且可以在include/linux/sched.h里找到它。所有运行在系统里的进程都以task_struct链表的形式存在内核里。进程的信息可以通过/proc系统文件夹查看。要获取PID为400的进程信息,你需要查看/proc/400这个文件夹。大多数进程信息同样可以使用top和ps这些用户级工具来获取。

             linux 中ps命令是Process Status的缩写。ps命令可以列出系统中当前运行的进程,所列出的进程是执行ps命令这个时刻正在运行的进程。

进程及进程控制块「建议收藏」

附上task_struct所定义在的头文件sched.h的链接吧: 

http://lxr.free-electrons.com/source/include/linux/sched.h

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/213472.html原文链接:https://javaforall.net

(0)
上一篇 2025年7月22日 下午2:22
下一篇 2025年7月22日 下午3:01


相关推荐

  • 文件夹提示文件或目录损坏且无法读取

    文件夹提示文件或目录损坏且无法读取文件夹无法访问文件名变乱码的恢复方法硬盘损坏怎么恢复 硬盘是我们工作 学习和生活中常用的信息存储工具 因为容量大 价格便宜而深受人们的喜爱 因此硬盘也成为了我们一些重要信息的信息载具 文件夹提示 文件或目录损坏且无法读取 的恢复方法这时我们该如何恢复我们丢失的文件呢 这个时候一定要记住不要再进行读写操作 以防数据被覆盖永久丢失 并且第一时间运用专业软件恢复 因为数据丢失时间越短找回的可能性越大 文件夹提示文件或目录损坏且无法读取工具 软件 AornData 软件步骤 1 先

    2026年3月16日
    3
  • object finalized_finalize()方法

    object finalized_finalize()方法一、一次标记首先finalize方法是在垃圾回收时,用于确认该对象是否确认被回收的一个标记过程。确认一个对象真正被回收需要经历两次标记过程:可达性分析没有引用,这是第一次标记是否有必要执行finalize方法,如果对象没有重写finalize方法或者finalize方法已经被调用过了,那么finalize方法就是没有必要执行的,没有必要执行finalize方法的对象就会被直接回收。如果对象被判定为有必要执行finalize()方法,那么这个对象将会放置在一个叫做F-Queue的队列之中,并在稍后

    2026年1月21日
    5
  • 电子元件-电阻

    本内容包括可调电位器的介绍,电阻率与温度系数,高精密电阻介绍,热敏电阻、压敏电阻、碳膜电阻与金属膜电阻介绍等。

    2022年4月8日
    58
  • ubuntu下安装python3

    ubuntu下安装python3安装步骤ubuntu本身安装的时候已经自带python了,在终端输入python-V查看当前python版本python-V如上图,当前电脑安装的python版本是2.7.12下载最新的python3sudoapt-getinstallpython3如图,我的电脑本身已经装有python3了,如果没安装有,则应该安装最

    2022年6月23日
    48
  • torch.meshgrid()函数解析

    torch.meshgrid()函数解析torch.meshgrid()函数解析torch.meshgrid()的功能是生成网格,可以用于生成坐标。函数输入两个数据类型相同的一维张量,两个输出张量的行数为第一个输入张量的元素个数,列数为第二个输入张量的元素个数,当两个输入张量数据类型不同或维度不是一维时会报错。其中第一个输出张量填充第一个输入张量中的元素,各行元素相同;第二个输出张量填充第二个输入张量中的元素各列元素相同。#【1】importtorcha=torch.tensor([1,…

    2022年6月5日
    136
  • Manus AI:颠覆性创新还是工程优化?

    Manus AI:颠覆性创新还是工程优化?

    2026年3月15日
    3

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号