C++多线程模型

线程同步和线程通信线程同步 互斥锁 条件变量 互斥量 信号量 线程通信 条件变量 队列 原子操作 条件变量和定时器 C++标准库提供了哪些锁?std::mutex:互斥锁是最基本的锁类型,用于确保一次只有一个线程可以访问共享资源。你可以使用 std::mutex 来创建一个互斥锁对象,然后使用 lock() 和 unlock() 方法来手动锁定和解锁。 ...

Read More

CS50课程学习笔记

BackgroundComputational Thinking input –> black box –> output binary/bit: A bit is a zero or one text: using ASCII Emojis: Unicode RGB: three numbers Images, Video and S...

Read More

执行一个程序的过程

冯诺依曼模型 运算器 控制器 存储器 输入设备 输出设备 内存程序和数据都是存储在内存中,存储的区域是线性的。存储数据的基本单位是字节(byte),一字节等于8位(bit),每一个字节对应着一个内存地址。 中央处理器CPU32位和64位CPU最主要区别在于一次能计算多少字节的数据 32位一次能计算4个字节,虚拟内存空间大小为$2^{32}$,4G 64...

Read More

CMU15-445 Concurrency study note

在做project4之前,最好是先学习课件内容。课件地址 Concurrency Control:avoid losting updates Recovery: Durability 概念事务A transaction is the execution of a sequence of one or more operations (e.g., SQL q...

Read More

CMU15-445 Concurrency Control

project4需要实现的内容project任务链接 Lock Manager:src/include/concurrency/lock_manager.h concurrency/lock_manager.cpp Lock Manager的作用是什么?Lock Manager 的作用是处理事务发送的锁请。事务在被允许访问某个数据项之前,需要先向锁管理器发出...

Read More

CMU15-445 Query_Execution

执行引擎介绍一条SQL语句进入到数据库中后是如何被执行的? 前两个project实现的buffer pool和index都是存储引擎的一部分。 执行计划可以看作一个有向无环图,由source开始到sink结束,中间是一个又一个的算子。这一个project实现的就是这些算子。 课件地址:https://15445.courses.cs.cmu.edu/fal...

Read More

CMU15-445 B+tree

B+树的介绍(以InnoDB为例)InnoDB 的数据是按「数据页」为单位来读写的,也就是说,当需要读一条记录的时候,并不是将这个记录本身从磁盘读出来,而是以页为单位,将其整体读入内存。 数据库的 I/O 操作的最小单位是页,InnoDB 数据页的默认大小是 16KB,意味着数据库每次读写都是以 16KB 为单位的,一次最少从磁盘中读取 16K 的...

Read More

CMU15-445 buffer pool manager

数据库中为什么需要buffer pool?数据是存储在磁盘里的,但是也不能每次都从磁盘里面读取数据,这样性能是极差的。 要想提升查询性能,添加缓存。所以,当数据从磁盘中取出后,缓存内存中,下次查询同样的数据的时候,直接从内存中读取。 通常存储的数据划分为若干个「页」,以页作为磁盘和内存交互的基本单位,一个页的默认大小为 16KB。因此,Buffer Pool...

Read More

malloc是如何和物理地址关联上的?

malloc函数用于在堆上动态分配内存,它会向操作系统请求一块未使用的内存,然后返回这块内存的地址。 操作系统维护着可用物理内存的信息,知道哪些内存地址 当前未被使用。当收到malloc的请求时,它会从可用物理内存中选择一块未使用的内存,将其标记为已分配,并返回给应用程序。 在32位系统中,malloc返回的地址是虚拟地址,需要经过MMU地址转换找到...

Read More

hexo Cannot GET/

问题: 在hexo搭建博客的过程中,出现Cannot GET/xxx的错误。 查看是否缺少组件 到public目录下找到xxx文件是否存在,我的错误是Cannot GET/,所以去找index.html是否存在。 不存在,执行hexo clean && hexo g重新生成 还是不存在,执行npm audit fix或者是npm...

Read More