Μάθημα : Λειτουργικά Συστήματα
Κωδικός : ECE147
Operating Systems: Syllabus and Exams (ECE and Erasmus Students)
The Operating Systems class for Erasmus and Greek ECE (ΗΜΜΥ) students is organized as follows:
Class/Office Hours & Location
The course is taught in English to accommodate for Erasmus students. Theory and Laboratory lectures are held together on Thursday 14:15-19:00 in Lab E1. We start on February 19. If during the semester it becomes necessary to make up for a Theory class, it will be scheduled on Saturdays 11:00-15:00. Office and support hours for projects are on Thursdays from 19:00 to 22:00 in the AISE Lab (*).
Class Material
- Theory: Chapters 1 to 6 from Tannenbaum's book (4th, or preferably 5th edition) and documents in ECLASS. The topics concern: processes/threads (lifecycle), synchronization (locks, semaphores, barriers, condition variables or monitors), communication (shared memory, pipes or message boxes), hazards (data races, deadlocks), process scheduling, memory management (virtual to physical address translation, virtual memory, paging), networking, file systems, I/O and drivers. Real-time systems and topics related to system software (POSIX, kernel, security) are also introduced.
- Lab: The Laboratory covers less material than the Theory. It deals with topics, such as open source, Linux systems, installation, commands, shell scripts, as well as systems programming using POSIX, more specifically, process/threads (lifecycle), IPC (synchronization, inter-process communication, networking), hazards in C + Linux. The solved assignments and projects help understand the material in depth. For this purpose, you will need to install Linux (e.g. via Virtualbox) and become familiar with commands and software development tools in Linux (e.g. editor, compiler, debugger etc.). Towards the end of the course, and especially in projects, certain topics that were examined in Theory will further be demonstrated practically, such as RTOS, protection, memory management, file systems, drivers, etc.
Class Lectures, Grading, Assignments and Final Oral Exam Schedule
All students who have never attended the course before must be present in the following lectures & labs (dates will be adjusted if necessary), implement two systems programming projects (providing weekly progress reports and final presentation and demo), and take part in the final oral exam covering the theory lectures & lab. The programming projects count up to 50% towards the final grade, only if the score in final oral exam is at least 4.0 out of 10.0. Otherwise, the student fails the class, and the grade reported is that of the final oral exam.
Ενότητα 1 (x01) - Linux Introduction: commands, scripts
19/2 Linux Intro, Linux installation in VM, commands
26/2 Bash shell: language & scripts
Ενότητα 2 (x02) - Linux processes, Shared Memory, Pipes
5/3 Linux processes: fork/wait, SystemV/POSIX Shared Memory
12/3 Critical Sections, Mutex Example with Processes, Deadlock
19/3 Pipes & Systems Programming Project 1 (25 points, code/report due 23/4, 16:00)
Ενότητα 3 (x03) - Threads, Synchronization, Networking
26/3 Linux processes/threads, mutex/deadlocks, barriers, project support
2/4 Semaphores, Cond Var, Classical vs Non-Classical Sync, project support
23/4 Networking & Systems Programming Project 2 (25 points, code/report due 28/5, 16:00)
Ενότητα 4 (x04) – Theory: Tools, Demos & Future Classes
30/4 Memory Management (Paging) ― related demo, project support
7/5 File Systems & I/O ― related demo, project support
14/5 Real Time Systems & Kernel Development ― related demos, project support
21/5 Virtualization, Security, Distributed Operating Systems ― related demos, project support
28/5 Brief Review for Final Oral Exam ― Q&A (from Students)
4/6 Final Oral Exam (student groups), AISE Lab (*)
*AISE Lab1 is located on the 2nd floor, 2nd door left, just above Erasmus office (entrance is from the South of the building Κ16). The lab is above ΠΚ3.
Final Oral Exam Schedule: (new ECE students are automatically registered)
4 Ιουνίου, 10:00-12:00 – Group 1: ERASMUS & New Greek ECE Studs (in English)
4 Ιουνίου, 12:00-14:00 – Group 2: New Greek ECE Studs (in Greek)
4 Ιουνίου, 14:00-16:00 – Group 3: Past Greek ECE Studs (in Greek)
Note for Past Greek ECE Students: Grading, and Final Oral Exam Schedule
Greek students of Electrical Computer Engineering who have previously attended the course must study the material and programming assignments and register for the final oral exam (see Group 3 schedule above). They do not repeat exercises or projects (they do not count anymore), and their course grade depends entirely on the final oral exam, which concerns both theory and laboratory material. A grade of 5.0 is required to pass the course.
Have a good semester!
The Instructor