Linux僵尸进程理解作业详解

news/2024/4/26 21:08:09/文章来源:https://blog.csdn.net/m0_64388758/article/details/129211776

1

下面有关孤儿进程和僵尸进程的描述,说法错误的是?

A.孤儿进程:一个父进程退出,而它的一个或多个子进程还在运行,那么那些子进程将成为孤儿进程。

B.僵尸进程:一个进程使用fork创建子进程,如果子进程退出,而父进程并没有调用wait或waitpid获取子进程的状态信息,那么子进程的进程描述符仍然保存在系统中。这种进程称之为僵死进程。

C.孤儿进程将被init进程(进程号为1)所收养,并由init进程对它们完成状态收集工作。

D.孤儿进程和僵尸进程都可能使系统不能产生新的进程,都应该避免

僵尸进程:子进程先于父进程退出,父进程没有对子进程的退出进行处理,因此子进程会保存自己的退出信息而无法释放所有资源成为僵尸进程导致资源泄露。

孤儿进程:父进程先于子进程退出,子进程成为孤儿进程,运行在后台,父进程成为1号进程(而孤儿进程的退出,会被1号进程负责任的进行处理,因此不会成为僵尸进程)

根据以上对两种特殊进程的理解分析选项:

  • A选项正确,父进程退出后,所有子进程都会成为孤儿进程;
  • B选项正确,僵尸进程的产生就是因为父进程没有对子进程的退出进行处理,因此子进程无法完全释放资源
  • C选项正确,子进程成为孤儿进程后被1号进程收养,并且他们的退出状态由1号进程完成处理
  • D选项错误,僵尸进程的产生会造成资源泄露需要避免,但是孤儿进程的产生一般都是具有目的性的,并且退出后并不会成为僵尸进程,因此无需特殊处理。

2

关于僵尸进程,以下描述正确的有?

A.僵尸进程必须使用waitpid/wait接口进行等待

B.僵尸进程最终会自动退出

C.僵尸进程可以被kill命令杀死

D.僵尸进程是因为父进程先于子进程退出而产生的

 

僵尸进程是指先于父进程退出的子进程程序已经不再运行,但是因为需要保存退出原因,因此资源没有完全释放的进程,

它不会自动退出释放所有资源,也不会被kill命令再次杀死

僵尸进程会产生资源泄露,需要避免

避免僵尸进程的产生采用进程等待(wait/waitpid)方式完成

根据以上理解分析:

  • A选项正确,僵尸进程会造成资源泄露,必须使用wait/waitpid接口进行等待处理
  • B选项错误,僵尸进程不会完全释放资源退出
  • C选项错误,僵尸进程是已经退出运行的进程,无法被杀死
  • D选项错误,僵尸进程是子进程先于父进程退出。

3

以下关于孤儿进程的描述正确的有

A.父进程先于子进程退出,则子进程成为孤儿进程

B.孤儿进程会产生资源泄漏

C.孤儿进程运行在系统后台

D.孤儿进程没有父进程

 

孤儿进程:父进程先于子进程退出,子进程运行在后台,其父进程成为1号进程,退出后由1号进程回收资源,因此不会成为僵尸进程,而是直接释放所有资源

孤儿进程的产生一般都会带有目的性,比如我们需要一个程序运行在后台,或者我们不想一个进程退出后成为僵尸进程之类的需要

根据以上理解分析:

  • A选项正确:父进程先于子进程退出,子进程就会成为孤儿进程
  • B选项错误:孤儿进程退出不会成为僵尸进程,因此也不会资源泄露
  • C选项正确:孤儿进程是运行在后台的
  • D选项错误:孤儿进程也有父进程,父进程是1号进程

4

请问孤儿进程会被以下哪一个系统进程接管?

A.syslogd

B.init

C.sshd

D.vhand

 

孤儿进程:子进程先于父进程退出,运行在后台,父进程成为1号init进程(在centos7中1号进程改名为systemd进程),退出后由1号进程回收资源

  • syslogd:系统中的日志服务进程
  • init:init进程是内核启动的第一个用户级进程,用于完成处理孤儿进程以及其他的一些重要任务。
  • sshd:远程登录服务进程
  • vhand:内存置换服务进程

5

以下描述错误的有

A.守护进程:运行在后台的一种特殊进程,独立于控制终端并周期性地执行某些任务。

B.僵尸进程:一个进程 fork 子进程,子进程退出,而父进程没有 `wait`/`waitpid`子进程,那么子进程的进程描述符仍保存在系统中,这样的进程称为僵尸进程。

C.孤儿进程:一个父进程退出,而它的一个或多个子进程还在运行,这些子进程称为孤儿进程。(孤儿进程将由 init 进程收养并对它们完成状态收集工作)

D.精灵进程:精灵进程退出后会成为僵尸进程

 

僵尸进程:子进程先于父进程退出,父进程没有对子进程的退出进行处理,因此子进程会保存自己的退出信息而无法释放所有资源成为僵尸进程导致资源泄露。

孤儿进程:父进程先于子进程退出,子进程成为孤儿进程,运行在后台,父进程成为1号进程(而孤儿进程的退出,会被1号进程负责任的进行处理,因此不会成为僵尸进程)

守护进程&精灵进程:这两种是同一种进程的不同翻译,是特殊的孤儿进程,不但运行在后台,最主要的是脱离了与终端和登录会话的所有联系,也就是默默的运行在后台不想受到任何影响

根据以上理解分析:

  •   D错误:精灵进程其实和守护进程是一样的,不同的翻译叫法而已,它的父进程是1号进程,退出后不会成为僵尸进程

6

使用shell时,默认的环境变量放在哪里?

A.~/.bash_profile

B.~/.bash

C./etc/profile.d

D.~/bash

 

  • ~/.bash_profile:用户级的环境配置文件,每个用户目录下都会具有各自的,在用户每次登录系统时被读取,里面所有命令都会被shell执行。包括环境变量的配置命令,因此A正确
  • ~/.bash 以及 ~/bash 在linux的用户目录中默认是没有这两个文件的,因此也就不清楚其作用了,因此B和D都是错误的
  • /etc/progile.d 这是个目录或者说文件夹,其中包含了系统级的环境配置文件,任意用户登录时都会执行这个目录下的环境配置文件完成环境配置,但是要注意这个是目录并不是保存环境变量配置的配置文件,因此D错误

7

以下哪些命令可以查看环境变量 [多选] 

A.echo

B.env

C.set

D.export

 

  • echo 用于输出打印一个变量的内容,包括环境变量
  • env 用于打印所有环境变量信息
  • set 用于输出打印所有环境配置以及变量信息,不限于环境变量
  • export用于设置环境变量

根据题意,选择D,因为D并不是用于查看环境变量的操作。

8

以下描述正确的有 [多选]

A.子进程默认会复制拥有与父进程相同的环境变量

B.环境变量使shell运行环境配置变的更加复杂

C.环境变量可以使用export命令设置

D.删除一个环境变量可以使用unset和rm命令

 

A和D选项正确,根据选项理解功能即可。

  •  B选项错误 环境变量设置之后,不需要重启shell,也不需要重新加载文件,只要设置换环境变量就能直接生效,因此可以使运行环境的配置更加灵活简单
  •  D选项错误 rm只是普通的文件操作指令,无法删除环境变量

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

如若内容造成侵权/违法违规/事实不符,请联系dt猫网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

二叉树——堆

一,树的概念及结构 1.树 4.结点的度:一个节点含有子树的个数称为该结点的度;如:A 的度为6. 5.叶节点或终端节点:度为0的节点称为叶节点;如:B 6.非终端结点或分支节点:度部位0的结…

MySQL基础知识-刷题笔记

数据库刷题笔记 查漏补缺,面试八股文,以下内容未说明的均以MySQL数据库为准 where 不能和聚合函数一起使用 having可以和聚合函数一起使用 having必须与group by一起使用1、SUBSTRING_INDEX(str ,substr ,n):返回字符substr在str中第n次出现位…

【强化学习】强化学习数学基础:贝尔曼公式

强化学习数学基础:贝尔曼公式强化学习的数学原理课程总览贝尔曼公式(Bellman Equation)一个示例状态值贝尔曼公式:推导过程贝尔曼公式:矩阵-向量形式(Matrix-vector form)贝尔曼公式&#xff1a…

基于合作型Stackerlberg博弈的考虑差别定价和风险管理的微网运行策略研究(Matlab代码实现)

💥💥💞💞欢迎来到本博客❤️❤️💥💥 🏆博主优势:🌞🌞🌞博客内容尽量做到思维缜密,逻辑清晰,为了方便读者。 ⛳️座右铭&a…

从网易到支付宝,3年外包生涯做完,我这人生算是彻底废了......

我为什么一直做外包呢,原因是薪资和技术方面。 在华三做了一年外包,薪资5k,功能测试,接触Linux和网络,但是说实在的技术很难沉淀,就像雾里看花一样,过年之后,想走的人都走了&#x…

【vue2小知识】实现axios的二次封装

🥳博 主:初映CY的前说(前端领域) 🌞个人信条:想要变成得到,中间还有做到! 🤘本文核心:在vue2中实现axios的二次封装 目录 一、平常axios的请求发送方式 二、axios的一次封装…

造成android UI卡顿的原因及解决方法

Android 系统每隔 16ms 会发出 VSYNC 信号重绘界面(Activity)。之所以是 16ms,是因为 Android 设定的刷新率是 60FPS(Frame Per Second),也就是每秒 60 帧的刷新率,约合 16ms 刷新一次。如果UI线程的执行时间超过16ms,则会产生丢帧…

【log】操作类日志处理 与 报错类日志处理logback

文章目录一、操作类日志处理【环绕增强】aop环绕增强导包第一步:自定义注解interface第二步:在Controller写一个测试的方法:第三步:编写LogAspect增强类与增强方法日志写入数据库(使用mybatis)第一步&#…

MyBatis快速开发

查询user表中的所有数据 步骤: 创建user表 打开Navicat,新建查询,将下面SQL代码复制粘贴并执行: create database mybatis; use mybatis;drop table if exists tb_user;create table tb_user(id int primary key auto_incremen…

Vue3电商项目实战-商品详情模块6【17-商品详情-标签页组件、18-商品详情-热榜组件、19-商品详情-详情组件、20-商品详情-注意事项组件】

文章目录17-商品详情-标签页组件18-商品详情-热榜组件19-商品详情-详情组件20-商品详情-注意事项组件17-商品详情-标签页组件 目的:实现商品详情组件和商品评价组件的切换 大致步骤: 完成基础的tab的导航布局完成tab标签页的切换样式效果使用动态组件完…

【Rust 日报】2023-2-24 Dioxus 0.3 发布,巨大的更新

ascii-d - 画ASCII示意图的工具Rust写的画ASCII示意图的工具。支持各大平台。程序员的最爱啊。https://github.com/huytd/ascii-d/raw/master/_meta/toolbar-final.gifDioxus 0.3 发布,巨大的更新Dioxus 是新出的与 Yew 类似的 Rust Web 前端框架(为什么…

【华为OD机试模拟题】用 C++ 实现 - 最大相连男生数(2023.Q1)

最近更新的博客 【华为OD机试模拟题】用 C++ 实现 - 货币单位换算(2023.Q1) 【华为OD机试模拟题】用 C++ 实现 - 选座位(2023.Q1) 【华为OD机试模拟题】用 C++ 实现 - 停车场最大距离(2023.Q1) 【华为OD机试模拟题】用 C++ 实现 - 重组字符串(2023.Q1) 【华为OD机试模…

Java-多线程-增强篇-锁强化第3篇

Java集合框架中的锁 今天我们继续来学习锁 字符串操作中的锁 String是线程安全的,因为使用final修饰Stringbuilder 是线程不安全的,其方法没有使用synchronized修饰StringBuffer 是线程安全的,其方法使用synchronized修饰 List集合中的锁 …

内核并发消杀器(KCSAN)技术分析

一、KCSAN介绍KCSAN(Kernel Concurrency Sanitizer)是一种动态竞态检测器,它依赖于编译时插装,并使用基于观察点的采样方法来检测竞态,其主要目的是检测数据竞争。KCSAN是一种检测LKMM(Linux内核内存一致性模型)定义的数据竞争(data race)的工…

【网络原理8】HTTP请求篇

在上一篇文章当中,我们也提到了什么是HTTP。 每一个HTTP请求,都会对应一个HTTP响应。 下面这一篇文章,将聊一下HTTP请求的一些内容 目录 一、URL 第一部分:协议名称 第二部分:认证信息(新的版本已经没有了) 第三部分&#xf…

【数通网络交换基础梳理1】二层交换机、以太网帧、MAC地址详解及数据帧转发原理(爆炸细)

一、网络模型 万年不变,先从模型结构分析,现在大家熟知的网络模型有两种。第一种是,OSI七层模型,第二种是TCP/IP模型。在实际运用中,参考更多的是TCP/IP模型。 OSI七层模型 TCP/IP模型 不需要全部理解,…

Spring MVC 源码- HandlerExceptionResolver 组件

HandlerExceptionResolver 组件HandlerExceptionResolver 组件,处理器异常解析器,将处理器( handler )执行时发生的异常(也就是处理请求,执行方法的过程中)解析(转换)成对…

Python变量的定义和使用

定义:变量就是计算机内存中存储某些数据的位置的名称 形象理解变量就是一个存放东西的容器,该容器的名字就叫做变量,容器存放的东西就是变量的值 变量的组成: 标识:标识对象所储存的内存地址,使用内置函数i…

六千字让你明白什么是数字孪生?

文章目录1. 背景2. 数字孪生基础2.1 概念2.2 价值3. 技术生态3.1 技术体系3.2 核心技术3.2.1 多领域、多尺度融合建模3.2.2 数据驱动与物理模型融合的状态评估3.2.3 数据采集和传输3.2.4 全生命周期数据管理3.2.5 虚拟现实呈现3.2.6 高性能计算3.3 建设3.3.1 重点3.3.1.1 数字孪…

SEATA是什么?它的四种分布式事务模式

一、SEATA是什么? Seata 是一款开源的分布式事务解决方案,致力于提供高性能和简单易用的分布式事务服务。Seata 将为用户提供了 AT、TCC、SAGA 和 XA 事务模式,为用户打造一站式的分布式解决方案。 在继续学习使用SEATA之前,对s…