Η παρουσίαση φορτώνεται. Παρακαλείστε να περιμένετε

Η παρουσίαση φορτώνεται. Παρακαλείστε να περιμένετε

3. Αρχιτεκτονικές Λ.Σ. Μονολιθικά συστήματα

Παρόμοιες παρουσιάσεις


Παρουσίαση με θέμα: "3. Αρχιτεκτονικές Λ.Σ. Μονολιθικά συστήματα"— Μεταγράφημα παρουσίασης:

1 3. Αρχιτεκτονικές Λ.Σ. Μονολιθικά συστήματα
Στρωματοποιημένη αρχιτεκτονική Αρχιτεκτονική μικροπυρήνα Νήματα (threads) - Πολυνημάτωση (multithreading) Συστήματα πολυεπεξεργασίας Παράλληλα συστήματα Συστήματα πραγματικού χρόνου Κατανεμημένα συστήματα ΤΕΙΘ-ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ : ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ Ι / 03

2 1. Μονολιθικά συστήματα Είναι μια προσέγγιση χωρίς καμιά δομή.
Το Λ.Σ. είναι μια συλλογή από διαδικασίες, κάθε μια από τις οποίες μπορεί να καλέσει οποιαδήποτε άλλη, όταν τη χρειαστεί. Η επικοινωνία μεταξύ των διαδικασιών γίνεται με παραμέτρους. Κάθε διαδικασία είναι ορατή σε οποιαδήποτε άλλη. Παραδείγματα μονολιθικών Λ.Σ : OS/360, VMS, Linux ΤΕΙΘ-ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ : ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ Ι / 03

3 Υλοποίηση κλήσης συστήματος σε μονολιθικά συστήματα
Το πρόγραμμα του χρήστη δημιουργεί μια παγίδα στον πυρήνα (εκτελείται μια ειδική εντολή η κλήση πυρήνα – kernel call) Το Λ.Σ. προσδιορίζει τον αριθμό εξυπηρέτησης που ζητήθηκε Το Λ.Σ. εντοπίζει και καλεί τη διαδικασία εξυπηρέτησης Ο έλεγχος επιστρέφεται στο πρόγραμμα του χρήστη ΤΕΙΘ-ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ : ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ Ι / 03

4 Η μονολιθική οργάνωση προτείνει την εξής βασική δομή για το Λ.Σ.:
Ένα κύριο πρόγραμμα που ζητά την ενεργοποίηση μιας διαδικασίας εξυπηρέτησης Ένα σύνολο διαδικασιών εξυπηρέτησης, οι οποίες υλοποιούν τις κλήσεις συστήματος Ένα σύνολο βοηθητικών προγραμμάτων, τα οποία υποβοηθούν τις διαδικασίες εξυπηρέτησης. ΤΕΙΘ-ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ : ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ Ι / 03

5 Αρχιτεκτονική πυρήνα μονολιθικού Λ.Σ.
ΤΕΙΘ-ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ : ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ Ι / 03

6 Συστατικά τυπικού πυρήνα (kernel)
Δρομολογητής διεργασιών (process scheduler) Διαχειριστής μνήμης (memory manager) Διαχειριστής συσκευών Ε/Ε (I/O manager) Διαχειριστής διαδιεργασιακής επικοινωνίας (interprocessor comunication (IPC) manager) Διαχειριστής συστήματος αρχείων (file system manager) ΤΕΙΘ-ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ : ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ Ι / 03

7 2. Στρωματοποιημένη αρχιτεκτονική
Η στρωματοποιημένη αρχιτεκτονική προσπαθεί να βελτιώσει το σχεδιασμό των μονολιθικών πυρήνων ομαδοποιώντας συστατικά που υλοποιούν παρόμοιες λειτουργίες σε επίπεδαems Κάθε επίπεδο επικοινωνεί μόνον με τα γειτονικά του (επάνω και κάτω) Οι απαιτήσεις των διεργασιών διαπερνούν αρκετά επίπεδα πριν ολοκληρωθούν Η ρυθμοαπόδοση (throughput) μπορεί να είναι μικρότερη από τα Λ.Σ. με τους μονολιθικούς πυρήνες Απαιτούνται επιπλέον μέθοδοι για τη μεταβίβαση και τον έλεγχο των δεδομένων ΤΕΙΘ-ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ : ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ Ι / 03

8 ΤΕΙΘ-ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ : ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ Ι / 03

9 ΤΕΙΘ-ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ : ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ Ι / 03

10 3. Αρχιτεκτονική μικροπυρήνα
Ένας μονολιθικός πυρήνας περιλαμβάνει τη δρομολόγηση, το σύστημα αρχείων, τη δικτύωση, τους οδηγούς συσκευής, τη διαχείριση μνήμης κ.α. Υλοποιείται ως μια μοναδική διεργασία και όλα τα στοιχεία διαμοιράζονται τον ίδιο χώρο διευθύνσεων. Η αρχιτεκτονική μικροπυρήνα αναθέτει λίγες λειτουργίες στον πυρήνα και τις υπόλοιπες τις αναθέτει σε εξυπηρέτες που εκτελούνται σε κατάσταση χρήστη. Η διεργασία του χρήστη (client process) στέλνει την απαίτηση στη διεργασία εξυπηρέτη (server process) η οποία επιτελεί τη διεργασία και επιστρέφει την απάντηση. Ο μικροπυρήνας διαχειρίζεται την επικοινωνία μεταξύ clients και servers. ΤΕΙΘ-ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ : ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ Ι / 03

11 Το σχήμα της τοποθέτησης λογισμικού πάνω από τον πυρήνα ώστε να χειρίζεται τη διαδικασία client-server δεν είναι απόλυτα ρεαλιστικό. Κάποιες λειτουργίες του χρήστη είναι δύσκολο, ακόμη και ακατόρθωτο να πραγματοποιηθούν από το χώρο προγραμμάτων του χρήστη. Τρόποι επίλυσης : Οι κρίσιμες διεργασίες του εξυπηρέτη (drivers I/O) να τρέχουν σε κατάσταση πυρήνα με πλήρη πρόσβαση στο υλικό αλλά να συνεχίσουν να επικοινωνούν με τις άλλες διεργασίες. Να εμφυτευθεί ένας στοιχειώδης μηχανισμός στον πυρήνα αλλά η πολιτική αποφάσεων να παραμείνει στους εξυπηρέτες. ΤΕΙΘ-ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ : ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ Ι / 03

12 Αρχιτεκτονική μικροπυρήνα
ΤΕΙΘ-ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ : ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ Ι / 03

13 ΤΕΙΘ-ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ : ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ Ι / 03

14 Πλεονεκτήματα της αρχιτεκτονικής μικροπυρήνα
Επεκτασιμότητα Επιτρέπει την προσθήκη/αφαίρεση υπηρεσιών και χαρακτηριστικών Μεταφερσιμότητα Οι αλλαγές που απαιτούνται για τη μεταφορά του συστήματος σε νέοι επεξεργαστή γίνονται στον μικροπυρήνα και όχι στις άλλες υπηρεσίες Object-oriented Λ.Σ. Τα συστατικά του Λ.Σ. είναι αντικείμενα με σαφώς καθορισμένες διεπαφές που μπορούν να διασυνδεθούν Αξιοπιστία Αρθρωτός (modular) σχεδιασμός Ο μικρού μεγέθους μικροπυρήνας μπορεί να ελεγχθεί με ακρίβεια ΤΕΙΘ-ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ : ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ Ι / 03

15 4. Νήματα - Πολυνημάτωση (multithreading)
Νήμα : μια μονάδα εργασίας που διεκπεραιώνεται και μπορεί να διακόπτεται. Περιλαμβάνει: το μετρητή προγράμματος το δείκτη στοίβας τη δική της περιοχή δεδομένων ΤΕΙΘ-ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ : ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ Ι / 03

16 Ένα νήμα εκτελείται σειριακά και είναι διακοπτόμενο, ώστε ο επεξεργαστής να μπορεί να επιστρέφει σε άλλο νήμα Ένα πρόγραμμα μπορεί να περιέχει αρκετά στοιχεία που διαμοιράζονται δεδομένα και μπορούν να εκτελούνται συγχρόνως. Π.χ. ένας Web browser μπορεί να περιέχει διαφορετικά συστατικά για την ανάγνωση ιστοσελίδων σε μορφή HTML, την ανάκτηση των συστατικών τους (εικόνες, video κλπ) και την εμφάνιση των σελίδων στο παράθυρο του browser. Αυτά τα συστατικά του προγράμματος που εκτελούνται ανεξάρτητα αλλά υλοποιούνται ως λειτουργίες σε μια κοινή περιοχή μνήμης ονομάζονται νήματα (threads). ΤΕΙΘ-ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ : ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ Ι / 03

17 Διεργασία : μια συλλογή νημάτων μαζί με συσχετιζόμενους πόρους του συστήματος
Η διάσπαση μιας εφαρμογής σε πολλά νήματα έχει ως αποτέλεσμα το χρονισμό των γεγονότων της εφαρμογής. Τα νήματα προσφέρουν έναν εναλλακτικό τρόπο λειτουργίας σε σχέση με το μοντέλο της διεργασίας Υπάρχει δυσκολία και πολυπλοκότητα όταν χρησιμοποιείται το μοντέλο διεργασίας, που επιπλέον δεν είναι αρκετά αποτελεσματικό Η πολυνημάτωση (multi-threading) είναι χρήσιμη σε εφαρμογές που εκτελούν πολλές ανεξάρτητες μεταξύ τους διεργασίες που δεν χρειάζεται να είναι σε σειρά, π.χ. ένας web server ΤΕΙΘ-ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ : ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ Ι / 03

18 Clients Web Server DB1 DB2 CGI http pages
ΤΕΙΘ-ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ : ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ Ι / 03

19 Το μοντέλο νήματος Το μοντέλο αυτό διαιρεί τη διεργασία σε δύο τμήματα: Η διεργασία: περιέχει τους πόρους που χρησιμοποιούνται σε όλη τη διάρκεια του προγράμματος όπως καθολικές (global) εντολές καθολικά (global) δεδομένα Το νήμα: περιέχει πληροφορίες που σχετίζονται με την κατάσταση εκτέλεσης όπως program counter stack ΤΕΙΘ-ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ : ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ Ι / 03

20 Απλές και πολυνηματικές διεργασίες
Διεργασίες Είναι οντότητες που δεσμεύουν οποιονδήποτε πόρο τις αφορά όπως τον χώρο διευθύνσεων, τα δεδομένα, τον κώδικα και τα αρχεία Θεωρούνται ως heavyweight σε σχέση με τη δημιουργία, τον τερματισμό και την εναλλαγή πλαισίου Νήματα Διαμοιράζονται τον χώρο διευθύνσεων, τα δεδομένα, τον κώδικα και τα αρχεία εφόσον ανήκουν στην ίδια διεργασία Θεωρούνται ως lightweight σε σχέση με τη δημιουργία, τον τερματισμό και την εναλλαγή πλαισίου ΤΕΙΘ-ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ : ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ Ι / 03

21 Process-oriented computing Multithreaded computing
code files data code files data code files data thread code files data process code files data process Operating System Operating System ΤΕΙΘ-ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ : ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ Ι / 03

22 Threads (Lightweight Processes)
Βασική μονάδα χρήσης της CPU Κατέχει program counter register set stack space Διαμοιράζεται code section data section OS resources Process Program Counter (Threads) A B C text segment A stack B stack C stack “Multithreaded Program” A B C data segment ΤΕΙΘ-ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ : ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ Ι / 03

23 Σχέση νήματος και διεργασίας
ΤΕΙΘ-ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ : ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ Ι / 03

24 Ένα απλό πρόγραμμα σε γλώσσα C
void do_one_thing(int *); void do_another_thing(int *); void do_wrap_up(int, int); int r1=0, r2=0; main() { do_one_thing(&r1); do_another_thing(&r2); do_wrap_up(r1, r2); } void do_one_thing(int *pnum_times) int i, j, x; for(i = 0; i < 4; i ++) printf(“doing one thing\n”); for (j = 0; j < 10000; j++) { x = x + i; } (*pnum_times)++; void do_another_thing(int *pnum_timess) { int i, j, x; for (i = 0; i < 4; i++) printf(“doing another thing \n”); for(j = 0; j < 10000; j++) x = x + i; } (*pnum_times)++; void do_wrap_up(int one_times, int another_times) int total; total = one_times + another_times; printf(“wrap up: one thing %d, another %d, total %d\n”, one_times, another_times, total); ΤΕΙΘ-ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ : ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ Ι / 03

25 Το πρόγραμμα ως μια διεργασία
Layout of program in the virtual memory of a process, indicating how memory is assigned and which resources the process consumes. Several regions of memory exist: A read-only area for program instructions ( or “text” ΤΕΙΘ-ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ : ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ Ι / 03

26 Το πρόγραμμα ως διεργασία με ένα νήμα
void do_one_thing(int *); void do_another_thing(int *); void do_wrap_up(int, int); int r1=0, r2=0; main() { /* create and execute thread */ CreateThread( do_one_thing ); /* execute do_another_thing in main process */ do_another_thing(&r2); /* wait for thread to complete */ wait_for_thread(); do_wrap_up(r1, r2); } ΤΕΙΘ-ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ : ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ Ι / 03

27 Το πρόγραμμα ως διεργασία με ένα νήμα
Οι καταχωρητές είναι τμήμα του νήματος Program counter Stack pointer General purpose registers Οτιδήποτε άλλο ανήκει στη διεργασία Πόροι του Λ.Σ. Open files Locks Sockets, κλπ Πληροφορίες για τη διεργασία PID, UID, GID ΤΕΙΘ-ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ : ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ Ι / 03

28 Το πρόγραμμα ως διεργασία με ένα νήμα
ΤΕΙΘ-ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ : ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ Ι / 03

29 Το πρόγραμμα ως διεργασία με πολλά νήματα
ΤΕΙΘ-ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ : ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ Ι / 03

30 Μοντέλα (επίπεδα) νημάτωσης
User Level Thread Process A Process B Thread Kernel Thread ΤΕΙΘ-ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ : ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ Ι / 03

31 Νήματα χρήστη και πυρήνα
Η διαχείριση των νημάτων γίνεται από τη βιβλιοθήκη των νημάτων χρήστη παραδείγματα - POSIX Pthreads - Win32 threads - Solaris threads Ο πυρήνας δεν ενδιαφέρεται για το πλήθος των νημάτων χρήστη. Νήματα πυρήνα Υποστηρίζονται από τον πυρήνα - Linux - Windows XP/2000 - Solaris lightweight processes ΤΕΙΘ-ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ : ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ Ι / 03

32 Νήματα χρήστη και πυρήνα : σύγκριση
Νήματα πυρήνα: Είναι γνωστά στο Λ.Σ. Η εναλλαγή μεταξύ νημάτων πυρήνα στην ίδια διεργασία δεν είναι δαπανηρή Οι τιμές των καταχωρητών, του PC, και των stack pointers μεταβάλλονται Οι πληροφορίες που αφορούν τη διαχείριση μνήμης δεν αλλάζουν Ο πυρήνας χρησιμοποιεί αλγορίθμους δρομολόγησης διεργασιών για τη διαχείριση των νημάτων Νήματα χρήστη: Το Λ.Σ. δεν γνωρίζει για τα νήματα χρήστη, είναι ενημερωμένο μόνο για τη διεργασία όπου περιέχονται Το Λ.Σ. δρομολογεί τις διεργασίες και όχι τα νήματα Ο προγραμματιστής χρησιμοποιεί τη βιβλιοθήκη νημάτων για να τα διαχειριστεί (δημιουργία, διαγραφή, συγχρονισμός και δρομολόγηση) ΤΕΙΘ-ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ : ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ Ι / 03

33 Παραδείγματα νημάτων Posix Pthreads: (IEEE) standard: Java threads:
Έχουν καθορισμένη διεπαφή Η υλοποίηση (χρησιμοποιώντας user/kernel level threads) εξαρτάται από όσους τα αναπτύσσουν Είναι πιο συνηθισμένα σε συστήματα UNIX Java threads: Υποστηρίζονται από την JVM Η υλοποίηση εξαρτάται από όσους τα αναπτύσσουν ΤΕΙΘ-ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ : ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ Ι / 03

34 Hyper-threading H Intel υλοποιεί την τεχνολογία hyper-threading που μοιάζει με την πολυνημάτωση, υλοποιείται σε συστήματα με έναν πυρήνα και τα κάνει να εμφανίζονται σαν να διαθέτουν πολλαπλούς επεξεργαστές. Εκείνο το οποίο επιτυγχάνεται είναι η αύξηση του ρυθμού με τον οποίο το σύστημα μπορεί να εναλλάσσεται μεταξύ πολλών νημάτων. Έτσι ενισχύεται ο πολυδιεργασιακός χαρακτήρας των προσωπικών υπολογιστών. ΤΕΙΘ-ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ : ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ Ι / 03

35 Πλεονεκτήματα των νημάτων ως προς τις διεργασίες
Η δημιουργία μιας νέας διεργασίας μπορεί να είναι περισσότερο δαπανηρή Απαιτεί χρόνο: χρειάζεται κλήση στον πυρήνα του Λ.Σ. Μπορεί να προκαλέσει επαναδρομολόγηση οπότε θα προκύψει εναλλαγή πλαισίου με αντικατάσταση ολόκληρης της διεργασίας Η επικοινωνία και ο συγχρονισμός κοστίζουν διότι απαιτείται κλήση στον πυρήνα Τα νήματα μπορούν να δημιουργηθούν χωρίς να αντικατασταθεί ολόκληρη η διεργασία Το περισσότερο έργο για τη δημιουργία του νήματος γίνεται στο χώρο διευθύνσεων του χρήστη παρά στον πυρήνα του Λ.Σ. Τα νήματα συγχρονίζονται με την παρακολούθηση μιας μεταβλητής, σε αντίθεση με τις διεργασίες που απαιτούν κλήση πυρήνα ΤΕΙΘ-ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ : ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ Ι / 03

36 Νήματα & Διεργασίες : σύγκριση
Μια διεργασία έχει code/data/heap καθώς και άλλα segments Υπάρχει ένα τουλάχιστον νήμα σε μια διεργασία Τα νήματα σε μια διεργασία διαμοιράζονται code/data/heap και I/O, αλλά το καθένα έχει τη δική του στοίβα και τους δικούς του καταχωρητές Η δημιουργία τους καθώς και οι εναλλαγές πλαισίου είναι δαπανηρές Αν μια διεργασία εκλείψει οι πόροι της επιστρέφονται στο σύστημα και όλα της τα νήματα εκλείπουν Νήματα Ένα νήμα δεν διαθέτει data segment ή heap Ένα νήμα δεν μπορεί να υπάρξει μόνο του, πρέπει να υπάρχει στα πλαίσια μιας διεργασίας Υπάρχουν περισσότερα από ένα νήματα σε μια διεργασία, το πρώτο νήμα είναι το κύριο και κατέχει τη στοίβα της διεργασίας Η δημιουργία του καθώς και η εναλλαγή πλαισίου δεν είναι δαπανηρή Αν ένα νήμα εκλείψει η στοίβα του επιστρέφεται στους πόρους του συστήματος ΤΕΙΘ-ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ : ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ Ι / 03

37 5. Συστήματα πολυπεξεργασίας
Πολυεπεξεργασία (multiprocessing) είναι η χρήση πολλαπλών ταυτόχρονων διεργασιών σε ένα σύστημα. Τα συστήματα πολυεπεξεργασίας διακρίνονται σε : Συμπαγώς συνδεδεμένα συστήματα (Tightly coupled system) – περιέχουν πολλαπλές CPUs που συνδέονται σε επίπεδο διαύλου. Έχουν πρόσβαση σε μια κεντρική διαμοιραζόμενη μνήμη ή μπορούν να συμμετέχουν σε μια ιεραρχία μνήμης διαθέτοντας και τοπική και διαμοιραζόμενη μνήμη. Χαλαρά συνδεδεμένα συστήματα (Loosely coupled system) – κάθε επεξεργαστής έχει τη δική του τοπική μνήμη. Οι επεξεργαστές επικοινωνούν μεταξύ τους μέσω γραμμών επικοινωνίας όπως δίαυλοι υψηλής ταχύτητας (gigabit Ethernet) ή τηλεφωνικές γραμμές. ΤΕΙΘ-ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ : ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ Ι / 03

38 Παραδείγματα Σύστημα πολυεπεξεργασίας με κοινό δίαυλο Hypercube Grid
ΤΕΙΘ-ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ : ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ Ι / 03

39 6. Παράλληλα συστήματα Είναι συστήματα πολυεπεξεργασίας (multiprocessor systems) με περισσότερες από μία CPU σε επικοινωνία μεταξύ τους. Ο όρος των παράλληλων συστημάτων καλύπτει μια πληθώρα αρχιτεκτονικών που περιλαμβάνουν : Συμμετρική πολυεπεξεργασία (SMP) Συστοιχίες συστημάτων SMP Μαζικά παράλληλα συστήματα (MPP) Κριτήριο διάκρισης αποτελεί το είδος της διασύνδεσης των επεξεργαστών (είναι γνωστοί ως processing elements) καθώς και το είδος διασύνδεσης μεταξύ επεξεργαστών και μνημών. ΤΕΙΘ-ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ : ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ Ι / 03

40 Η ταξινόμηση Flynn κατηγοριοποιεί τα συστήματα ανάλογα με το αν όλοι οι επεξεργαστές εκτελούν τις ίδιες εντολές την ίδια χρονική στιγμή (single instruction/ multiple data – SIMD) ή αν κάθε επεξεργαστής εκτελεί διαφορετικές εντολές (multiple instruction / multiple data – MIMD). Οι μηχανές παράλληλης επεξεργασίας διακρίνονται επίσης σε συμμετρικά και μη συμμετρικά συστήματα πολυεπεξεργασίας (symmetric and asymmetric multiprocessors), εξαρτώμενες από το αν όλοι οι επεξεργαστές είναι σε θέση να εκτελούν ολόκληρο τον κώδικα του Λ.Σ. και να έχουν προσπέλαση στις συσκευές I/O ή αν κάποιο επεξεργαστές έχουν περισσότερα ή λιγότερα προνόμια. ΤΕΙΘ-ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ : ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ Ι / 03

41 Πλεονεκτήματα των παράλληλων συστημάτων:
Αυξημένος βαθμός χρήσης (επίδοση) Οικονομία Αυξημένη αξιοπιστία Διαθεσιμότητα Επεκτασιμότητα Κλιμάκωση ΤΕΙΘ-ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ : ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ Ι / 03

42 Αρχιτεκτονικές παράλληλων επεξεργαστών
Κάθε εντολή εκτελείται σε ένα διαφορετικό σύνολο δεδομένων από διαφορετικούς επεξεργαστές Ένα σύνολο επεξεργαστών εκτελεί ταυτόχρονα διαφορετικές ακολουθίες εντολών σε διαφορετικά σύνολα δεδομένων ΤΕΙΘ-ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ : ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ Ι / 03

43 Συμμετρική πολυεπεξεργασία (SMP)
Είναι η πλέον συνήθης προσέγγιση για τη δημιουργία ενός multi-processor συστήματος, στο οποίο δύο ή περισσότεροι επεξεργαστές εργάζονται μαζί στο ίδιο motherboard. Οι επεξεργαστές συντονίζονται και διαμοιράζονται πληροφορίες διαμέσου του διαύλου συστήματος καθώς επίσης ρυθμίζουν μεταξύ τους το υπολογιστικό φορτίο με τη βοήθεια του chipset και του Λ.Σ. Κάθε επεξεργαστής τρέχει ένα πανομοιότυπο αντίγραφο του Λ.Σ. Πολλές διεργασίες μπορούν να εκτελούνται ταυτόχρονα χωρίς να υπάρχει χειροτέρευση της απόδοσης. Τα περισσότερα σύγχρονα υποστηρίζουν την SMP Οι βασικοί περιορισμοί των SMP σχετίζονται με το λογισμικό και την υποστήριξη εκ μέρους του Λ.Σ. ΤΕΙΘ-ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ : ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ Ι / 03

44 Αρχιτεκτονική συμμετρικής πολυεπεξεργασίας
Registers Registers CPU1 CPU2 Disk Controller Memory Disk ΤΕΙΘ-ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ : ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ Ι / 03

45 Αρχιτεκτονική συμμετρικής πολυεπεξεργασίας
ΤΕΙΘ-ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ : ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ Ι / 03

46 Ασύμμετρη πολυεπεξεργασία
Κάθε επεξεργαστής ανατίθεται σε μια ορισμένη διεργασία ενώ ο πρωτεύων επεξεργαστής δρομολογεί και αναθέτει τις διεργασίες στους άλλους (slave) επεξεργαστές. Είναι πιο συνηθισμένη σε πολύ μεγάλα συστήματα. ΤΕΙΘ-ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ : ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ Ι / 03

47 7. Συστήματα πραγματικού χρόνου
Συχνά χρησιμοποιούνται ως μια συσκευή ελέγχου σε μια συγκεκριμένη εφαρμογή όπως ο έλεγχος επιστημονικών πειραμάτων, ο έλεγχος βιομηχανικών συστημάτων, σε συστήματα επεξεργασίας εικόνας ιατρικών εφαρμογών κλπ. Διαθέτουν καλά σχεδιασμένους περιορισμούς χρόνου. Hard real-time system. Χαρακτηρίζονται από την περιορισμένη χρήση δευτερεύουσας μνήμης και τα δεδομένα αποθηκεύονται σε μνήμες βραχείας διάρκειας ή σε ROM Soft real-time system Περιορισμένη χρησιμότητα σε βιομηχανικό έλεγχο και σε ρομποτική Χρήσιμα σε εφαρμογές (multimedia, virtual reality) που απαιτούν εξειδικευμένα χαρακτηριστικά Λ.Σ. ΤΕΙΘ-ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ : ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ Ι / 03

48 8. Κατανεμημένα Συστήματα
Κατανέμουν τη διαδικασία υπολογισμών σε πολλούς φυσικούς επεξεργαστές. Παρέχουν την ψευδαίσθηση ενός μοναδικού χώρου για την κύρια μνήμη και ενός ξεχωριστού μοναδικού χώρου για τη δευτερεύουσα μνήμη, μαζί με άλλες ευκολίες όπως ένα κατανεμημένο σύστημα αρχείων (αφορά στην ουσία ένα πολυ-υπολογιστικό σύστημα δηλ. μια συλλογή από οντότητες (ΗΥ), που η κάθε μια έχει τη δική της κύρια, δευτερεύουσα μνήμη και άλλα στοιχεία Ι/Ο). ΤΕΙΘ-ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ : ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ Ι / 03

49 Χαρακτηριστικά των Κ.Σ. Πλεονεκτήματα Μειονεκτήματα
Διαμοίραση πόρων Αύξηση της ταχύτητας υπολογισμού Αξιοπιστία Δυνατότητες επικοινωνίας Μειονεκτήματα Ασφάλεια και προστασία Τα κατανεμημένα συστήματα αποκρύπτουν: τον τρόπο πρόσβασης σε έναν πόρο το χώρο όπου βρίσκεται κάποιος πόρος τη διαμοίραση πόρων από πολλούς χρήστες που ανταγωνίζονται για τη χρήση τους τη μετακίνηση ενός πόρου σε άλλο μέρος ενώ είναι σε χρήση τις διαφορές στην αναπαράσταση δεδομένων ΤΕΙΘ-ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ : ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ Ι / 03

50 Μοντέλα Κατανεμημένων Συστημάτων
Minicomputer model (αρχικά δίκτυα) Κάθε χρήστης έχει τη δική του μηχανή (τοπικά) Η επεξεργασία είναι τοπική αλλά μπορούν να προσκομιστούν δεδομένα (files, databases) Workstation model Η επεξεργασία μπορεί να γίνεται και απομακρυσμένα Network Client-server Model (V system, world wide web) Ο χρήστης έχει το δικό του τοπικό workstation ισχυρά workstations λειτουργούν ως servers (file, print, DB servers) Processor pool model Τα τερματικά είναι Xterms ή τερματικά χωρίς δίσκο Μια δεξαμενή backend processors διεκπεραιώνει την επεξεργασία ΤΕΙΘ-ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ : ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ Ι / 03

51 Network Operating System
1-19 ΤΕΙΘ-ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ : ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ Ι / 03

52 Client/server networked operating system model
ΤΕΙΘ-ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ : ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ Ι / 03

53 Αρχιτεκτονική των Windows XP
ΤΕΙΘ-ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ : ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ Ι / 03

54 Γενική Αρχιτεκτονική UNIX
ΤΕΙΘ-ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ : ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ Ι / 03

55 Πυρήνας Linux ΤΕΙΘ-ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ : ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ Ι / 03

56 Αρχιτεκτονική Πυρήνα Linux
User Programs User Programs Trap User level Libraries Kernel level System Call Interface File System Management IPC Buffer Cache Process Mgt. Scheduling Memory Mgt. Device Drivers Hardware Control (Interrupts handling, etc) Hardware ΤΕΙΘ-ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ : ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ Ι / 03


Κατέβασμα ppt "3. Αρχιτεκτονικές Λ.Σ. Μονολιθικά συστήματα"

Παρόμοιες παρουσιάσεις


Διαφημίσεις Google