Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/tamimehsan/xv6-operating-system-plus
Indepth practice on xv6 operating system
https://github.com/tamimehsan/xv6-operating-system-plus
Last synced: 11 days ago
JSON representation
Indepth practice on xv6 operating system
- Host: GitHub
- URL: https://github.com/tamimehsan/xv6-operating-system-plus
- Owner: TamimEhsan
- Created: 2023-05-27T20:15:56.000Z (over 1 year ago)
- Default Branch: master
- Last Pushed: 2024-05-16T08:33:02.000Z (9 months ago)
- Last Synced: 2024-05-16T10:42:31.589Z (9 months ago)
- Language: C++
- Homepage:
- Size: 487 KB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# CSE-314-Operating-System-XV6
Prerequisite to running xv6: https://pdos.csail.mit.edu/6.828/2022/tools.html
Code-base of xv6: https://github.com/mit-pdos/xv6-riscv
You need to apply the patch files to the original xv6 codebase as an extension to the base OS.
`git apply /path/to/some-changes.patch`
### Contents
The main aim for this is to practise kernel level implementations of a simple OS that is xv6.**1. Shell Script:** I tried to check my basic understanding of shell scripts here
**2. Pthread Synchronization:** One of the most important aspect of OS is thread synchronization. Here by implementing simple locking mechanism like master-worker, reader-writer this concept was understood. Also a example of zemaphore is implemented too.
**3. xv6 System Call:** In this part I added a new system calls to xv6, which helped m understand how they work and exposed me to some of the internals of the xv6 kernel
**4. xv6 Lottery Ticket Scheduling:** In this part I implemented a new scheduler for the xv6 operating system. This scheduler implemented a lottery scheduling algorithm. The basic idea is quite simple. Each process was assigned a fixed number of tickets (an integer number). A process was probabilistically assigned a time slice based on its number of tickets.
**5. xv6 Advanced Memory Management:** xv6 implements a very basic memory management system. In this part, I enhanceedit to a great extent; namely, by adding COW (Copy on Write) and Paging.