Operating Systems (4ΚΠ03)
Instructor : Thanasis Loukopoulos
Assistant : Georgios Spathoulas
Course typeCompulsory
Semester4
TermSpring Semester
ECTS6
Teaching hours3
Laboratory hours1
Description
Elements of computer architecture. Historical background. Operating system functionality and components. Processes. Process communication. Sockets. CPU scheduling. Threads. Synchronization. Semaphores and monitors. Deadlocks. Memory management. Buddies system. Paging and virtual memory. Caching. File management. Hard disk scheduling.
Course objectives

After the successful course attendance a student will:

  • Acquire the theoretical background on OS design principles.
  • Acquire the theoretical background related to the management of: processes, memory and files.
  • Acquire basic knowledge on algorithms for solving problems related to: CPU scheduling, deadlocks, critical section, disk scheduling.
  • Be able to develop scripts in UNIX shell.
  • Be able to create and manage processes in UNIX.
  • Be able to use basic synchronization primitives such as: semaphores and monitors in the JAVA API.
  • Be able to create and manage threads in the JAVA API.
  • Be able to create client-server applications using JAVA sockets.
Textbooks/Bibliography
  •  Λειτουργικά Συστήματα, Silberschatz Abraham,Galvin Peter B. ,Gagne Greg, ΣΤΕΛΛΑ ΠΑΡΙΚΟΥ & ΣΙΑ ΟΕ, 2η έκδ./2009, ΑΘΗΝΑ
  • Λειτουργικά Συστήματα, 8η Έκδοση, Stallings William, ΕΚΔΟΣΕΙΣ Α. ΤΖΙΟΛΑ & ΥΙΟΙ Α.Ε., 8η/2014, ΘΕΣ/ΝΙΚΗ