本书未发布

架构师思想指导

未匹配的标注

计算机 = 输入输出(IO)+ CPU + 存储

程序的执行 = 代码块 + CPU + 存储

代码块 = 汇编 = C语言/编译器 |Java语言/编译器 | GO语言/编译器 | PHP语言/编译器

单进程 = 一个正在执行的程序
多进程 = 多个同时正在执行的程序 = 并行 = 单个CPU分时分片执行不同的进程
多线程 = 一个正在执行的程序 + 内部多个线程的并发代码块处理 = 并发
进程状态 = 初始化 | 等待 | 执行 | 睡眠 | 销毁

进程切换 = A进程的代码块 + A进程上下文保存(汇编指令执行的位置+当前的数据)~ 读取B进程的代码块 + 恢复B进程的上下文
线程切换 = 进程内的资源共享 + 少量上下文(当前线程汇编指令执行的位置+当前的数据)的切换

线程切换速度 > 进程切换速度

读写锁 = 多个进程同时读写同一个资源 | 多个线程同时读写同一个资源 | 多个协程同时读写同一个资源
死锁 = 不主动释放 + 不可被剥夺 + 循环等待 + 互斥(每次只能被一个请求访问)
避免死锁 = 破坏任意一个产生死锁的条件

通信 = 多进程通信 | 多线程通信 | 多协程通信 | 网络通信
通信方式 = (管道通信 | 共享内存通信 | 消息队列通信 | 锁信号通信 | 中断信号通信 |共享文件通信) + 读写锁
管道通信 = 全双工通信 | 半双工通信 = 系统创建的文件供两个进程/线程/协程之间交换数据
共享内存通信 = 系统创建的内存供两个进程/线程/协程之间交换数据
锁信号通信 = 互斥量信号 + 临界资源读写访问
中断信号量 = 汇编指令的程序中断 = 1~31数字表示的信号中断(如ctrl C)= 1~128数字表示的信号中断(V2)
共享文件通信 = 用户生成通信文件供两个进程/线程/协程之间交换数据

内核态 = 计算机的功能封装 + 3级权限控制 + 最高安全性(只读)
用户态 = 无需调用内核态提供的API + 1级权限控制 + 低安全性
内核态渗透 = 用户态调用内核态提供的API + 权限级别切换

内核态:进程调用,线程调用
用户态:协程调用

多协程 = 单线程 + 多个用户态线程并发
多协程速度 > 多线程速度 > 多进程速度

IO多路复用 = (select | poll | epoll | kqueue) + 事件驱动 + (同步阻塞 | 异步非阻塞)
同步阻塞 = (单进程 | 单线程 | 单协程)+ 等待状态 + 释放CPU
异步非阻塞 = CPU处理 + IO处理 + 同时执行

IO缓存 = 读缓存 | 写缓存 + 内存大小

本文章首发在 LearnKu.com 网站上。

上一篇 下一篇
讨论数量: 0
发起讨论 只看当前版本


暂无话题~