Linux 进程相关概念

news2024/9/23 21:27:33

用以下指令查找正在运行的进程,并使用 grep 过滤出包含 "int" 的行。 "ps -aux" 显示当前系统上所有用户的进程列表,而 grep 命令则筛选出包含 "int" 的行。

ps -aux|grep int

p代表process进程

1.什么是程序,什么是进程,有什么区别?

        程序是静态的概念,gcc xxx.c –o pro 磁盘中生成pro文件,叫做程序。

        进程是程序的一次运行活动, 通俗点意思是程序跑起来了,系统中就多了一个进程。

2.如何查看系统中有哪些进程?

        a.使用ps指令查看 实际工作中,配合grep来查找程序中是否存在某一个进程。

        b.使用top指令查看,类似windows任务管理器。

3.什么是进程标识符?

        每个进程都有一个非负整数表示的唯一ID, 叫做pid,类似身份证

        Pid=0:  称为交换进程(swapper) 作用—进程调度。

        Pid=1:init进程 作用—系统初始化。

编程调用getpid函数获取自身的进程标识符 getppid获取父进程的进程标识符。

4.什么叫父进程,什么叫子进程?

        进程A创建了进程B 那么A叫做父进程,B叫做子进程,父子进程是相对的概念,理解为人类中的父子关系。

C程序的存储空间分配可以分为以下几个部分:

  1. 代码区(Text Segment):代码区存储程序的机器代码,也就是编译后的可执行指令。这部分通常是只读的,并且在程序运行时不可修改。

  2. 数据区(Data Segment):数据区包含两部分:

    • 全局初始化数据区(Initialized Data Segment):存储全局变量和静态变量以及被显式初始化的变量。
    • 全局未初始化数据区(Uninitialized Data Segment):也称为 BSS 区(Block Started by Symbol),存储未初始化的全局变量和静态变量,这些变量在程序开始执行之前会被系统初始化为零或空值。
  3. 堆区(Heap Segment):堆区是动态分配的内存区域,在程序运行时由程序员手动分配和释放。通过函数如 malloc()calloc()realloc() 来进行内存分配,通过 free() 来释放已分配的内存。堆区通常在程序运行时动态增长和缩减。

  4. 栈区(Stack Segment):栈区用于存储函数的局部变量、函数参数、以及函数调用的返回地址等信息。栈是一种先进后出的数据结构,它的大小是固定的,由系统预先分配。栈区的内存分配和释放是由系统自动管理的,通过函数调用和返回来控制栈上数据的生命周期。

  5. 命令行参数和环境变量:这部分存储了程序运行时传递给它的命令行参数和环境变量。

调用fork函数后发生了什么?

  1. 创建子进程:操作系统会复制调用进程(父进程)的地址空间,包括代码段、数据段等。这样就创建了一个全新的子进程,但是它拥有与父进程完全相同的执行状态和代码。

  2. 分配新的进程ID:子进程会被分配一个新的进程ID,这个ID是操作系统为了标识进程而分配的唯一标识符。

  3. 父子进程返回:在父进程中,fork() 返回子进程的进程ID,这个值是一个正整数,表示新创建的子进程的进程ID。而在子进程中,fork() 返回0,用于标识它是子进程。

  4. 执行后续代码:在父子进程中,fork() 后面的代码会继续执行。由于父子进程在此时的状态完全相同,它们会从同一个地方继续执行代码。

  5. 并发执行:父子进程会并发执行各自的代码。它们是独立的进程,各自有自己的执行上下文和内存空间。因此,它们可以并行执行不同的任务。

#include <stdio.h>
#include <sys/types.h>
#include <unistd.h>

int main()
{
        pid_t pid;
        pid_t pid2;
        pid_t retpid;

        pid = getpid(); // 获取进程的唯一ID
        printf("before fork : pid = %d\n", pid);

        retpid = fork(); // fork函数创建一个子进程,返回两个值,在父进程返回子进程的ID
        //在子进程返回0

        pid2 = getpid(); // 父子进程分别获得各自的ID

        if(retpid > 0){
                printf("this is father print%d, retpid = %d\n", pid2, retpid);
        }else{
                printf("this is child print, child pid = %d, retpid = %d\n", pid2, retpid);
        }

        return 0;
}

结果:父进程和子进程的ID不同, 父进程的retpid是子进程的ID,子进程的retpid是0。

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1706520.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

JavaScript(ES6)入门

ES6 1、介绍 ECMAScript 6&#xff08;简称ES6&#xff09;是于2015年6月正式发布的JavaScript 语言的标准&#xff0c;正式名为ECMAScript 2015&#xff08;ES2015&#xff09;。它的目标是使得JavaScript语言可以用来编写复杂的大型应用程序&#xff0c;成为企业级开发语言。…

unity回到低版本报错解决

用高版本2022打开过后的再回到2020就报了一个错。 报错如下&#xff1a; Library\PackageCache\com.unity.ai.navigation1.1.5\Runtime\NavMeshSurface.cs 看了一下是Library&#xff0c;然后我删除了整个Library文件夹&#xff0c;重启启动生成Library&#xff0c;然后还是…

【全开源】在线题库微信小程序系统源码(ThinkPHP+FastAdmin+UniApp)

打造个性化学习平台 一、引言&#xff1a;在线学习的未来趋势 在数字化时代&#xff0c;线上学习已逐渐成为主流。随着移动互联网的普及&#xff0c;小程序以其轻便、快捷、无需安装的特点&#xff0c;成为用户日常学习的新选择。为了满足广大用户对于在线学习的需求&#xf…

分治法(棋盘覆盖问题)

目录 前言 一、棋盘覆盖 二、图示解析 三、代码实现 四、具体分析 总结 前言 有一个 x &#xff08;k>0&#xff09;的棋盘&#xff0c;恰好有一个方格与其他方格不同&#xff0c;称之为特殊方格。现在要用L形骨牌覆盖除了特殊方格以外的其他全部方格&#xff0c;骨牌可以…

2.8万字总结:金融核心系统数据库升级路径与场景实践

OceanBase CEO 杨冰 谈及数字化转型&#xff0c;如果说过去还只是头部金融机构带动效应下的“选择题”。那么现在&#xff0c;我相信数字化转型已经成为不论大、中、小型金融机构的“必答题”。 本文为OceanBase最新发布的《万字总结&#xff1a;金融核心系统数据库升级路径…

【ARM+Codesys案例】基于全志T3+Codesys的快递物流单件分离器控制系统

物流涉及国计民生&#xff0c;是在社会发展中不可或缺的一环。随着社会的改革开放&#xff0c;工业发展迅猛&#xff0c;此时也伴随着物流业的快速发展。电商、快递等行业业务量爆发以及人工成本的不断上涨&#xff0c;自动化输送分拣设备市场呈现井喷式发展。物流行业从传统方…

Linux——Docker容器虚拟化平台

安装docker 安装 Docker | Docker 从入门到实践https://vuepress.mirror.docker-practice.com/install/ 不需要设置防火墙 docker命令说明 docker images #查看所有本地主机的镜像 docker search 镜像名 #搜索镜像 docker pull 镜像名 [标签] #下载镜像&…

navicat连接过的库忘记密码

1、点击文件->导出连接 2、勾选想要知道密码的库 3、打开导出的文件搜索Password 4、复制Password解密 把下面的php代码复制到在线运行php的网站&#xff0c;替换最下面的decrypt(‘B7246A6E64D4F50A563FA20427A47991’)括号里的内容&#xff0c;然后执行php代码&#xff0…

Thinkphp5响应式进销存仓库管理系统

随着企业规模的不断扩大和市场竞争的日益激烈&#xff0c;进销存管理在企业的运营中扮演着越来越重要的角色。为了提高企业的运营效率&#xff0c;降低库存成本&#xff0c;提升客户满意度&#xff0c;越来越多的企业开始引入进销存仓库管理系统。 进销存仓库管理系统是一种集…

洛谷 CF1209D Cow and Snacks

题目来源于&#xff1a;洛谷 题目本质&#xff1a;并查集 解题思路&#xff1a; 我们以每种化为一个点&#xff0c;以每个客人喜欢的两朵花给两朵花连一条无向边。则会出现一定数目的连通块&#xff0c;连通块总个数为 ans。 对每个连通块进行分析&#xff1a;第一个客人买走…

大模型部署推理应用技术浅析

大模型完成预训练后不是就万事大吉了&#xff0c;离推理应用还有很大距离&#xff0c;需要经过微调、部署等一系列工程化工作。尤其是在2B的行业大模型应用中&#xff0c;为解决大模型的幻觉、时效性和推理成本问题&#xff0c;需要建立单一模型之上的体系。模型部署中的技术大…

基于物联网技术的智能家居实训教学解决方案

引言 随着信息技术的飞速发展&#xff0c;&#xff0c;物联网&#xff08;IoT&#xff09;已深入至我们生活的每一个角落&#xff0c;从智能家居、智能健康、智能交通到智慧城市&#xff0c;无所不在。物联网技术已成为推动社会进步和产业升级的重要力量。智能家居作为物联网技…

【最新更新】上市公司-全要素生产率(1999-2023年)(数据+5种方法测算)

上市公司的全要素生产率是指在一定时期内&#xff0c;上市公司通过使用各种生产要素(包括资本、劳动力、技术等)所创造的价值。它是衡量上市公司经营绩效的重要指标之一&#xff0c;可以反映出公司的生产效率和创新能力。全要素生产率的计算方法有很多种&#xff0c;其中最常见…

【堡垒机小知识】堡垒机和接口机的重要区别分析

在企业IT架构管理中&#xff0c;接口机和堡垒机各自扮演着不可或缺的角色。但不少IT小伙伴对于两者不是很了解&#xff0c;不知道两者之间有什么区别&#xff0c;今天我们就来一起分析一下。 堡垒机和接口机的重要区别分析 1、功能区别 接口机主要用于数据库层面的数据交换和…

大学运动康复试题及答案,分享几个实用搜题和学习工具 #其他#职场发展

大学生除了学习专业知识外&#xff0c;还应该关注和学习一些软技能&#xff0c;如沟通能力、团队合作和领导力等&#xff0c;以提升自己的综合素质。 1.滴墨书摘 这款软件相当于一个在线“摘抄本”&#xff0c;我们可以利用它来记录一些阅读时遇到的好句子或者是段落&#xf…

【Linux】使用 s3fs 挂载 MinIO 桶

s3fs&#xff08;S3 File System&#xff09;是一个基于FUSE&#xff08;Filesystem in Userspace&#xff09;的用户空间文件系统&#xff0c;可以将Amazon S3存储桶挂载到本地文件系统。通过s3fs&#xff0c;我们可以像操作本地文件一样&#xff0c;对S3存储桶中的数据进行读…

关于如何通过APlayer+MetingJS为自己的wordpress博客网页添加网易音乐播放器(无需插件)

本文转自博主的个人博客&#xff1a;https://blog.zhumengmeng.work,欢迎大家前往查看。 原文链接&#xff1a;点我访问 序言&#xff1a;最近在网上冲浪&#xff0c;发现大家的博客大部分都有一个音乐播放器能够播放音乐&#xff0c;随机我也开始寻找解决方法。可是找来找去我…

磁盘问题——外部、动态,无法读取

今天&#xff0c;小编又遇到事了&#xff0c;给同事换个电脑&#xff0c;要把他原来的硬盘拆过去&#xff0c;一开始电脑都准备好了&#xff0c;就差拆他的硬盘了&#xff0c;结果装过去&#xff0c;问题来啦&#xff01;如下图所示&#xff1a; 这下可咋搞呢&#xff01;我先用…

[STM32+HAL]LD-1501MG舵机二次开发指南

一、准备材料 核心板&#xff1a;STM32F407ZGT6 舵机&#xff1a;LD-1501MG数字舵机 控制器&#xff1a;24路PWM舵机控制器 二、HAL库配置 开启串口与控制器通信 三、Keil填写代码 1、Servo.c #include "Servo.h" #include "usart.h"uint8_t Message…

SQLI-labs-第二十六关和第二十六a关

目录 第二十六关 1、判断注入点 2、判断数据库 3、判断表名 4、判断字段名 5、获取数据库的数据 第二十六a关 第二十六关 知识点&#xff1a;绕过and、or、空格、注释符等过滤 思路 通过源代码&#xff0c;我们可以知道&#xff0c;数据库对用户的输入进行了过滤&…