SSE3044: Operating Systems (Spring 2018)
[Projects]
- You will have several projects based on the xv6 instructional operating system. To successfully complete these projects, you must have excellent C programming skill and be familiar with the Linux platform.
- Required skills
- Fluent C programming (must!)
- Basic knowledge on Intel x86 architecture
- Intel x86 assembly programming
- Basic knowledge on Unix/Linux systems
- Ability to read a large, complex program
[Lab. Class]
- Wednesday, 6:00 PM, #400202 in Semiconductor Bldg.
- Please bring your laptop
- First lab will start on 3/14 (Wed.)
[Lab. Oral test]
Project #0 (Last update: 3/15(Thu.), 14:30PM)
- Try to boot xv6 operating system
- Show your student ID and name on boot message
- Reading chap. 0, and chap. 1 of xv6-commentary will help your next projects
Project #1-1 (Last update: 3/22(Thu.), 18:30PM)
- xv6 template code
- Implement setnice & getnice system call in xv6
- Implement minitop shell command in xv6
- Submit tarball file to TA by e-mail with title "[SSE3044]StudentID-1-1"
- You have to set initial nice value of process to 20
- Project #1-1 result
Project #1-2 (Deadline: 3/27~4/10(Tue.), Last update: 4/5(Thu.), 18:00PM)
- Implement priority based scheduler on xv6
- Due: 4/10(Thu.) 23:59:59PM -> There will be Q&A session on 4/3(Thu.) 18:00 PM
- If you have any question, please email or visit 400509
- There exist oral test after project1-2. This oral test should cover entire project1
- You should prepare 5~10 minute presentation about your implementation
- Schedule of oral test will be announced
- Update list
- Increase each process's yield count at only yield system call
- There is no scenario such as target nice value of setnice is same as original nice value
- Sample testcase
- Correct output for test_2_1.c
[Case 2. Setnice, Yield] Start
-...state 1...
-...state 2...
-...state 3...
-...state 4...
-...state 5...
-...state 6...
-...state 7...
-...state 8...
-...state 9...
-...state 10...
-...state 11...
Project #2-1 (Deadline: 4/11~5/1(Tue.), Last update: 4/11(Wed.), 16:00PM)
- Implement stack growth on xv6
- Oral test progress after project #2-1 (prepare for 10 minutes of presentation)
- Schedule of oral test will be announced
- Project #2-1 testcase
- ATTENTION!!! If page fault is occurred, you must print out "(Pagefault): invalid access!" or "(Pagefault): allocate new page!"
- Then, correct results for each test case is
case 1. (Pagefault): invalid access!
case 2. (Pagefault): allocate new page!
PASSED!
case 3. (Pagefault): allocate new page!
(Pagefault): allocate new page!
(Pagefault): allocate new page!
PASSED!
case 4. (Pagefault): allocate new page!
(Pagefault): allocate new page!
(Pagefault): allocate new page!
(Pagefault): invalid access!
Project #2-2 (Deadline: 5/15(Tue.), Last update: 5/2(Wed.), 18:00PM)
Project #3-1 (Deadline: 5/16~5/29(Tue.), Last update: 5/27(Wed.), 23:00PM)
Project #3-2 (Deadline: 5/30~6/12(Tue.), Last update: 6/9(Wed.), 07:20PM)