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

【Linux】进程概念(下)

进程概念 一、环境变量 1. 命令行参数 什么是命令行参数呢?首先我们得先知道,主函数是可以传参的!而这个传给主函数的参数就是命令行参数。...我们平时在 Linux 中写一份代码,想要运行起来首先需要找到这个可执行程序的路径,所以如果这个可执行程序在当前路径下,就需要在前面加上 ./ ,例如下图: 那么通过上面命令行参数的学习,我们知道,Linux...原因是因为 Linux 中的命令可分为两类: 常规命令 常规命令是 shell 命令行解释器进行 fork 让子进程执行的。...这个概念我们以后还会介绍,现在先了解一下。...可以根据下图进行理解: 其中我们的 mm_struct 结构体其实真正叫做内存描述符;而 vm_area_struct 叫做线性空间;这两个概念合起来才叫做地址空间!

17210

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

前言:在了解完冯诺依曼体系结构和操作系统之后,我们进入了Linux的下一篇章Linux进程,但在学习Linux进程之前,一定要阅读理解上一篇内容,理解“先描述,再组织”才能更好的理解进程的含义。...Linux进程学习基础 本篇主要内容: 进程的概念 通过系统调用获取进程标示符 1....进程的概念 在学习进程之前,大家对进程肯定初步的了解,那么今天我们来深入了解一下 基本概念: 课本概念:程序的一个执行实例,正在执行的程序等 内核观点:担当分配系统资源(CPU时间,内存)的实体。...课本上称之为PCB(process control block),Linux操作系统下的PCB是: task_struct 1.2 CPU对于进程列表的处理 在CPU对进程列表进行处理时,PCB中的数据有时不会被...,让我们来查看一下父进程信息 如果我们直接杀死父进程bash,那么我们的shell会直接挂掉 3.

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

    【Linux】进程概念

    基本概念 课本概念:程序的一个执行实例,正在执行的程序等 内核观点:担当分配系统资源(CPU时间,内存)的实体。...课本上称之为PCB(process control block),Linux操作系统下的PCB是: task_struct task_struct-PCB的一种 在Linux中描述进程的结构体叫做task_struct...task_struct是Linux内核的一种数据结构,它会被装载到RAM(内存)里并且包含着进程的信息。...exe是可执行程序,也就是说我们刚刚的进程是在这个路径下的process加载形成的。...上方中的cwd,指的是进程的当前工作路径。 每个进程在启动的时候,会记录自己当前在哪个路径下启动。 我们把进程跑起来后,它会在当前的工作路径下生成log.txt文件。

    11810

    linux进程的概念和属性

    在 Linux 系统中,进程是指正在运行的程序的实例。每个进程都有自己的内存空间、指令序列和数据结构。进程是 Linux 系统中最基本的管理单元,理解进程的概念和属性对于系统管理和应用开发非常重要。...本文将详细介绍 Linux 进程的概念和属性,包括进程的定义、进程的状态、进程标识符、进程优先级等。 一、进程的定义 在 Linux 系统中,进程是指正在运行的程序的实例。...二、进程的状态 在 Linux 系统中,进程的状态通常可以分为以下几种: 运行状态(Running) 表示进程正在执行指令,使用 CPU 资源。...三、进程标识符 在 Linux 系统中,每个进程都有一个唯一的进程标识符(PID),它是一个非负整数。...四、进程优先级 在 Linux 系统中,每个进程都有一个优先级属性,它决定了进程在 CPU 调度时的优先级。进程优先级的范围是 -20 到 19,其中 -20 表示最高优先级,19 表示最低优先级。

    74431

    Linux进程概念

    进程的概念 进程(Process)是计算机中的一个具有独立功能的程序关于某个数据集合的一次运行活动,是系统进行资源分配和调度的基本单位,是操作系统结构的基础。...书上称之为 PCB(process control block),Linux操作系统下的 PCB 是: task_struct ❓ 我们现在思考一个问题,我们写的程序是放在磁盘中的,当我们想要运行它的时候...2、通过访问 /proc 系统文件夹查看 /proc 是 Linux 下专门用来存放进程的文件夹! 其中这些数字文件夹,其实就是以 PID 为名称的进程!...子进程崩了,父进程照样运行 (自行验证)~ 而这里的**父进程一般情况下其实就是 bash,也就是 Linux 的具体的一种 shell 外壳程序!...但是很奇怪,一个函数,居然返回了两个值~~ 这在语言层面是不能接收的,但是这其实涉及到了系统层面,关于多进程的概念,那么既然有了多个返回值,也就是说其实这是有两个进程在同时执行的,那么来尝试一下下面这个代码

    51830

    【Linux】进程概念

    什么是进程? 进程是操作系统中的一个基本概念,它是正在运行的程序的实例。进程不仅仅是代码,还包括代码执行时所需的资源和状态信息。...简单来说进程=程序的代码和数据+内核数据结构(内核数据结构用于管理进程的资源和状态等信息) 描述进程—PCB 由于上面我们说到进程等于内核数据结构加上自己的代码和数据,这里的数据结构在Linux中叫做task_struct...因为这里创建了一个子进程,子进程和父进程共享同一份代码,但是数据是私有的,所以会产生这样的结果,我们来验证一下是不是。...++和读取,但是父进程只读取,如果是同一份数据的话,那么全局变量两个应该打出来是同一个值,这里我们运行验证一下。...总结 本文从进程的基本概念入手,介绍了进程的组成结构,尤其是PCB(进程控制块)的作用。通过分析 task_struct 的内容,我们了解了进程在内核中的重要数据结构如何帮助管理其状态和资源。

    9810

    Linux进程概念(一)

    Linux进程概念 冯诺依曼体系结构 操作系统 操作系统是什么 操作系统与硬件的关系 操作系统如何管理硬件数据 操作系统与软件的关系 操作系统的安全 操作系统的服务 系统调用和库函数概念 进程的基本概念...进程的基本概念 什么是进程 首先我们要知道,程序是在硬盘中的,想要运行这个程序就要放入内存中,然后通过CUP进行运作。 那么这么多程序加载进来怎么办呢?...那我们查看一下父进程是什么: 这时候发现父进程是一个叫 -bash 的进程,他是一个命令行处理器,那么在处理这个程序的时候创建了一个子进程来运行这个代码,这是为什么呢?...因为如果bash进程亲自运行但是报错就会停止工作,bash都停止工作了,我们后续想继续用Linux系统就无法正常使用了。...他说作用是创建一个子进程,并且有两个返回值。 很奇怪,之前学C/C++语言的时候从未听过如此离谱的话,现在写一个来测试一下。

    44900

    Linux进程概念(二)

    Linux进程概念 进程状态 普通操作系统层面理解 运行与阻塞 挂起与阻塞 Linux是怎么做的 孤儿进程 进程优先级 什么是优先级 如何改变优先级 其他概念 进程状态 进程状态分有: 运行 新建...上面还有一个D,这个不方便演示,它叫做深度睡眠,只有在进程自动停下来或者是断电的情况下进程才会结束。...比如: 在Linux下,一个进程很大的数据,正在写入磁盘中,但是内存是有限的,如果内存满了,操作系统就会找到这个进程并且干掉他,那么数据就很容易丢失,这个时候就出现了深度睡眠,操作系统看到不会管他,除非这个进程运行完毕自己醒来或者是断电...(就像排队用的号一样) Linux下用两个整数来确认优先级的: 运行起来之后用这条指令查看状态:ps -al UID : 代表执行者的身份 PRI :代表这个进程可被执行的优先级,其值越小越早被执行...如果某个进程的PRI太小,CPU分配资源就不均衡。 其他概念 竞争性: 系统进程数目众多,而CPU资源只有少量,甚至1个,所以进程之间是具有竞争属性的。

    1.2K00

    Linux系统-进程概念

    Linux进程概念 零、前言 一、冯诺依曼体系结构 二、操作系统 三、进程 1、描述进程-PCB 2、查看进程 3、获取进程标示符 4、创建进程-fork() 5、进程状态 6、僵尸进程 7、孤儿进程...1、描述进程-PCB 概念: 进程信息被放在一个叫做进程控制块的数据结构中,可以理解为进程属性的集合;在Linux中描述进程的结构体叫做task_struct Linux操作系统下的PCB...概念: cpu资源分配的先后顺序,就是指进程的优先权(priority),优先权高的进程有优先执行权利 配置进程优先权对多任务环境的linux很有用,可以改善系统性能 还可以把进程运行到指定的...值为负值的时候,那么该程序将会优先级值将变小,即其优先级会变高,则其越快被执行 所以调整进程优先级,在Linux下就是调整进程nice值 nice其取值范围是 -20至19 一共40个级别...: 多个进程在一个CPU下采用进程切换的方式,在一段时间之内,让多个进程都得以推进,称之为并发 9、环境变量 概念: 环境变量(environment variables)一般是指在操作系统中用来指定操作系统运行环境的一些参数

    1.1K20

    Linux进程概念(三)

    如果将刚才写的etv程序拷贝到/usr/bin 会不会与ls一样可以直接使用? 这样是可以的,但是非常不建议,因为这个程序相当于安装到了系统中,Linux下拷贝就是安装。...使用之前必须声明一下自己要用environ变量。 进程地址空间 之前有过一张在C/C++语言层面上的地址空间图: 磁盘上面写的程序都是需要先加载到内存里才能运行的,那么这张图是物理方面的内存嘛?...普通进程当然不可能一下子全都使用掉,所以理论上来说每个进程都可以有4GB的空间,但是如果某个进程需要的不是特别多或者是需要的特别多,这个时候操作系统就会调整大小了。...首先来看看进程地址空间是什么原理: 在linux源码当中,地址空间是一个mm_struct的数据结构,大概是这样的 struct mm_struct { uint32_t code_start,code_end...程序在磁盘的时候是有地址的,逻辑地址(在linux当中也可以称为虚拟地址) 在进程指向进程地址空间的时候,CPU去读取指令,main函数,因为每一条指令都是有虚拟地址的,所以就能找到fun函数,还有a

    56500

    Linux之进程概念

    基本概念: 进程说白了其实就是一个程序的执行实例,正在执行的程序。...有时虽然有空闲处理器但是由于待某个时间的发生而无法执行,这一切就说明进程和程序有区别,进程是活动的且状态变化的,所以叫做进程 这里我们具体谈一下进程中的一些状态: Linux源代码中对于一些状态的定义:...进程优先级: 基本概念: 什么是进程优先级?...PRI(new)=PRI(old)+NI; 若NI值为负值,那么PRI变小,优先级变高 调整进程的优先级,在Linux下就是调整NI,即nice值 NI的范围是-20-19,也就是说进程优先级一共分为四十个级别...并发:即多个进程在一个进程下采用进程切换的方式,在一段时间段内,让多个进程都得以共同推进,称之为并发 并行:多个进程在多个CPU下同时进行 环境变量: 基本概念 环境变量一般是指在操作系统中指定操作系统运行环境的一些参数

    11610

    【Linux】进程概念(上)

    进程概念 一、冯诺依曼体系 我们常见的计算机,如笔记本。或者不常见的计算机,如服务器,大部分都遵守冯诺依曼体系。 从输入到输出的顺序是按照上面的数字顺序的。...我们宏观地看待从用户到底层硬件的交互如下图: 简单简述一下上面的过程:首先,我们用户输入的指令,会被 shell外壳 (Linux 中是 bash)作为 “媒介” 接收,然后 shell外壳 会将我们的指令调用系统调用接口...基本概念 进程概念: 所谓进程,简单来说就是在磁盘上的可执行程序加载、拷贝到内存中,就形成了进程,也就是正在执行的程序。 2....描述进程 - PCB 进程信息被放在一个叫做进程控制块的数据结构中,可以理解为进程属性的集合,称之为 PCB(process control block),Linux 操作系统下的 PCB 具体是:task_struct...我们可以查看一下它的 ppid: 我们可以看到,这个居然是 bash,也就是 Linux 中的命令行解释器,所以我们得出一个结论,我们命令行启动的进程,都是 bash 的子进程。

    12710

    linux下的进程控制

    一种简单的方法是在master进程中捕捉导致进程退出的信号,然后在进程退出时向worker进程发送一个SIGTERM信号, 这种实现在大多数情况下都能很好的工作,但是我们发现当我们用 kill -9 master_pid...此时认为当前worker进程已经变成了孤儿进程,需要退出, 这种方法的缺点就是需要轮训父进程的id,效率较低。 类似的,还可以通过一个pipe 实现这样的功能。 首先介绍一下pipe(管道)。...pipe是linux下一种很基础也很古老的IPC形式,它只能用于父子进程或者兄弟进程之间进行通信。...并且只有pipe的读端(fd0)存在的情况下, 向写端(fd1)写入数据时才能成功,否则内核会触发SIGPIPE信号,我们可以捕捉SIGPIPE信号。 利用这一特性,我们也能及时的感知父进程的状态。...,幸运的是,如果我们的程序之运行在linux平台中,则可以使用linux提供了一个函数prctl,函数原型如下: #include int prctl(int option,

    2.1K20

    Linux下获取进程的PID

    Linux系统中常常需要获取进程的pid进行一些操作,而Linux 的交互式 Shell 与 Shell 脚本存在一定的差异,主要是由于后者存在一个独立的运行进程,因此在获取进程 pid 上二者也有所区别...ps 命令ps命令是最常用的Linux命令之一,用于获取当前系统中的进程信息,ps是显示瞬间进程的状态,并不动态连续;如果想对进程进行实时监控应该用top命令。...ps -aux表示显示所有包含其他使用者的行程,一般能够获取到比较详细的进程信息了,ps -ef也表示显示所有进程信息,连同命令行。因此如果想查找一个进程,通常这两个命令就比较全面了。...awk自身的进程。...当然,Linux系统也支持直接查找:最简单的方法是使用pgrep:`pgrep -f name`如果需要查找到 pid 之后kill掉该进程,还可以使用pkill:`pkill -f name`如果是可执行程序的话

    1.1K10

    了解Linux环境下的进程

    进程 1.1 基本概念 当我们编写完代码运行并让代码编译起来时,在当前路径下会出现由代码编译而成的可执行文件.exe。...在教材中一般叫PCB(process control block),Linux操作系统下的PCB是task_struct. PCB是一个结构体,是为了管理加载到内存的程序而产生的。...这里的状态就决定了你的后续动作——不去上课了。在Linux中也是如此,Linux可能存在很多的进程,操作系统要根据它们的状态来决定后续对这些进程的操作。...回答:这就涉及到了进程饥饿的问题了,在Linux下是有相关解决方法的,Linux会维护两个队列,一个为活跃队列,另一个为过期队列,这里就不细讲了。...3.2 进程优先级的基本概念 CPU资源分配的先后顺序,就是指进程的优先级(priority) 优先权高的进程有优先执行权力。配置进程优先级对多任务环境的Linux很有用,可以改善系统的性能。

    10010

    linux下的线程与进程

    用户级线程设计模型: 操作系统核外实现的线程模式, 特点是: 线程调度在核外 速度不如核内 Linux系统采用的是这种 可以比喻为自己的十根手指头需要借助外力才能动 ?...Linux系统下有真正意义的多线程么?...由上面Linux采用的线程设计模型可知,Linux系统并没有真正意义上的多线程 因此, Linux系统里处理多线程不如Windows强悍 Linux系统的两个线程库 LinuxThreads线程库 RedHat...的NPTL 这两个线程库实际上并没有完全按照线程模式进行实现 进程的生命周期 进程的创建及回收 在Android中, ActivityThead的创建预示着进程的创建 进程的级别(由高到低) 前台进程:..., Android内部通过Handler进行轮询检测当前进程的状态,ActivityThread掌控的Activity 的生命周期, 如果栈中无Activity存在, 但是有Service存在的情况下,

    1.8K20

    进程的概念

    1.1独立的硬件  1.2设备之间是相互连接的 设备之间的数据流动,本质上是设备之间的数据的相互拷贝  那么,拷贝的整体速度不就是决定计算机效率的整体指标 。...1.3.3内存是怎么提高计算机效率的呢?  内存就是一个非常大的缓存,介于CPU和外设之间。  所以,在这个体系结构下,计算机的效率就以内存为主。 ...在校长管理我们的时候(也就是希望对我们下决策的时候),他需要我们的信息,来帮助他对于我们来下决策(类似于这学期逃课超过五次的直接回家)。...在这种情况下,校长就需要通过逃课次数来锁定一个人,这时候也就是需要结构体,大量的数据方便存储,以及方便查阅,就需要数据结构。...那么在写C语言时,无论是那个平台都可以使用printf和scanf,那是因为函数库在实现的时候就考虑到了,不同操作系统的兼容性,在不同平台下,调用的是不同的系统调用接口。

    5610

    【Linux】多线程——线程概念|Linux下进程与线程|线程控制

    ---- 二、线程概念 1.线程是什么 在一个程序里的一个执行路线就叫做线程(thread)。...所以在Linux中,可以把进程和线程做一个统一,CPU看到的task_struct称为轻量级进程 在Linux中,什么是线程:CPU调度的基本单位!...Linux下并不存在真正的多线程而是用进程模拟的! 如果OS真的要专门设计“线程”概念,OS那就需要管理线程了:先描述在组织,在Windows下确实是为这个线程专门设计了数据结构表示线程对象TCB。...3.Linux线程是CPU调度的基本单位,而进程是承担分配系统资源的基本单位 4.进程用来整体申请资源,线程用来伸手向进程要资源 5.Linux中没有真正意义的线程。通过进程模拟。...--- 三、Linux下的进程与线程 进程是承担分配系统资源的基本实体,线程是调度的基本单位 线程共享进程数据,但也拥有自己的一部分数据: 线程ID、一组寄存器(存储每个线程的上下文信息)、栈(

    48030

    linux下杀死全部进程,linux下批量杀死进程

    “|”用来隔开两个命令,管道符左边命令的输出会作为管道符右边命令的输入.下面 … linux下批量kill进程的方法 –kill某个用户下的所有进程(用户为test)–pkill # pkill -u...,又多了那个.使用命令taskkill可将这些进程一下子所有杀光: C:\Users\NR>taskkill /F /im fron … Linux下强制杀死进程的方法 常规篇: 首先,用ps查看进程,...批量杀死包含关键字“php-fpm”的进程. kill … linux下查看当前进程以及杀死进程 ###linux下查看当前进程以及杀死进程 查看进程 ps命令查找与进程相关的PID号: ps a :显示现行终端机下的所有程序...下解决Tomcat进程 windows下启动Tomcat报错,8080端口号被占用,报错信息如下 两种解决方法,一种是关闭了这个端口号,另外一种是修改Tomcat下的serv … Linux下查看某个进程打开的文件数...-losf工具常用参数介绍 Linux下查看某个进程打开的文件数-losf工具常用参数介绍 作者:尹正杰 版权声明:原创作品,谢绝转载!

    7.4K30
    领券