首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Linux进程关系

Linux进程相互之间有一定关系。比如说,在Linux进程基础中,我们看到,每个进程都有父进程,而所有的进程以init进程为根,形成一个树状结构。...进程组会有一个进程组领导进程 (process group leader),领导进程PID (PID见Linux进程基础)成为进程ID (process group ID, PGID),以识别进程组...ID,PGID为进程所在进程ID, PPID为进程进程ID。...从上面的结果,我们可以推测出如下关系: ? 图中箭头表示父进程通过fork和exec机制产生子进程。ps和cat都是bash进程进程领导进程PID成为进程组ID。领导进程可以先终结。...比如说,我可以通过shell发起多个后台工作,而此时标准输入输出并不被占据,我依然可以继续其它工作。如今,图形化界面可以帮助我们解决这一需求,但工作组和会话机制依然在Linux许多地方应用。

1.8K50

Linux内核11-进程之间关系

对于进程,我们并不陌生。进程具有父子关系、兄弟关系等等。本文我们就深入探讨它们之间关系。...在阅读本文之前,应该熟读《Linux内核10-list_head和hlist_head理解》这一篇文章,因为这对理解本文有很大帮助。...1 进程之间关系 我们已经或多或少知道,进程具有父子关系,不仅如此,还有兄弟关系。所以,进程描述符中必须有几个成员是记录这种关系(P是创建进程),具体可以参考下表。...children 包含P创建所有子进程列表表头。 sibling 包含指向兄弟关系进程链表中下一个元素和前一个元素指针,这些进程进程都是P。 图3-4 阐述了进程父子、兄弟关系。...为了解决这个冲突问题,Linux决定使用一个双向链表存储这些冲突PID,把这个双向链表表头存入哈希表中,通过这种方法,完美地解决了这个冲突。

75620
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    进程ID及进程关系

    pids[] 数组下标是枚举类型,在 include/linux/pid.h 中定义了 PID 类型: enum pid_type { PIDTYPE_PID, PIDTYPE_TGID,...PID/TGID/PGID/SID总结 用一幅图来总结 PID/TGID/PGID/SID : 进程关系 内核中所有进程 task_struct 会形成多种组织关系。...根据进程创建过程会有亲属关系进程父子关系组织成一个进程树;根据用户登录活动会有会话和进程关系。...亲属关系 进程通过 fork() 创建出一个子进程,就形成来父子关系,如果创建出多个子进程,那么这些子进程间属于兄弟关系。可以用 pstree 命令查看当前系统进程树。...会话、进程关系 Linux 系统中可以有多个会话(session),每个会话可以包含多个进程组,每个进程组可以包含多个进程

    53223

    Linux 内核】进程管理 ( 系统调用简介 | 进程关系统调用源码 )

    文章目录 一、系统调用简介 二、进程关系统调用源码 一、系统调用简介 ---- 在开发应用程序时 , 进行 " 进程创建 " , 调用 fork() , vfork() , clone() 等函数..., 就是 " 系统调用 " ; " 系统调用 " 是 操作系统 提供 应用程序 调用 内核功能 接口 , 如 : 创建进程 , 文件操作 等 ; 系统调用 与 内核 关系 : 在 应用进程 中调用...fork() 系统调用 函数 , 实际上调用Linux 内核中 sys_fork() 函数 ; 在 应用进程 中调用 vfork() 系统调用 函数 , 实际上调用Linux 内核中...sys_vfork() 函数 ; 在 应用进程 中调用 clone() 系统调用 函数 , 实际上调用Linux 内核中 sys_clone() 函数 ; Linux 内核中 sys_fork...---- Linux 进程相关 " 系统调用 " 对应源码在 linux-5.6.18\kernel\fork.c 源码中 ,

    2.1K20

    低调 Linux 文件系统家族

    而在 Linux 中,是支持挂载,它允许一个磁盘挂在到另外一个磁盘上,那么上面的关系会变成下面这样 ? 挂在之后,两个文件系统就不再需要关心文件系统在哪个磁盘上了,两个文件系统彼此可见。...加锁机制要求尝试加锁进程指定其 「要加锁文件,开始位置以及要加锁字节」 Linux 系统提供了两种锁:「共享锁和互斥锁」。...文件读写位置会在打开文件描述符表中存在,如下图所示 ? 我们使用 shell 、P1 和 P2 来描述一下父进程、子进程、子进程关系。...❞ 然而,Linux 在一些方面上对这个想法进行了扩充。它基本概念是为系统中每个进程在 /proc 中创建一个目录。目录名字就是进程 PID,以十进制数进行表示。...当需要这些信息时候,系统会按需从进程中读取,并以标准格式返回给用户。 许多 Linux 扩展与 /proc 中其他文件和目录有关。

    1K41

    Linux进程与可执行程序关系&&fork创建子进程&&写实拷贝理解

    一、进程与可执行程序之间关系理解 系统会将此时在系统运行进程各种属性都以文件形式给你保存在系统proc目录下。...运行一个程序时候,本质就是把磁盘中程序拷贝到内存中,当一个进程运行起来时候,它本质已经和磁盘中可执行程序没有直接关系了。...,它本质已经和磁盘中可执行程序没有直接关系了。...我们也可以看到,其中父子进程fork返回值是不一样,父进程fork返回是子进程pid,子进程返回是0。 那这里就会有疑问了,为什么fork给父进程返回子进程pid,给子进程返回0?...这和linux虚拟地址有关,也就是说,一个变量可以指向不同地址空间。 写实拷贝 任意进程之间是具有独立性,不会互相影响。

    17010

    JVM和Linux内存关系--进程与JVM内存空间

    三.进程与JVM内存空间 JVM本质就是一个进程,因此其内存空间(也称之为运行时数据区,注意与JMM区别)也有进程一般特点。深入浅出 Java 中 JVM 内存管理,这篇参考下。...下面从用户内存和内核内存两个方面讲解JVM进程内存特点。 1.用户内存 上图特别强调了JVM进程模型代码区和数据区指的是JVM自身,而非Java程序。普通进程栈区,在JVM一般仅仅用做线程栈。...Java NIO正是在这种背景下诞生,其充分利用了Linux系统新特性,提升了Java程序IO性能。 上图给出了Java NIO使用内核内存在linux系统中分布情况。...现在分析这600m内存分配情况: Linux保留大约200m,这部分是Linux正常运行需要, Java服务线程数量是160个,JVM默认线程栈大小是1m,因此使用160m内存, Java NIO...内存泄漏问题 另一个案例是,8g内存服务器,Linux使用800m,监控进程使用600m,堆大小设置4g;系统可用内存有2.5g左右,但是也发生了大量SWAP占用。

    2.9K21

    2.5.5 作业和进程关系

    进程是系统资源使用者,系统资源大部分都是以进程为单位分配。而用户使用计算机是为了实现一串相关任务,通常把用户要求计算机完成这一串任务成为作业。...(1)批处理系统中作业与进程关系进程组织) 批处理系统中可以通过磁记录设备或卡片机向系统提交批作业,由于系统spooling输入进程将作业放在磁盘输入井中,作为后备作业。...作业调度程序(一般也作为独立进程运行)每当选择一道后备作业运行时,首先为该作业创建一个进程(称为该作业进程)。该进程将执行   作业控制语言   解释 该作业 作业说明书。...至此,一道进入运行作业全部结束。 (2)分时系统中作业与进程关系 在分时系统中,作业提交方法,组织形式均与批处理作业有很大差异。分时系统用户通过命令语言逐条与系统应答式地输入命令,提交作业步。...这时,用交互系统提供全屏编辑命令编辑好将要提交作业控制说明书文件,如windows系统BAT文件和linux系统sh文件。然后用一条 作业提交命令将作业提交给系统作业队列中。

    1.2K10

    python多进程编程-进程之间关系

    在多进程编程中,进程之间关系可以分为父子进程关系、兄弟进程关系和无关进程关系。不同关系会对进程通信、共享资源等方面产生不同影响。父子进程关系父子进程关系是最常见进程关系。...() # 子进程 else: os.waitpid(pid, 0) # 父进程等待子进程结束在上面的示例中,我们首先输出了父进程进程ID,然后创建了一个子进程,子进程会输出自己进程...兄弟进程关系兄弟进程关系是指两个或多个进程之间没有父子关系,但它们通常是在同一时刻由同一个进程创建。在多进程编程中,这种关系通常是通过共享内存、消息队列等方式进行通信和同步。...子进程1和子进程2都会输出自己进程ID。父进程等待子进程1和子进程2都结束之后才退出。无关进程关系无关进程关系是指两个或多个进程之间既没有父子关系,也没有兄弟关系。...在多进程编程中,这种关系通常是通过网络通信等方式进行通信和同步。

    35930

    Linux进程——Linux进程概念(PCB理解)

    前言:在了解完冯诺依曼体系结构和操作系统之后,我们进入了Linux下一篇章Linux进程,但在学习Linux进程之前,一定要阅读理解上一篇内容,理解“先描述,再组织”才能更好理解进程含义。...Linux进程学习基础 本篇主要内容: 进程概念 通过系统调用获取进程标示符 1....课本上称之为PCB(process control block),Linux操作系统下PCB是: task_struct 1.2 CPU对于进程列表处理 在CPU对进程列表进行处理时,PCB中数据有时不会被...通过系统调用获取进程标示符 2.1 查看进程信息 每一个进程都有自己对应标识符当我们想查看进程信息: 指令:ps ajx 这样做的话我们查看是所有进程,这里我们就要用到之前学过指令了...:ps ajx | head -1 && ps ajx | grep 可执行程序 2.2 终止进程 在我们刚接触Linux时,通常按CTRL+c可以结束进程,现在在学习Linux进程时,还有一种方法可以杀死进程

    13010

    Linux进程——Linux下常见进程状态

    本篇主要内容: 操作系统中进程状态 Linux进程状态 在开始之前,我们先来简单了解以下进程状态 进程本质就是PCB中一个变量!!! 所谓状态变化,本质就是修改整形变量!!!...进程状态变化: 更改PCB status整数变量 将PCB连入不同队列中 所有过程都只会进程PCB有关,和进程代码数据没有关系!...Linux进程状态 下面是一段库中找状态定义: static const char * const task_state_array[] = { "R (running)", /* 0 */ "...此时,恰好系统内内存资源已经严重不足了,系统压力太大,Linux在是在没办法时候,会通过杀掉进程,节省资源,来不及进程反应直接被系统 “干掉” 。...总结 在了解Linux进程分类时,我们通常是先了解操作系统进程,因为二者有一定联系,了解操作系统能更好理解进程在操作系统中运行关系进程状态在进程中也极为重要,希望大家能理解透彻!

    12610

    Linux进程调度_linux进程查看和调度

    Linux 系统为了提升响应速度,倾向于优先调度 I/O 消耗型。...一、普通进程Linux 中普通进程依赖称之为 nice 值 东东来进行进程优先级描述。nice 值范围是 [-20, 19]。...—— 小结 实时进程优先级:value 越高,优先级越大 普通进程优先级:nice值越高,普通进程优先级越小 任何实时进程优先级 > 普通进程 Linux 调度算法 ---- Linux 中有一个总调度结构...Linux 调度时机 ---- 一、进程切换 从进程角度看,CPU是共享资源,由所有的进程按特定策略轮番使用。...也可以用 pidstat -w 命令查看进程切换每秒统计值: pidstat -w 1 Linux 3.10.0-229.14.1.el7.x86_64 (bj71s060) 02/01/2018

    20.6K10

    进程和线程关系漫画解释

    进程(process)和线程(thread)是操作系统基本概念,但是它们比较抽象,不容易掌握。   最近,我读到一篇材料,发现有一个很好类比,可以把它们解释地清晰易懂。   1.   ...背后含义就是,单个CPU一次只能运行一个任务。   3.   进程就好比工厂车间,它代表CPU所能处理单个任务。任一时刻,CPU总是运行一个进程,其他进程处于非运行状态。   4.   ...线程就好比车间里工人。一个进程可以包括多个线程。   6.   车间空间是工人们共享,比如许多房间是每个工人都可以进出。这象征一个进程内存空间是共享,每个线程都可以使用这些共享内存。   ...操作系统设计,因此可以归结为三点:   (1)以多进程形式,允许多个任务同时运行;   (2)以多线程形式,允许单个任务分成不同部分运行;   (3)提供协调机制,一方面防止进程之间和线程之间产生冲突...,另一方面允许进程之间和线程之间共享资源。

    69070

    关于父进程和子进程关系(UAC 绕过思路)

    假设是a进程创建了b进程,那么a进程就是b进程进程。...这对于一部分低端木马具有提醒作用(注意这里说是能够提示一般 灰鸽子等变种,高端木马会绕过这里,具体思路见后面),好了这里再回头说进程关系,这里先说一句关键的话:进程在创建进程时。...AIS服务(AppInfo Service)调用CreateProcessAsUser() 函数创建进程而且赋予恰当管理员权限,在理论上说AIS服务(所在进程)是提权后进程进程。...IceSworld,Process Explorer等) 查看时,会发现提权进程进程是创建它进程,这是由于AIS利用了CreateProcessAsUser() API中一个新功能,这里新功能就是将提权进程进程设置成创建该进程进程...,假设我们利用一下该API,我们就能够将自己进程进程设置为随意进程(要提权绕过UAC鸽子注意了),假设把木马进程进程设置为 杀软 ID或者csrss.exe ,notepad.exe 等可信进程

    1.6K30

    Linux进程——Linux进程进程优先级

    如果对前面Linux进程不太熟悉可以先阅读: Linux进程 本篇主要内容: 僵尸进程和孤儿进程 Linux进程优先级 1. 僵尸进程 僵尸进程就是处于僵尸状态下进程!...所以,只要子进程退出,父进程还在运行,但父进程没有读取子进程状态,子进程进入Z状态 僵尸状态就是Linux状态中X死亡状态!...配置进程优先权对多任务环境linux很有用,可以改善系统性能。...NI :NICE值,表示优先级修改数据 NICE其取值范围是-20至19,一共40个级别 Linux进程优先级数值范围:60~99 Linux中默认进程优先级都是:80 Linux是支持动态优先级调整...总结 本篇文章前部分紧贴上篇Linux进程,分析完了Linux下常见进程状态,然后初步了解了Linux进程优先级,而进程优先级与前面内容相差较大,希望大家能够多花点时间理解!

    9110

    LinuxLinux进程控制>进程创建&&进程终止&&进程等待&&进程程序替换

    1.进程创建 1.1 fork函数 在linux中fork函数时非常重要函数,它从已存在进程中创建一个新进程。...else if (ret > 0) { // 异常退出 printf("sig code : %d\n", st & 0X7F); } } } 测试结果: [root@localhost linux.../a.out #等20秒退出 child exit code:10 [root@localhost linux]# ....2节,其它函数在man手册第3节 这些函数之间关系如下图所示 下图exec函数族 一个完整例子: 4.3 简易shell 我们可以综合前面的知识,做一个简易shell 考虑下面这个与shell典型互动...Linux鼓励将这种应用于程序之内模式扩展到程序之间。如下图 一个C程序可以fork/exec另一个程序,并传给它一些参数。这个被调用程序执行一定操作,然后通过exit(n)来返回值。

    13710

    Linux进程控制——Linux进程等待

    前言:接着前面进程终止,话不多说我们进入Linux进程等待学习,如果你还不了解进程终止建议先了解: Linux进程终止 本篇主要内容: 什么是进程等待 为什么要进行进程等待 如何进程等待...进程等待概念: 我们通常说进程等待其实是通过wait/waitpid方式,让父进程(一般)对子进程进行资源回收等待过程,父进程必须等待这个子进程结束后,处理它代码和数据! 2....进程等待必要性 在了解完进程等待概念后,新问题出现了,我们为什么要进行进程等待,进程等待必要性是什么?...父进程创建子进程目的是为了让子进程协助自己完成任务,而父进程需要知道子进程将任务完成得如何。这就需要通过进程等待方式,获取子进程退出信息。 3....总结拓展 拓展一:父进程如何得知子进程退出信息 父进程调用wait()/waitpid()来获取子进程退出信息,调用接口就传入了一个status参数,而父进程中存在着一个statusp指针

    9110
    领券