/CS439_OperatingSystem

course repo for CS439 Operating System

CS439_OperatingSystem

course repo for CS439 Operating System

p1: familiarize with the qemu emulator, implement a spinlock

p2: dynamic memory allocation by implementing malloc(bytes) and free()

p3: same as p2

p4: cooperative multithreading by implementing thread(function_to_run) and yield()

p5: preemptive multithreading by making changes to thread(function_to_run) and yield() such that an interrupt is issued every 1ms and the current thread is forced to yield; implement a blocking counting semaphore

p6: implement a simple file system (BobFS) that is loosely inspired by ETX2

p7: enable virtual memory and implement the page fault handler

p8: go to user mode by loading a ELF file and switch to it using "iret" insturction (previlige level, user stack, kernel stack)

p9: implement 14 system calls which are interfaces user program use to request the kernel to do certain things for it

pz: self-assessment