Title Operating Systems
Lesson Code 321-4100
Semester 4
ECTS 5
Hours (Theory) 3
Hours (Lab) 2
Faculty Maliatsos Konstantinos

Syllabus

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.

Learning Outcomes

It is the intent of this course that students will:

  • understand the modern computer systems' complexity and the usefulness of operating systems.
  • know the most important resource-utilization issues arising in a computer system.
  • learn the most popular solutions adopted by modern operating systems.
  • be able to describe the basic principles used in the design of modern operating systems.

In particular, the students will:

  1. be able to analyze the tradeoffs inherent in operating system design.
  2. be able to distinguish different styles of operating system design.
  3. understand the main principles and techniques used to implement processes and threads as well as the different algorithms for process scheduling.
  4. understand the main mechanisms used for inter-process communication.
  5. be able to contrast kernel and user mode in an operating system.
  6. be able to explain memory hierarchy and cost-performance tradeoffs.
  7. be able to give the rationale for virtual memory abstractions in operating systems.
  8. have an understanding of disk organization and file system structure.
  9. be able to describe how computing resources are used by application software and managed by system software.
  10. understand the internal structure of an operating system and be able to write programs using system calls.
  11. understand the major mechanisms of current general-purpose operating systems exemplified by Linux.
  12. are capable of basic system-oriented programming and providing simple extensions to an operating system.

Prerequisite Courses

Not required.

Basic Textbooks

1. Σύγχρονα λειτουργικά συστήματα, Andrew S. Tanenbaum.
2. Λειτουργικά Συστήματα 9η Εκδ., Abraham Silberschatz, Peter Baer Galvin, Greg Gagne.

Teaching and Learning Methods

Lectures, resolving exercises, Laboratory Exercises.

Activity Semester workload
Lectures 39 hours
Laboratory Exercises 26 hours
Personal study 54 hours
Laboratory Exams
3 hours
Final exams 3 hours
Course total 125 hours (5 ECTS)

 

Student Performance Evaluation

Lab exercises, written examination.

Language of Instruction and Examinations

Greek, English (for Erasmus students)

Delivery Mode

Face-to-face.