Introduction to Operating Systems: basic concepts, history, operating system structure. Processes: the process model and implementation of processes, interprocess communication (race conditions, critical regions, mutual exclusion), process scheduling. Threads: the thread model and thread usage, implementation of threads in user space and in the kernel, hybrid implementations, pop-up threads, making single-threaded code multithreaded, thread scheduling. Deadlocks: detection and recovery, deadlock avoidance, deadlock prevention. Memory management: swapping, virtual memory, page replacement algorithms, design issues for paging systems, implementation issues, segmentation. Input/Output (I/O): principles of I/O hardware, principles of I/O software, I/O software layers, disks. File systems: files and directories, file system implementation, security and protection mechanisms.
1. Σύγχρονα λειτουργικά συστήματα, Andrew S. Tanenbaum.
2. Λειτουργικά Συστήματα 9η Εκδ., Abraham Silberschatz, Peter Baer Galvin, Greg Gagne.