Course Objectives
To provide the basics in designing of an operating system.
1. Principles of operating systems(5 hours)
1.1. Evolution of operating systems
1.1.1. User driven
1.1.2. Operator driven
1.1.3. Simple batch system
1.1.4. Off-line batch system
1.1.5. Directly-coupled off-line system
1.1.6. Multi-programmed spooling system
1.1.7. On-line timesharing system
1.1.8. Multiprocessor systems
1.1.9. Multi-computer/Distributed systems
2. Program construction utilities(6 hours)
2.1. Assembler
2.2. Archiver
2.3. Link editor
2.4. Relocating loader
3. Concurrent processes(5 hours)
3.1. Interleaving
3.2. Non-determinism
3.3. Process interaction sharing
3.4. Synchronization
3.5. Communication
3.6. Locks
3.7. Semaphores
3.8. Monitors
4. The system nucleus(kernel)(6 hours)
4.1. Context switching
4.2. First level interrupt handling
4.3. Kernel implementation of processes
4.4. Kernel implementation of semaphores
5. Scheduling(5 hours)
5.1. Priority pre-emption
5.2. Run to completion
5.3. Time-sliced
5.4. Multi-level queues
6. Input/Output(6 hours)
6.1. Polled input/output
6.2. Interrupt driven input/output
6.3. Device driver structure
7. Memory management(6 hours)
7.1. Single contiguous store allocation and overlays
7.2. Fixed partition store allocation
7.3. Dynamic partition store allocation and fragmentation/compaction
7.4. Virtual addressing
7.5. Memory management policy
8. Case study(6 hours)
8.1. Unix
8.2. Windows NT
Laboratories:
6 Laboratories based on standard operating system
References:
1. Mark Donovan: System programming
Pingback: Deploy WordPress blog directly from Google Storage Cloud & Amazon S3