|
|
COMPUTER ENGINEERING (ENGLISH) PROGRAMME
COURSE DESCRIPTION
|
Name of the Course Unit
| Code
| Year
| Semester
| In-Class Hours (T+P)
| Credit
| ECTS Credit
|
OPERATING SYSTEMS |
COM208 |
2 |
4 |
3+0 |
3.0 |
5.0 |
Objectives and Contents |
Objectives of the Course Unit |
This course will introduce the core concepts of operating systems, such as processes and threads, scheduling, synchronization, memory management, file systems, input and output device management and security |
Contents of the Course Unit |
GENERAL LEARNING OUTCOMES (COMPETENCES)
On successful completion of this course, all students will have developed knowledge and understanding of:
1- hardware support for operating systems: privileged mode execution, saving and restoring CPU state, traps and interrupts, timers, memory protection. Operating system techniques for protecting user and hardware resources. Overview of the key operating system abstractions and the use of system calls to manipulate them.
2- Program execution, the process concept, process-related state, the process table, saving and restoring process state, the role of the scheduler
3-Threads, process context switch vs thread switch, true concurrency vs pseudo concurrency, operating systems as concurrent programs, concurrency through multi-threading, concurrency through interrupt handling, concurrent access to shared memory, race conditions, mutual exclusion, synchronization primitives based on atomic instructions
4- locks, spinlocks, mutex semaphores, counting semaphores, and their use in solutions to Producer Consumer synchronization
5- Classic synchronization problems: Producer Consumer, Dining Philosophers, Readers and Writers, Sleeping Barber.
6- Monitors, condition variables, message passing, and their use in solutions to classic synchronization problems: Producer Consumer, Dining Philosophers, Readers and Writers, Sleeping Barber
7- Deadlock, livelock, deadlock detection, avoidance, and prevention
8-Separation of policy from mechanism, scheduling mechanisms, preemptive vs non-preemptive scheduling, example scheduling policies, FIFO, round-robin, shortest job first, priority scheduling, Unix-style feedback scheduling, proportional share scheduling, lottery scheduling
9- Memory addresses and binding, static and dynamic addresses translation, address translation using base and limit registers, memory management algorithms using linked lists and bitmaps, external and internal fragmentation, paged virtual memory.
10- Physical address spaces, virtual address spaces, page table design, single-level and multi-level page tables, hardware support for dynamic address translation using a TLB, hardware and software managed TLB refill
11- Demand paging, swapping, placement and replacement algorithms, memory hierarchy revisited, overview of cache architecture, performance modeling for memory management systems
12- Devices, memory mapped devices, DMA, device drivers, interrupt handling, scheduled vs non-scheduled I/O processing, block vs character devices
13- Disks, sectors, tracks, blocks, disk head scheduling algorithms, the file abstraction, directories, links
14- File system architecture, file system data structures and system calls
|
Contribution of the Course Intending to Provide the Professional Education |
On successful completion of this course, all students will have developed knowledge and understanding of modern operating systems. |
|