当前位置: 首页 > news >正文

网站建设大企业房地产企业网站开发

网站建设大企业,房地产企业网站开发,网络优化的三个方法,网站在谷歌怎么做排名Linux 进程与线程核心知识总结本文整理了嵌入式 Linux 软件开发面试中关于进程与线程的高频考点及知识要点,涵盖进程模型、通信方式、IO 模型、内存布局、进程状态等内容,适合查漏补缺或面试前快速复习。1. 异步 IO 与同步 IO 概念对比类型行为描述同步 …

Linux 进程与线程核心知识总结

本文整理了嵌入式 Linux 软件开发面试中关于进程与线程的高频考点及知识要点,涵盖进程模型、通信方式、IO 模型、内存布局、进程状态等内容,适合查漏补缺或面试前快速复习。


1. 异步 IO 与同步 IO

概念对比

类型行为描述
同步 IO线程发起 IO 请求后必须等待操作完成,才能继续执行后续代码。
异步 IO线程发起 IO 请求后立即返回,可继续处理其他任务,IO 在后台完成后内核会通知或回调线程。

直观理解

  • 同步:“我等你” —— 线程发起读写请求后阻塞,直到 IO 完成。
  • 异步:“我先忙别的,你好了通知我” —— 提高系统并发能力和 IO 吞吐量。

示例:异步网络服务器(如 Nginx)通常使用 epoll + 异步 IO 提高性能;同步 IO 常见于简单文件读写。


2. 进程间通信(IPC)方式

Linux 提供了多种进程间通信机制,各具特点:

方式特点与场景
管道(Pipe)是一种半双工的通信方式,数据只能单向流动,而且只能在具有亲缘关系的进程之间使用,通常是父子进程。
有名管道(FIFO)也是半双工的通信方式,但是它允许用于无亲缘关系的进程之间的通信。
信号量(Semaphore)是一个计数器,通常作为一种同步机制,用于进程和线程间的同步。
消息队列(Message Queue)是一个消息链表,存放在内核中并且由消息队列标识符标识。消息队列克服了信号传递信息少、管道只能承载无格式字节流以及缓冲区大小受限的缺点。
共享内存(Shared Memory)一段能够被多个进程共同访问的内存,由一个进程创建。共享内存是最快的IPC方式,它是针对其他进程间通信方式运行效率低而设计的,往往与其他通信方式如信号量配合使用,来实现进程间同步与通信。
套接字(Socket)可用于不同主机间的进程通信。
信号(Signal)用于通知接收进程某个事件已经发生,是一种比较复杂的通信方式。

选择建议

  • 大数据高性能:共享内存 + 信号量
  • 简单父子通信:管道
  • 跨机器:Socket
  • 异步解耦:消息队列

3. 进程的地址空间模型

Linux 进程的内存布局通常如下(低地址 → 高地址):

┌───────────────────────────┐ 高地址
│ Kernel Space (内核空间)   │ 仅内核访问
├───────────────────────────┤
│ Stack (栈)                │ 局部变量、函数参数,向下增长
├───────────────────────────┤
│ Memory Mapping Area       │ mmap 映射区,动态库、文件映射、匿名大块分配
├───────────────────────────┤
│ Heap (堆)                 │ malloc/new 分配,向上增长
├───────────────────────────┤
│ BSS Segment               │ 未初始化或初始化为 0 的全局/静态变量
├───────────────────────────┤
│ Data Segment              │ 已初始化的全局/静态变量、const 常量
├───────────────────────────┤
│ Text Segment              │ 程序代码(只读,可共享)
└───────────────────────────┘ 低地址

要点

  • Text:可共享,通常只读,存放可执行指令。
  • Data/BSS:分别存放初始化和未初始化的全局/静态变量。
  • Heap:动态分配的内存区域,手动申请与释放。
  • Stack:函数调用帧、局部变量,自动分配与释放。
  • Memory Mappingmmap 文件映射或大块内存分配。

4. 进程的五种状态

Linux 内核为每个进程维护一个状态机,典型状态如下:

状态描述
就绪态进程已具备运行条件,等待 CPU 调度。
运行态正在 CPU 上执行。
等待态分为可中断睡眠(浅度睡眠)与不可中断睡眠(深度睡眠),等待资源或事件。
暂停态收到 SIGSTOPSIGTSTP 等信号,暂时停止调度,可通过 SIGCONT 恢复。
僵尸态子进程已结束但父进程尚未回收(未 wait()),仅保留少量进程表信息。

通过 ps -elftop 查看,STAT 字段中:

  • R 运行态
  • S 睡眠态
  • T 暂停态
  • Z 僵尸态

5. 孤儿进程与僵尸进程

对比项孤儿进程僵尸进程
形成条件父进程先退出,子进程继续运行子进程退出,父进程未 wait()
资源占用占用正常运行资源仅占用 PID 和少量内核表项
系统影响一般无害,init/systemd 会收养并回收若父进程不回收,大量僵尸会耗尽 PID,导致无法创建新进程
处理方式无需特殊处理修正父进程调用 wait();或终止父进程让 init 接管

总结

  • 异步 IO 提升并发性能;同步 IO 实现简单。
  • IPC 方式各有适用场景,需根据数据量、延迟要求、进程关系选择。
  • 进程地址空间体现了程序运行时的内存组织,是理解内存管理和调优的基础。
  • 进程状态孤儿/僵尸进程是排查系统问题的常见切入点。

熟悉这些核心概念,不仅能应对嵌入式 Linux 开发面试,更有助于日常调试与性能优化。

http://www.dtcms.com/a/420873.html

相关文章:

  • Linux进程 --- 2
  • 柳市网站设计推广网站怎么做微信接口
  • 注册自己的网站需要多少钱网站 备案查询
  • 网站界面设计策划书怎么做招远网站建设公司
  • 网站规划的原则北京建设教育协会
  • 班级网站建设的系统概述合肥建站
  • 软考 系统架构设计师系列知识点之杂项集萃(159)
  • 外国ps修图网站开发网站流程
  • 做最好的网站新新常州企业自助建站系统
  • 天津市住房和城乡建设局网站派代网
  • 大连营商环境建设局网站代理记账如何获取客户
  • 网站开发什么技术拼团网站建设
  • 朝阳网站建设公司电话上海知名装修公司排名榜
  • 中华住房和城乡建设局网站网站网页不对称
  • 广州网站优化公司金融投资网站源码
  • 亚马逊卖家可以做促销的网站网站开发实战作业答案
  • wordpress 导航站主题网站建设代理推广徽信xiala5效果好
  • 查排名的网站WordPress显示插件
  • 培训班该如何建站页面设计的步骤
  • 数据库事务(Transaction)的概念及其底层实现原理
  • Cadence(Allegro)的PCB文件转PADS的PCB文件
  • 网站建设合同交印花税么wordpress验证码
  • 东莞建设工程质量网站公司网站的实例
  • 【开题答辩全过程】以 spb+汽车租赁系统为例,包含答辩的问题和答案
  • 网站死循环南通网站建设哪家好
  • 淘宝客cms网站模板下载网站建设 用英文怎么说
  • wordpress多广告位深圳网站营销seo费用
  • pwn知识点——内平栈与外平栈
  • 单页面网站有哪些北京网站建设公司兴田德润电话
  • 南城网站建设公司咨询开封府景点网站建设的目的