Κατανεμημένα Συστήματα

Σχετικά έγγραφα
Κατανεμημένα Συστήματα

Κατανεμημένα Συστήματα

Κεφάλαιο 4 Διεργασίες Β Τάξη ΕΠΑΛ

Μάθημα 3 ο ΔΙΕΡΓΑΣΙΕΣ (PROCESSES)

Κεφάλαιο 3. Διδακτικοί Στόχοι

Ειδικά Θέματα Προγραμματισμού

Προγραμματισμός 2 Σημειώσεις εργαστηρίου

Εισαγωγή στην Πληροφορική

Μάθημα 7 ο. Αλγόριθμοι Χρονοδρομολόγησης

Λειτουργικά Συστήματα 7ο εξάμηνο, Ακαδημαϊκή περίοδος

Καρακασίδης Αλέξανδρος Καστίδου Γεωργία Παπαφώτη Μαρία Πέτσιος Κων/νος Στέφανος Σαλτέας Καλογεράς Παναγιώτης. Threads in Java ΝΗΜΑΤΑ ΣΤΗ JAVA

Διεργασίες (μοντέλο μνήμης & εκτέλεσης) Προγραμματισμός II 1

Νήµαταστην Java. Συγχρονισµός νηµάτων Επικοινωνία νηµάτων Εκτελέσιµα αντικείµενα Νήµατα δαίµονες Οµάδες νηµάτων. Κατανεµηµένα Συστήµατα 11-1

Παράλληλη Επεξεργασία

ΚΕΦΑΛΑΙΟ 9. Ταυτόχρονος προγραμματισμός και νήματα. 9.1 Εισαγωγή

Διεργασίες (μοντέλο μνήμης & εκτέλεσης) Προγραμματισμός II 1

Λειτουργικά Συστήματα (διαχείριση επεξεργαστή, μνήμης και Ε/Ε)

Τι είναι ένα λειτουργικό σύστημα (ΛΣ); Μια άλλη απεικόνιση. Το Λειτουργικό Σύστημα ως μέρος του υπολογιστή

Στη C++ υπάρχουν τρεις τύποι βρόχων: (a) while, (b) do while, και (c) for. Ακολουθεί η σύνταξη για κάθε μια:

Λειτουργικά Συστήματα (ΗΥ321)

Ενότητα 2 (Κεφάλαιο 3) Περιγραφή και Έλεγχος Διεργασιών. Περιεχόμενα. Ανάγκη ύπαρξης διεργασιών 1

Μάθημα 6 ο. Χρονοδρομολόγηση (Scheduling)

Προγραμματισμός Ι. Προχωρημένα Θέματα. Δημήτρης Μιχαήλ. Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο

Κεφάλαιο ΙV: Δείκτες και πίνακες. 4.1 Δείκτες.

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

Λειτουργικά συστήματα πραγματικού χρόνου

Σημειώσεις του εργαστηριακού μαθήματος Πληροφορική ΙΙ. Εισαγωγή στην γλώσσα προγραμματισμού

Κεφάλαιο 5. Κεφ. 5 Λειτουργικά Συστήματα 1

1 ο ΓΥΜΝΑΣΙΟ ΘΕΡΜΗΣ. Πληροφορική Α' Γυμν. Το Λειτουργικό Σύστημα του Υπολογιστή

ΛΟΓΙΣΜΙΚΟ (software)

Λειτουργικά Συστήματα 7ο εξάμηνο, Ακαδημαϊκή περίοδος

Προγραμματισμός Η/Υ (ΤΛ2007 )

Η-Υ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ. Εργαστήριο 1 Εισαγωγή στη C. Σοφία Μπαλτζή s.mpaltzi@di.uoa.gr

Εισαγωγή εκτελέσιμου κώδικα σε διεργασίες

ΥΠΟΠΡΟΓΡΑΜΜΑΤΑ. Κάθε υποπρόγραμμα έχει μόνο μία είσοδο και μία έξοδο. Κάθε υποπρόγραμμα πρέπει να είναι ανεξάρτητο από τα άλλα.

Λιβανός Γιώργος Εξάμηνο 2017Β

ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ

Αντικειμενοστρεφής Προγραμματισμός

Μάθημα 5: Χαρακτηριστικά της Κ.Μ.Ε.

Εισαγωγικά & Βασικές Έννοιες

Δομημένος Προγραμματισμός

Ι.Ε.Κ. Χαϊδαρίου ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ ΙΙ. Σημειώσεις Θεωρίας

Προγραμματισμός ΙI (Θ)

ΠΛΗΡΟΦΟΡΙΚΗ Ι ΕΡΓΑΣΤΗΡΙΟ 1. Θέμα εργαστηρίου: Εισαγωγή στην Python και στο IDLE

Εργαστήριο Λειτουργικών Συστημάτων - Αλγόριθμοι Χρονοπρογραμματισμού. Εργαστηριακή Άσκηση

Λειτουργικά. Τεχνολογικό Εκπαιδευτικό Ίδρυμα Δυτικής Μακεδονίας Σιώζιος Κων/νος - Πληροφορική Ι

Μάθημα 3.8 Τεχνικές μεταφοράς δεδομένων Λειτουργία τακτικής σάρωσης (Polling) Λειτουργία Διακοπών DMA (Direct Memory Access)

Λειτουργικά Συστήματα. Τ.Ε.Ι. Ιονίων Νήσων Σχολή Διοίκησης και Οικονομίας - Λευκάδα

Προγραμματισμός Η/Υ 1 (Εργαστήριο)

Δομημένος Προγραμματισμός (ΤΛ1006)

ροµολόγηση Επεξεργαστή

ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ Η/Υ Ακαδημαϊκό έτος ΤΕΤΡΑΔΙΟ ΕΡΓΑΣΤΗΡΙΟΥ #4

ΠΑΝΕΠΙΣΤΗΜΙΟ ΘΕΣΣΑΛΙΑΣ ΣΧΟΛΗ ΘΕΤΙΚΩΝ ΕΠΙΣΤΗΜΩΝ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ

3ο σετ σημειώσεων - Πίνακες, συμβολοσειρές, συναρτήσεις

Κατανεμημένα Συστήματα: Θεωρία και Προγραμματισμός. Ενότητα # 8: Ταυτοχρονισμός και νήματα Διδάσκων: Γεώργιος Ξυλωμένος Τμήμα: Πληροφορικής

Ε-85: Ειδικά Θέµατα Λογισµικού

Εργαστήριο ΔΙΕΡΓΑΣΙΕΣ - ΔΙΑΧΕΙΡΙΣΗ

Λειτουργικά Συστήματα 7ο εξάμηνο, Ακαδημαϊκή περίοδος

Παράλληλη Επεξεργασία

ΧΡΟΝΟΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ

Συστήματα Παράλληλης και Κατανεμημένης Επεξεργασίας

Οργάνωση ενός σύγχρονου Υπολογιστικού Συστήματος ή Ηλεκτρονικού Υπολογιστή (Η/Υ) Τα σύγχρονα συστήματα Η/Υ έχουν την παρακάτω οργάνωση:

ΤΜΗΜΑ ΜΗΧΑΝΙΚΩΝ Η/Υ, ΤΗΛΕΠΙΚΟΙΝΩΝΙΩΝ ΚΑΙ ΔΙΚΤΥΩΝ, ΠΑΝΕΠΙΣΤΗΜΙΟ ΘΕΣΣΑΛΙΑΣ

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

Μάθημα 4 ο. Κρίσιμα Τμήματα και Αμοιβαίος Αποκλεισμός

Νήµατα. ιεργασίες και νήµατα Υλοποίηση νηµάτων Ελαφριές διεργασίες Αξιοποίηση νηµάτων. Κατανεµηµένα Συστήµατα 10-1

Οι εντολές ελέγχου της ροής ενός προγράμματος.

first block of queries p-th block of queries p

ΗΥ240: οµές εδοµένων Χειµερινό Εξάµηνο Ακαδηµαϊκό Έτος Παναγιώτα Φατούρου. Προγραµµατιστική Εργασία 3 ο Μέρος

ιεργασίες και νήµατα Προγραµµατισµός ΙΙΙ 1 lalis@inf.uth.gr

50 Ketseo,Theoni Sarif,Omar 104

Θοδωρής Ανδρόνικος Τμήμα Πληροφορικής, Ιόνιο Πανεπιστήμιο

Προγραμματισμός Η/Y. Διάλεξη 6 η : Συναρτήσεις

Μάθημα 7: Αλγόριθμοι Χρονοδρομολόγησης

Λειτουργικά Συστήματα (ΗΥ321)

ιεργασίες και Επεξεργαστές στα Κατανεµηµένων Συστηµάτων

ΜΕΤΑΓΛΩΤΤΙΣΤΕΣ. Στην εξοικείωση με τη διαδικασία κατασκευής ενός Λεξικού Αναλυτή κάνοντας χρήση του lex.

ΧΡΟΝΟΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ

Κεφάλαιο 1. Νήματα (Threads). Time Sharing

Κινητά και Διάχυτα Συστήματα. Ενότητα # 3: Νήματα και ταυτοχρονισμός Διδάσκων: Γεώργιος Ξυλωμένος Τμήμα: Πληροφορικής

Εαρινό. Ύλη εργαστηρίου, Ασκήσεις Java

Ανάλυση Επιδόσεων Συστημάτων Πραγματικού Χρόνου

Προγραμματισμός Η/Υ 1 (Εργαστήριο)

Δομή Προγράμματος C++, Χειρισμός Μεταβλητών και Συναρτήσεις Εισόδου - Εξόδου

Εισαγωγικά & Βασικές Έννοιες

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Αντικείμενα με πίνακες. Constructors. Υλοποίηση Στοίβας

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

Τι χρειάζεται ένας φοιτητής για τη σωστή παρακολούθηση και συμμετοχή στο μαθημα;

1. ΑΡΧΕΣ ΛΕΙΤΟΥΡΓΙΚΩΝ ΣΥΣΤΗΜΑΤΩΝ

ΕΡΓΑΣΤΗΡΙΟ 3: Προγραμματιστικά Περιβάλλοντα και το Πρώτο Πρόγραμμα C

Κεφάλαιο 4: Λογισμικό Συστήματος

Άσκηση 1 (ανακοινώθηκε στις 20 Μαρτίου 2017, προθεσμία παράδοσης: 24 Απριλίου 2017, 12 τα μεσάνυχτα).

ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ Η/Υ Ακαδημαϊκό έτος ΤΕΤΡΑΔΙΟ ΕΡΓΑΣΤΗΡΙΟΥ #2

Μάθημα 3: Αρχιτεκτονική Υπολογιστών

Προγραμματισμός Υπολογιστών & Υπολογιστική Φυσική

Λύβας Χρήστος Αρχική επιµέλεια Πιτροπάκης Νικόλαος και Υφαντόπουλος Νικόλαος

ΕΞΕΤΑΖΟΜΕΝΟ ΜΑΘΗΜΑ : ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ ΠΕΡΙΒΑΛΛΟΝ ΤΕΧΝΟΛΟΓΙΚΗΣ ΚΑΤΕΥΘΥΝΣΗΣ

HY-486 Αρχές Κατανεμημένου Υπολογισμού

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

Διάλεξη Εισαγωγή στη Java, Μέρος Γ

Transcript:

Κατανεμημένα Συστήματα Σημειώσεις εργαστηρίου Lab#7 - Διεργασίες, Nήματα, Πολυνημάτωση στη Python Νεβράντζας Βάιος-Γερμανός Λάρισα, Φεβρουάριος 2013

Lab#7 - Διεργασιές, Νη ματα, Πολυνημα τωση στη Python, σελίδα 1 Περίληψη Στο 2ο μέρος του εργαστηριακού μαθήματος θα ασχοληθούμε με θέματα των κατανεμημένων συστημάτων, θεωρητικά και πρακτικά. Τα μαθήματα θα περιλαμβάνουν κάποιες εισαγωγικές έννοιες, ασκήσεις εργαστηρίου και ασκήσεις homework. Αναλυτικά: Έννοιες μαθήματος Ασκήσεις εργαστηρίου Homework

Lab#7 - Διεργασιές, Νη ματα, Πολυνημα τωση στη Python, σελίδα 2 Notes Έννοιες μαθήματος Στο συγκεκριμένο μέρος των σημειώσεων θα αναλύουμε τις έννοιες που θα συναντήσουμε τόσο στις ασκήσεις εργαστηρίου όσο και στα homeworks. Διεργασία Μια διεργασία είναι ένα πρόγραμμα ή ένα αυτόνομο τμήμα προγράμματος υπό εκτέλεση. Οι όροι πρόγραμμα και διεργασία διαφοροποιούνται από το γεγονός ότι το πρόγραμμα είναι παθητική οντότητα ενώ η διεργασία είναι ενεργητική. Ένας επεξεργαστής (πυρήνας) μπορεί να διαχειρίζεται ταυτόχρονα πολλές διεργασίες, εναλλάσσοντας το ποια εκτελείται κάθε χρονική στιγμή με συνέπεια να υπάρχει ένα είδος (ψευτο)παραλληλισμού. Όταν το σύστημά μας διαθέτει πολλούς πυρήνες τότε ο παραλληλισμός της εκτέλεσης των διεργασιών είναι πραγματικός. Πολλές φορές είναι απαραίτητη η διακοπή κάποιας διεργασίας για να εκτελεστεί κάποια άλλη (έτσι ώστε να εξυπηρετηθούν όλες). Αυτή η εναλλαγή από τη μια διεργασία στην άλλη ονομάζεται μεταγωγή περιβάλλοντος (context switching). Οι πληροφορίες που κρατούνται κατά τη μεταγωγή περιβάλλοντος αφορούν τα ακόλουθα: Από ποια εντολή του προγράμματος πρέπει να συνεχισθεί η εκτέλεση της διεργασίας την επόμενη φορά Ποια είναι η κατάσταση της ΚΜΕ, ώστε να επαναφερθεί για να συνεχιστεί σωστά η εκτέλεση της διεργασίας Ποια είναι τα ενδιάμεσα αποτελέσματα που έχουν υπολογιστεί μέχρι εκείνη τη στιγμή Συνήθως, η κάθε διεργασία έχει στη διάθεσή της ένα κβάντο χρόνου για να εκτελεστεί και μόλις αυτό εκπνεύσει γίνεται εναλλαγή της διεργασίας που εκτελείται από τη ΚΜΕ. Ο κύκλος ζωής μιας διεργασίας φαίνεται στο ακόλουθο σχήμα:

Lab#7 - Διεργασιές, Νη ματα, Πολυνημα τωση στη Python, σελίδα 3 Νήμα Ένα νήμα εκτέλεσης είναι η μικρότερη ακολουθία προγραμματισμένων εντολών που μπορεί να διαχειρισθεί ανεξάρτητα (από το λειτουργικό σύστημα). Ένα νήμα είναι μια ελαφριά διεργασία. Ένα νήμα συνήθως εμπεριέχεται σε μια διεργασία. Μπορούν να υπάρχουν πολλαπλά νήματα μέσα στην ίδια διεργασία τα οποία μπορούν να μοιράζονται πόρους από το σύστημα (μνήμη, πόρους εισόδου/εξόδου κτλ), ενώ διαφορετικές διεργασίες δεν μπορούν να μοιράζονται τους ίδιους πόρους. Οι διεργασίες έχουν ξεχωριστούς χώρους διευθυνσιοδότησης, ενώ τα νήματα μοιράζονται το σύνολο του χώρου διευθύνσεων που τους παραχωρείται. Έτσι, η εναλλαγή ανάμεσα στα διάφορα νήματα μιας διεργασίας είναι πολύ γρηγορότερη από την εναλλαγή ανάμεσα σε διαφορετικές διεργασίες.

Lab#7 - Διεργασιές, Νη ματα, Πολυνημα τωση στη Python, σελίδα 4 Πολυνημάτωση είναι η δυνατότητα ενός ΛΣ να υποστηρίξει πολλαπλές εκτελέσεις κώδικα (νήματα) μέσα σε μία διεργασία. Τα νήματα αυτά μοιράζονται τους πόρους της διεργασίας και μπορούν να εκτελούνται ανεξάρτητα. Το πλεονέκτημα ενός πολυνηματικού προγράμματος είναι ότι του επιτρέπει να εκτελείται γρηγορότερα σε υπολογιστικά συστήματα που έχουν πολλούς επεξεργαστές, επεξεργαστές με πολλούς πυρήνες, ή κατά μήκος μιας συστοιχίας υπολογιστών. Python+ Για να δημιουργήσετε προγράμματα με νήματα στη Python θα χρειαστείτε τις παρακάτω εντολές: Το Module threading Το module threading είναι χτισμένο στη κορυφή του παλιού module thread και παρέχει λειτουργικότητα πολυνημάτωσης σε υψήλού επιπέδου μορφή. Μας προσφέρει αρκετές έτοιμες κλάσεις όπως η Thread, η Condition, Event, RLock και η Semaphore. Στα προγράμματά μας θα χρησιμοποιήσουμε τη κλάση Thread, την οποία εισάγουμε με την εντολή: ο κατασκευαστής της κλάσης Thread Για να δημιουργήσουμε ένα νήμα (thread) θα πρέπει να καλέσουμε τον κατασκευαστή της έτοιμης κλάσης Thread που παρέχει το module threading. Η γενική σύνταξη είναι η ακόλουθη: t =

Lab#7 - Διεργασιές, Νη ματα, Πολυνημα τωση στη Python, σελίδα 5 Πάντα πρέπει να καλούμε τη Thread με τα συγκεκριμένα ορίσματα: name: το όνομα του νήματος, συνήθως της μορφής Thread-N. Μπορεί να παραληφθεί σαν πεδίο. target: είναι το αντικείμενο (συνήθως συνάρτηση) που θα κληθεί για να εκτελεστεί από το νήμα. Αν έχει την τιμή None δεν θα κληθεί τίποτα. args: είναι η πλειάδα ορισμάτων που θα περάσει κατά τη κλήση του αντικειμένου που δείχνουμε με το target. Ως προεπιλογή είναι η κενή πλειάδα ( ). kwargs: είναι ένα λεξικό με τις λέξεις κλειδιά των ορισμάτων που θα περάσουν στο αντικείμενο του target. Ως προεπιλογή είναι το κενό λεξικό { }, μπορεί να παραληφθεί επίσης. Ενεργοποιώντας ένα νήμα - start() Όταν καλούμε τη Thread() το νήμα δημιουργείται αλλά δεν είναι έτοιμο να τρέξει. Για να προκαλέσουμε την εκτέλεσή του θα πρέπει να καλέσουμε τη συνάρτηση start(). Αυτή θα πρέπει να κληθεί το πολύ μία φορά για κάθε νήμα ως εξής: όνομανήματος. start( ) πχ t. start() Περιμένοντας ένα νήμα - join( ) Εάν περιμένουμε ένα νήμα να τελειώσει την εκτέλεση του κώδικά του τότε καλούμε τη συνάρτηση join( ). Αυτή μπλοκάρει το νήμα που την καλεί μέχρι το σημείο που το νήμα για το οποίο καλείται τερματίσει (προσέξτε: όποιο νήμα βάλουμε πρώτο με join() τότε αυτό θα τερματίσει πρώτο). Έτσι, αν γράψουμε μέσα στη main() την εντολή t. join() τότε λέμε στη main να περιμένει τον τερματισμό εκτέλεσης του νήματος t κ μετά να τερματίσει κ αυτή. Επιστροφή συνάρτησης που τρέχει ένα νήμα - η κλάση Queue Όταν μία συνάρτηση δεν επιστρέφει κάτι όταν την εκτελεί κάποιο νήμα (ίσως απλά εκτυπώνει στην οθόνη) τοτε τα πράγματα είναι απλά. Τι γίνεται, όμως, όταν η συνάρτηση που εκτελεί το κάθε διαφορετικό νήμα κάνει return κάποια τιμή; Πως μπορούν τα νήματα να δώσουν την έξοδό τους στο κύριο πρόγραμμα (επικοινωνία νήματος και main());

Lab#7 - Διεργασιές, Νη ματα, Πολυνημα τωση στη Python, σελίδα 6 Όταν τρέχει ένα νήμα μπορεί να αποθηκεύσει την έξοδο της συνάρτησης σε μία ουρά. Για να το κάνουμε αυτό πρέπει να κάνουμε τα εξής: να εισάγουμε το module queue στην αρχή του πρόγράμματος, να δημιουργήσουμε ένα αντικείμενο της τάξης Queue καλώντας τον κατασκευαστή της τάξης Queue πριν τη δημιουργία των νημάτων να περνάμε στη συνάρτηση που μας ενδιαφέρει να κρατάμε την έξοδό της την ουρά που θα αποθηκεύσουμε τα αποτελέσματά μας την έξοδο, αντί να την κάνουμε return θα πρέπει να την τοποθετούμε στην ουρά καλώντας την συνάρτηση put() τέλος, στη main() θα καλέσουμε τη συνάρτηση get() του αντικειμένου για να βγάλουμε μία μία τις αποθηκευμένες τιμές. Παράδειγμα

Lab#7 - Διεργασιές, Νη ματα, Πολυνημα τωση στη Python, σελίδα 7 Ασκήσεις εργαστηρίου Οι ασκήσεις εργαστηρίου θα γίνονται την ώρα του μαθήματος. Οι φοιτητές θα πρέπει να τις λύνουν στον υπολογιστή τους (ή στο χαρτί) με τη σειρά, να τις αποθηκεύουν και να τις χρησιμοποιούν ως προεργασία για την επίλυση των Homeworks. #1 Πρόγραμμα σε Python Δημιουργήστε ένα πρόγραμμα στο οποίο θα τρέχουν 2 νήματα τα οποία θα εκτελούν μία συνάρτηση που θα βρίσκει τον μεγαλύτερο ανάμεσα σε 2 ακεραίους. Να γίνει με 2 τρόπους: 1. την εκτύπωση του μεγαλύτερου να την κάνει το κάθε νήμα. 2. την εκτύπωση να την κάνει η main()

Lab#7 - Διεργασιές, Νη ματα, Πολυνημα τωση στη Python, σελίδα 8 1ος τρόπος

Lab#7 - Διεργασιές, Νη ματα, Πολυνημα τωση στη Python, σελίδα 9 2ος τρόπος

Lab#7 - Διεργασιές, Νη ματα, Πολυνημα τωση στη Python, σελίδα 10 #2 Πρόγραμμα σε Python Δημιουργήστε ένα πρόγραμμα το οποίο : θα δημιουργεί μία κενή λίστα με το όνομα threads θα φτιάχνει 10 νήματα τα οποία θα εκτελούν τη συνάρτηση myfunction(). θα προσθέτει το κάθε νήμα στη λίστα threads θα εκκινεί το κάθε νήμα θα χρονομετρεί και θα εκτυπώνει τον συνολικό χρόνο εκτέλεσης Η συνάρτηση myfunction() θα έχει είσοδο τον αριθμό του νήματος, θα αδρανοποιεί (time.sleep())το κάθε νήμα για έναν αριθμό δευτερολέπτων που παράγονται τυχαία στο διάστημα [5,20] και θα εκτυπώνει τη στιγμή που το νήμα θα τελειώνει την εκτέλεση του.

Lab#7 - Διεργασιές, Νη ματα, Πολυνημα τωση στη Python, σελίδα 11

Lab#7 - Διεργασιές, Νη ματα, Πολυνημα τωση στη Python, σελίδα 12 #3 Πρόγραμμα σε Python Να γίνει πρόγραμμα το οποίο θα υπολογίζει το άθροισμα της ακολουθίας 1+2+...+Ν, όπου το Ν θα το δίνει ο χρήστης, με 2 τρόπους: 1. χωρίς νήματα στη main() 2. με 2 νήματα με χρήση της συνάρτησης athroisma(): θα υπολογίζει το άθροισμα από α έως β. Το συνολικό άθροισμα θα πρέπει να το εκτυπώνει η main().

Lab#7 - Διεργασιές, Νη ματα, Πολυνημα τωση στη Python, σελίδα 13

Lab#7 - Διεργασιές, Νη ματα, Πολυνημα τωση στη Python, σελίδα 14 Homeworks Τα homeworks είναι υποχρεωτικά για όλους τους φοιτητές που παρακολουθούν το εργαστηριακό μάθημα και θα πρέπει να στέλνονται ηλεκτρονικά σε.zip μορφή μέσω της πλατφόρμας του E-Class. #1 Να δημιουργήσετε ένα πρόγραμμα στο οποίο: ο χρήστης θα δίνει αρχικά τον αριθμό νημάτων Τ που επιθυμεί να δημιουργηθούν στη συνέχεια θα δίνει τον τελικό όρο Ν το πρόγραμμα θα υπολογίζει και θα εκτυπώνει το άθροισμα S = 1+2+...+(Ν-1)+Ν χρησιμοποιώντας τον αριθμό νημάτων που έδωσε ο χρήστης (διαιρώντας τον προγραμματιστικό φόρτο σε Τ ίσα κομμάτια) αλλά και τον χρόνο που θα έκανε το πρόγραμμα Ιστην ίδια εκτέλεση) χωρίς τη χρήση των νημάτων. Output: