Skip to content

Weenix OS developed as part of the course CSCI 402 @ USC Spring 2020 | Everything from processes, threads, to all the way up to virtual memory

Notifications You must be signed in to change notification settings

adityachandupatla/weenix

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

6 Commits
 
 
 
 

Repository files navigation

Weenix OS

This repository is a placeholder for Weenix Operating System which I, along with two other classmates, have implemented as part of the graduate level course, CSCI 402, which we have taken at USC (Spring 2020). The course instructor was Prof. Bill Cheng.

The goal of the course was to familiarise students with the internals of operating system starting from the abstractions of processes and threads and all the way upto virtual memory.

For more info about the course and instructor, see: http://merlot.usc.edu/william/usc/

Project Goals, Concepts, Challenges and Learnings

  • Abstraction of threads, processes, and mutex
  • Context switching
  • Interrupts
  • Understanding the boot process of the kernel
  • Reference counting in the file system
  • System call wrapper
  • Case study of S5FS (system V file system)
  • Demand paging
  • Virtual memory map and the address space representation of a process
  • Copy on write mechanism and shadow objects
  • Memory allocation strategies
    • First fit & Best fit (both of which suffer from external fragmentation)
    • Buddy system (which is relatively new and chooses internal fragmentation as its design strategy)
    • Slab allocation (for pre-defined storage requirements)
  • Memory layout of a program (text, data, stack and heap sections)
  • Write through and write back caches
  • Benfits of log structured file system
  • File system consistency/fault tolerance: Soft updates vs Shadow paging
  • And much more...! (in private repository)

Note: The actual repository, which contains the source code, has been made private so as to honour the code of conduct of the University. It will only be available to potential employers who want to assess my capabilities in similar domains (and also who will agree not to share it with anyone else too). If you want to look at the code, email me at: [email protected]

About

Weenix OS developed as part of the course CSCI 402 @ USC Spring 2020 | Everything from processes, threads, to all the way up to virtual memory

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published