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

Σχετικά έγγραφα
Παράλληλη Επεξεργασία

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

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

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

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

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

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

ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ II. Υφαντόπουλος Νικόλαος Υποψήφιος Διδάκτορας Contact:

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Δημιουργία & Τερματισμός Διεργασιών. Προγραμματισμός II 1

Προγραμματισμός Ι (ΗΥ120)

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

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

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

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

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

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

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

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

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

; Γιατί είναι ταχύτερη η λήψη και αποκωδικοποίηση των εντολών σταθερού μήκους;

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

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

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

Πανεπιστήμιο Θεσσαλίας Τμήμα Πληροφορικής

Δημιουργία & Τερματισμός Διεργασιών. Προγραμματισμός II 1

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

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

Σκοπός Μαθήματος. Λειτουργικά Συστήματα Η/Υ. Γενικές Πληροφορίες. Στόχοι Μαθήματος ΚΕΦΑΛΑΙΟ 1 - ΕΙΣΑΓΩΓΗ. Θεωρία: Εργαστήριο: Κεφάλαιο 1 «Εισαγωγή»

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

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

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

Προγραμματισμός συστημάτων UNIX/POSIX. Διεργασίες (processes)

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

Κεφάλαιο 3: Λειτουργικά Συστήματα

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

Προηγμένοι Μικροεπεξεργαστές. Έλεγχος Ροής Προγράμματος

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

Οργάνωση επεξεργαστή (2 ο μέρος) ΜΥΥ-106 Εισαγωγή στους Η/Υ και στην Πληροφορική

Η πολυνηματική γλώσσα προγραμματισμού Cilk

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

Θέτοντας και επιστρέφοντας την τιµή της προτεραιότητας διεργασίας

ΗΜΥ Εργαστήριο Οργάνωσης Υπολογιστών και Μικροεπεξεργαστών

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

ΔΙΑΧΕΙΡΙΣΗ ΜΝΗΜΗΣ. Λειτουργικά Συστήματα Ι. Διδάσκων: Καθ. Κ. Λαμπρινουδάκης ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ Ι

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

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

Εισαγωγή στους Η/Υ. Γιώργος Δημητρίου. Μάθημα 3-4: Προγραμματισμός MIPS. Πανεπιστήμιο Θεσσαλίας - Τμήμα Πληροφορικής

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

Αρχιτεκτονικές Συνόλου Εντολών (ΙΙ)

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

Συναρτήσεις-Διαδικασίες

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

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

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

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

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

ΚΕΦΑΛΑΙΟ 3: Λειτουργικά Συστήµατα

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

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

Οργάνωση επεξεργαστή (1 ο μέρος) ΜΥΥ-106 Εισαγωγή στους Η/Υ και στην Πληροφορική

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

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

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

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

ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ Ι. Λειτουργικά Συστήματα Ι ΔΙΑΧΕΙΡΙΣΗ ΜΝΗΜΗΣ. Επ. Καθ. Κ. Λαμπρινουδάκης

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

Dr. Garmpis Aristogiannis - EPDO TEI Messolonghi

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

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

Δίκτυα Επικοινωνιών ΙΙ: Network Programming UDP Sockets, Signals

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

Ιστορική Αναδρομή Λειτουργικών Συστημάτων (ΛΣ) Εισαγωγή : ο πυρήνας (kernel) / ο φλοιός (shell) Β ΕΠΑΛ

ΤρόποςΑξιολόγησης: α) Εργαστήρια (Προαιρετικάµε 20% - 35% βαρύτητα µόνοθετικά) β) Τελική Γραπτή Εξέταση

Κεντρική Μονάδα Επεξεργασίας (ΚΜΕ) Τμήματα ΚΜΕ (CPU) Ένα τυπικό υπολογιστικό σύστημα σήμερα. Οργάνωση Υπολογιστών (Ι)

3.1 Λειτουργικό Σύστηµα. Λειτουργικό Σύστηµα (2) ΚΕΦΑΛΑΙΟ 3: Λειτουργικά Συστήµατα. Ο υπολογιστής σαν σκέτο hardware έχει περιορισµένη χρησιµότητα

Οργάνωση Υπολογιστών (Ι)

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

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

Προηγμένοι Μικροεπεξεργαστές. Εργαστήριο 6 C & Assembly

Λειτουργικά Συστήματα 1.1 Τι είναι Λειτουργικό Σύστημα (Operating System)

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

Κεφάλαιο 3: Λειτουργικά Συστήµατα

Λειτουργικά Συστήματα (ΗΥ-345) Χειμερινό Εξάμηνο

Διαδικασίες Ι. ΗΥ 134 Εισαγωγή στην Οργάνωση και στον Σχεδιασμό Υπολογιστών Ι. Διάλεξη 4

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

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

Transcript:

Λειτουργικά Συστήματα (ΗΥ321) Διάλεξη 2: Διεργασίες και Νήματα

Διαδικαστικά 2 Γραφτήκατε στη λίστα; Σχηματίστε ομάδες (για το project)!

Στο προηγούμενο επεισόδιο 3 Τι είναι λειτουργικό; Γενιές ΛΣ Βασικές υπηρεσίες ΛΣ Τύποι αρχιτεκτονικών υπολογιστών και αντίστοιχων ΛΣ Οργάνωση και δομή ΛΣ Μηχανισμοί και πολιτικές

Διεργασίες και Νήματα: Γιατί; 4 Πολλά «πράγματα» γίνονται ταυτόχρονα. Excel Firefox Word Skype Pro Μπορούμε να τα απλοποιήσουμε για το λειτουργικό; Πώς απλοποιούμε; ΑΠΟΣΥΝΘΕΣΗ Βάλε καθένα από τα «πράγματα» να τρέχει σε μια «διεργασία» (process) Τώρα κάθε διεργασία είναι απλή. Απλά (???) το ΛΣ πρέπει να χειριστεί τις διεργασίες και να τις αλληλοπροστατεύσει

Άλλοι Λόγοι; Επικάλυψη 5 Firefox Matlab

Κανένας άλλος λόγος; Ταχύτητα (1/2) 6 Μα πώς; Α (διάρκεια 100 sec, έτοιμη τη στιγμή 0) Β (διάρκεια 10 sec, έτοιμη τη στιγμή 0+dt) Α Χρόνος ολοκλήρωσης Α: 100 sec Χρόνος ολοκλήρωσης Β: 110 sec Μέσος χρόνος ολοκλήρωσης: (100 + 110) / 2 = 105 sec. Β Α Β Α Β Α Χρόνος ολοκλήρωσης Α: 110 sec Χρόνος ολοκλήρωσης Β: 20 sec Μέσος χρόνος ολοκλήρωσης: (110 + 20) / 2 = 65 sec.!!!

Κανένας άλλος λόγος; Ταχύτητα (2/2) 7 Αν έχουμε πάνω από 1 μονάδες εκτέλεσης; Κάθε διεργασία σε μια μονάδα εκτέλεσης: Παραλληλισμός Νέα ιδέα; Πολλοί ταμίες (μονάδες εκτέλεσης) στην τράπεζα εξυπηρετούν πολλούς πελάτες, έναν πελάτη τη φορά ο καθένας. Πόσο πιο γρήγορα; Ιδανικά Ν φορές πιο γρήγορα. Όμως: Επιβαρύνσεις. Αν στο project είχατε ομάδες των 50 ατόμων θα τελειώνατε 50 φορές συντομότερα;

Τι είναι ένα νήμα; 8 Ότι χρειάζεται για να εκτελεστεί ένα πρόγραμμα στον επεξεργαστή. + Κάποιες ακόμα λεπτομέρειες (file descriptors, page table ) Δηλαδή; Γρήγορο μάθημα αρχιτεκτονικής CPU IP SP Καταχωρητές γενικού σκοπού Ειδικοί καταχωρητές Στοίβα Σωρός Κώδικας Μ ν ή μ η

Παρένθεση: Απλά Μαθήματα Stack (IA32) 9 Μικρές διευθύνσεις Επέκταση stack SP 23 Μεγάλες διευθύνσεις

PUSH IA32 10 Μικρές διευθύνσεις push A SP = SP 4 (SP) = A SP SP 23 Μεγάλες διευθύνσεις A

POP (IA32) 11 Μικρές διευθύνσεις pop <reg> <reg> = (SP) SP = SP + 4 SP SP 23 Μεγάλες διευθύνσεις A

Κλήση συνάρτησης (C) 12 U() { U() R() { } R() } nuts() nuts() { if ( ) nuts() else R() nuts() nuts() cute() nuts() } cute()

Stack Frames 13 U R nuts Περιέχουν Παραμέτρους συνάρτησης Τοπικές μεταβλητές Χώρο (scratch) για προσωρινή αποθήκευση Διευθύνσεις επιστροφής Διαχείριση Δείκτης SP στην τρέχουσα θέση στη stack Ενδεχομένως και δείκτης στην αρχή του stack frame

Στιγμιότυπο Stack (ΙΑ32) 14 S P Frame Pointer Args για επόμενη συνάρτηση Τοπικές μεταβλητές + Προσωρινός χώρος Αποθηκ. regs Frame Pointer Ret. Addr. Args Αποθηκ. regs

Τι είναι διεργασία; 15 Νήμα + Χώρος διευθύνσεων Προστασία!!! Και γιατί νήματα και διεργασίες; Περιπτώσεις όπου θέλουμε πολλαπλά νήματα σε κάθε διεργασία (π.χ. Servers, παράλληλα προγράμματα ) Διεργασία <> Πρόγραμμα Πρόγραμμα: Κώδικας, στατικά δεδομένα Διεργασία: Πρόγραμμα σε εκτέλεση (stack, regs)

Δημιουργία διεργασιών 16 Πώς; Πώς θα βρούμε όλη την πληροφορία που περιγράφει μια διεργασία; (registers, page table, file descriptors, ) Κλωνοποίηση! (Dolly) Αντίγραφο της τρέχουσας διεργασίας. Στο Unix: fork() Αντέγραψε όλη τη μνήμη Ίσως και όχι όλη (διαμοιραζόμενο τμήμα κώδικα, αντιγραφή κατά την εγγραφή). Αντέγραψε τους καταχωρητές Ίσως όχι και όλους: Ο καταχωρητής που περιέχει την τιμή που επιστρέφει η fork τίθεται στην τιμή 0 για τη νέα διεργασία και στον αριθμό της νέας διεργασίας για τον πατέρα. Τοποθέτησε τη νέα διεργασία στη λίστα των διεργασιών του πυρήνα.

Unix: fork() 17 id = fork() if (id == 0) { child_code() } else { printf( Child pid = %d\n, id); parent_code() }

Γιατί Όλες οι Διεργασίες Μοιάζουν Ίδιες Μαμά; 18 Λύση: Η διεργασία στη «σχολική ηλικία» Πάρε τον κλώνο Άλλαξε τον κώδικα και τα στατικά δεδομένα. Άλλαξε τους registers «κατάλληλα» ώστε να εκτελεστεί ο νέος κώδικας. Κράτησε και κάτι από την παλιά διεργασία (file descriptors) Όλα αυτά πώς; Unix: execve(char *path, char *argv[], char *envp[])

Ότι αρχίζει ωραίο (τερματισμός διεργασιών) 19 Τερματισμός: Αυτοκτονία: Κλήση exit() Δολοφονία: Kill από άλλη διεργασία Ατύχημα: TRAP, σήμα που προκαλεί τερματισμό. Γηρατειά: Επιστροφή από την πρώτη συνάρτηση που κάλεσε το παιδί μετά τη δημιουργία του. Γονέας μπορεί να (πρέπει να) περιμένει τον τερματισμό του παιδιού. Διαφορετικά zombie! Ειδοποιείται από το ΛΣ Γονέας Εκτελεί Γονέας: wait() Γονέας: fork() Παιδί Εκτελεί Παιδί Τερματίζει Ειδοποίηση

Η Κοινωνία μιας Διεργασίας 20 Μονοπρογραμματιστικό περιβάλλον Μία διεργασία εκτελείται μέχρι την ολοκλήρωσή της Εύκολο για το ΛΣ, «κακό» για το χρήστη. Χαλάει την απομόνωση μεταξύ διεργασιών. Τι γίνεται αν μια διεργασία πέσει σε άπειρο loop; Πολυπρογραμματιστικό περιβάλλον Χρονοδιαμοίραση επεξεργαστή. Υποστηρίζεται από τα περισσότερα σύγχρονα ΛΣ. CPU CPU

Να υπάρχει τάξη (οργάνωση διεργασιών) 21 Πώς αναπαριστάται η διεργασία στο λειτουργικό; PCB: Κάποια περίπλοκη χημική ουσία; (όχι!) Process Control Block Και η τάξη που λέγαμε; Ιεραρχική οργάνωση σε δέντρο. Οργάνωση σε ουρές ανάλογα με την κατάσταση των διεργασιών Κατάσταση IP regs Όρια μνήμης File Descrpts. ID ptrs

Ο «Φανταστικός» Κόσμος του Πολυπρογραμματισμού 22 Κάθε διεργασία έχει την ψευδαίσθηση της αποκλειστικής χρήσης του επεξεργαστή Όμως σε ένα μονοεπεξεργαστικό σύστημα όλοι μοιράζονται τον ίδιο επεξεργαστή Πώς; CPU While (1) { Διέκοψε τρέχουσα διεργασία Σώσε κατάσταση (στο PCB) Βρες επόμενη διεργασία Φόρτωσε κατάσταση (από PCB) Τρέξε τη! }

Και πώς Αλλάζει η Διεργασία στον Επεξεργαστή; Μεταγωγή περιβάλλοντος (context switch) Τι; Σώσε ότι μπορεί να σου «χαλάσει» η καινούρια διεργασία Καταχωρητές γενικού σκοπού Καταχωρητές ειδικού σκοπού Καταχωρητές κινητής υποδιαστολής Ενίοτε τεμπέλικη προσέγγιση Σώσε μόνο όταν πάει η νέα διεργασία να χαλάσει κάτι (Linux, καταχωρητές κινητής υποδιαστολής). Πώς; Δύσκολο Πρέπει να εκτελεστεί κώδικας χωρίς να αλλάξει τους καταχωρητές! Εξαρτάται από την αρχιτεκτονική Ειδικές εντολές Δεσμευμένοι registers Πόσο; Ακριβό! Κόστος για την ίδια τη μεταγωγή. Γραμμάτια για το μέλλον (καθαρισμός TLB, «μόλυνση» των μνημών cache). 23

Μεταγωγή Περιβάλλοντος (από ψηλά) Διεργασία 0 Λειτουργικό Σύστημα Διεργασία 1 24 εκτέλεση Διακοπή ή κλήση συστήματος Χρόνος Εκτέλεσης ΛΣ (context switch) Αποθήκευση κατάστασης στο PCB0... Ανάκτηση κατάστασης από PCB1 ανενεργή ανενεργή Διακοπή ή κλήση συστήματος εκτέλεση Αποθήκευση κατάστασης στο PCB1... Ανάκτηση κατάστασης από PCB0 Χρόνος Εκτέλεσης ΛΣ (context switch) ανενεργή εκτέλεση

Καταστάσεις διεργασιών 25 Τρέχουσα Εκτελείται αυτή τη στιγμή. Έτοιμη Έτοιμη προς εκτέλεση Μπλοκαρισμένη Κάτι περιμένει Επελέγη για εκτέλεση Έτοιμη Εκτελούμενη Τη CPU πίσω παρακαλώ! Το γεγονός συνέβη Περιμένει «γεγονός» Μπλοκαρισμένη Επιλέγεται διεργασία προς εκτέλεση πάντα από τις έτοιμες Αν 1; Εύκολο Αν 0; Idle loop Αν >1; Ουπς Πολιτική!

Προβληματάκια; 26 Βεβαίως! Ποια διεργασία θα επιλεγεί για να τρέξει κάθε φορά; Λίγο υπομονή Προστασία Δεν πρέπει καμία διεργασία να έχει πρόσβαση στην «κατάσταση» της άλλης Δικαιοσύνη Όλοι πρέπει κάποια στιγμή να τρέξουν Και μάλιστα σχετικά «ισότιμα» (δεν θέλουμε γκρίνιες στο σύστημα )

Έχω μια Διεργασία που όλο όλο τρέχει 27 και που θα σταματήσει; Trap: Γεγονός που προκλήθηκε από την ίδια τη διεργασία Κλήση συστήματος Πρόβλημα (λάθος εντολή, λάθος ορίσματα ) Σφάλμα σελίδας Διακοπή: Τελείωσε μια ενέργεια I/O Τέλος χρόνου, ο επόμενος παρακαλώ Κάθε πότε; Από την οπτική της διεργασίας: Άμεσα: Χαρίζω τον επεξεργαστή μου στο σύστημα Έμμεσα: Τι έγινε; (Η κάτι έκανα και μπλόκαρα, ή κάποιος με σταμάτησε).

Διεργασίες vs. Νήματα 28 Διεργασίες: Διαφορετικοί χώροι διευθύνσεων Αλλαγή πίνακα σελίδων (page table) Επικοινωνία; Προστασία; Πρέπει η κατάσταση να σώζεται σε προστατευμένο χώρο! (ΛΣ) Χρειάζεται υποστήριξη από το υλικό για να μπορούμε να «κλέψουμε» τον επεξεργαστή. Νήματα: Ίδιος χώρος διευθύνσεων Πιο «ελαφριά»! Γιατί; Πρόσβαση σε κοινές δομές δεδομένων Καλύτερη απόκριση Χρονοβελτίωση σε πολυεπεξεργαστικά συστήματα Μπορεί να γίνει μεταγωγή περιβάλλοντος σε επίπεδο χρήστη;

Τύποι Νημάτων 29 Νήματα επιπέδου χρήστη (Ν:1) Νήματα επιπέδου πυρήνα (1:Ν) Πολυεπίπεδος πολυνηματισμός (Μ:Ν)

Νήματα Χρήστη Προσφέρονται από βιβλιοθήκη αποκλειστικά σε επίπεδο χρήστη Τρέχουν πάνω από ένα νήμα επιπέδου πυρήνα Το ΛΣ δεν ξέρει τίποτα Δεν χρειάζονται αλλαγές στον πυρήνα Μια ενέργεια από ένα μπορεί να τα μπλοκάρει όλα Δεν μπορούν να εκμεταλλευτούν παραπάνω επεξεργαστές Stack Stack Stack Heap 30 Regs

Νήματα Πυρήνα Το ΛΣ ξέρει τα πάντα Χειρίζεται τα νήματα Χρονοδρομολογεί Αναλαμβάνει μεταγωγές περιβάλλοντος Τα νήματα ανεξάρτητα Μπορούν να εκμεταλλευτούν πολυεπεξεργαστικά συστήματα Όμως: Βιβλιοθήκες χρήστη; (προβλήματα, πρέπει να ξαναγραφτούν ) Παραπάνω πόροι (μνήμη) Stack Stack Stack Heap 31 Regs Regs Regs

Η Χρυσή Τομή (Μ:Ν) Η μέση λύση Πολλαπλά νήματα χρήστη τρέχουν πάνω από κάθε νήμα πυρήνα Αλλά έχουμε και πολλαπλά νήματα πυρήνα Χρονοδρομολογητές: Χρήστη: Ποιο νήμα χρήστη θα τρέξει πάνω από κάθε νήμα πυρήνα; Πυρήνα (ΛΣ): Ποιο νήμα πυρήνα θα τρέξει πάνω από κάθε CPU; Όλα καλά αν οι χρονοδρομολογητές χρήστη και πυρήνα «συνεργάζονται» αρμονικά Δεν είναι και εύκολο Συνήθως δεν «κουβεντιάζουν» Stack Stack Stack Stack Heap 32 Regs Regs