![](https://img-blog.csdnimg.cn/20201014180756925.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
计算机基础知识
Handro_Lee0
这个作者很懒,什么都没留下…
展开
-
总线技术认识
总线总线是连接主机与外设的通信线路(导线)。按传送的比特数可以分为串行总线和并行总线。并行总线:同时刻可以传送多个bit位。串行总线:同时刻可以传送1个bit位。UART总线Universal Asynchronous Receiver Transmitter 通用异步接收发送器。帧格式1)空闲时,总线处于高电平;2)起始位低电平,结束位是高电平,每次只能传送一个字节(位宽是5~8位,可配置);3)...原创 2020-10-30 16:05:52 · 252 阅读 · 0 评论 -
链表数据结构示意图
单向链表双向链表双向循环链表原创 2020-10-27 17:22:34 · 620 阅读 · 0 评论 -
段页式地址映射过程(直观)
1. 段式虚拟内存把程序内存空间按照逻辑意义划分为多个段,每段有段名,段的长度不定(如:代码段、数据段、堆栈段)。程序内存空间堆栈段数据段代码段哪如何表示段式内存空间的一个地址呢?虚拟地址(VA) = 段基地址(BA) + 段内偏移量(S)在32位linux系统中,每个进程独占4G的虚拟内存空间,每个进程的内存空间都是独立的,进程是隔离的。而进程需要运行在物理内存上,但物理内存有限,无法为每个进程都分配4G的物理内存空间。为了解决该问题,需要将进程的虚拟内存按需原创 2020-10-21 17:19:22 · 4055 阅读 · 0 评论 -
二维数组动态申请分析
#include <stdio.h>int main(void){int i, j, idx = 0;int *p = NULL;int **arr = NULL;int arry[4][3] = {{1, 2, 3},{4, 5, 6},{7, 8, 9},{10, 11, 12}};arr = (int **)malloc(4* sizeof(int *));for (i = 0; i < 4; i++) { arr[i] = (int *)malloc(原创 2020-10-10 17:50:15 · 116 阅读 · 0 评论 -
函数调用过程,数据段(栈帧)变化流程
int func2(int x, int y){int z = 0;z = x + y;return z;}void func1(void){int a = 1;int b = 2;int c;c = func2(a, b);printf("%d \n", c);return;}函数调用过程:push ebpmov ebp, espsub esp 0cchlea edi [edp-0cch]mov ecx 033hmov eax 0cccccccchrep原创 2020-09-23 18:15:13 · 238 阅读 · 0 评论 -
锁的认识
--------- 以下文章来源于微信小林coding,作者小林coding ---------正文多线程访问共享资源的时候,避免不了资源竞争而导致数据错乱的问题,所以我们通常为了解决这一问题,都会在访问共享资源之前加锁。最常用的就是互斥锁,当然还有很多种不同的锁,比如自旋锁、读写锁、乐观锁等,不同种类的锁自然适用于不同的场景。如果选择了错误的锁,那么在一些高并发的场景下,可能会降低系统的性能,这样用户体验就会非常差了。所以,为了选择合适的锁,我们不仅需要清楚知道加锁的成本开销有多.原创 2020-09-18 16:54:08 · 147 阅读 · 0 评论