进程的调用

2023-05-16

每个进程都有一个非负整数的唯一ID,用pid_t结构表示其ID,其中ID为0的是调度进程,常被称为交换进程。是内核的一部分为系统进程,ID为1的是init进程,他是一个普通用户进程,但用root权限运行。我们可以调用fork函数来分支产生子进程,子进程是父进程的副本,得到其数据空间,推和栈的副本。子进程会用dup函数复制父进程表项,从而实现文件共享,两进程维护同一张文件表项,返回给父进程的是子进程的ID,返回给子进程的是0,子进程可通过getppid得到父进程的ID;
vfork也可产生子进程,其产生的子进程并将父进程的地址空间全部复制到子进程中,在父进程的空间中运行,所以子进程进行调用函数,修改数据等操作都会产生不确定的结果。且其是保证子进程先运行,等他调用exec或exit时,父进程才开始被调度运行。
进程一共有5种正常退出方式与3种异常退出方式,不管进程如何终止,最后都会执行内核中的同一段代码,为相应进程关闭打开的描述符,释放其所用的储存器。因为父进程与子进程执行时间不同,可能父进程先结束,此时子进程的父进程会变成init,等子进程结束,init会调用wait自动保存它的相关信息,若子进程先结束,而父进程没提供相关处理函数wait,waitpid,则此子进程会成为僵死进程,占用系统内存。
wait与waitpid获得的整形常量包含了,子进程的退出状态,信号编号以及有个指示是否产生了core文件,可通过系统定义的宏来进行判断。waitid与waitpid相似但它提供了两个参数来表示要等待的子进程所属的类型。wait3,wait4则允许内核返回由终止进程及所有子进程的资源概况。如CPU时间总量,缺页次数等。
因为父进程与子进程的执行时间并不确定,有可能子进程先执行完,有可能父进程先执行完,可通过多个进程之间某种形式的信号发送与接受的方法,解决该问题。
exec函数可启动另一个程序,用一个磁盘上的新程序来替换当前进程的正文段,数据段,堆段与栈段。
setuid与setgid可设置实际用户ID与实际用户ID,若有root权限,则更改全部的实际用户ID,有效用户ID与保存的设置用户ID。若无,则只能更改有效ID变为uid。其中保存的设置ID可用于权限的该变,在需要提升特权时,可设置程序文件的设置用户ID而得到额外的权限。而不需要时,则返回实际用户的权限,使进程的权限控制更具灵活性。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

进程的调用 的相关文章

  • ubuntu20.04上安装ros及控制小乌龟移动

    目录 一 安装过程二 运行ROS1 2 rqt graph 显示系统计算图 3 rosnode 显示所有节点相关信息 4 使小乌龟做圆周运动rostopic话题控制c语言控制 三 总结 一 安装过程 参考这篇古月居的博客 xff08 非常详
  • ros+opencv的一些安装经验

    记录一些乱七八糟的过程 1 安装ROS时候一般会默认安装opencv3 3 1 xff0c 可以在 opt ros melodic include下看到opencv3 3 1的文件夹 我安装ros后又安装了opencv3 4 2 xff0c
  • 一份工作一年半的java开发个人简历,欢迎拍砖

    一份个人简历 xff0c 大四提前一年出来实习 xff0c 在12306 2020年毕业 xff0c 开始第二份正式工作 从大学毕业 xff0c 只是我学习之路的刚刚开始 简历所写的内容都是真实的 xff0c 一点水分没有 欢迎拍砖 xff
  • 让chatGPT当我的老师如何? 通过和chatGPT交互式学习,了解在ES中,一条JSON数据是如何写到磁盘上的

    最近一直有一个问题 xff0c 如鲠在喉 争取早一天解决 xff0c 早一天踏踏实实的睡觉 问题是 xff1a 在ES中 xff0c 一条JSON数据是如何写入到磁盘上的 xff1f 如何解决这个问题 xff1f 我想到了chatGPT x
  • 借助chatGPT强大的源码理解能力,来快速学习elasticsearch 7.11.1整体源码结构(用chatGPT学源码太香了)

    ES阅读学习源码的难处 es的源码非常之多 能够查阅的资料非常少 如果是我们一行一行的去扒着源码看 xff0c 在我看来至少需要2年的时间 xff0c 并且至少要耗费四分之一的头发 源码读起来很枯燥 xff0c 特别是在我们一头雾水的时候
  • ChatGPT 学习 ES & lucene 底层写入原理,源码

    一直有个疑问 学习最新版lucene 数据写入相关的源码 xff0c 应该看哪些源码 xff0c 以什么顺序看 xff08 先看什么 xff0c 后看什么 xff09 xff1f 对于Lucene的数据写入过程 xff0c 可以分为以下几个
  • 想优化ES检索,先了解底层Lucene,Lucene源码结构一览

    Lucene源码结构剖析 前言 有半年没写任何博客了 xff0c 如果不是工作中还是碰到了非常多的挑战 xff0c 我应该不会去花心思研究Lucene源码 xff0c 果然DDL和困难才是第一生产力 xff0c 没错 xff0c 我想写一篇
  • Lucene Query Parser 语法

    lucene的组合条件语法 xff0c 看了网上很多文章 xff0c 真的都太差了 还是官网清晰明了一点 SKIP NAVIGATION LINKS OVERVIEWPACKAGECLASSUSETREEDEPRECATEDHELP PRE
  • 《JAVA并发编程实践JavaConcurrencyinPractice-中文-高清-带书签-完整版(Doug Lea)》

    免责声明 xff1a 全部内容都属于是段友分享 xff0c 我只是属于整理 写在前边 xff0c 个人觉得 弄一个积分下载 xff0c 就是在自掘坟墓 表面上看起来是可以为个人赚积分 xff0c 实际砍掉分享交流的一个途径 对我就是没有积分
  • 《Java核心技术 卷1 基础知识 原书第10版》

    免责声明 xff1a 全部内容都属于是段友分享 xff0c 我只是属于整理 写在前边 xff0c 个人觉得 弄一个积分下载 xff0c 就是在自掘坟墓 表面上看起来是可以为个人赚积分 xff0c 实际砍掉分享交流的一个途径 对我就是没有积分
  • 《高性能mysql第三版》

    免责声明 xff1a 全部内容都属于是段友分享 xff0c 我只是属于整理 写在前边 xff0c 个人觉得 弄一个积分下载 xff0c 就是在自掘坟墓 表面上看起来是可以为个人赚积分 xff0c 实际砍掉分享交流的一个途径 对我就是没有积分
  • idea中maven报错Cannot reconnect

    问题所在 xff1a Maven工程 错误处在pom文件 xff1a 最重要的是学会了怎样在Idea出现错误时 xff0c 发现导致错误的具体原因 xff0c 通过 Helper gt Show Log in Explorer xff0c
  • 用一份JAVA工程师的求职简历来说说求职简历怎么写

    这是一篇我比较想看到的简历指导的文章 但是我比较反对简历造假 我觉得会什么写什么把 可以先看看我的这篇文章 xff1a 刚实习结束 xff0c 就要做面试官 xff0c 谈谈我的想法 自己做过面试官以后 xff0c 自己也总结了一下 xff
  • LiveGBS/LiveNVR等实现安防监控视频Web无插件直播时如何叠加水印文字

    H5直播点播播放器 下载集成入口 xff1a https www liveqing com docs download LivePlayer html 使用说明 xff1a https www liveqing com docs manua
  • OpenMV4开发笔记3-串口通信

    OpenMV4引出了串口3和串口1 xff0c 首先以串口3的收发为例 span class token keyword import span time span class token keyword from span pyb spa
  • FreeRTOS与UCOSIII任务状态对比

    FreeRTOS任务状态 1 运行态 正在运行的任务 xff0c 正在使用处理器的任务 单核处理器中任何时候都有且只有一个任务处于运行态 2 就绪态 已经准备就绪 xff08 非阻塞或挂起 xff09 xff0c 可以立即运行但还没有运行的
  • 白话TCP/IP协议栈

    前言 最近在复习总结计算机基础知识 xff0c 包括操作系统 数据结构 计算机网络等程序员必备的知识 xff0c 这属于程序员的内功 把内功修炼好了 xff0c 外功只是一种形式 xff0c 如果你内功深厚 xff0c 那么无论是用龙抓手还
  • 飞机绕地球问题

    每个飞机只有一个油箱 xff0c 飞机之间可以相互加油 xff08 注意是相互 xff0c 没有加油机 xff09 xff0c 一箱油可以供一架飞机绕地球飞半圈 问 xff1a 为了使至少一架飞机绕地球一圈回到起飞 时候的飞机场 xff0c
  • 【ROS】Gazebo仿真平台安装及问题解决

    Gazebo安装 这里的ROS版本是Melodic xff0c 如果是其他版本的ROS可以修改下面命令的melodic为指定版本 sudo apt get install ros melodic gazebo ros pkgs ros me

随机推荐

  • 激光slam经典开源算法及论文整理

    开源算法 loamLeGO LOAMlio mappingLIO SAMCartographergmappinghector slam 考虑到有些朋友们的网络下载论文可能有问题 xff0c 把论文整理到百度网盘 xff0c 可自行下载 xf
  • Body系下空间平面如何转到World系下

    Body系下空间平面如何转到World系下 题目解法 题目 已知 传感器坐标系 xff08 Body系 xff09 下有一平面P方程为Ax 43 By 43 Cz 43 D 61 0 xff0c 简写为 n
  • cmake: symbol lookup error: cmake: undefined symbol: archive_write_add_filter_zstd 两种解决方法

    centOS8 x86 64 或 aarch64 系统下 yum或dnf 默认安装的 cmake 3 18 2 11 el8版本 xff0c 安装后无法使用 xff0c 出现 xff1a cmake symbol lookup error
  • ROS学习--轻松使用tf

    tf是ROS中建立坐标系 xff0c 并且使用各个坐标间转换关系的一个很好的工具 xff0c 对于非导航专业的同学 xff0c 常常苦恼与各种旋转矩阵的变换 xff0c 自己经常被搞的头大 xff0c 最近由于课题实验的需要 xff0c 尝
  • ROS 下navigation/robot_pose_ekf编译报错

    想要使用navigation下的robot pose ekf做IMU与视觉的融合于是找到了这个包 xff1a https github com ros planning navigation tree indigo devel 但是编译报错
  • 【学习日记】ROS下IMU使用困惑

    最近准备在机器人上测试使用IMU代替机器人的里程计 xff0c 以提高底层的控制周期 由于底层通信的原因 xff0c 使用里程计的话最多能到50HZ xff0c 因为我们的机器人对运动性能要求较高 xff0c 所以无法满足我们的要求 xff
  • ROS学习--如何结合launch文件使用参数服务器

    ROS xff08 Robot Operating System xff09 接触了将近两年了 xff0c 最常用的也就是发布话题与订阅话题 xff0c 前一段时间刚刚把Rviz与 tf搞明白一些 xff0c 都能够多掌握一些东西 xff0
  • 【ROS工具学习】之topic_tools/throttle,改变节点发布频率

    最近老师想做一个实验 xff0c 机器人上搭在Hokuyo单线激光雷达 xff0c Velodyne16线激光雷达 xff0c Kinect2 xff0c Bumblebee xb3等传感器 xff0c 这些传感器做一些实验 xff0c 因
  • 【ROS工具学习】之message_filters:消息同步

    最近实验室老师在做一个多传感器数据采集实验 xff0c 涉及到了消息同步 所以就学习了ROS官网下的消息同步工具message filters http wiki ros org message filters 消息同步有两种方式 xff0
  • ROS中map与costmap的topic数据格式定义

    map与costmap都是以nav msgs OccupancyGrid类型发布其topic 其中整张地图的障碍物信息存放在data数据成员中 xff0c data是一个int8类型的vector向量 xff0c 即一维数组 假设一张pgm
  • Ubuntu 16.04 Qt clang-format 插件安装使用教程

    Ubuntu 16 04 Qt clang format 插件安装使用教程 Qt安装下载安装修改qt环境变量 LLVM安装安装clang format配置qt打开工程文件配置clang format Qt安装 最新的qt5 12支持保存代码
  • HTTP请求首部——Authorization

    前几天的任务需要用到Authorization认证 xff0c 任务比较急 xff0c 就照着给的例子写好了 xff0c 现在任务结束了 xff0c 还是来了解一下这个Authorization Authorization 是一个HTTP安
  • 如何真正理解用户标签体系?

    对用户标签的理解不够透彻 xff1f 用户标签体系创建的方法论总是三头两绪 xff1f 具体业务场景中 xff0c 经常找不到数据分析的思路 xff1f 本文根据神策数据业务咨询师钟秉哲以 构建用户标签体系 xff0c 助力企业精细化运营
  • ubuntu设置tightvncserver自动启动

    vi etc init d vnc bin bash PATH 61 34 PATH usr bin 34 export USER 61 34 root 34 DISPLAY 61 34 1 34 DEPTH 61 34 24 34 GEO
  • 毕业设计小车搭建(1)测试思岚A1雷达数据

    采用的思岚A1型号的雷达 ubuntu系统上采集雷达数据并rviz显示 主要是根据官网给的教程步骤一步一步走下来的 思岚激光雷达 首先下载对应的官方功能包GitHub Slamtec rplidar ros 功能包创建结束后注意环境变量写入
  • 如何关闭docker容器里的进程

    如何关闭docker容器里的进程 1 使用docker exec 容器名 ps ef命令查看进程信息 示例 xff1a 创建名为 34 redis 34 的容器 xff0c 并在容器内部和宿主机中查看容器中的进程信息 xff1a 2 然后进
  • 浅谈嵌入式与互联网(详细)

    纲要 一 什么叫嵌入式 xff0c 以及与人工智能的关系 xff1f 二 嵌入式岗位 三 浅谈嵌入式开发优缺点 四 与互联网 CS相关的 xff0c 如平台服务器 xff0c 前端 APP 软件 对比 五 能力要求和薪资 参考知乎 以下均采
  • 那一年读过的技术经典书

    转载请注明 xff1a http blog csdn net xinzhangyanxiang article details 10199757 大学刚毕业 xff0c 总结起来读过的书并不算多 xff0c 而且主要集中在大四的时期读的 x
  • 关于Ubuntu的串口链接上但接收不了数据问题

    作为开始小白的我 xff0c 一开始链接串口以为按装了CuteCom就能使用 xff0c 不知道使用串口前是需要打开权限的 xff0c 所以我在CuteCom的时候链接上但收不了数据 xff0c 后来才知道打开权限 首先第一步 1 打开你的
  • 进程的调用

    每个进程都有一个非负整数的唯一ID xff0c 用pid t结构表示其ID xff0c 其中ID为0的是调度进程 xff0c 常被称为交换进程 是内核的一部分为系统进程 xff0c ID为1的是init进程 xff0c 他是一个普通用户进程