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 και μερικες φορες εχει την ιδια υλοποιηση. Οι διαφορες μεταξυ τους ειναι στον τροπο με τον οποιο χρησιμοποιουνται.
τι ειναι ο scheduler
ειναι το κομματι του λειτουργικου συστηματος που ειναι υπευθυνο για το ποια διεργασια εκτελειται ανα πασα στιγμη. Μπορει να υλοποιει μια ή περισσοτερες πολιτικες χρονοπρογραμματισμου, αναλογα με την κατηγορια των διεργασιων.
ποιες ειναι οι κατηγοριες αλγοριθμων χρονο προγραμματισμου
1) Batch (Δέσμης)
Στα συστήματα δέσμης δεν υπάρχουν χρήστες που αδημονούν στα τερματικά
τους για γρήγορες απαντήσεις. Διαθέτουν σε κάθε διεργασία μεγάλα
διαστήματα. Η προσέγγιση αυτή μειώνει τις εναλλαγές ανάμεσα στις
διεργασίες, άρα βελτιώνει την απόδοση.
Αλγόριθμοι:
* Εξυπηρέτηση με βάση τη σειρά άφιξης
* Εξυπηρέτηση με βάση τη μικρότερη διάρκεια
* Εξυπηρέτηση με βάση τη μικρότερη διάρκεια που απομένει
2) Interactive (Αλληλεπιδραστικά)
Συστήματα τα οποία χαρακτηρίζονται από σημαντικές αλληλεπιδράσεις μεταξύ
του χρήστη και του υπολογιστή / συστήματος.
Αλγόριθμοι:
* Round robin
* Priority scheduling
* Πολλαπλές ουρές
* Εξυπηρέτηση με βάση τη μικρότερη διάρκεια
* Εγγυημένος προγραμματισμός
* Χρονοπρογραμματισμός με λοτταρία
* Χρονοπρογραμματισμός δίκαιης διανομής
3) Real-Time (Πραγματικού χρόνου)
Συστήματα που έχουν περιορισμούς πραγματικού χρόνου. Οι διεργασιες κανουν τη δουλεια τους και μετα μπλοκαρονται συντομα.
ποιοι οι στοχοι ενος αλγοριθμου χρονοπρογραμματισμου
Για όλα τα συστήματα:
-1)Δικαιοσύνη
Nα εκχωρείται σε κάθε διεργασία ένα δίκαιο μερίδιο της CPU
2) Επιβολή της πολιτικής
Nα παρακολουθείται αν εφαρμόζεται η καθορισμένη πολιτική
-3)Ισορροπία
Nα διατηρούνται ενεργά όλα τα τμήματα του συστήματος
Επιπλέον για:
* Συστήματα δέσμης
- Διεκπεραιωτική ικανότητα :Να μεγιστοποιηθεί ο αριθμός των εργασιών που ολοκληρώνονται ανά ώρα
- Χρόνος διεκπεραίωσης: Να ελαχιστοποιηθεί ο χρόνος που μεσολαβεί ανάμεσα στην υποβολή και
την ολοκλήρωση μιας εργασίας
- Αξιοποίηση της CPU: Να διατηρείται η CPU συνεχώς ενεργός
* Αλληλεπιδραστικά συστήματα
- Χρόνος απόκρισης: Η απόκριση στις αιτήσεις να είναι ταχύτατη
- Τήρηση αναλογιών: Να ικανοποιούνται οι προσδοκίες των χρηστών
* Συστήματα πραγματικού χρόνου
- Τήρηση των προθεσμιών: Να αποφεύγεται η απώλεια δεδομένων
- Προβλεψιμότητα: Να αποφεύγεται ο υποβιβασμός της ποιότητας στα συστήματα πολυμέσων
Ποιοι ειναι οι τροποι επιτευξης mutual exclusion?
1) Απενεργοποίηση διακοπών
Θα απενεργοποιηθούν οι διακοπές ρολογιού καθώς και άλλες και έτσι η CPU
δεν θα μπορεί να εναλλάξει την τρέχουσα διεργασία με κάποια άλλη.
2) Μεταβλητές κλειδώματος (locks)
3) Αυστηρή εναλλαγή
Τι είναι ο υποσιτισμός διεργασίας;
Είναι ένα πρόβλημα που συναντάται σε παράλληλα συστήματα όπου μια
διαδικασία στερείται συνεχώς τους απαραίτητους πόρους για να επεξεργαστεί
το έργο της
τι ειναι Busy-waiting (ενεργός αναμονή) σε μονο-επεξεγραστικά και σε
πολυ-επεξεργαστικά συστήματα
Είναι μια τεχνική που χρησιμοποιείται όταν προγραμματίζουμε με
νήματα/threads. Η ιδέα είναι ότι το νήμα τρέχει ένα βρόχο επανάληψης μέχρι
να ικανοποιηθεί κάποια συνθήκη για να συνεχίσει.
Συνήθως αποφεύγεται γιατί σπαταλάει χρόνο της CPU. Χρησιμοποιείται όταν
υπάρχει σχετική βεβαιότητα ότι η αναμονή θα είναι σύντομη.
Σε μονο-επεξεργαστικά συστήματα, το busy-waiting αποφεύγεται λόγω του ότι
εάν το κύριο process κάνει busy-wait τότε μπλοκάρει όλο το σύστημα.
Σε ένα πολυ-επεξεργαστικό σύστημα το busy-wait δεν θα παγώσει το σύστημα,
ωστόσο και πάλι χάνονται κβάντα χωρίς παραγωγή έργου από το process.
Αναφέρετε χρήσεις του caching.
1) Μείωση του network traffic / wait-time
Κάνοντας cache δεδομένα δικτύου, δεν χρειάζεται να στέλνουμε ξανά πακέτα
και να περιμένουμε απάντηση για δεδομένα που τα ζητήσαμε και στο σχετικά
πρόσφατο παρελθόν (δεδομένου πως δεν έχουν υποστεί αλλαγές).
2) Μείωση των main memory lookups
Κάνοντας cache δεδομένα από προγράμματα, η CPU δεν χρειάζεται να τα
ζητήσει από την κύρια μνήμη, με αποτέλεσμα τα προγράμματα να είναι πιο
responsive.
3) Μείωση των page table lookups
Το TLB χρησιμοποιείται για να κάνει cache ορισμένα entries του page
table
Ποιό είναι το πρόβλημα αντιστροφής προτεραιοτήτων;
Είναι ένα σενάριο στον προγραμματισμό στον οποίο μια εργασία υψηλής
προτεραιότητας μπλοκάρεται έμμεσα από μια εργασία χαμηλότερης
προτεραιότητας που αντιστρέφει τις σχετικές προτεραιότητες
των δύο διεργασιών.
Αυτό παραβιάζει το μοντέλο προτεραιότητας, σύμφωνα με το οποίο οι εργασίες
υψηλής προτεραιότητας μπορούν να μπλοκαριστούν μόνο από εργασίες υψηλότερης
προτεραιότητας
Τι είναι το φράγμα;
Το φράγμα (barrier) είναι ένας μηχανισμός συγχρονισμού που προορίζεται
κυρίως για ομάδες διεργασιών.
Όταν μία διεργασία φτάσει σε ένα φράγμα, περιμένει να φτάσουν στο ίδιο
φράγμα και οι υπόλοιπες διεργασίες για να συνεχίσει.
Τι είναι το φράγμα;
Το φράγμα (barrier) είναι ένας μηχανισμός συγχρονισμού που προορίζεται
κυρίως για ομάδες διεργασιών.
Όταν μία διεργασία φτάσει σε ένα φράγμα, περιμένει να φτάσουν στο ίδιο
φράγμα και οι υπόλοιπες διεργασίες για να συνεχίσει.
Τι είναι η σελιδοποίηση και γιατί επινοήθηκε;
Είναι ένα σχήμα διαχείρισης μνήμης με το οποίο ένας υπολογιστής αποθηκεύει
και ανακτά δεδομένα από δευτερεύουσα αποθήκευση, πχ δίσκο, για χρήση στην
κύρια μνήμη. Σε αυτό το σχήμα, το λειτουργικό σύστημα ανακτά δεδομένα από
το δίσκο σε μπλοκ ίδιου μεγέθους που ονομάζονται σελίδες.
Επινοήθηκε για να δημιουργηθεί μεγάλος και γραμμικός χώρος διευθύνσεων
χωρίς να χρειάζεται να επεκταθεί η φυσική μνήμη
Περιγράψτε τους αλγόριθμους αντικατάστασης σελίδων.
1) Βέλτιστος αλγόριθμος αντικατάστασης
Αδύνατον να υλοποιηθεί. Αντικαθιστά πάντα τη σελίδα που θα ζητηθεί στο
πιο μακρινό μέλλον, με σκοπό να καθυστερήσει το περισσότερο δυνατό ένα
σφάλμα σελίδας. Υποθετικός αλγόριθμος, χρησιμοποιείται ως μέτρο
σύγκρισης.
2) Αλγόριθμος αντικατάστασης σελίδας NRU (Not Recently Used)
Αντικαθιστά σελίδες με βάση τις παρακάτω κατηγορίες:
0. Δεν έγινε αναφορά, δεν τροποποιήθηκε |
1. Δεν έγινε αναφορά, τροποποιήθηκε | προτεραιότητα
2. Έγινε αναφορά, δεν τροποποιήθηκε |
3. Έγινε αναφορά, τροποποιήθηκε ν
3) Αλγόριθμος αντικατάστασης FIFO
4) Αλγόριθμος αντικατάστασης σελίδας της δεύτερης ευκαιρίας
Παραλλαγή του FIFO οπού αντί να αντικαθίστανται απλά η παλαιότερη
σελίδα, πρώτα εξετάζεται το bit αναφοράς. Εάν η σελίδα αναφέρθηκε
πρόσφατα, ο αλγόριθμος επανατοποθετεί τη σελίδα στο τέλος της ουράς,
δίνοντάς της έτσι μία δεύτερη ευκαιρία. Εάν όλες οι σελίδες αναφέρθηκαν
πρόσφατα, ο αλγόριθμος μετατρέπεται σε έναν απλό FIFO αλγόριθμο.
5) Αλγόριθμος αντικατάστασης ρολογιού
Οι σελίδες οργανώνονται σε μία κυκλική λίστα. Υπάρχει ένα δείκτης που
δεικτοδοτεί την παλαιότερη σελίδα. Σε ένα σφάλμα σελίδας έχουμε τα
εξής:
- Bit αναφοράς 0: Αφαιρείται η σελίδα
- Bit αναφοράς 1: Ο δείκτης προχωρά μία θέση
6) Αλγόριθμος αντικατάστασης LRU (Least Recently Used)
Σε ένα σφάλμα σελίδας, αφαιρείται η σελίδα που δεν έχει χρησιμοποιηθεί
για το μεγαλύτερο χρονικό διάστημα.
Αν και ο αλγόριθμος LRU είναι θεωρητικά υλοποιήσιμος, δεν είναι φθηνός.
7) Αλγόριθμος αντικατάστασης σελίδας του συνόλου εργασίας
Ο αλγόριθμος κάνει prepaging προσπαθώντας να διατηρεί στη μνήμη σελίδες
που ανήκουν στο working set και να ελαχιστοποιήσει το πλήθος των
page faults. Όπως και ο LRU, η υλοποίηση είναι κάπως ακριβή.
8) Αλγόριθμος αντικατάστασης σελίδας WSClock
Μοιάζει με τον αλγόριθμο του ρολογιού, όμως:
Σε ένα σφάλμα σελίδας ελέγχουμε τη σελίδα στην οποία δείχνει ο δείκτης:
- Αν η σελίδα έχει το bit αναφοράς 1, τότε το κάνουμε 0 και προχωράμε
το δείκτη
- Αν η σελίδα έχει το bit αναφοράς 0:
- Αν η σελίδα είναι καθαρή και ο χρόνος τελευταίας χρήσης είναι
μεγαλύτερος από ένα τ, τότε η σελίδα δεν ανήκει στο working set,
υπάρχει έγκυρο αντίγραφο στο δίσκο και έτσι η σελίδα αφαιρείται και
αντικαθίστανται από τη νέα σελίδα.
- Αν η σελίδα είναι βρώμικη, δεν μπορεί να αντικατασταθεί αμέσως,
διότι δεν υπάρχει έγκυρο αντίγραφο στο δίσκο. Έτσι
χρονο προγραμματίζεται η εγγραφή της στο δίσκο και ο δείκτης προχωρά
με την επόμενη σελίδα.
Ο αλγόριθμος αυτός χρησιμοποιείται αρκετά και στην πράξη. Είναι
αποδοτικός και εύκολος στην υλοποίηση
Ποιοι ειναι οι αλγοριθμοι αντικαταστασης σελιδων επιγραμματικα
1)Βελτιστος αλγοριθμος αντικαταστασης
2)Αλγοριθμος αντικαταστασης Not Recently Used
3)Αλγοριθμος αντικαταστασης FIFO
4)Αλγοριθμος αντικαταστασης σελιδας της δευτερης ευκαιριας
5)Αλγοριθμος αντικαταστασης ρολογιου
6)Αλγοριθμος αντικαταστασης Least Recently Used
7)Αλγοριθμος αντικαταστασης WSClock
8)Αλγοριθμος αντικαταστασης σελιδας του συνολου εργασιας
Πώς χειρίζεται το σύστημα ένα σφάλμα σελίδας;
1) Παγίδευση στον πυρήνα και αποθήκευση του PC στη στοίβα
2) Μία ρουτίνα assembly αποθηκεύει τους registers, έπειτα καλεί το
λειτουργικό σύστημα
3) Το λειτουργικό σύστημα εντοπίζει ποιά σελίδα χρειάζεται
4) Ελέγχει εάν η σελίδα είναι έγκυρη και επιτρέπεται η πρόσβαση σε αυτή
5) Αν η σελίδα είναι βρώμικη, χρονο προγραμματίζεται η εγγραφή της στο
δίσκο, και γίνεται context switch για να τρέξει άλλη διεργασία μέχρι
να ολοκληρωθεί η εγγραφή
6) Όταν η σελίδα είναι πλέον καθαρή, το λειτουργικό τη ζητάει από τον
δίσκο και τη φέρνει στη μνήμη
7) Όταν η σελίδα φτάσει στη μνήμη, ενημερώνεται ο page table
8) Η διεργασία που προκάλεσε το σφάλμα χρονο προγραμματίζεται και το
λειτουργικό επιστρέφει στην ρουτίνα συμβολικής γλώσσας
9) Η ρουτίνα αυτή ξανά φορτώνει του registers και επιστρέφει στο χώρο του
χρήστη για να συνεχιστεί η εκτέλεση
Τι είναι η τμηματοποίηση και γιατί επινοήθηκε;
Είναι η τεχνική κατά την οποία ο χώρος εικονικών διευθύνσεων διαιρείται σε
επιμέρους ανεξάρτητους χώρους διευθύνσεων, οι οποίοι λέγονται ονομάζονται
(segments). Το κάθε τμήμα αποτελείται από μία γραμμική ακολουθία
διευθύνσεων, από το 0 μέχρι κάποιο μέγιστο. Τα τμήματα μπορούν να
αυξομειώνονται ανεξάρτητα χωρίς να επηρεάζονται.
Επινοήθηκε για να επιτρέπει στα προγράμματα και τα δεδομένα να χωρίζονται
σε λογικά ανεξάρτητους χώρους διευθύνσεων, και να υποβοηθείται η
κοινοχρησία και η προστασία.
Ποιά τα πλεονεκτήματα της τμηματοποίησης;
1)Απλούστευση του χειρισμού των δομών δεδομένων που αυξάνονται ή
μειώνονται σε μέγεθος
2) Διευκολύνει την κοινή χρήση διαδικασιών ή δεδομένων από πολλές
διεργασίες, πχ κοινόχρηστες βιβλιοθήκες (shared libraries)
Η βιβλιοθήκη μπορεί να τοποθετηθεί σε ένα τμήμα και να είναι διαθέσιμη
σε πολλές διεργασίες, χωρίς να χρειάζεται να βρίσκεται στους χώρους
διευθύνσεων όλων των διεργασιών.
Σε συστήματα που κατανέμουν τα αρχεία τμηματικά, ποιό το μειονέκτημα των
μεγάλων blocks και ποιό αυτό των μικρών blocks;
- Μεγάλα blocks => σπατάλη χώρου (μικρά αρχεία σε μεγάλα blocks)
- Μικρά blocks => σπατάλη χρόνου (πολλές περιστροφές του δίσκου)
Ποιές οι διαφορές μεταξύ paging και segmentation.
1) Στο paging ο χρήστης δεν χρειάζεται να είναι ενήμερος πως
χρησιμοποιείται η συγκεκριμένη τεχνική, στο segmentation χρειάζεται.
2) Στο paging υπάρχει 1 γραμμικός χώρος διευθύνσεων, στο segmentation
πολλοί.
3) Στο paging οι διαδικασίες και τα δεδομένα δεν είναι διακριτά και δεν
προστατεύονται ξεχωριστά, ενώ στο segmentation συμβαίνει.
4) Στο segmentation είναι ευκολότερος ο χειρισμός πινάκων μεταβλητού
μεγέθους
5) Στο segmentation είναι ευκολότερη η κοινή χρήση των διαδικασιών ανάμεσα
στους χρήστες
Ποιές είναι οι 3 θεμελιώδεις απαιτήσεις για μακρόχρονη αποθήκευση
πληροφοριών
1) Πρέπει να είναι δυνατόν να αποθηκεύονται μεγάλες ποσότητες πληροφοριών
2) Οι πληροφορίες πρέπει να επιβιώνουν μετά από τον τερματισμό της
διεργασίας που τις χρησιμοποιεί
3) Πρέπει να επιτρέπεται σε πολλές διεργασίες να έχουν τη δυνατότητα να
προσπελάσουν ταυτόχρονα τις πληροφορίες
Τι είναι τα αρχεία και ποιοί οι τύποι τους;
Είναι λογικές μονάδες πληροφοριών τις οποίες δημιουργούν οι διεργασίες
Τύποι:
1) Κανονικά αρχεία
Περιέχουν πληροφορίες χρήστη
2) Κατάλογοι (directories)
Βοηθούν στη δόμηση του συστήματος αρχείων
3) Αρχεία χαρακτήρων
Σχετίζονται με την είσοδο / έξοδο και χρησιμοποιούνται για να
μοντελοποιήσουν σειριακές συσκευές Ε/Ε όπως τα τερματικά, εκτυπωτές,
και τα δίκτυα.
4) Αρχεία μπλοκ
Χρησιμοποιούνται για να μοντελοποιήσουν δίσκους
Τι είναι ο μαγικός αριθμός (magic number);
Είναι ο αριθμός στην κεφαλίδα ενός αρχείου που υποδηλώνει οτι το αρχείο
αυτό είναι εκτελέσιμο.
Αναφέρετε μερικά χαρακτηριστικά αρχείων
1) Current size
2) Time of last access
3) Time of last change
4) Creator
5) Owner
6) Protection / permissions
7) Hidden flag
8) Creation time
9) Password