xv6内核扩展7:锁
发布于
内存分配器 程序用户/kalloctest 对 xv6 的内存分配器进行压力测试:三个进程增长和缩小它们的地址空间,导致大量调用 kalloc 和 kfree 。 kalloc 和 kfree 获取 ...
继续阅读 →Next Door 0.5x Engineer
发布于
内存分配器 程序用户/kalloctest 对 xv6 的内存分配器进行压力测试:三个进程增长和缩小它们的地址空间,导致大量调用 kalloc 和 kfree 。 kalloc 和 kfree 获取 ...
继续阅读 →发布于
介绍 本文是Zero Bubble (Almost) Pipeline Parallelism的笔记及译文。 Notes alt text alt text alt text alt text 摘要 ...
继续阅读 →发布于
介绍 本文是[WLB-LLM: Workload-Balanced 4D Parallelism for Large Language Model Training](https://www.usen...
继续阅读 →发布于
介绍 本文是Parrot: Efficient Serving of LLM-based Applications with Semantic Variable的译文。 摘要 大型语言模型(LLM)的...
继续阅读 →发布于
第七章 锁 大多数内核(包括 xv6)都会交错执行多个活动。产生交错执行的一个来源是多处理器硬件:具有多个 CPU 独立执行的计算机,例如 xv6 的 RISC-V。这些多个 CPU 共享物理 RAM...
继续阅读 →发布于
数据包接收 在一般情况下,数据包接收包括识别线路上是否存在数据包、执行地址过滤、将数据包存储到接收数据 FIFO 中、将数据传输到主机内存中的接收缓冲区,以及更新接收描述符的状态。 数据包地址过滤 硬...
继续阅读 →发布于
入口与分支条件 由 在所有 CPU 的 supervisor 模式下进入; 根据 判断当前是否为引导 CPU()或其它 CPU()。 引导 CPU 路径(cpuid()==0) console...
继续阅读 →发布于
背景 在编写代码之前,您可能会发现复习《xv6 书籍》中的“第 6 章:中断和设备驱动程序”很有帮助。 你将使用一个名为 E1000 的网络设备来处理网络通信。对于 xv6(以及你编写的驱动程序)来说...
继续阅读 →发布于
操作系统设计 操作系统与内核的关系 操作系统(Operating System)是一个更宽泛的概念,通常包含两类内容: 内核(kernel):运行在硬件之上、拥有最高特权的一段软件,负责管理 CPU、...
继续阅读 →发布于
一、智能指针的定义与设计动机 底层事实(First Principles) 程序在运行过程中必然需要访问内存 内存生命周期包含:分配、读写、释放 任何阶段的失误都可能导致: 悬垂指针(Dangling...
继续阅读 →