02 2022 档案
摘要:Lab: networking Background 使用 E1000 网络设备处理网络通信。对于 xv6 和 开发者所写驱动,E1000 像一个真正的硬件,连接到真正的以太网 LAN (local area network)。实际,和驱动通信的 E1000 是由 qemu 仿真的,E1000 连接
阅读全文
摘要:Lab Multithreading Uthread: switching between threads 本题为用户级线程系统设计上下文切换机制,并实现这个机制。uthread.c 含有大多数用户级线程包,以及一些简单的测试线程。需要完善线程包中的创建和切换相关代码。 提出一个创建线程和保存/恢复
阅读全文
摘要:Chapter 5 Interrupts and device drivers 理解当设备产生中断时: CPU 会发生什么? 如何从设备读、写信息? 中断相比系统调用的新特点 中断是异步的(asynchronous)。当硬件产生一个中断时,中断处理程序开始运行,中断处理程序可能和 CPU 上正在运行
阅读全文
摘要:Chapter 7 Scheduling 任何操作系统运行的进程数量都可能超过计算机 CPUs 的数量,所以这些进程需要一个策略分时共享 CPUs。理想情况下,共享对用户进程是透明的(用户进程不感知共享)。一种常用的方法是通过多路复用(\(multiplexing\)),在硬件 CPUs 上调度这些
阅读全文
摘要:Chapter 6 Locking 许多内核,包括 xv6 ,交替执行多个任务。交替执行的原因之一是多处理器硬件:计算机有多个独立执行的 CPUs,如 xv6 的 RISC-V。多个 CPUs 共享物理 RAM,xv6 利用这种共享维护所有 CPU 都能读写的数据结构。 这种共享产生了一种可能:一个
阅读全文
