Team members: Thomas Pickering, Nhat Tran, Celine Mangahas
Understand the structure of FreeNOS (API, system calls, traps).
“Git” ready.
Get debugging skills.
- Follow this guide, and make your FreeNOS-1.0.3 Folder a git repo, make its remote repo (“origin”) a new repo in your GitHub account.
- Make and check out a branch named “wait”. You will be working on this branch for this project.
- Add GitHub user: “2404s21” as a collaborator.
- It should work similarly to the wait command that comes with Ubuntu. (In your terminal, do “man wait” to learn more.) It should be able to wait for a background process (e.g. “sleep 30 &”) to finish and return.
- It should follow the application code structure like the “sleep” command of FreeNOS.
Part 3: Record a 3-minute (approx..) screencast with your voice (facial image is optional but encouraged)
- Introduce yourselves;
- Demo kill a process or two;
- Show off your contribution to FreeNOS: what you did to get rid of the bug? What debugger did you use?
Screencast Software & Version: nVidia Geforce Experience (Shadowplay Tool) Version 3.23.0.74
Understand process scheduling of FreeNOS.
Get hands-on with process priority scheduling implementation.
- Add priority to the PCB class in FreeNOS. Work on a new branch called “priority” in your FreeNos repo. The (u8) PriorityLevel goes from 1 to 5 (low to high priority)
- Change the “ps” application to display priority level of processes when you do: # ps –l
-
Write an application named “renice” in folder “FreeNOS\bin\renice”, which should work similarly to the “renice” command on Ubuntu. (“# man renice”) This directory and code within should follow the structure of “sleep” application. Example run: (after you implement the supporting functions in FreeNOS)
# sleep 30 & # sleep 45 & # ps –l #suppose the output has PID 17 for “sleep 30” # renice –n 2 17 #tell Process 17 to be run at priority 2 # ps –l # make sure the priority changes for “sleep 30” # # wait to see that “sleep 45” finish before “sleep 30”
- Add support in FreeNOS kernel and system libraries for priority-based scheduling. It can be a simple linear Ready Queue, or you can use the ML algorithm from Zybooks for 10 points in extra credit.
- Record a 3-minute (approx..) screencast with your voice (facial image is optional but encouraged) and upload it to a video streaming site like Youtube. The video should include: Introduce yourselves; Demo run your code; Each team member comment on your code: what did you do? Any challenges? How did you overcome them? Any new understanding or insights?
- Submit a README.md file, listing: Your full names;
GitHub repository (you should also maintain a README.md in your GitHub repo, which is updated with information about features/branches added);
Team members: Thomas Pickering, Nhat Tran, Celine Mangahas
Understand the physical and virtual memory management of FreeNOS.
Apply textbook concepts in maintaining a real product.
Get debugging skills.
- Make and check out a branch named “kill”. You will be working on this branch for this project.
- Add GitHub user: “2404s21” as a collaborator.
-
It should work similarly to the kill command that comes with Ubuntu. (In your terminal, do “man kill” to learn more.) You only need to support positive PID and two signals: SIGKILL and SIGTERM.
# sleep 30 & # ps # suppose the pid for ‘sleep’ is 17 # kill 17 # ps # ‘sleep’ is killed -
It should follow the application code structure like the “sleep” command of FreeNOS.
Part 3: Record a 3-minute (approx..) screencast with your voice (facial image is optional but encouraged)
- Introduce yourselves;
- Demo kill a process or two;
- Show off your contribution to FreeNOS: what you did to get rid of the bug? What debugger did you use?
Screencast Video Video created with OBS Studio.