linux编程备忘

进程

进程内存结构

​​​​​​​在这里插入图片描述

虚拟内存管理

在这里插入图片描述

父子进程创建与通信

在这里插入图片描述

父子进程COW机制

逻辑层面
在这里插入图片描述

物理层面
在这里插入图片描述

进程创建速度

在这里插入图片描述

进程优先级(nice值)

传统UNIX实现中只有特权进程才能赋予自己一个高优先级,而非特权进程只能降低自己的优先级(这样做对其他进程就友好了,nice值也由此而来)
在这里插入图片描述

进程、进程组、会话关系

在这里插入图片描述

作业控制

在这里插入图片描述

孤儿进程组

在这里插入图片描述

系统日志

在这里插入图片描述

线程

线程数据结构

在这里插入图片描述

多线程内存结构

在这里插入图片描述

多线程修改共享变量

无同步处理
在这里插入图片描述

通过互斥量控制同步资源访问
在这里插入图片描述

IPC

进程和线程通信方法
在这里插入图片描述

IPC工具标识符和句柄

在这里插入图片描述

管道通信

在这里插入图片描述

ls | wc -l
在这里插入图片描述

在这里插入图片描述

FIFO实现C/S通信

在这里插入图片描述

System V IPC

System V IPC对象数据结构

在这里插入图片描述

System V 消息队列实现C/S通信

在这里插入图片描述

System V 消息队列实现文件服务器

在这里插入图片描述

System V 信号量同步进程

在这里插入图片描述

多进程同时初始化信号量同步控制
在这里插入图片描述

System V 共享内存

使用共享内存和信号量完成进程通信

在这里插入图片描述

共享内存位置

在这里插入图片描述

通过文件创建内存映射
在这里插入图片描述

多个进程通过文件映射内存

在这里插入图片描述

非线性文件内存映射(虚拟内存顺序和文件页顺序不对应)
在这里插入图片描述

POSIX IPC

在这里插入图片描述

SOCKET

流SOCKET

在这里插入图片描述

未决的socket连接

在这里插入图片描述

流socket通信

在这里插入图片描述

数据报socket

在这里插入图片描述

零拷贝

sendfile()实现零拷贝,不用经过用户空间

在这里插入图片描述

TCP/IP

在这里插入图片描述

网络包结构简单示意

在这里插入图片描述

TCP

报文格式

在这里插入图片描述

TCP报文确认机制

在这里插入图片描述

TCP状态机

在这里插入图片描述

TCP三次握手

在这里插入图片描述

TCP四次挥手

在这里插入图片描述

IP

在这里插入图片描述

IPV4转IPV6,前80位全0,接着16位全1,后面32位放IPV4地址
在这里插入图片描述

TCP

网络字节序

大端字节顺序和小端字节顺序

在这里插入图片描述

DNS

在这里插入图片描述

IO

IO多路复用方案对比

水平触发,可以在任意时刻检查文件描述符的就绪状态

边缘触发,只有在文件描述符就绪时才会通知,且在下一个文件描述符就绪前不会有任何其他通知

在这里插入图片描述

select()和poll()对比

不同事件对应不同的标识
在这里插入图片描述

epoll\select\poll性能对比

在这里插入图片描述

相关推荐

  1. Linux手册

    2024-02-02 22:50:03       42 阅读
  2. Linux CenTOS命令

    2024-02-02 22:50:03       60 阅读
  3. Linux常用命令(自查)

    2024-02-02 22:50:03       21 阅读
  4. 【备忘录】Linux kill 多个进程命令

    2024-02-02 22:50:03       32 阅读
  5. NeuralKG运行

    2024-02-02 22:50:03       60 阅读
  6. Git 清单

    2024-02-02 22:50:03       49 阅读
  7. vue,Promise

    2024-02-02 22:50:03       45 阅读
  8. UnityDOTS

    2024-02-02 22:50:03       26 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-02-02 22:50:03       91 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-02-02 22:50:03       97 阅读
  3. 在Django里面运行非项目文件

    2024-02-02 22:50:03       78 阅读
  4. Python语言-面向对象

    2024-02-02 22:50:03       88 阅读

热门阅读

  1. Three.js PBR 物理渲染

    2024-02-02 22:50:03       56 阅读
  2. this.$set()用法,强制刷新,新删改查

    2024-02-02 22:50:03       53 阅读
  3. JVM 内存配置参数积累

    2024-02-02 22:50:03       52 阅读
  4. vue + element 页面滚动计算百分比 + 节流函数

    2024-02-02 22:50:03       50 阅读
  5. 11.29 校招 实习 内推 面经

    2024-02-02 22:50:03       54 阅读
  6. RAM与存储:一场深度解读的较量

    2024-02-02 22:50:03       43 阅读