Operating Systems


History and evolution of operating systems. Review of computer organization: CPU, registers, MMU, interrupts, stack–based execution. Processes: definition, process state, threads, resources. Unix process control. Process table, PCBs. POSIX threads. Multiprogramming: definitions. Monitors, concepts and implementation. Semaphores, reader–writer locks, producer/consumer and buffers. Deadlocks. Process scheduling. Memory management: Memory hierarchies, locality, caching and prefetching, fragmentation. Memory allocation. Program loading. Segmentation, paging. The i386 paging model. Memory mapping, copy–on–write. Virtual memory, replacement policies. Input/output and interprocess communication: Streams and stream I/O. Pipes, sockets. Terminals. Network and block devices. Device drivers, driver architecture. I/O programming using polling, threads, event–driven programming. External memory: file systems. File and directory management. Magnetic disks, performance model, formatting, I/O scheduling. RAID. File system organization.


Objectives

Examination of basic principles and techniques that rule the structure and the functionality of operating systems.


Prerequisites

C programming language, basic knowledge of Digital Computers course.


Syllabus

History and evolution of operating systems. Categories of operating systems (real time, embedded etc). Review of computer organization. Processes. Multiprogramming. Process scheduling. Memory management. Input/output. External memory. File and directory management. File system organization. Security.

COURSE DETAILS

Level:

Type:

undergraduate

(A-)


Instructors: Vasilis Samoladas
Department: School of Electronic and Computer Engineering
Institution: Technical University of Crete
Subject: Computer and Electronic Engineering
Rights:

Visit Course Page

SHARE THIS COURSE
RELATED COURSES