0%

读者写者问题实现写者优先
要求:

  • 写者线程的优先级高于读者线程。
  • 当有写者到来时应该阻塞读者线程的队列。
  • 当有一个写者正在写时或在阻塞队列时应当阻塞读者进程的读操作,直到所有写者进程完成写操作时放开读者进程。
  • 当没有写者进程时读者进程应该能够同时读取文件。

readcountwritecount表示读者写者数量,mutex1mutex2实现互斥
r为读者写者队列,但仅允许一个读进程排队
mutex3其他读者在这个信号量上排队

伪代码如下:

Read more »

问题一:cpu在读取内存数据时,假设一块RAM芯片是8位数据宽度,cpu只能接受16位数据宽度,为什么不能在同一块RAM上读取8位+8位,而是要将两块RAM合并成16位?

CPU 在读取内存数据时,确实可以通过多次访问同一块 8 位 RAM 芯片来组合成 16 位数据,但在实际设计中,通常会选择将两块 8 位 RAM 合并成 16 位宽度(并行连接),而不是依赖多次读取同一块 RAM。主要原因包括以下几点:

Read more »

源码获取

首先拖源码与补丁

1
2
3
4
wget https://cdn.kernel.org/pub/linux/kernel/v4.x/linux-4.4.1.tar.gz
wget https://cdn.kernel.org/pub/linux/kernel/v4.x/patch-4.4.1.xz
tar zxvf linux-4.4.1.tar.gz
xz -d patch-4.4.1.xz | patch -p1 # 这里没有输出代表执行成功
Read more »

CVE-2016-5195,又被称为Dirty COW(脏牛漏洞),是一个存在于Linux内核中的严重本地权限提升漏洞。这个漏洞首先在2016年被发现,其名称来源于“Copy-On-Write”机制的缩写“COW”,CVE-2016-5195是一个内核竞态条件漏洞,影响范围:Linux Kernel > 2.6.22。

Read more »

arena

  • 是管理堆的一个结构,
  • 一个线程只有一个arena
  • 主线程的arena称为main_arena,子线程的arena称为thread_arena
Read more »