Operating System Labs

Description

The requirements of labs are in Requirements

Outline:

  • pstree: A pstree to display processes.
  • libco: Implement coroutine.
  • sperf: Be able to display the running time of different system calls dynamically.
  • frecov: A naive bmp file recovery program targeted to FAT.
  • libkvdb: A naive Crash-Consistent key-value database.
  • kalloc: Memmory allocation and release fucntions(like malloc and free). Doubly Linked List is used to manage a big chunk of memory.
  • kthreads: Implement necessary components in kernel(not Linux kernel) for multithreading. Spinlock, semaphore and cpu scheduling are included.
  • vfs: Provide an abstraction between applicaitons and disks. Implement a filesystem like ext2, which supports hard link.