Kernel Threads Implementation: Adding True Parallelism to the xv6 kernelFull implementation on GitHub and full design on the Design Doc. The Problem Vanilla xv6 boots on 3 cores. But the way that a process is defined in xv6, it has only a single state of execution. MeaniAug 9 · 10 min readamoghpn.hashnode.dev
Building a Multi-Level Feedback Queue Scheduler in xv6The full xv6 implementation, benchmarks, and test programs are available on here GitHub The Problem xv6's default round-robin scheduler has no concept of what a process is doing with its time slice. AJun 30 · 18 min readamoghpn.hashnode.dev
Lazy ELF Loading in xv6: Demand Paging for ExecutablesThe full xv6 implementation, benchmarks, and test programs are available here on GitHub. The Problem When exec() loads a binary in xv6, it eagerly allocates pages and reads every ELF segment from disMay 30 · 10 min readamoghpn.hashnode.dev
Copy-on-Write Fork in xv6: Implementation, Bugs, and Benchmarks The full xv6 implementation, benchmarks, and test programs are available here on GitHub The Problem Every time a Unix process calls fork(), the kernel duplicates the parent's entire address space. On Apr 25 · 9 min readamoghpn.hashnode.dev