Vlachopoulos-Papaeugeniou-Kapnogiannis

=**Δημιουργοί:**=


 * Ιωάννης Βλαχόπουλος 1115200800024
 * Λυκούργος Παπαευγενίου 1115200800122
 * Ιωάννης Καπνογιάννης 1115200600118

= **Τίτλος Σχεδίου Μαθήματος:** =

Διεργασίες Λειτουργικού Συστήματος UNIX

= **Σύντομη Περιγραφή Σχεδίου Μαθήματος:** =

Το παρόν σχέδιο μαθήματος περιλαμβάνει αρχικά την περιγραφή βασικών εννοιών σχετικά με τις διεργασίες, τον ορισμό της διεργασίας και τις καταστάσεις από τις οποίες αυτή διέρχεται. Στη συνέχεια θα γίνει λόγος για το πώς το λειτουργικό σύστημα εκτελεί μαζί ένα σύνολο πολλών διεργασιών, με άλλα λόγια πώς χρονοπρογραμματίζει τον επεξεργαστή. Επίσης θα περιγραφούν η κοινή μνήμη και οι σηματοφόροι ως μηχανισμοί συγχρονισμού/επικοινωνίας των διεργασιών συνοδευόμενο με την παρουσίαση του παραδείγματος παραγωγού-καταναλωτή. Τέλος θα διανεμηθούν φύλλα εργασίας ως εργασία για το σπίτι και θα παρουσιαστούν 3 μαθησιακά αντικείμενα για καλύτερη εμπέδωση των εννοιών.

= **Ανάγκες που καλύπτονται και Προαπαιτούμενα:** =

Για να μάθει κάποιος τις διεργασίες σε θεωρητικό επίπεδο δεν καλείται να χει απαραίτητα προαπαιτούμενες γνώσεις πάνω στα λειτουργικά συστήματα, δηλαδή, δεν ζητάει γνώσεις προγραμματισμού καθώς η παρουσίαση της ενότητας γίνεται κυρίως σε θεωρητικό επίπεδο. Το μάθημα αυτό δίνει τα απαραίτητα εφόδια στους μαθητές ώστε να μπορούν οι ίδιοι να δημιουργούν εφαρμογές που τρέχουν πολλές διεργασίες και να επιλύουν σύνθετα προβλήματα, κατανέμοντας τα tasks του συνολικού προβλήματος σε μικρότερες διεργασίες.

= **Στόχοι Μαθήματος/Ενότητας:** =

Ενώ έχει κατανοήσει ο μαθητής το γνωστικό αντικείμενο, θα πρέπει να μπορεί να ξεχωρίζει διάφορες έννοιες, όπως τη διαφορά μεταξύ προγράμματος και διεργασίας, να γνωρίζει τους τρόπους με τους οποίους εναλλάσσονται οι διεργασίες στη διάρκεια του χρόνου και να μοντελοποιεί ένα πρόβλημα, χωρίζοντας το σε υποπροβλήματα. Με άλλα λόγια, να μπορεί να σκεφτεί πως μία διεργασία μπορεί να χωριστεί σε υποδιεργασίες που επιλύουν αυτά τα υποπροβλήματα. Θα μπορεί ακόμα να γνωρίζει το πώς οι διεργασίες επικοινωνούν μεταξύ τους και μάλιστα με αποτελεσματικό τρόπο, δηλαδή πώς και γιατί έχουμε συγχρονισμό διεργασιών.

= **Μάθημα και Ενότητα του Αναλυτικού Προγράμματος που αντιστοιχεί:** =

Το μάθημα αυτό είναι ένα κεφάλαιο των «Λειτουργικών Συστημάτων» το οποίο αναφέρεται στις διεργασίες του συστήματος UNIX.

= **Περιγραφή Σχεδίου Μαθήματος (Περιεχόμενο, Χρονοπρογραμματισμός, Λινκς):** =


 * Στην παρουσίαση μπορούν να χρησιμοποιηθούν τα [|επίσημα slides του βιβλίου] για το κεφάλαιο με τις διεργασίες.
 * Την διδασκαλία της ενότητας «Διεργασίες του UNIX» θα την χωρίσουμε σε **2 φάσεις** :
 * Παρουσίαση βασικών εννοιών που σχετίζονται με τις διεργασίες και καταστάσεις από τις οποίες διέρχεται και πώς το λειτουργικό σύστημα τρέχει “παράλληλα” πολλές διεργασίες μαζί (χρονοπρογραμματισμός).
 * Διάρκεια: **1 διδακτική ώρα**.
 * Μια περίληψη της ενότητας αυτής καλύπτεται στο [|wordpress blog].
 * Συγχρονισμός διεργασιών του λειτουργικού συστήματος με την βοήθεια της κοινής μνήμης και των σηματοφόρων. Ύστερα θα γίνει παρουσίαση του προβλήματος consumer-producer ως παράδειγμα και στο τέλος της ώρας θα γίνουν κάποιες δραστηριότητες από το σύνολο των μαθητών όπως:
 * Διάρκεια: **1 διδακτική ώρα**.
 * Τελευταία παράγραφος-ενότητα από το [|wordpress blog]
 * [|Quiz για αυτοεξέταση]
 * [|Σταυρόλεξο για ευχάριστη επαναλήψη/μάθηση]
 * Θεωρούμε ότι έχουμε στην διάθεση μας **2 διδακτικές ώρες κάθε εβδομάδα**, οπότε και αυτή η ενότητα θα διδαχθεί σε μία βδομάδα. (2 διδακτικές ώρες = 2 * 45 λεπτά)

= **Μαθησιακά Αντικείμενα που χρησιμοποιήθηκαν:** =


 * [|Wordpress Blog] (Ιωάννης Βλαχόπουλος 1115200800024)
 * Επιλέχθηκε blog για την συνοπτική παρουσίαση της θεωρίας, ώστε το περιβάλλον μελέτης των μαθητών να είναι κατί διαφορετικό από αυτά που έχουν συνηθίσει στις "κλασσικές" διδασκαλίες, πιο ευχάριστο και πιο προσιτό.
 * Περιλαμβάνει ένα briefing για τις διεργασίες, δηλαδή ορισμό, δομή και καταστάσεις διεργασιών καθώς και λίγα λόγια για τον χρονοπρογραμματισμό.
 * Επιπλέον αναφέρονται θέματα της κοινής μνήμης (διεργασιακή επικοινωνία) και του συγχρονισμού διεργασιών με τη βοήθεια σεμαφόρων.


 * [|Quiz] (Παπαευγενίου Λυκούργος 1115200800122)
 * Περιλαμβάνει ένα quiz 21 ερωτήσεων διαφόρων μορφών, όπως ερωτήσεις Σωστού-Λάθους (true-false), επιλογής (multiple choice), συμπλήρωσης κενών (fill the blanks και πολλαπλής επιλογής (checkboxes).
 * Οι ερωτήσεις αφορούν πράγματα από την θεωρία των διεργασιών, τον χρονοπρογραμματισμό τους καθώς και ζητήματα συγχρονισμού-επικοινωνίας.
 *  Στις περισσότερες ερωτήσεις υπάρχει ανατροφοδότηση-εξήγηση, αφού ο μαθητής δώσει την απάντηση του.
 * Οι ερωτήσεις και οι απαντήσεις είναι στα ελληνικά, αλλά τα μενού και οι επιλογές του μαθησιακού αντικειμένου στα αγγλικά λόγω λανθασμένη εμφάνισης ελληνικών χαρακτήρων από την πλευρά του μαθησιακού εργαλείου.


 * [|Σταυρόλεξο] (Καπνογιάννης Ιωάννης 1115200600118)
 * Έχει υλοποιηθεί ένα σταυρόλεξο με τη βοήθεια της υπηρεσίας kubbu. Προτίμησα το σταυρόλεξο γιατί είναι ένας καλός τρόπος ώστε να δοθεί έμφαση σε σημαντικές έννοιες και λέξεις κλειδιά που αφορούν το περιεχόμενο που προσπαθούμε να καλύψουμε.
 * Οι ερωτήσεις είναι στα ελληνικά αλλά οι λέξεις κλειδιά είναι αγγλικές.
 * Υπάρχει βοήθεια μέχρι και 3 γράμματα και στο τέλος μετά την προσπάθεια του μαθητή, εμφανίζεται το ποσοστό επιτυχίας και οι σωστές απαντήσεις.
 * Για το kubbu έχω να παρατηρήσω δυο πράγματα: είχα ένα πρόβλημα με το session που χάθηκε μέχρι να γράψω όλες μου τις ερωτήσεις (με αποτέλεσμα να χαθεί όση δουλειά είχα κάνει) και δεύτερον το σταυρόλεξο που δημιούργησε δεν χρησιμοποιούσε όλες τις ερωτήσεις μου όσες προσπάθειες και να έκανα.

= **Φύλλα Εργασίας:** =
 * [[file:1115200800024-fyllo_ergasias.pdf]] Βλαχόπουλος Γιάννης** 1115200800024
 * [[file:erwthseis.pdf]] Καπνογιάννης Γιάννης** 1115200600118
 * [[file:Φύλλο_εργασίας.pdf]] Παπαευγενίου Λυκούρος**

= **Συμπεράσματα / Προτάσεις:** =

Αποφασίσαμε ότι η παρουσίαση κώδικα για απλά προβλήματα είναι απαγορευτική καθώς δεν υπάρχει κανένα υπόβαθρο σε κάποια γλώσσα προγραμματισμού. Θα θέλαμε να μιλήσουμε αναλυτικά για χρονοπρογραμματισμό διεργασιών στην κεντρική μονάδα επεξεργασίας, αναφερόμενοι στους διάφορους αλγορίθμους χρονοπρογραμματισμού που υπάρχουν, ωστόσο δυο διδακτικές ώρες δεν είναι αρκετές να καλύψουν τόσο μεγάλο κομμάτι ύλης. Οπότε αρκούμαστε στο να κάνουμε κάποιες απλές αναφορές, βασικούς ορισμούς και να αναφέρομε κάποια ενδιαφέροντα θέματα που σχετίζονται με τις διεργασίες, όπως πχ ο συγχρονισμός μεταξύ τους.

= **Βιβλιογραφία και επιπλέον πηγές μελέτης:** =

= =
 * Σύγχρονα Λειτουργικά Συστήματα - TanenBaum
 * Chapter 2: Processes and threads.pdf (μόνο το μέρος των processes)
 * [|Λειτουργικά Συστήματα - Silberschatz, Galvin, Gagne]
 * Producer-consumer problem [|wiki]

= Εργασίες που αξιολογήθηκαν: =

>
 * Παπαευγενίου Λυκούργος:**
 * 1) Υλικό Υπολογιστή - Μονάδες Αποθήκευσης
 * 2) Προγραμματιστικά εργαλεία για το Διαδίκτυο. Κατασκευή ιστοσελίδων με HTML/CSS/JavaScript

>
 * Βλαχόπουλος Γιάννης:**
 * 1) Υλικό Υπολογιστή-Συντήρηση Υπολογιστών-Προστασία από ιούς (ως giannisVl)
 * 2) Προγραμματιστικά εργαλεία για το Διαδίκτυο. Κατασκευή ιστοσελίδων με HTML/CSS/JavaScript (ως giannisVl)

> >
 * Καπνογιάννης Γιάννης:**
 * 1) http://plhrofekp2011.wikispaces.com/Niki_Perdikaki (ως smokejohn)
 * 1) http://plhrofekp2011.wikispaces.com/kazis_avgerodimos (ως smokejohn)

= = =** ΑξιολόγησηΣχεδίου μαθήματος και Μαθησιακού Αντικειμένου **=
 * include component="comments" page="Vlachopoulos-Papaeugeniou-Kapnogiannis" limit="10" ﻿ **