Create a project file on operating systems
Answers
Answered by
0
These pages outline what you will be expected to implement for the project. While some minor details may change during session, this has been a successful format for a number of years. It is a good idea to start thinking early and try to understand the full assignment and ask any questions you have about structure and problems early.
Overview
The aim of the assignment is to implement a simple operating system (SOS) server on top of the seL4 microkernel. The SOS server is expected to provide a specified system call interface to its clients (Specified in libs/libsos/include/sos.h).
The project will be completed by groups of 2 students. This is a challenging project. You have been warned! The project is to be completed using the facilities in the Sabre Lite Lab.
Assessment
About half the marks for the project are obtained for timely and complete submission and demonstration of intermediate milestones (M0–M8). These milestones will be demonstrated in the lab each week. When demonstrating your solution you should be able to
show a working solution,
explain how the code you have written works, and
explain any design decisions you made.
The remaining marks will be determined by our assessment of your overall project and documentation. The assessment involves:
testing your code and its conformance with the specifications,
inspecting your code as to how well and efficiently it is written, and
perusing your documentation as to its completeness, appropriateness and consistency with your implementation.
Milestones
All milestones must be submitted via give and are due at 12:00 pm, Tuesday (i.e. midday) of the respective week! The demonstrations of what was submitted must be completed before Tuesday 12:00 pm of the following week. Details of how to submit can be found here
M0: Familiarisation
Due: Week 2
Marks: 4 (-1 for one week late, discontinue course if more than one week late)
Milestone 0 involves familiarising yourself with the provided source code and build system, and then writing a simple IPC protocol. This milestone should be done individually. Further milestones are done in groups.
M1: A timer driver
Due: Week 3
Marks: 4 (-1 per week late, discontinue course if more than one week late)
Write a simple device driver for the timers available on the i.MX6.
M2: Memory manager
Due: Week 4
Marks: 4
Design and implement a simple frame table.
M3: A pager
Due: Week 5
Marks: 4 (-1 per week late)
Design and implement a simple pager based on the existing pager and the memory manager completed in M2.
M4: System call interface
Due: Week 6
Marks: 4 (-1 per week late)
Design and implement the system call interface for your operating system.
M5: Implement filesystem
Due: Week 7
Marks: 4 (-1 per week late)
Using the provided code implement the filesystem related system calls. Use your timer driver to benchmark your implementation.
M6: Demand paging
Due: Week 9
Marks: 4 (-1 per week late)
Implement demand paging in your operating system.
M7: Process management
Due: Week 10
Marks: 4 (-1 per week late)
Design and implement process management. You should implement the process_* system calls.
M8: ELF Loading
Due: Week 11
Marks: 4 (-1 per week late)
Extend your process management code to handle loading ELF files. This is your last demo; your entire system should be working at this stage.
M9: Documentation and final system
Due: Week 12, Tuesday 12:00 (midday), 21 Oct.
Marks: 9 (-2 per week late) docs, 20 (-3 per week late) code
Complete the documentation for your project. You also have a chance to clean up your codebase for your final submission. This milestone does not involve a lab demo.
Advanced Components (aka Stuff for Masochists)
The following features, if submitted together with your Milestone 9, will give bonus marks. (2 marks each, -1 per week late.)
Note: the bonuses must also be demonstrated at a to-be-arranged time in week 12 or 13
Shared memory
Implement shared memory via the share_vm() system call and demonstrate operation with some applica
Overview
The aim of the assignment is to implement a simple operating system (SOS) server on top of the seL4 microkernel. The SOS server is expected to provide a specified system call interface to its clients (Specified in libs/libsos/include/sos.h).
The project will be completed by groups of 2 students. This is a challenging project. You have been warned! The project is to be completed using the facilities in the Sabre Lite Lab.
Assessment
About half the marks for the project are obtained for timely and complete submission and demonstration of intermediate milestones (M0–M8). These milestones will be demonstrated in the lab each week. When demonstrating your solution you should be able to
show a working solution,
explain how the code you have written works, and
explain any design decisions you made.
The remaining marks will be determined by our assessment of your overall project and documentation. The assessment involves:
testing your code and its conformance with the specifications,
inspecting your code as to how well and efficiently it is written, and
perusing your documentation as to its completeness, appropriateness and consistency with your implementation.
Milestones
All milestones must be submitted via give and are due at 12:00 pm, Tuesday (i.e. midday) of the respective week! The demonstrations of what was submitted must be completed before Tuesday 12:00 pm of the following week. Details of how to submit can be found here
M0: Familiarisation
Due: Week 2
Marks: 4 (-1 for one week late, discontinue course if more than one week late)
Milestone 0 involves familiarising yourself with the provided source code and build system, and then writing a simple IPC protocol. This milestone should be done individually. Further milestones are done in groups.
M1: A timer driver
Due: Week 3
Marks: 4 (-1 per week late, discontinue course if more than one week late)
Write a simple device driver for the timers available on the i.MX6.
M2: Memory manager
Due: Week 4
Marks: 4
Design and implement a simple frame table.
M3: A pager
Due: Week 5
Marks: 4 (-1 per week late)
Design and implement a simple pager based on the existing pager and the memory manager completed in M2.
M4: System call interface
Due: Week 6
Marks: 4 (-1 per week late)
Design and implement the system call interface for your operating system.
M5: Implement filesystem
Due: Week 7
Marks: 4 (-1 per week late)
Using the provided code implement the filesystem related system calls. Use your timer driver to benchmark your implementation.
M6: Demand paging
Due: Week 9
Marks: 4 (-1 per week late)
Implement demand paging in your operating system.
M7: Process management
Due: Week 10
Marks: 4 (-1 per week late)
Design and implement process management. You should implement the process_* system calls.
M8: ELF Loading
Due: Week 11
Marks: 4 (-1 per week late)
Extend your process management code to handle loading ELF files. This is your last demo; your entire system should be working at this stage.
M9: Documentation and final system
Due: Week 12, Tuesday 12:00 (midday), 21 Oct.
Marks: 9 (-2 per week late) docs, 20 (-3 per week late) code
Complete the documentation for your project. You also have a chance to clean up your codebase for your final submission. This milestone does not involve a lab demo.
Advanced Components (aka Stuff for Masochists)
The following features, if submitted together with your Milestone 9, will give bonus marks. (2 marks each, -1 per week late.)
Note: the bonuses must also be demonstrated at a to-be-arranged time in week 12 or 13
Shared memory
Implement shared memory via the share_vm() system call and demonstrate operation with some applica
Similar questions