Περιγραφή Μαθήματος: Εισαγωγή και ιστορία υπολογιστικών συστημάτων, διεργασίες, νήματα, συγχρονισμός, αδιέξοδο, χρονοδρομολόγηση επεξεργαστή, διαχείριση μνήμης, εικονική μνήμη, διαχείριση συσκευών, συστήματα αρχείων, ασφάλεια. Το μάθημα περιλαμβάνει εργαστηριακές προγραμματιστικές ασκήσεις που διδάσκουν τη χρήση κλήσεων συστήματος και την υλοποίηση εσωτερικών λειτουργιών του πυρήνα.
Μαθησιακοί στόχοι: Το μάθημα σκοπεύει να αναπτύξει κατανόηση της χρήσης, σχεδιασμού και υλοποίησης λειτουργικών συστημάτων γενικού σκοπού, καθώς και ικανότητες προγραμματισμού συστήματος και πυρήνα.
Διδάσκων: Καθηγητής Σ. Αναστασιάδης (Γραφείο A33, Ηλ.Ταχ.: stergios)
Εργαστηριακό Προσωπικό: Δρ. Ι. Κυριαζής (Γραφείο Ι10, Ηλ.Ταχ.: kyriazis)
Βοηθοί: Μ. Βασιλειάδης, Κ. Πανταζής
Διαλέξεις Μαθήματος: Τρίτη 13:00-15:00 (Ι5), Παρασκευή 16:00-18:00 (Ι5), Εργαστηρίου: Πέμπτη 14:00-16:00 (Ι5)
Ώρες Γραφείου Μαθήματος: Τρίτη 12:00-13:00, Παρασκευή 15:00-16:00, Εργαστηρίου: Πέμπτη 13:00-14:00
Εργαστήρια: Ο βαθμός εργαστηρίου από το προηγούμενο έτος μεταφέρεται αυτομάτως στον τελικό βαθμό εφόσον συμμετάσχετε στην τελική γραπτή εξέταση.
Βαθμολόγηση: 2 εργαστηριακές ασκήσεις (Ε1:15%, Ε2:15%), προαιρετική εξέταση προόδου (Π: 20%), τελική εξέταση (Τ:50%). Αν και ο συνολικός προβιβάσιμος βαθμός είναι το 5, τόσο ο μέσος βαθμός των ασκήσεων όσο και των γραπτών εξετάσεων πρέπει να είναι τουλάχιστο 4.
Η ενδιάμεση και τελική εξέταση θα γίνουν με κλειστές σημειώσεις.
Forum: Στο forum μπορείτε να στέλνετε απορίες σχετικές με το μάθημα και να λαμβάνετε απαντήσεις είτε από συμφοιτητές σας είτε από τους βοηθούς και τον διδάσκοντα .
Ενδεικτικό Εβδομαδιαίο Πρόγραμμα:
Α/Α |
Εβδομάδα (Ημ/νία ΤΡΙΤΗΣ) |
Θέμα |
Εργαστήριο |
Εξέτασεις |
---|---|---|---|---|
1 |
11/02/2025 | Εισαγωγή |
|
|
2 |
18/02/2025 | Περιγραφή Διεργασιών |
|
|
3 |
25/02/2025 | Έλεγχος Διεργασιών |
|
|
4 |
04/03/2025 | Διεργασίες και Νήματα | Ανακοίνωση Ε1 |
|
5 |
11/03/2025 | Αμοιβαίος Αποκλεισμός |
|
|
6 |
18/03/2025 | Σημαφόροι και Παρατηρητές |
|
|
7 |
25/03/2025 | Αδιέξοδα |
|
|
8 |
01/04/2025 | Χρονοδρομολόγηση | Παράδοση Ε1 |
|
9 |
08/04/2025 | Διαχείριση Αρχείων |
Πρόοδος |
|
10 |
29/04/2025 | Διαχείριση Μνήμης | Ανακοίνωση Ε2 |
|
11 |
06/05/2025 | Εικονική Μνήμη |
|
|
12 |
13/05/2025 | Διαχείριση Εισόδου/Εξόδου |
|
|
13
|
20/05/2025 | Ασφάλεια | Παράδοση Ε2 |
|
14 | Θα ανακοινωθεί | Τελική |
Σύγγραμμα 1: William Stallings, Λειτουργικά Συστήματα Αρχές Σχεδίασης, 9η Έκδοση, Εκδόσεις Τζιόλα, 2017.
Σύγγραμμα 2: Andrew Tanenbaum, Herbert Bos Σύγχρονα Λειτουργικά Συστήματα, 4η Έκδοση, Εκδόσεις Κλειδάριθμος, 2018.
Σύγγραμμα 3: Abraham Silberschatz, Peter B. Galvin, Greg Gagne, Λειτουργικά Συστήματα, 10η Έκδοση, Εκδόσεις Μ. Γκιούρδας, 2021.
Προτεινόμενες Αναφορές:
Εσωτερικό Λειτουργικών Συστημάτων:
K. Billimoria, Linux Kernel Programmaing, Part 1, Part 2, Packt Publishing, 2021.
R. H. Arpaci-Dusseau, A. C. Arpaci-Dusseau, Operating Systems: Three Easy Pieces, Lulu Press, 2014.
R. Love, Linux Kernel Development, Third Edition, Addison-Wesley Professional, 2010.
J. H. Saltzer, M. F. Kaashoek, Principles of Computer System Design: An Introduction, Morgan Kaufmann/Elsevier, 2009.
P. Bovet, Marco Cesati, Understanding the Linux Kernel, Third Edition, O'Reilly Media, Inc., 2005.
Προγραμματισμός Συστημάτων:
L. Van Winkle, Hands-On Network Programming with C: Learn socket programming in C and write secure and optimized network code, Packt Publishing, 2019.
R. Love, Linux System Programming: Talking Directly to the Kernel and C Library, O'Reilly Media, 2013.
W. R. Stevens, S. A. Rago, Advanced programming in the UNIX environment, Addison-Wesley, 2013.
M. Kerrisk, Linux Programming Interface: A Linux and Unix System Programming Handbook, No Starch Press, 2010.
Εργαλεία Προγραμματισμού (κειμενογράφοι, μεταγλωττιστές, εκσφαλματωτές):
R. M. Stallman, R. McGrath, P. D. Smith, GNU Make, A Program for Directing Recompilation, Version 4.4.1, 2023.
R. Stallman, R. Pesch, S. Shebs, Debugging with GDB: The GNU Source-Level Debugger, 12th Media Services, 2018.
M. Sobell, M. Helmke, Practical Guide to Linux Commands, Editors, and Shell Programming, Addison-Wesley Professional, 2017.
D. Griffiths, D. Griffiths, Head First C, O'Reilly, 2014.
B. W. Kernighan, D. M. Ritchie, The C programming language, Prentice-Hall, 1978.
Πηγές στο διαδίκτυο:
Εισαγωγή στο gcc, make (cheatsheet), gdb (cheatsheet), vim (cheatsheet).
Εισαγωγή στην Επικοινωνία Διεργασιών Unix.
Εισαγωγή στον Προγραμματισμό Νημάτων POSIX.