Linux操作系统常见面试题

前言

作者:小蜗牛向前冲

名言:我可以接受失败,但我不能接受放弃

  如果觉的博主的文章还不错的话,还请点赞,收藏,关注👀支持博主。如果发现有问题的地方欢迎❀大家在评论区指正

分享常见的操作系统面试题

 1、进程和线程用知道吗?二者有什么区别

答:

  • 进程是操作系统分配资源的基本单位:进程拥有独立的内存空间和其他系统资源,如文件句柄、网络连接等。操作系统为每个进程分配资源,并且进程之间的资源是相互独立的。

  • 线程是CPU调度的基本单位:线程是进程内的一个执行单元,一个进程可以包含多个线程,线程之间共享进程的地址空间和资源。CPU调度通常是以线程为单位进行的。

  • 进程间相互独立,一个进程崩溃不会影响其他的进程;而一个线程崩溃,可能会导致整个进程崩溃:进程的独立性意味着一个进程的异常终止通常不会影响其他进程。但是,由于线程共享同一进程的资源,如果一个线程出错,可能会影响进程内的其他线程,甚至导致整个进程崩溃。

  • 进程切换开销非常大,线程切换开销较小:进程切换涉及到上下文切换,包括切换内存空间、CPU寄存器等,因此开销较大。线程之间的切换,由于共享了进程的内存空间,通常只需要切换线程上下文(如寄存器、程序计数器等),因此开销相对较小。

2、进程间是如何进行通信的

答:

  •  管道:用于可以在具有亲缘关系的进程间通信,分为匿名管道和命名管道,匿名管道只能在父子进程间使用,而命名管道可以在没有亲缘关系的进程间使用。
  • 消息队列:通过消息的方法进行通信,消息可以在进程间异步传递。
  • 共享内存:允许多个进程共享一块内存区域,进程间可以读写共享内存从而传递信息。
  • 信号:用于通知进程发生了某种事件。
  • 信号量:用于进程间同步,控制共享资源的访问,PV操作。
  • 套接字:通过套接字进行通信,可进行网络通信也可以进行本地通信。
  • 文件:进程间也可以读写文件内容进行通信。

3、僵尸进程知道吗?如何去解决。那孤儿进程呢?

答 

僵尸进程指的是,子进程退出了,但是父进程没有调用wait或者waitpid函数来读取子进程回收的状态,导致子进程的资源一直没有被释放。

解决方法: 

  • 父进程及时回收子进程资源:及时调用 wait()waitpid() 函数来获取子进程的退出状态,从而清理掉僵尸进程
  • 设置SIGCHLD的信号处理器:父进程捕抓到SIGHLD(子进程退出时,给父进程的发生的信号)这样,父进程不必阻塞在 wait() 调用中,能以异步方式处理子进程的退出

孤儿进程:指的是父进程在子进程之前退出, 子进程会被1号的进程给领养。

 4、进程有哪些状态知道吗?

答:进程有6种状态 

  • 新建状态: 一个进程被创建时,操作系统为其分配必备的资源。
  • 就绪状态:一个进程创建完毕,等待 CPU分配时间片来执行任务。
  • 运行状态:进程在执行任务。
  • 阻塞状态:进程在执行过程中等待某些事件发生,它会进入阻塞状态。等待事件的到来。
  • 挂起状态:时系统可能会将一个进程挂起,即将其移到内存之外并保存其状态。
  • 终止状态:进程执行完毕或被强制终止后,会进入终止状态。

 5、进程是如何切换的?

 答:当操作系统要将一个进程切换到另外一个进程,通常要执行以下操作

保存当前进程的上下文:如一些寄存器,当前进程的堆栈指针,其实这些信息都保存着进程控制快(PCB)中。

更新进程的状态: 把当前进程的状态更改为就绪或者阻塞状态。

选择新的进程:根据调度算法(如先来先服务,优先级调度等),从就绪队列选择一个进程交给CPU去调度。

恢复进程的上下文:操作系统需要重新加载新进程的上下文信息,如寄存器,堆栈指针。

 

 

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

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

相关文章

原创~尚未发表!基于改进秃鹰算法的多区域微网经济优化调度程序代码!

前言 随着光伏、风电等分布式电源的发展,配电网的供电模式得以改变,解决了传统火力发电带来的能源匮乏及环境污染问题,但其发电的随机性及波动性对配电网的稳定运行造成一定影响。以多个微电网组成的微电网群可有效消纳分布式电源&#xff0…

Anthropic公开Claude AI系统提示词

🦉 AI新闻 🚀 Anthropic公开Claude AI系统提示词 摘要:Anthropic公司近日公开了Claude AI模型的系统提示词,旨在提高AI模型对人类指令的理解。系统提示词设定了对话背景和行为规则,通常是为了防止模型出现不良行为。…

Python数据分析利器之groupby和pivot_table使用详解

概要 在数据分析的过程中,数据聚合与数据透视是两项非常重要的操作。Python的Pandas库提供了强大的工具——groupby和pivot_table,帮助我们高效地进行数据聚合和透视分析。本文将详细介绍如何使用这两个功能,并结合示例代码展示它们的实际应用,帮助更好地掌握数据分析的技…

PTA团体程序设计天梯赛

这次题目出得比前几次简单很多,但有几道题占用的时间太多,导致后面几题仓促写完,未能全部正确,还是得多练 目录 L1-2 九牛一毛 L1-3 小孩子才做选择,大人全都要 L1-5 试试手气 L1-6 打PTA L1-8 随机输一次 L2-…

C++ 类和对象 3

构造函数扩展 构造函数体内的赋值:构造函数一般是用于类对象的初始化的,但严谨来说并不是成员变量的初始化,内置类型的初始化是在生成的同时赋值而且仅有一次,但是在构造函数体内是能对成员变量进行多次赋值的。所以在函数体内的…

探索OpenCV:图像处理基础与实践

探索OpenCV:图像处理基础与实践 前言图像读取基础安装OpenCV库读取彩色与灰度图像 RGB颜色模型颜色通道解析单通道图像显示 感兴趣区域(ROI)图像处理进阶技巧图像打码图像组合图像缩放 结语 前言 在当今数字化时代,图像不仅是我们…

详谈进程等待

目录 前言1. 进程等待的必要性1.1 进程等待的定义 2. 如何进行进程等待2.1 wait 单进程2.2 wait 多进程2.3 status && 退出情况2.3.1 status 参数构成2.3.2 简证 status 参数构成2.3.3 进程等待失败2.3.4 宏调用查看退出信息 3. 进程等待的原理 前言 本篇文章继上一篇…

Hive SQL

一、基本数据类型 tinyint 1byte 有符号整数 smallint 2byte 有符号整数 int 4byte 有符号整数 bigint 8byte 有符号整数 boolean 布尔类型,true或者false float 单精度浮点数 double 双精度浮点数 decim…

C语言07---指针进阶

指针万能拆解法 char型指针 char型指针实质上跟别的类型的指针并无本质区别,但由于C语言中的字符串以字符数组的方式存储,而数组在大多数场合又会表现为指针,因此字符串在绝大多数场合就表现为char型指针。 定义: char *p &qu…

区块链国赛第六套样题(关于运维)

任务1-2:区块链系统部署与运维 围绕食品安全溯源区块链平台部署与运维需求,进行项目相关系统、节点以及管理工具的部署工作。通过监控工具完成对网络、节点服务的监控。最终利用业务需求规范,完成系统日志、网络参数、节点服务等系统结构的维…

Hadoop的HA配置与实现(ZooKeeper)

目录 一、Hadoop的HA架构二、配置实现Hadoop的HA三、效果 一、Hadoop的HA架构 集群规划 112:NameNode1 ResourceManager1 JournalNode1 113:NameNode2 ResourceManager2 JournalNode2 114:DataNode1 NodeManager1 115:DataNode2 N…

linux 云主机下载 rpm 包安装 oracle java jdk21 实录(华为云 EulerOS)

本来是想通过 yum install 相关的 openjdk 版本的, 但老是提示说找不到, 也不想去配置相关的仓库了, 所以改成去 oracle 官网下载 jdk21 的 rpm 包来安装. 云主机是华为云的 EulerOS , 具体为 Huawei Cloud EulerOS 2.0 标准版 64位(公共镜像), 相对于用的比较熟 centos, 差别…

学习之在window上安装MySQL server 并连接到Navicat

一、下载 下载地址:https://www.mysql.com/ 二、安装 1、双击软件安装2、点击yes

云计算实训36——mysql镜像管理、同步容器和宿主机时间、在容器外执行容器内命令、容器的ip地址不稳定问题、基础镜像的制作、镜像应用

一、线上考试系统的数据虚拟化技术部署 1.部署前段服务器 步骤一:将资源上传到服务器 将dist.zip上传给服务器 下载unzip的包 yum -y install unzip 解压 unzip dist.zip 步骤二:创建基础容器在服务器上 启动服务 systemctl start docker.servic…

用 Go 语言实现常见的十大排序算法(上)

十大常见的排序算法有: 冒泡排序(Bubble Sort) 选择排序(Selection Sort) 插入排序(Insertion Sort) 希尔排序(Shell Sort) 归并排序(Merge Sort&#xf…

<数据集>考场行为识别数据集<目标检测>

数据集格式:VOCYOLO格式 图片数量:2192张 标注数量(xml文件个数):2192 标注数量(txt文件个数):2192 标注类别数:2 标注类别名称:[cheating, good] 序号类别名称图片数框数1cheating128214412good1067…

气膜建筑与装配式建筑的对比分析—轻空间

在现代建筑中,气膜建筑和装配式建筑都作为新型建筑形式受到关注。然而,在很多应用场景中,气膜建筑展现出了比装配式建筑更为明显的优势。以下将着重对比气膜建筑相较于装配式建筑的独特优势。 气膜建筑的突出优势 1. 更快的施工速度 气膜建筑…

在 Debian 上安装 IntelliJ IDEA 笔记

在 Debian💩 上安装 IntelliJ IDEA 💡 笔记 下载安装 JDK17安装 IntelliJ IDEA Community添加桌面启动项(快捷方式) 参考资料 下载 两个包已经下好了,一个JDK17,一个IntelliJ IDEA Community 使用 wget ur…

微信对话开放平台接口源码分享

文章目录 📖 介绍 📖🏡 演示环境 🏡📒 接口源码 📒⚓️ 相关链接 ⚓️📖 介绍 📖 微信对话开放平台是微信官方授权的智能对话技术平台,旨在帮助开发者及非开发者快速搭建智能对话机器人(智能客服),并轻松接入微信公众号、小程序、企业微信等微信生态中的各…

netty编程之UDP

写在前面 源码 。 UDP,user datagram protocol,是internet协议簇中无连接的传输协议,因为无连接所以相比于TCP需要维护更少的信息以及网络交互,所以具有更高的效率。本文看下netty是如何实现的,和TCP方式差别不大,下面…