biibob Flashcards
Ποια είναι τα είδη των πυρήνων;
Μονολιθικός, Μικροπυρήνας, Πολυεπίπεδο Λειτουργικό Σύστημα, Exokernel
Περιγράψτε την ιεραρχία μνήμης
1 nsec Registers <1 KB
2 nsec Cache 1mb
10 nsec Main Memory 1gb
10 msec Magnetic Disk 100gb
100 sec Magnetic Tape 100gb
Διαδικασία εκκίνησης
1) εκτελείται το BIOS και ελέγχεται αν οι συσκευές Ε/Ε έχουν εγκατασταθεί σωστά . Αν έχουν αλλάξει οι συσκευές κάνει τις κατάλληλες ρυθμίσεις.
2)Αρχικά γινεται προσπαθεια εκκινησης απο το cd rom και αν αποτυχει, η εκκινηση γινεται απο το σκληρο δισκο.
3)Ο πρωτος τομέας τοποθετείται στη μνημη και εκτελειται. Εκει, εξεταζεται ποιο διαμερισμα ειναι ενεργο και απο εκει διαβαζεται ενας δευτερευων boot loader ο οποιος διαβαζει το λειτουργικο συστημα απο το ενεργο διαμερισμα και το ξεκιναει
4)το λειτουργικο συστημα ζηταει τις πληροφοριες διευθυνσης απο το bios και συγκεντρωνει ολους τους οδηγους των συσκευων που ειναι συνδεδεμενες
5)Φορτωνει ολους τους οδηγους στον πυρηνα, δινει αρχικες τιμες στους πινακες του,δημιουργει οποιεσδηποτε διεργασιες παρασκηνιου χρειαζονται και ξεκιναει την εκτελεση ενος προγραμματος login
Τι ειναι process
Ειναι το στιγμιοτυπο ενος προγραμματος που εκτελειται σε εναν υπολογιστη, η εκτελεση των εντολων ενος προγραμματος. Αποτελειται απο το προγραμμα και απο καποιες τιμες που περιεχονται στη μνημη και στους καταχωρητες του επεξεργαστη. Εχει ενα address space με stack, heap,text και global μεταβλητες.
Τι ειναι νημα
η μικροτερη ακολουθια προγραμματισμενων εντολων που μπορει να υποστει ανεξαρτητη διαχειριση απο εναν χρονοπρογραμματιστη. Ενα νημα ειναι μια ελαφρια διεργασια
Διαφορες νηματος με διεργασια
1)Οι διεργασιες ειναι τυπικως ανεξαρτητες, ενω τα νηματα αποτελουν υποσυνολα μιας διεργασιας
2)Οι διεργασιες περιεχουν σημαντικα περισσοτερες πληροφοριες καταστασης απο τα νηματα, ενω πολλαπλα νηματα μιας διεργασιας μοιραζονται την κατασταση της διεργασιας οπως μνημη και αλλους πορους
3)οι διεργασιες εχουν ξεχωριστα address spaces, ενω τα νηματα μοιραζονται το συνολο του χωρου διευθυνσεων που τους παραχωρειται
4)η εναλλαγη αναμεσα στα νηματα μιας διεργασιας ειναι πολυ γρηγοροτερη απο την εναλλαγη αναμεσα σε διαφορετικες διεργασιες.
τι ειναι το Page Table
ειναι η δομη δεδομενων που χρησιμοποιείται από ένα σύστημα εικονικης μνημης σε ενα λειτουργικο συστημα υπολογιστη γι να αποθηκευει το mapping μεταξυ εικονικων διευθυνσεων και φυσικων διευθυνσεων
τι ειναι το TLB
ειναι μια προσωρινη μνημη cache που χρησιμοποιείται για τη μειωση του χρονου που απαιτειται για την προσβαση σε μια θεση μνημης χρηστη. Ειναι μερος της μοναδας διαχειρησης μνημης του chip. Το tlb αποθηκευει τις προσφατες μεταφρασεις της εικονικης μνημης στη φυσικη μνημη.
Περιγραψτε το page fault
Ειναι ενας τυπος εξαιρεσης που προκαλειται απο το hardware οταν ενα τρεχον προγραμμα ζητα προσβαση σε μια σελιδα μνημης, για την οποια δεν υπαρχει mapping στο page table.
τι ειναι tlb miss
η αποτυχια ευρεσης του mapping μιας εικονικης διευθυνσης στο tlb
ποια τα ειδη των interrupts
1)hardware, εαν το σημα για τον επεξεργαστη προερχεται απο εξωτερικη συσκευη ή υλικο.
2)software, εαν το σημα για τον επεξεργαστη προερχεται απο μια εντολη λογισμικου
ποια ειναι η διαδικασια εκτελεσης ενος interrupt
1)Το υλικο προσθετει στη στοιβα το PC, PSW κλπ
2)Το υλικο φορτωνει το νεο PC απο το διανυσμα διακοπης
3)Η διαδικασια που ειναι γραμμενη σε συμβολικη γλωσσα αποθηκευει τους registers
4)Η διαδικασια που ειναι γραμμενη σε συμβολικη γλωσσα δημιουργει νεα στοιβα
5) Εκτελειται η εξυπηρετηση διακοπης σε C
6) Ο scheduler αποφασιζει ποια διεργασια θα εκτελεστει αμεσως μετα
7)η διαδικασια σε c επιστρεφει τον ελεγχο στην διαδικασια συμβολικης γλωσσας
8) η διαδικασια συμβολικης γλωσσας ξεκιναει την εκτελεση της νεας διεργασιας
User Level Threads pros and cons
ο πυρηνας δεν γνωριζει την υπαρξη τους
pros:
1)μπορουν να υλοποιηθουν ακομα και αν ο πυρηνας δεν υποστηριζει νηματα
2)καθε διεργασια εχει ενα πινακα νηματων για να παρακολουθει τα νηματα της. Η εναλλαγη μεταξυ νηματων ειναι τουλαχιστον μια ταξη μεγεθους ταχυτερη απο τη μεθοδο που περιλαμβανει παγιδευση στον πυρηνα (ειναι πιο γρηγορες δηλαδη)
3) επιτρεπουν σε καθε διεργασια να διεθετει το δικο της αλγοριθμο χρονοπρογραμματισμου. (Μεγαλυτερη ευελιξια)
cons:
1)εαν ενα user level thread κανει ενα system call θα μπλοκαρει και τα αλλα νηματα του ιδιου process
2)εαν ενα νημα προκαλεσει page fault, ο πυρρηνας θα μπλοκαρει ολο το process με αποτελεσμα να μπλοκαρει και τα αλλα νηματα
3) απο τη στιγμη που ενα νημα αρχισει να εκτελειται, κανενα αλλο νημα δεν μπορει να εκτελεστει μεχρι το εκτελουμενο να παραδωσει εκουσια τον ελεγχο της cpu
4) οι προγραμματιστες χρειαζονται νηματα ακριβως στις εφαρμογες οπου αυτα μπλοκαρονται πιο συχνα.
Kernel Threads pros and cons
ο πυρηνας διατηρει ενα πινακα νηματων ο οποιος παρακολουθει ολα τα υπαρχοντα νηματα στο συστημα. Οταν ενα νημα θελει να δημιουργησει ή να εξαλειψει ενα αλλο, πραγματοποιει μια κληση στον πυρηνα ο οποιος υλοποιει τελικα τη δημιουργια ή την εξαλειψη ενημερωνοντας ταυτοχρονα τον πινακα νηματων .
pros:
1)οταν μπλοκαρεται ενα νημα, πχ απο page fault , ο πυρηνας μπορει να επιλεξει καποιο αλλο προς εκτελεση
cons:
1)το κοστος δημιοργιας, εξαλειψης και εναλλαγης ειναι πολυ μεγαλο
2)τι θα συμβει κατα την εκτελεση ενος φορκ; θ εχει η νεα διεργασια ολα τα νηματα της προηγουμενης ή οχι;
3)τι θα συμβει αν η διεργασια λαβει καποιο signal? ποιο νημα θα το αναλαβει; τι γινεται αν 2 ή παραπανω δηλωσουν ενδιαφερον;
ποια ειναι τα states ενος process
1)Running : τρεχει στην cpu (γινεται blocked οταν περιμενει ενα I/O και ready οταν η cpu αρχιζει να εκτελει μια αλλη διεργασια)
2)Ready : ετοιμη να τρεξει αλλα η cpu εκτελει μια αλλη διεργασια (γινεται running οταν η cpu αρχιζει να την εκτελει)
3)Blocked : περιμενει καποιο εξωτερικο γεγονος(γινεται ready οταν πραγματοποιηθει το I/O)
ποια ειναι τα types ενος process
1)Foreground : οποιαδηποτε εντολη ή εργασια που εκτελειται απευθειας και περιμενουμε να ολοκληρωθει. Ορισμενες διεργασιες εμφανιζουν καποιο ειδος διεπαφης για συνεχη αλληλεπιδραση με τον χρηστη.
2)Background : ενα προγραμμα που εκτελειται χωρις εισοδο χρηστη
1)Zombie: τερματησε τη λειτουργια αλλα υπαρχει στο process table
2)Orphan: η πατρικη διεργασια τερματισε καθως αυτη ακομα εκτελειται
3)Daemon: τρεχει χωρις τον ελεγχο ενος χρηστη. Υπαρχουν παντα στο bg και ειαι διαθεσιμα καθε στιγμη. Ξεκινουν οταν ξεκινα και το συστημα.
Ποιοι οι 4 λογοι τερματισμου ενος process
1)normal exit (voluntary exit(0))
2)error exit (voluntary exit(1))
3)fatal error (involuntary exception)
4)killed by another process (involuntary)
τι ειναι υβριδικη υλοποιηση νηματων
ειναι μια προσπαθεια να συνυαστουν τα πλεονεκτηματα των kernel threads και των user level threads. Σε αυτη τη προσεγγιση ο προγραμματιστης μπορει να επιλεξει ποσα kernel threads θελει και με ποσα user threads θα πολυπλεξει καθενα απο τα πρωτα. Ο πυρηνας γνωριζει και χειριζεται μονο τα kernel threads, χωρις να γνωριζει για τα user threads. Αυτη η προσεγγιση προσφερει μεγιστη ευελιξια.
τι ειναι τα αναδυομενα νηματα;
τα αναδυομενα νηματα βρισκουν χρηση στα κατανεμειμενα συστηματα και αναλαμβανουν τον χειρισμο εισερχομενων μηνυματων. Η ελευση ενος μηνυματοσ κανει το συστημα να δημιουργησει ενα αναδυομενο νημα για τον χειρισμο του. Συνηθως χειριζονται απο τον πυρηνα, αν και ετσι μπορει να προκαλεσει μεγαλη ζημια.
περιγραψτε τα race conditions
ειναι η κατασταση κατα την οποια 2 ή και παραπανω νηματα/διεργασιες γραφουν την ιδια θεση μνημης, την ιδια χρονικη στιγμη.
ποιες ειναι οι συνθηκες για την ικανοποιηση αμοιβαιου αποκλεισμου;
1) Το πολύ ένα process/thread στην κρίσιμη περιοχή
2) Δεν επιτρέπονται παραδοχές σε ό,τι αφορά την ταχύτητα ή το πλήθος των
επεξεργαστών
3) Διεργασία που δε βρίσκεται σε κρίσιμο τμήμα δεν επιτρέπεται να μπλοκάρει
άλλες διεργασίες
4) Δεν επιτρέπεται μια διεργασία να αναμένει επ’ αόριστον να μπει στην
κρίσιμη περιοχή της
Τι ειναι οι κρισιμες περιοχες
Μία κρίσιμη περιοχή είναι το τμήμα ενός προγράμματος που έχει πρόσβαση σε
κοινόχρηστους πόρους. Μόνο όταν μια διεργασία βρίσκεται στην κρίσιμη
περιοχή της, μπορεί να είναι σε θέση να διακόψει άλλες διαδικασίες.
Μπορούμε να αποφύγουμε τα race conditions εξασφαλίζοντας ότι δεν
εισέρχονται δύο διεργασίες ταυτόχρονα στις κρίσιμες περιοχές.
Τι ειναι τα semaphores
Ειναι μια μεταβλητη που χρησιμοποιείται για ελεγχο προσβασης σε εναν κοινο πορο απο πολλαπλες διεργασιες σε ενα παραλληλο συστημα. Οι σηματοφοροι που περιοριζονται στις τιμες 0,1 (κλειδωμενα/ξεκλειδωτα) ονομαζονται binary semaphores και χρησιμοποιουνται για την υλοποιηση locks.
Τι ειναι τα mutexes
Ειναι ουσιαστικα το ιδιο με ενα binary semaphore και μερικες φορες εχει την ιδια υλοποιηση. Οι διαφορες μεταξυ τους ειναι στον τροπο με τον οποιο χρησιμοποιουνται.