同步技术

线程同步技术 可以参考线程同步技术 进程同步技术 进程间同步技术常常利用锁和信号量来解决,而锁页分为悲观锁和乐观锁。 悲观锁:先加锁再操作临界区,适用于冲突概率高的情况 乐观锁:先操作临界区,再检查是否发生了冲突,发生冲突就需要回溯,只适用于冲突概率极低的情况,因为回溯的成本是巨大的 通过pthre

进线程调度算法

进程 进程的状态 PS:图片来源于:小林coding 创建状态(new):进程正在被创建的状态 结束状态(exit):进程退出的状态 运行状态(running):此时进程正在CPU中运行 就绪状态(ready):可运行状态,但是未运行状态,等待CPU时间 阻塞状态(blocked):等待事件的状态,

多态

前言 C++多态分为运行时多态和编译时多态,编译时多态的实现主要是模板,重载等,运行时多态就是使用虚函数来实现的 运行时多态 虚函数的底层实现原理是依托于虚函数指针和虚函数表实现的,虚函数指针也是一个成员变量,是编译器自动生成的,存在于实例对象的最前面位置。 虚函数指针工作原理 虚函数指针是一个成员

物理内存管理

前言 内核不仅需要管理虚拟内存,还需要管理具体的物理内存。 先简单介绍一下两个概念,一致性内存访问(Uniform Memory Access, UMA)和非一致性内存访问(Non-uniform Memory Access),前者表示同一个CPU对所有内存访问速度一致,后者则表示不一致。CPU通过

HTTP

前言 超文本传输协议(HyperText Transfer Protocol,HTTP)是一种应用层协议,经历了三个比较重要的版本,http/1.0,http/1.1,http/2.0 三个常用版本 除此之外,还加入了一个http/3.0版本 | HTTP 1.0 | HTTP 1.1 | HTTP

虚拟内存技术

前言 本文的虚拟内存,需要区别于Windows上的虚拟内存,Windows上的虚拟内存应该对应于Linux上的交换内存,是一种把磁盘当内存使用的技术。 本文的虚拟内存,是一种内存管理技术。区别于嵌入式中的应用程序,直接运行在物理内存上。操作系统(如Linux)的应用程序,是直接运行在虚拟内存上,而由

HTTPS

使用RSA TLS一次握手:Client Hello,发送TLS版本,客户端随机数,密码套件(密钥交换算法_签名算法_WITH_对称加密算法_摘要算法组成) TLS二次握手: Server Hello:确认TLS版本,服务器随机数,选择的密码套件,如TLS_RSA_WITH_AES_128_GCM_

其他应用层协议

RPC 远程过程调用协议(Remote Procedure Call, RPC)并不是一个协议,而是一种调用方式,比如ONC RPC/Sun RPC, DCE/RPC, MS RPC, ONC RPC, gRPC等等 RPC重点解决三个问题:表示数据(序列化反序列化等),传递数据(传输协议),确定方

IP

IPv4 IPv4是由32位正整数组成,c++中可以使用uint32_t来存储,常常使用字符串来表示xxx.xxx.xxx.xxx,每一个xxx可以为0-255。 CIDR IPv4本来分为A,B,C,D,E五类地址(x表示二进制位,X表示十进制位) A:0xxxxxxx.XXX.XXX.XXX B