Skip to content

Latest commit

 

History

History
31 lines (19 loc) · 1.61 KB

README.md

File metadata and controls

31 lines (19 loc) · 1.61 KB

Operating systems

Implement the following for xv6 operating system to better understand the internals

Uniq

  • The uniq command from coreutils that can be called on the shell with or without file redirection
  • An extension to the above with -c, -d and -i options enabled

Shell

A shell that can perform the following

  • Command execution
  • I/O redirection
  • handle pipes appropriately

Lottery Scheduling

  • Implement a lottery scheduling algorithm with weight of the lottery decided by the number of 'tickets' a process has.
  • Each process has 20 tickets at start and can be changed using a settickets method, while this is not secure in a production enviroment leading to processes hogging the CPU time, for the purposes of testing, this will do.
  • We created a patch file that can be run of the repository mentioned in this document

Mutex vs Spin lock, insert times

Implement both mutex locks and spin locks to insert 100000 values in a hash table with 5 buckets. We measure times while trying to make sure no values are dropped due to multiple threads acting on the same data structure

  • First we implement with just a single mutex lock on the hash table in the insert function and measure times with different amounts of threads
  • We then use a spin lock instead of a mutex lock
  • Finally, we use multiple mutux lock, with each bucket getting it's own lock as the buckets are mutually exclusive by default.