<?xml version='1.0' encoding='utf-8'?><rss version='2.0' xmlns:atom='http://www.w3.org/2005/Atom'><channel><atom:link href='https://eclass.hmu.gr/modules/announcements/rss.php?c=ECE149' rel='self' type='application/rss+xml' /><title>Ανακοινώσεις μαθήματος Λογισμικό Συστήματος</title><link>https://eclass.hmu.gr/courses/ECE149/</link><description>Ανακοινώσεις</description><lastBuildDate>Sun, 28 Sep 2025 19:28:04 +0300</lastBuildDate><language>el</language><item><title>Διαδικαστικά Μαθήματος Λογισμικό Συστήματος, Τμήμα ΗΜΜΥ</title><link>https://eclass.hmu.gr/modules/announcements/index.php?an_id=116914&amp;course=ECE149</link><description>&lt;p style="text-align:justify;"&gt;Το μάθημα είναι ενιαίο και περιλαμβάνει Θεωρία και Εργαστήριο (Δευτέρα 15:15-19:00) στο Εργαστήριο 1 (εκτός όπου αναφέρεται στο παρακάτω πρόγραμμα διαφορετικά). Ξεκινάμε 29 Σεπτέμβρη.&lt;/p&gt;
&lt;p style="text-align:justify;"&gt;Η Εξεταστέα Ύλη χωρίζεται σε 3 ενότητες.&lt;/p&gt;
&lt;p style="text-align:justify;"&gt;&lt;strong&gt;Ενότητα 1 – Ανάπτυξη Λογισμικού, &lt;/strong&gt;&lt;strong&gt;POSIX&lt;/strong&gt;&lt;strong&gt;/&lt;/strong&gt;&lt;strong&gt;IPC&lt;/strong&gt;&lt;strong&gt;, Τεχνικές Βελτιστοποίησης Απόδοσης &amp;amp; Ενεργειακής Κατανάλωσης &lt;/strong&gt;&lt;/p&gt;
&lt;p style="text-align:justify;"&gt;Η Ενότητα 1 περιλαμβάνει 5 μαθήματα (x01-x05). Στο πρώτο μάθημα (&lt;strong&gt;x&lt;/strong&gt;&lt;strong&gt;01)&lt;/strong&gt;, εξετάζονται θέματα και εργαλεία ανάπτυξης ανοικτού λογισμικού και βιβλιοθηκών που βασίζονται κυρίως σε GNU software development. Τα εργαλεία αυτά αφορούν κυρίως compiling, assembling, linking, και debugging σε διάφορα συστήματα, π.χ. desktop, servers, και ενσωματωμένα συστήματα. Στα επόμενα 3 μαθήματα (&lt;strong&gt;x&lt;/strong&gt;&lt;strong&gt;02&lt;/strong&gt; έως &lt;strong&gt;x&lt;/strong&gt;&lt;strong&gt;04)&lt;/strong&gt;, κεντρικό σημείο αναφοράς αποτελεί η χρήση προγραμματιστικών τεχνικών και βιβλιοθηκών. Γίνεται εκτενής αναφορά στη χρήση παράλληλων διεργασιών, νημάτων, συχγρονισμών, σημάτων, ουρών, σωληνώσεων, και γενικότερα διαδιεργασιακής επικοινωνίας και δiκτυακού προγραμματισμού με sockets (POSIX, IPC). Σκοπός είναι η αύξηση της απόδοσης και μείωση της ενεργειακής κατανάλωσης, όπως σε concurrent servers. Επίσης, στο πέμπτο μάθημα (&lt;strong&gt;x&lt;/strong&gt;&lt;strong&gt;05&lt;/strong&gt;), εξετάζονται τεχνικές επιτάχυνσης σε επίπεδο compiler (SSEx vector operations), μέθοδοι που αυξάνουν το locality (caching, prefetching) και εργαλεία ανάλυσης/βελτιστοποίησης (perf tools, profiling, tuning, code coverage) όπως το Valgrind, gprof/oprof, gcov και το PAPI.&lt;/p&gt;
&lt;p style="text-align:justify;"&gt;&lt;strong&gt;Ενότητα 2 – Λογισμικό Συστήματος για Μικροσυστήματα, Συστήματα Πραγματικού Χρόνου&lt;/strong&gt;&lt;/p&gt;
&lt;p style="text-align:justify;"&gt;Η Ενότητα 2 περιλαμβάνει 2 μαθήματα (x06-x07). Στο έκτο μάθημα (&lt;strong&gt;x&lt;/strong&gt;&lt;strong&gt;06&lt;/strong&gt;) εξετάζεται η ανάπτυξη και η χρήση  βιβλιοθηκών μικρονημάτων (thin clients, protothreads) και small network stacks (κυρίως protosockets και uIP) σε περιβάλλοντα με περιορισμένες απαιτήσεις (π.χ. boards βασισμένα σε 8- ή 16-bit AVR μικροελεγκτές). Επίσης αναλύονται διάφορα άλλα lightweight network stacks (picotcp, lwip) και μικρές βάσεις δεδομένων όπως LittleD. Επίσης στο έβδομο μάθημα (&lt;strong&gt;x&lt;/strong&gt;&lt;strong&gt;07&lt;/strong&gt;), εξετάζονται θέματα λειτουργικών συστημάτων πραγματικού χρόνου (RTOS) και υποστήριξης τεχνικών multitasking καθώς και προγραμμάτων οδηγών σε συστήματα πραγματικού χρόνου (WCET, WCCT). Εξετάζονται θέματα σχεδιασμού και χρονοπρογραμματισμού διεργασιών σε γνωστά λειτουργικά συστήματα πραγματικού χρόνου, π.χ. FreeRTOS και priority-based preemptive &lt;span&gt;ThreadΧ (σε αντίστοιχες ενσωματωμένες πλατφόρμες). Επίσης αναφέρονται πρακτικά ζητήματα προβλεψιμότητας, ασφάλειας (&lt;/span&gt;security) και αξιοπιστίας (safety, reliability) μηνυμάτων σε  δίκτυα πραγματικού χρόνου που χρησιμοποιούνται σε συστήματα επικοινωνιών, μεταφορών, διαστημικής μηχανικής, και συστημάτων υγείας με αντίστοιχες επιδείξεις, π.χ. επικοινωνία μέσω CAN bus σε έξυπνα οχήματα.&lt;/p&gt;
&lt;p style="text-align:justify;"&gt;&lt;strong&gt;Ενότητα&lt;/strong&gt; &lt;strong&gt;3 – Linux Kernel Programming, Drivers &amp;amp; Modules&lt;/strong&gt;&lt;/p&gt;
&lt;p style="text-align:justify;"&gt;Η Ενότητα 3 περιλαμβάνει 4 μαθήματα (&lt;strong&gt;x&lt;/strong&gt;&lt;strong&gt;08&lt;/strong&gt; έως &lt;strong&gt;x&lt;/strong&gt;&lt;strong&gt;11)&lt;/strong&gt; όπου εξετάζεται η παραμετροποίηση (configuration, device trees) &lt;span&gt;και μετάφραση του &lt;/span&gt;Linux kernel directly ή μέσω cross compiling toolchains (και compiler generator). Επίσης μελετούνται θέματα αποσφαλμάτωσης και τεχνικές προγραμματισμού σε επίπεδο kernel, π.χ. signals, kprobes (non-intrusive monitoring), sysfs/debugs, procfs, interrupt routines, process &amp;amp; interrupt context, wait_event, waiting queues/sleeping, synchronization elements (mutex, semaphore, spinlock), θέματα scheduling, timers, atomic operations kernel memory allocation, kthreads, και tasklets. Επίσης λεπτομερώς εξετάζεται ο  σχεδιασμός και η υλοποίηση character devices &lt;span&gt;και &lt;/span&gt;network devices (netdev, netfilter hooks, network firewalls). Δίνεται έμφαση σε θέματα σχεδιασμού και υλοποίησης οδηγών πραγματικών συσκευών (μέσω ioremap, register_region) καθώς και η επικοινωνία με interfaces υψηλού επιπέδου μέσω IOCTL ή GPIO για character devices. Τέλος γίνεται σύντομη  σε terminal devices (ttys). Δεν εξετάζεται προς το παρόν η οργάνωση block drivers (DMA-based), ιδιαίτερα RAID, PCIe και USB drivers, η ανάπτυξη οδηγών περιφερειακών καναλιών (UART-Serial, I2C, SPI, SWI), καθώς και σε θέματα που αφορούν σε Linux kernel security.&lt;/p&gt;
&lt;p style="text-align:justify;"&gt;&lt;strong&gt;Εργαστηριακές Ασκήσεις&lt;/strong&gt;&lt;/p&gt;
&lt;p style="text-align:justify;"&gt;Το Εργαστήριο καλύπτει παρόμοια ύλη με τη Θεωρία αλλά ασχολείται με προγραμματιστικά θέματα. Τα παραδείγματα ασκήσεων που σας δίνονται καθώς και οι προγραμματιστικές εργασίες που σας ζητούνται υλοποιούνται σε  κώδικα C/C++ στο Linux. Συχνά χρησιμοποιούν χρήσιμα εργαλεία, βιβλιοθήκες ή διάφορα πακέτα λογισμικού ανοικτού κώδικα. Οι εργασίες σας δίνουν τη δυνατότητα πρακτικής εφαρμογής εννοιών της θεωρίας και βοηθούν να καταλάβετε σε βάθος τη Θεωρία. Για τον σκοπό αυτό θα χρειαστεί να εγκαταστήσετε Linux (π.χ. μέσω Virtualbox, όπως στα Λειτουργικά Συστήματα του 8ου Εξαμήνου).  Στο πλαίσιο αυτό υπάρχει δυνατότητα πρακτικής εφαρμογής των εννοιών της θεωρίας είτε στον υπολογιστή, είτε χρησιμοποιώντας ενσωματωμένες πλατφόρμες (Arduino, STM32, AVNET Zedboard, Hardkernel &lt;span&gt;Odroid XU3/4, 96boards Hikey &amp;amp; &lt;/span&gt;Dragonboard 410c, Renesas Synergy S7G2) και υβριδικά συστήματα με mezzanine boards (π.χ. DSP &lt;span&gt;a&lt;/span&gt;udio, sensor boards) διασυνδεμένα με διάφορες τεχνολογίες επικοινωνιών, π.χ. Ethernet, wireless, peripheral buses, και real-time communications (π.χ. CAN bus).&lt;/p&gt;
&lt;p style="text-align:justify;"&gt;&lt;strong&gt;Βαθμολογία, Εργασίες και Εξετάσεις&lt;/strong&gt;&lt;/p&gt;
&lt;p style="text-align:justify;"&gt;Α) Οι φοιτητές ΗΜΜΥ που δεν έχουν παρακολουθήσει το μάθημα ποτέ υποχρεούνται σε φυσική παρουσία στα εξής εργαστηριακά μαθήματα (οι ημερομηνίες θα προσαρμοστούν αν χρειαστεί):&lt;/p&gt;
&lt;p style="text-align:justify;"&gt;&lt;strong&gt;Ενότητα 1 (x01-x05) – Software Development, POSIX/IPC, Performance Tuning&lt;/strong&gt;&lt;br /&gt;29/09 Linux software development &amp;amp; tools&lt;/p&gt;
&lt;p style="text-align:justify;"&gt;06/10 Processes, Pipes, Signals, Sync&lt;/p&gt;
&lt;p style="text-align:justify;"&gt;13/10 Threads, Synchronization&lt;/p&gt;
&lt;p style="text-align:justify;"&gt;20/10 Network Programming&lt;/p&gt;
&lt;p style="text-align:justify;"&gt;27/10 Performance Tuning &amp;amp; &lt;strong&gt;Εργασία 1 (ως 20%, προθεσμία: 08/12 στις 16:00)&lt;/strong&gt;&lt;/p&gt;
&lt;p style="text-align:justify;"&gt; &lt;/p&gt;
&lt;p style="text-align:justify;"&gt;&lt;strong&gt;Ενότητα 2 (x06-x07) – Small Systems &amp;amp; Real Time Systems&lt;/strong&gt;&lt;br /&gt;03/11 System Software for Small Systems&lt;/p&gt;
&lt;p style="text-align:justify;"&gt;10/11 Real-Time Systems, RTOS (Teleconference)&lt;/p&gt;
&lt;p style="text-align:justify;"&gt; &lt;/p&gt;
&lt;p style="text-align:justify;"&gt;&lt;strong&gt;Ενότητα 3 (x08-x11) - Linux Kernel Programming, Drivers &amp;amp; Modules&lt;br /&gt;&lt;/strong&gt;24/11 Linux Kernel Programming&lt;/p&gt;
&lt;p style="text-align:justify;"&gt;01/11 Linux Kernel Programming&lt;/p&gt;
&lt;p style="text-align:justify;"&gt;08/12 Linux Kernel Programming &amp;amp; &lt;strong&gt;Εργασία 2 (ως 30%, προθεσμία: 12/01 16:00)&lt;/strong&gt;&lt;/p&gt;
&lt;p style="text-align:justify;"&gt;15/12 Linux Kernel Programming&lt;/p&gt;
&lt;p style="text-align:justify;"&gt;&lt;span style="color:#ffff00;background-color:#ff0000;"&gt;22/12 Επανάληψη Θ+Ε (ξεκινά την ώρα της Θεωρίας) στο Εργ ΤΝΜΣ (2ος οροφος πάνω από ΠΚ3, 2η πόρτα αριστερά)&lt;/span&gt;&lt;span style="color:#ffff00;background-color:#ff0000;"&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p style="text-align:justify;"&gt;&lt;span style="color:#ffff00;background-color:#ff0000;"&gt;12/01 19:00-22:00 Τελική Προφορική Εξέταση Θεωρίας/Εργαστηρίου στο Εργ. ΤΝΜΣ-Α. Η Εξέταση θα ακολουθήσει την παράδοση της Εργασίας 2 που έχει οριστεί για τις 12 Ιανουαρίου στις 16:00&lt;/span&gt;&lt;/p&gt;
&lt;p style="text-align:justify;"&gt;&lt;strong&gt;Παρατηρήσεις:&lt;/strong&gt;&lt;/p&gt;
&lt;p style="text-align:justify;"&gt;&lt;strong&gt;1) Για την τελική προφορική εξέταση η δήλωση της συμμετοχή θα γίνει αυτόματα και θα ανακοινωθεί παρακάτω&lt;/strong&gt;&lt;/p&gt;
&lt;p style="text-align:justify;"&gt;&lt;strong&gt;2) Οι Προγραμματιστικές Εργασίες (1, 2 και 3) μετρούν συνολικά ως 50% του βαθμού, μόνο αν η βαθμολογία της τελικής εξέτασης είναι τουλάχιστον 4.&lt;/strong&gt;&lt;/p&gt;
&lt;p style="text-align:justify;"&gt;&lt;strong&gt;3) Για σύντομες ερωτήσεις/απορίες (π.χ. τεχνικά θέματα) μπορείτε να με συναντήσετε μετά το μάθημα, ή Παρασκευή 18:00-20:00, ή στέλνετε μήνυμα στο Microsoft Teams - name: Miltos.Grammatikakis &lt;/strong&gt;&lt;/p&gt;
&lt;p style="text-align:justify;"&gt;4) Φοιτητές του ΗΜΜΥ που έχουν παρακολουθήσει το μάθημα παλιότερα ΔΕΝ υποχρεούνται σε φυσική παρουσία.&lt;strong&gt; Οι φοιτητές αυτοί είναι υποχρεωμένοι να μελετήσουν ξανά τη θεωρία και τις προγραμματιστικές εργασίες. O βαθμός στο μάθημα θα προέλθει εξ’ ολοκλήρου (100%) από τελική προφορική εξέταση που θα γίνει τις προτεινόμενες ημερομηνίες και πρέπει να δηλώσετε έγκαιρα συμμετοχή. Η εξέταση αφορά Θεωρία και Εργαστήριο και απαιτείται συνολικός μέσος όρος 5 για να περάσετε το μάθημα. Για τη δήλωση συμμετοχής δείτε την επόμενη παρατήρηση (6).&lt;/strong&gt;&lt;/p&gt;
&lt;p style="text-align:justify;"&gt;5) Για τα &lt;strong&gt;διαδικαστικά της τελικής εξέτασης&lt;/strong&gt; δείτε παρακάτω.&lt;/p&gt;
&lt;p style="text-align:justify;"&gt;Από το ξεκίνημα της προφορικής εξέτασης ως το τέλος της υπάρχει συνεχής ροή ερωτήσεων, ενώ ο φοιτητής που ερωτάται σε κάθε ερώτηση οφείλει να απαντά άμεσα με προφορικό λόγο, χωρίς καμιά καθυστέρηση. Καθυστερημένες απαντήσεις δε βαθμολογούνται. Οι ερωτήσεις αφορούν σε ορισμούς, ερωτήσεις κατανόησης ή κρίσης, και συγκεκριμένα παραδείγματα και ασκήσεις όπου θα πρέπει να παρουσιαστεί επακριβώς η μεθοδολογία και η περιγραφή της διαδικασίας ανάλυσης/σύνθεσης αλγοριθμικών λύσεων ή υλοποιήσεων. Δε θα ζητηθούν πολλές λεπτομέρειες σε επίπεδο κώδικα, αν όμως χρειαστεί κάποια πρόσθετη λεπτομερής πληροφορία σε επίπεδο κώδικα, ψευδοκώδικα, manual κλπ, αυτή θα είναι διαθέσιμη από το διδάσκοντα.  Οι απαντήσεις σας θα καταγράφονται σε σχετικό έντυπο από τον διδάσκοντα ώστε να ανακοινωθεί η βαθμολογία σας αμέσως μετά, εκτός απροόπτου. Σε περίπτωση διακοπής της εξέτασης λόγω τεχνικών λόγων ή άλλου θέματος, η εξέταση επαναλαμβάνεται (ή συνεχίζεται από το σημείο που διακόπηκε) αμέσως μετά ή άλλη ημέρα μετά από συνεννόηση με τελείως διαφορετικά θέματα.&lt;/p&gt;
&lt;p style="text-align:justify;"&gt;6) Παρακάτω &lt;strong&gt;θα ανακοινωθούν οι ημερομηνίες και ώρες της τελικής προφορικής εξέτασης για κάθε φοιτητή&lt;/strong&gt; που έχει δηλώσει. Αν χρειάζεται αλλαγή ή προσθήκη στείλτε email ή επικοινωνήστε στο Microsoft Teams με το μάθημα, όνομα και ΑΜ.&lt;/p&gt;
&lt;p style="text-align:justify;"&gt;&lt;strong&gt;12 Ιανουαρίου 19:00-22:00&lt;br /&gt;&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;TBD&lt;/p&gt;
&lt;p style="text-align:justify;"&gt;&lt;strong&gt;...&lt;/strong&gt;&lt;/p&gt;
&lt;p style="text-align:justify;"&gt;Καλό Εξάμηνο.&lt;/p&gt;
&lt;p style="text-align:justify;"&gt;Ο Διδάσκων&lt;/p&gt;</description><pubDate>Sun, 28 Sep 2025 19:28:04 +0300</pubDate><guid isPermaLink='false'>Sun, 28 Sep 2025 19:28:04 +0300116914</guid></item></channel></rss>