Διεργασίες και Νήματα (2/2)

Σχετικά έγγραφα
Διεργασίες - Σύνοψη. Διακοπές, προνομιούχος κατάσταση Κλήσεις συστήματος. Ορισμός, μεταβάσεις κατάστασης κύκλος ζωής

Εθνικό Μετσόβιο Πολυτεχνείο Σχολή Ηλεκτρολόγων Μηχ. και Μηχανικών Υπολογιστών Εργαστήριο Υπολογιστικών Συστημάτων. Συγχρονισμός

Εθνικό Μετσόβιο Πολυτεχνείο Σχολή Ηλεκτρολόγων Μηχ. και Μηχανικών Υπολογιστών Εργαστήριο Υπολογιστικών Συστημάτων. Συγχρονισμός

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

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

Χρονοδρομολογητής Κυκλικής Επαναφοράς

Παρουσίαση 5 ης Άσκησης:

Παρουσίαση 5 ης Άσκησης:

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

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

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

Κατηγορίες Νηµάτων. Νήµατα Επιπέδου Πυρήνα. Νήµατα Επιπέδου Χρήστη. «Νήµατα Επιπέδου Χρήστη» Ε-85: Ειδικά Θέµατα Λογισµικού

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

ΕΘΝΙΚΟ ΜΕΤΣΟΒΙΟ ΠΟΛΥΤΕΧΝΕΙΟ

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

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

Εικονική Μνήμη (1/2)

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

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

NIKOΛΑΟΣ ΝΤΙΡΛΗΣ 5ο ΦΡΟΝΤΙΣΤΗΡΙΟ ΑΙΘΟΥΣΑ Β4

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

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

Σκελετός Παρουσίασης

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

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

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

Κεφάλαιο 1ο Πολυπρογραμματισμός Πολυδιεργασία Κατηγορίες Λειτουργικών Συστημάτων

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

Λειτουργικά Συστήματα Ι. Καθηγήτρια Παπαδάκη Αναστασία

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

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

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

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

Διεργασίες και Νήματα (1/2)

Προγραμματισμός Ταυτόχρονος Προγραμματισμός

Βασικές Έννοιες Πρ Ταο υγρ τόα χ μ ρ μ ο α ν τισμ ος Π ό ρ ςο ΙΙΙ γραμματισμός 1

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

Το λειτουργικό σύστημα. Προγραμματισμός II 1

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

Προγραμματισμός με Κοινόχρηστο Χώρο Διευθύνσεων 4

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

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

Διπλωματική Εργασία του φοιτητή του Τμήματος Ηλεκτρολόγων Μηχανικών και Τεχνολογίας Υπολογιστών της Πολυτεχνικής Σχολής του Πανεπιστημίου Πατρών

Εργαστήριο Λειτουργικών Συστημάτων 8o εξάμηνο, Ροή Υ, ΗΜΜΥ

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

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

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

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

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

ΠΛΕ-006 ΠΑΡΑΛΛΗΛΗ ΕΠΕΞΕΡΓΑΣΙΑ Project

1. Εισαγωγή. Λειτουργικά Συστήματα Η/Υ. Διεργασίες. Ορισμός ΚΕΦΑΛΑΙΟ 3 - ΔΙΕΡΓΑΣΙΕΣ. Κεφάλαιο 3 «Διεργασίες»

Ενότητα 3 (Κεφάλαιο 4) Νήματα και Μικροπυρήνες

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

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

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

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

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

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

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

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

Η Υλοποίηση της Επικοινωνίας. Κατανεµηµένα Συστήµατα

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

Εισαγωγή Χαρακτηριστικά του πυρήνα του Linux Ο ρόλος του λειτουργικού συστήματος...7

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

3 η ΑΣΚΗΣΗ. Προηγμένα Θέματα Αρχιτεκτονικής Υπολογιστών

Διαχείριση Κύριας Μνήμης

Ορισµός Νήµα (thread) είναι µια ακολουθιακή ροή ελέγχου (δηλ. κάτι που έχει αρχή, ακολουθία εντολών και τέλος) σ ένα

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

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

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

Υποστήριξη Λ.Σ. ΜΥΥ-106 Εισαγωγή στους Η/Υ και στην Πληροφορική

Δείγμα σημειώσεων για τα Λειτουργικά Συστήματα για τις εξετάσεις του ΑΣΕΠ Εκπαιδευτικών ΠΕ19-ΠΕ20

Λειτουργικά Συστήματα Ι. Κεφάλαιο 1 Βασικές Έννοιες Λειτουργικών Συστημάτων

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

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

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

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

Περιγραφή και Έλεγχος ιεργασιών

Αρχιτεκτονική Υπολογιστών

Εισαγωγή στα Λειτουργικά συστήματα Ι. Καθηγητής Κώστας Αναγνωστόπουλος

Συστήματα Υπολογιστών

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

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

Εισαγωγή. Κατανεµηµένα Συστήµατα 01-1

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

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

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

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

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

Εικονική Μνήμη (Virtual Μemory)

Εργαστήριο Λειτουργικών Συστημάτων. Minix Overview

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

Πολυπύρηνοι επεξεργαστές Multicore processors

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

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

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

2. Σκοποί και Λειτουργίες των ΛΣ. Λειτουργικά Συστήματα Η/Υ. Περίληψη. Ι. Προστασία Υλικού ΚΕΦΑΛΑΙΟ 2 - ΕΞΕΛΙΞΗ ΚΑΙ ΣΚΟΠΟΙ ΛΣ

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

ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ. Διεργασίες και Νήματα Εργαστηριακές Ασκήσεις

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

Transcript:

Εθνικό Μετσόβιο Πολυτεχνείο Σχολή Ηλεκτρολόγων Μηχ. και Μηχανικών Υπολογιστών Εργαστήριο Υπολογιστικών Συστημάτων Διεργασίες και Νήματα (2/2) Λειτουργικά Συστήματα Υπολογιστών 7ο Εξάμηνο, 2016-2017

Νήματα - Σύνοψη Ορισμός νημάτων, σχέση με διεργασίες Πλεονεκτήματα πολυνηματισμού Μοντέλα πολυνηματισμού μ Υλοποίηση σε χώρο χρήστη, πυρήνα, συνδυασμού τους Ββλ Βιβλιοθήκες και APIs πολυνηματισμού POSIX Threads, Win32, Java Threads

Νήματα - Σύνοψη Ορισμός νημάτων, σχέση με διεργασίες Πλεονεκτήματα πολυνηματισμού Μοντέλα πολυνηματισμού μ Υλοποίηση σε χώρο χρήστη, πυρήνα, συνδυασμού τους Ββλ Βιβλιοθήκες και APIs πολυνηματισμού POSIX Threads, Win32, Java Threads

Νήματα Threads Νήματα: χωριστές ροές εκτέλεσης μέσα στην ίδια διεργασία Κατάσταση διεργασίας = αρχιτεκτονική κατάσταση + πόροι ΛΣ Χωριστή ρ ήαρχιτεκτονική κατάσταση για κάθε νήμα Μετρητής Προγράμματος, Καταχωρητές CPU, Στοίβα Όλα τα νήματα ζουν μέσα στην ίδια διεργασία Μοιράζονται τους πόρους του ΛΣ Κοινή μνήμη, κοινά ανοιχτά αρχεία, κοινά άδικαιώματα Άμεση πρόσβαση σε κοινά δεδομένα

Πολυνηματική Διεργασία Κείμενο Δεδομένα Πόροι ΛΣ (π.χ. ανοιχτά αρχεία) Καταχωρητές Μετρητής Προγράμματος Στοίβα νήμα εκτέλεσης

Πολυνηματική Διεργασία Κείμενο Δεδομένα Πόροι ΛΣ (π.χ. ανοιχτά αρχεία) Κείμενο Δεδομένα Πόροι ΛΣ (π.χ. ανοιχτά αρχεία) Καταχωρητές Καταχωρητές Καταχωρητές Καταχωρητές Μετρητής Προγράμματος PC PC PC Στοίβα Στοίβα Στοίβα Στοίβα νήμα εκτέλεσης νήμα 1 νήμα 2 νήμα 3

Νήματα - Σύνοψη Ορισμός νημάτων, σχέση με διεργασίες Πλεονεκτήματα πολυνηματισμού Μοντέλα πολυνηματισμού μ Υλοποίηση σε χώρο χρήστη, πυρήνα, συνδυασμού τους Ββλ Βιβλιοθήκες και APIs πολυνηματισμού POSIX Threads, Win32, Java Threads

Νήματα Γιατί;

Νήματα Γιατί; Αποκρισιμότητα Διαφορετικά νήματα κάνουν διαφορετικά πράγματα, π.χ. νήμα αλληλεπίδρασης με χρήστη και νήματα υπολογισμού

Νήματα Γιατί; Αποκρισιμότητα Διαφορετικά νήματα κάνουν διαφορετικά πράγματα, π.χ. νήμα αλληλεπίδρασης με χρήστη και νήματα υπολογισμού Οικονομία πόρων Μικρότερο κόστος δημιουργίας/καταστροφής νημάτων Ένα νήμα θέλει λιγότερους πόρους ΛΣ από μια διεργασία

Νήματα Γιατί; Αποκρισιμότητα Διαφορετικά νήματα κάνουν διαφορετικά πράγματα, π.χ. νήμα αλληλεπίδρασης με χρήστη και νήματα υπολογισμού Οικονομία πόρων Μικρότερο κόστος δημιουργίας/καταστροφής νημάτων Ένα νήμα θέλει λιγότερους πόρους ΛΣ από μια διεργασία Παράλληλος υπολογισμός Μικρό κόστος επικοινωνίας ανάμεσα σε νήματα Χρονοδρομολόγηση ρ η νημάτων προσαρμοσμένη ρμ μ στην εφαρμογή

Νήματα Γιατί; Αποκρισιμότητα Διαφορετικά νήματα κάνουν διαφορετικά πράγματα, π.χ. νήμα αλληλεπίδρασης με χρήστη και νήματα υπολογισμού Οικονομία πόρων Μικρότερο κόστος δημιουργίας/καταστροφής νημάτων Ένα νήμα θέλει λιγότερους πόρους ΛΣ από μια διεργασία Παράλληλος υπολογισμός Μικρό κόστος επικοινωνίας ανάμεσα σε νήματα Χρονοδρομολόγηση ρ η νημάτων προσαρμοσμένη ρμ μ στην εφαρμογή Ευκολότερος προγραμματισμός Πολυνηματικοί εξυπηρετητές Κάθε νήμα έχει τη δική του κατάσταση νήμα ανά πελάτη Ασύγχρονη λειτουργία με σύγχρονες κλήσεις συστήματος Κάθε νήμα αναστέλλεται ανεξάρτητα από τα υπόλοιπα

Νήματα - Σύνοψη Ορισμός νημάτων, σχέση με διεργασίες Πλεονεκτήματα πολυνηματισμού Μοντέλα πολυνηματισμού μ Υλοποίηση σε χώρο χρήστη, πυρήνα, συνδυασμού τους Ββλ Βιβλιοθήκες και APIs πολυνηματισμού POSIX Threads, Win32, Java Threads

Μοντέλα Πολυνηματισμού Προγραμματιστικά μοντέλα και APIs για πολυνηματισμό POSIX Threads, Win32 API, Java threads, OpenMP Πώς υλοποιείται η υποστήριξη νημάτων; Στο χώρο πυρήνα, στο χώρο χρήστη, με συνεργασία και των δύο; Νήματα χώρου χρήστη νήματα χώρου πυρήνα Ο χρονοδρομολογητής του ΛΣ βλέπει μόνο νήματα πυρήνα Πλεονεκτήματα / μειονεκτήματα της κάθε προσέγγισης;

Ν:1 - Νήματα σε επίπεδο χρήστη (1) user thread Χώρος Χρήστη k kernel lthread Χώρος Πυρήνα Δημιουργία νημάτων σε επίπεδο χρήστη Με φορητό τρόπο, πχ. swapcontext(), setjmp/longjmp() Ο πυρήνας δεν γνωρίζει τίποτε για αυτά Η χρονοδρομολόγηση γίνεται από κώδικα χρήστη Είτε με διακοπτό (SIGALRM) είτε συνεργατικά, με μη-διακοπτό τρόπο

Ν:1 - Νήματα σε επίπεδο χρήστη (2) user thread Χώρος Χρήστη k kernel lthread Χώρος Πυρήνα Μικρό κόστος διαχείρισης νημάτων Χρονοδρομολόγηση προσαρμοσμένη στην εφαρμογή Τι γίνεται με κλήσεις συστήματος που προκαλούν αναστολή της εκτέλεσης; Αν ένα νήμα μπλοκάρει σε read(), όλη η διεργασία μπλοκάρει

Παράδειγμα υλοποίησης Ν:1 - GNU Pth Πολυνηματική βιβλιοθήκη σε επίπεδο χρήστη, με υποστήριξη και του Pthreads API Μη-διακοπτός καταμερισμός χρόνου (non-preemptive multitasking) Δεν χρειάζεται υποστήριξη από τον πυρήνα Διαχείριση νημάτων με κλήσεις POSIX makecontext() / swapcontext(), setjmp()/longjmp() Φορητότητα, μικρό κόστος διαχείρισης νημάτων Προσαρμοσμένη σε πολυνηματικούς εξυπηρετητές, όχι παράλληλο υπολογισμό

Παράδειγμα υλοποίησης Ν:1 - GNU Pth Πολυνηματική βιβλιοθήκη σε επίπεδο χρήστη, με υποστήριξη και του Pthreads API Μη-διακοπτός καταμερισμός χρόνου (non-preemptive multitasking) Δεν χρειάζεται υποστήριξη από τον πυρήνα Διαχείριση νημάτων με κλήσεις POSIX makecontext() / swapcontext(), setjmp()/longjmp() Φορητότητα, μικρό κόστος διαχείρισης νημάτων Προσαρμοσμένη σε πολυνηματικούς εξυπηρετητές, όχι παράλληλο υπολογισμό Προβλήματα: διαχείριση κλήσεων συστήματος, υποστήριξη πολυπεξεργαστών;

Παράδειγμα υλοποίησης Ν:1 - GNU Pth Πολυνηματική βιβλιοθήκη σε επίπεδο χρήστη, με υποστήριξη και του Pthreads API Μη-διακοπτός καταμερισμός χρόνου (non-preemptive multitasking) Δεν χρειάζεται υποστήριξη από τον πυρήνα Διαχείριση νημάτων με κλήσεις POSIX makecontext() / swapcontext(), setjmp()/longjmp() Φορητότητα, μικρό κόστος διαχείρισης νημάτων Προσαρμοσμένη σε πολυνηματικούς εξυπηρετητές, όχι παράλληλο υπολογισμό Προβλήματα: διαχείριση κλήσεων συστήματος, υποστήριξη πολυπεξεργαστών; On the other hand, it cannot benefit from the existence of multiprocessors, because for this, kernel support would be needed. In practice, this is no problem, because multiprocessor systems are rare [GNU Pth manual]

1:1 - Νήματα σε επίπεδο πυρήνα user thread Χώρος Χρήστη k k k kernel lthread Χώρος Πυρήνα Υποστήριξη πολυεπεξεργαστών, χωριστά νήματα σε χωριστούς πυρήνες πολυπύρηνων επεξεργαστών Ακριβότερη διαχείριση νημάτων Απλούστερη υλοποίηση Linux NPTL, Win32 σε Windows NT/XP/2k, Solaris 9+

Παράδειγμα υλοποίησης 1:1 Linux NPTL Linux Native POSIX Threads Library Υλοποίηση ί της POSIX 1003.1c 1 σε επίπεδο πυρήνα Βασισμένη στο μηχανισμό συγχρονισμού futex και την κλήση συστήματος clone() Διάφορα clone() flags: CLONE_FILES, CLONE_SIGHAND, CLONE_VM Η fork() υλοποιείται ως clone() Ο πυρήνας βλέπει tasks, που μοιράζονται σχεδόν τα πάντα (νήματα) ή τίποτε (διεργασίες)

Μ:Ν Συνδυασμός νημάτων χρήστη/πυρήνα user thread Χώρος Χρήστη k k k kernel lthread Χώρος Πυρήνα Ένας αριθμός από νήματα χρήστη τρέχει πάνω σε περισσότερα του ενός νήματα πυρήνα Διεπίπεδη χρονοδρομολόγηση Πολύπλοκη υλοποίηση Solaris έκδοσης < 9

Παράδειγμα υλοποίησης Μ:Ν Solaris user thread Χώρος Χρήστη LWP LWP LWP PCB πολυνηματικής διεργασίας k k k kernel thread Χώρος Πυρήνα Μια πολυνηματική διεργασία αποτελείται από πολλές ελαφρές διεργασίες LightWeight Processes (LWPs) Ο χρονοδρομολογητής χώρου χρήστη βλέπει εικονικούς επεξεργαστές Ο χρονοδρομολογητής χώρου πυρήνα βλέπει νήματα πυρήνα Ανάγκη για upcalls: Ο πυρήνας ενημερώνει το χώρο χρήστη όταν ένα LWP πρόκειται να μπλοκάρει εκτέλεση έτοιμου νήματος σε νέο LWP

Νήματα - Σύνοψη Ορισμός νημάτων, σχέση με διεργασίες Πλεονεκτήματα πολυνηματισμού Μοντέλα πολυνηματισμού μ Υλοποίηση σε χώρο χρήστη, πυρήνα, συνδυασμού τους Βιβλιοθήκες και APIs πολυνηματισμού POSIX Threads, Win32, Java Threads

Δημιουργία νημάτων στα POSIX Threads Δημιουργία με pthread_create() int pthread_create(pthread_t * thread, pthread_attr_t * attr, void * (*start_routine)(void *), void * arg); π.χ. pthread_create(&tid, &attr, thread_fn, arg) Αναμονή για τερματισμό (pthread_exit()) με pthread_join()

Δημιουργία νημάτων στα POSIX Threads Δημιουργία με pthread_create() int pthread_create(pthread_t * thread, pthread_attr_t * attr, void * (*start_routine)(void *), void * arg); π.χ. pthread_create(&tid, &attr, thread_fn, arg) Αναμονή για τερματισμό (pthread_exit()) με pthread_join() thread1 thread1 pthread_create pthread_join thread1 thread2 Compute thread2 pthread_exit thread2 (stopped)

Ερωτήσεις;

Ερωτήσεις; και στη λίστα: OS@lists.cslab.ece.ntua.gr