C/C++工程师面试题(操作系统篇)

简介: C/C++工程师面试题(操作系统篇)



进程和线程的区别

进程:是操作系统资源分配的基本单位,进程有独立的地址空间,一个进程当中可以用多个线程

线程:是操作系统任务调度的基本单位,没有独立的地址空间,但需要有满足任务调度的最基本的资源(保存现场,恢复现场),即栈,寄存器。一个进程里的多个线程可以共享该进程的所有资源。

进程间通信的方式有哪些

  1. 无名管道
  2. 有名管道
  3. 高级管道
  4. 消息队列
  5. 信号
  6. 信号量
  7. Socket
  8. 共享内存(最快)

线程间通信的方式有哪些

  1. 锁机制
  2. 互斥锁
  3. 信号
  4. 信号量
  5. 条件变量
  6. 管道
  7. 共享内存

产生死锁的四个必要条件

  1. 互斥:一个资源每次只能被一个进程使用
  2. 不可剥夺:进程已获得的资源,在末使用完之前,不能强行剥夺
  3. 占有且等待:一个进程因请求资源而阻塞时,对已获得的资源保持不放
  4. 循环等待:若干进程之间形成─种头尾相接的循环等待资源关系
目录
相关文章
|
5天前
|
存储 网络协议 安全
30 道初级网络工程师面试题,涵盖 OSI 模型、TCP/IP 协议栈、IP 地址、子网掩码、VLAN、STP、DHCP、DNS、防火墙、NAT、VPN 等基础知识和技术,帮助小白们充分准备面试,顺利踏入职场
本文精选了 30 道初级网络工程师面试题,涵盖 OSI 模型、TCP/IP 协议栈、IP 地址、子网掩码、VLAN、STP、DHCP、DNS、防火墙、NAT、VPN 等基础知识和技术,帮助小白们充分准备面试,顺利踏入职场。
17 2
|
5月前
|
存储 调度 C++
【操作系统】进程与线程的区别及总结(非常非常重要,面试必考题,其它文章可以不看,但这篇文章最后的总结你必须要看,满满的全是干货......)
【操作系统】进程与线程的区别及总结(非常非常重要,面试必考题,其它文章可以不看,但这篇文章最后的总结你必须要看,满满的全是干货......)
122 1
|
5月前
|
存储 算法 编译器
C++面试题其一
C++文件编译与执行的四个阶段 预处理:处理#include、#define等预处理指令。 编译:将源码翻译为目标代码。 汇编:将目标代码转换为机器指令。 链接:将目标文件和库文件合并生成可执行文件。 STL中的vector的实现,是怎么扩容的? vector通过动态数组实现,当容量不足时,分配更大的内存(通常是原来的两倍),复制旧数据到新内存,并释放旧内存。
82 2
|
5月前
|
存储 程序员 编译器
C++面试题其二
extern "C" 用于告诉编译器按照C语言的链接方式处理代码,通常用于C++代码与C代码混合编程,以防止因名字修饰(name mangling)引起的链接错误。例如: extern "C" { void c_function(); } 通过这些问题的深入理解和解答,能够更好地掌握C++编程的核心概念和实际应用,为面试做好充分的准备。
73 1
|
3月前
|
缓存 网络协议 算法
这些年背过的面试题——网络和操作系统基础篇
本文是技术人面试系列网络和操作系统基础篇,面试中关于网络和操作系统基础都需要了解哪些内容?一文带你详细了解,欢迎收藏!
|
3月前
|
网络协议 网络架构
OSPF邻居关系建立失败?揭秘网络工程师面试中最常见的难题,这些关键步骤你掌握了吗?网络配置的陷阱就在这里!
【8月更文挑战第19天】OSPF是网络工程中确保数据高效传输的关键协议。但常遇难题:路由器间无法建立OSPF邻居关系,影响网络稳定并成为面试热点。解决此问题需检查网络连通性(如使用`ping`),确认OSPF区域配置一致(通过`show running-config`),校准Hello与Dead计时器(配置`hello`和`dead`命令),及核查IP地址和子网掩码正确无误(使用`ip address`)。系统排查上述因素可确保OSPF稳定运行。
71 2
|
3月前
|
消息中间件 存储 缓存
面试准备-操作系统
面试准备-操作系统
|
3月前
|
运维 Kubernetes 关系型数据库
云计算运维工程师面试技巧
【8月更文挑战第6天】
384 1
|
5月前
|
存储 网络协议 编译器
【干货总结】Linux C/C++面试知识点
Linux C/C++基础与进阶知识点,不仅用于面试,平时开发也用得上!
591 13
|
4月前
|
算法 网络协议 Linux