16 Οκτ 2023 12:13 - Στέργιος Παπαδημητρίου

  Διαμόρφωση της ύλης στα μαθήματα "Μεταγλωττιστές", "Λειτουργικά συστήματα", "Προηγμένα θέματα Λειτουργικών συστημάτων", "Παράλληλος και Κατανεμημένος Υπολογισμός"

Τελική διαμόρφωση της ύλης.


Μεταγλωττιστές


Όλο το βιβλίο "An introduction to Compilers and Language Design ", του Douglas Twain είναι στην ύλη εκτός από την ενότητα:

LR Grammars (σελ. 49-62)



Λειτουργικά Συστήματα


Από το βιβλίο "Λειτουργικά Συστήματα", Siberschatz, Galvin, Gagne, ("δεινόσαυροι", 10η έκδοση


Chapter 1 Introduction και Chapter 2 - Operating System Structures , Σελ. 1-104 (Μια ανάγνωση)


Chapter 3 - Processes Σελ. 105-121 (Σημαντικό τμήμα)


Chapter 4 - Threads and Concurrency - Σελ.159-198

(Σημαντικό τμήμα)


Chapter 5 - CPU Scheduling - Σελ. 199- 239

(Σημαντικό τμήμα)


Chapter 6 - Synchronization Tools - Ολο εκτός από την ενότητα 6.3 Peterson's Solution


Chapter 7 - Synchronization Examples - Όλο εκτός από 7.5 Alternative Approaches


Chapter 8 - Deadlocks - Αφαιρείτε από την ύλη


Chapter 9 - Main Memory - Όλο


Chapter 10 - Virtual Memory - Όλο


Chapter 13 - File System Interface - Όλο


Chapter 14 - File System Implementation - Όλο


Προηγμένα Θέματα Λειτουργικών Συστημάτων


Στο μάθημα αυτό η γραπτή εξέταση θα προσμετρήσει 50% και 50% η γραπτή εργασία.


Από το βιβλίο Linux Kernel Programming, Vol 1 του Kaiwan N Billimoria, τα πρώτα 5 κεφάλαια είναι πρακτικού τύπου και εισαγωγικά, θέματα δεν βγαίνουν από αυτά,

προσανατολίζονται και είναι απαραίτητα για όποιον επιθυμεί να δουλέψει πρακτικά με τον Linux kernel, αλλά δεν είναι προαπαιτούμενα για την θεωρητική κατανόηση του Linux kernel και για το μάθημα


Chapter 6 - Kernel Internals Essentials - Processes and Threads, Σελ. 268-311, βασικό τμήμα

Chapter 7 - Memory Management Essentials Σελ. 311-343 Βασικό τμήμα

Chapter 8 - Kernel Memory Allocation for Module Authors - Part 1

Σελ.377-425 Βασικό τμήμα



Από τους "Δεινόσαυρους" οι case studies που αναφέρονται στο Linux (chapter 20) και στα Windows (chapter 21)




Παράλληλος και Κατανεμημένος Υπολογισμός


Το εργαστήριο του μαθήματος θα εξεταστεί με γραπτή εξέταση μαζί με την εξέταση της θεωρίας.


Στην γραπτή εξέταση θα περιλαμβάνονται 2 ομάδες θεμάτων, η πρώτη θα αναφέρεται σε Data Parallel Computation και η δεύτερη σε

Task Based Parallel Computation, το παραδοσιακό multithreading δηλαδή.


Η πρώτη θα αφορά την ύλη από το βιβλίο

Data Parallel C++, Second Edition και περιλαμβάνεται η ύλη:


Chapter 1 Introduction, Σελ. 1-30 (Εισαγωγικές έννοιες)

Chapter 2 - Where Code Executes, Σελ. 31 - 65 (Σημαντικό κεφάλαιο)

Chapter 3 - Data Management, Σελ. 66-96 (Σημαντικό κεφάλαιο)

Chapter 4 - Expressing Parallelism - Σελ. 97-132

(Σημαντικό Κεφάλαιο)

Chapter 5 - Error Handling - Σελ. 135- 150

Chapter 6 - Unified Shared Memory - Σελ. 153- 178

(Σημαντικό Κεφάλαιο)

Chapter 7 - Buffers - Σελ. 179- 199

(Σημαντικό Κεφάλαιο)

Chapter 8 - Scheduling kernels and Data Movement - Σελ. 201- 220

(Σημαντικό Κεφάλαιο)


Η δεύτερη την ύλη από το βιβλίο των "δεινοσαύρων" που θα είναι:

Κεφάλαιο 4( "Νήματα και Συνδρομική Εκτέλεση")

Κεφάλαιο 6 ("Εργαλεία Συγχρονισμού")

Κεφάλαιο 7 ("Παραδείγματα Συγχρονισμού")


Επίσης συμπληρωματικά στο multithreading από το βιβλίο Multicore and GPU Programming, του Gerassimos Barlas,

το Κεφάλαιο 3. Threads and concurrency in standard C++, εκτός

3.7.3 - The barbeshop problem - Introducing fairness

3.8.1 - Memory ordering