biibob Flashcards

1
Q

Ποια είναι τα είδη των πυρήνων;

A

Μονολιθικός, Μικροπυρήνας, Πολυεπίπεδο Λειτουργικό Σύστημα, Exokernel

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
2
Q

Περιγράψτε την ιεραρχία μνήμης

A

1 nsec Registers <1 KB
2 nsec Cache 1mb
10 nsec Main Memory 1gb
10 msec Magnetic Disk 100gb
100 sec Magnetic Tape 100gb

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
3
Q

Διαδικασία εκκίνησης

A

1) εκτελείται το BIOS και ελέγχεται αν οι συσκευές Ε/Ε έχουν εγκατασταθεί σωστά . Αν έχουν αλλάξει οι συσκευές κάνει τις κατάλληλες ρυθμίσεις.
2)Αρχικά γινεται προσπαθεια εκκινησης απο το cd rom και αν αποτυχει, η εκκινηση γινεται απο το σκληρο δισκο.
3)Ο πρωτος τομέας τοποθετείται στη μνημη και εκτελειται. Εκει, εξεταζεται ποιο διαμερισμα ειναι ενεργο και απο εκει διαβαζεται ενας δευτερευων boot loader ο οποιος διαβαζει το λειτουργικο συστημα απο το ενεργο διαμερισμα και το ξεκιναει
4)το λειτουργικο συστημα ζηταει τις πληροφοριες διευθυνσης απο το bios και συγκεντρωνει ολους τους οδηγους των συσκευων που ειναι συνδεδεμενες
5)Φορτωνει ολους τους οδηγους στον πυρηνα, δινει αρχικες τιμες στους πινακες του,δημιουργει οποιεσδηποτε διεργασιες παρασκηνιου χρειαζονται και ξεκιναει την εκτελεση ενος προγραμματος login

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
4
Q

Τι ειναι process

A

Ειναι το στιγμιοτυπο ενος προγραμματος που εκτελειται σε εναν υπολογιστη, η εκτελεση των εντολων ενος προγραμματος. Αποτελειται απο το προγραμμα και απο καποιες τιμες που περιεχονται στη μνημη και στους καταχωρητες του επεξεργαστη. Εχει ενα address space με stack, heap,text και global μεταβλητες.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
5
Q

Τι ειναι νημα

A

η μικροτερη ακολουθια προγραμματισμενων εντολων που μπορει να υποστει ανεξαρτητη διαχειριση απο εναν χρονοπρογραμματιστη. Ενα νημα ειναι μια ελαφρια διεργασια

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
6
Q

Διαφορες νηματος με διεργασια

A

1)Οι διεργασιες ειναι τυπικως ανεξαρτητες, ενω τα νηματα αποτελουν υποσυνολα μιας διεργασιας
2)Οι διεργασιες περιεχουν σημαντικα περισσοτερες πληροφοριες καταστασης απο τα νηματα, ενω πολλαπλα νηματα μιας διεργασιας μοιραζονται την κατασταση της διεργασιας οπως μνημη και αλλους πορους
3)οι διεργασιες εχουν ξεχωριστα address spaces, ενω τα νηματα μοιραζονται το συνολο του χωρου διευθυνσεων που τους παραχωρειται
4)η εναλλαγη αναμεσα στα νηματα μιας διεργασιας ειναι πολυ γρηγοροτερη απο την εναλλαγη αναμεσα σε διαφορετικες διεργασιες.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
7
Q

τι ειναι το Page Table

A

ειναι η δομη δεδομενων που χρησιμοποιείται από ένα σύστημα εικονικης μνημης σε ενα λειτουργικο συστημα υπολογιστη γι να αποθηκευει το mapping μεταξυ εικονικων διευθυνσεων και φυσικων διευθυνσεων

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
8
Q

τι ειναι το TLB

A

ειναι μια προσωρινη μνημη cache που χρησιμοποιείται για τη μειωση του χρονου που απαιτειται για την προσβαση σε μια θεση μνημης χρηστη. Ειναι μερος της μοναδας διαχειρησης μνημης του chip. Το tlb αποθηκευει τις προσφατες μεταφρασεις της εικονικης μνημης στη φυσικη μνημη.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
9
Q

Περιγραψτε το page fault

A

Ειναι ενας τυπος εξαιρεσης που προκαλειται απο το hardware οταν ενα τρεχον προγραμμα ζητα προσβαση σε μια σελιδα μνημης, για την οποια δεν υπαρχει mapping στο page table.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
10
Q

τι ειναι tlb miss

A

η αποτυχια ευρεσης του mapping μιας εικονικης διευθυνσης στο tlb

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
11
Q

ποια τα ειδη των interrupts

A

1)hardware, εαν το σημα για τον επεξεργαστη προερχεται απο εξωτερικη συσκευη ή υλικο.
2)software, εαν το σημα για τον επεξεργαστη προερχεται απο μια εντολη λογισμικου

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
12
Q

ποια ειναι η διαδικασια εκτελεσης ενος interrupt

A

1)Το υλικο προσθετει στη στοιβα το PC, PSW κλπ
2)Το υλικο φορτωνει το νεο PC απο το διανυσμα διακοπης
3)Η διαδικασια που ειναι γραμμενη σε συμβολικη γλωσσα αποθηκευει τους registers
4)Η διαδικασια που ειναι γραμμενη σε συμβολικη γλωσσα δημιουργει νεα στοιβα
5) Εκτελειται η εξυπηρετηση διακοπης σε C
6) Ο scheduler αποφασιζει ποια διεργασια θα εκτελεστει αμεσως μετα
7)η διαδικασια σε c επιστρεφει τον ελεγχο στην διαδικασια συμβολικης γλωσσας
8) η διαδικασια συμβολικης γλωσσας ξεκιναει την εκτελεση της νεας διεργασιας

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
13
Q

User Level Threads pros and cons

A

ο πυρηνας δεν γνωριζει την υπαρξη τους
pros:
1)μπορουν να υλοποιηθουν ακομα και αν ο πυρηνας δεν υποστηριζει νηματα
2)καθε διεργασια εχει ενα πινακα νηματων για να παρακολουθει τα νηματα της. Η εναλλαγη μεταξυ νηματων ειναι τουλαχιστον μια ταξη μεγεθους ταχυτερη απο τη μεθοδο που περιλαμβανει παγιδευση στον πυρηνα (ειναι πιο γρηγορες δηλαδη)
3) επιτρεπουν σε καθε διεργασια να διεθετει το δικο της αλγοριθμο χρονοπρογραμματισμου. (Μεγαλυτερη ευελιξια)
cons:
1)εαν ενα user level thread κανει ενα system call θα μπλοκαρει και τα αλλα νηματα του ιδιου process
2)εαν ενα νημα προκαλεσει page fault, ο πυρρηνας θα μπλοκαρει ολο το process με αποτελεσμα να μπλοκαρει και τα αλλα νηματα
3) απο τη στιγμη που ενα νημα αρχισει να εκτελειται, κανενα αλλο νημα δεν μπορει να εκτελεστει μεχρι το εκτελουμενο να παραδωσει εκουσια τον ελεγχο της cpu
4) οι προγραμματιστες χρειαζονται νηματα ακριβως στις εφαρμογες οπου αυτα μπλοκαρονται πιο συχνα.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
14
Q

Kernel Threads pros and cons

A

ο πυρηνας διατηρει ενα πινακα νηματων ο οποιος παρακολουθει ολα τα υπαρχοντα νηματα στο συστημα. Οταν ενα νημα θελει να δημιουργησει ή να εξαλειψει ενα αλλο, πραγματοποιει μια κληση στον πυρηνα ο οποιος υλοποιει τελικα τη δημιουργια ή την εξαλειψη ενημερωνοντας ταυτοχρονα τον πινακα νηματων .
pros:
1)οταν μπλοκαρεται ενα νημα, πχ απο page fault , ο πυρηνας μπορει να επιλεξει καποιο αλλο προς εκτελεση
cons:
1)το κοστος δημιοργιας, εξαλειψης και εναλλαγης ειναι πολυ μεγαλο
2)τι θα συμβει κατα την εκτελεση ενος φορκ; θ εχει η νεα διεργασια ολα τα νηματα της προηγουμενης ή οχι;
3)τι θα συμβει αν η διεργασια λαβει καποιο signal? ποιο νημα θα το αναλαβει; τι γινεται αν 2 ή παραπανω δηλωσουν ενδιαφερον;

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
15
Q

ποια ειναι τα states ενος process

A

1)Running : τρεχει στην cpu (γινεται blocked οταν περιμενει ενα I/O και ready οταν η cpu αρχιζει να εκτελει μια αλλη διεργασια)
2)Ready : ετοιμη να τρεξει αλλα η cpu εκτελει μια αλλη διεργασια (γινεται running οταν η cpu αρχιζει να την εκτελει)
3)Blocked : περιμενει καποιο εξωτερικο γεγονος(γινεται ready οταν πραγματοποιηθει το I/O)

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
16
Q

ποια ειναι τα types ενος process

A

1)Foreground : οποιαδηποτε εντολη ή εργασια που εκτελειται απευθειας και περιμενουμε να ολοκληρωθει. Ορισμενες διεργασιες εμφανιζουν καποιο ειδος διεπαφης για συνεχη αλληλεπιδραση με τον χρηστη.
2)Background : ενα προγραμμα που εκτελειται χωρις εισοδο χρηστη

1)Zombie: τερματησε τη λειτουργια αλλα υπαρχει στο process table
2)Orphan: η πατρικη διεργασια τερματισε καθως αυτη ακομα εκτελειται
3)Daemon: τρεχει χωρις τον ελεγχο ενος χρηστη. Υπαρχουν παντα στο bg και ειαι διαθεσιμα καθε στιγμη. Ξεκινουν οταν ξεκινα και το συστημα.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
17
Q

Ποιοι οι 4 λογοι τερματισμου ενος process

A

1)normal exit (voluntary exit(0))
2)error exit (voluntary exit(1))
3)fatal error (involuntary exception)
4)killed by another process (involuntary)

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
18
Q

τι ειναι υβριδικη υλοποιηση νηματων

A

ειναι μια προσπαθεια να συνυαστουν τα πλεονεκτηματα των kernel threads και των user level threads. Σε αυτη τη προσεγγιση ο προγραμματιστης μπορει να επιλεξει ποσα kernel threads θελει και με ποσα user threads θα πολυπλεξει καθενα απο τα πρωτα. Ο πυρηνας γνωριζει και χειριζεται μονο τα kernel threads, χωρις να γνωριζει για τα user threads. Αυτη η προσεγγιση προσφερει μεγιστη ευελιξια.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
19
Q

τι ειναι τα αναδυομενα νηματα;

A

τα αναδυομενα νηματα βρισκουν χρηση στα κατανεμειμενα συστηματα και αναλαμβανουν τον χειρισμο εισερχομενων μηνυματων. Η ελευση ενος μηνυματοσ κανει το συστημα να δημιουργησει ενα αναδυομενο νημα για τον χειρισμο του. Συνηθως χειριζονται απο τον πυρηνα, αν και ετσι μπορει να προκαλεσει μεγαλη ζημια.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
20
Q

περιγραψτε τα race conditions

A

ειναι η κατασταση κατα την οποια 2 ή και παραπανω νηματα/διεργασιες γραφουν την ιδια θεση μνημης, την ιδια χρονικη στιγμη.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
21
Q

ποιες ειναι οι συνθηκες για την ικανοποιηση αμοιβαιου αποκλεισμου;

A

1) Το πολύ ένα process/thread στην κρίσιμη περιοχή
2) Δεν επιτρέπονται παραδοχές σε ό,τι αφορά την ταχύτητα ή το πλήθος των
επεξεργαστών
3) Διεργασία που δε βρίσκεται σε κρίσιμο τμήμα δεν επιτρέπεται να μπλοκάρει
άλλες διεργασίες
4) Δεν επιτρέπεται μια διεργασία να αναμένει επ’ αόριστον να μπει στην
κρίσιμη περιοχή της

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
22
Q

Τι ειναι οι κρισιμες περιοχες

A

Μία κρίσιμη περιοχή είναι το τμήμα ενός προγράμματος που έχει πρόσβαση σε
κοινόχρηστους πόρους. Μόνο όταν μια διεργασία βρίσκεται στην κρίσιμη
περιοχή της, μπορεί να είναι σε θέση να διακόψει άλλες διαδικασίες.
Μπορούμε να αποφύγουμε τα race conditions εξασφαλίζοντας ότι δεν
εισέρχονται δύο διεργασίες ταυτόχρονα στις κρίσιμες περιοχές.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
23
Q

Τι ειναι τα semaphores

A

Ειναι μια μεταβλητη που χρησιμοποιείται για ελεγχο προσβασης σε εναν κοινο πορο απο πολλαπλες διεργασιες σε ενα παραλληλο συστημα. Οι σηματοφοροι που περιοριζονται στις τιμες 0,1 (κλειδωμενα/ξεκλειδωτα) ονομαζονται binary semaphores και χρησιμοποιουνται για την υλοποιηση locks.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
24
Q

Τι ειναι τα mutexes

A

Ειναι ουσιαστικα το ιδιο με ενα binary semaphore και μερικες φορες εχει την ιδια υλοποιηση. Οι διαφορες μεταξυ τους ειναι στον τροπο με τον οποιο χρησιμοποιουνται.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
25
Q

τι ειναι ο scheduler

A

ειναι το κομματι του λειτουργικου συστηματος που ειναι υπευθυνο για το ποια διεργασια εκτελειται ανα πασα στιγμη. Μπορει να υλοποιει μια ή περισσοτερες πολιτικες χρονοπρογραμματισμου, αναλογα με την κατηγορια των διεργασιων.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
26
Q

ποιες ειναι οι κατηγοριες αλγοριθμων χρονο προγραμματισμου

A

1) Batch (Δέσμης)
Στα συστήματα δέσμης δεν υπάρχουν χρήστες που αδημονούν στα τερματικά
τους για γρήγορες απαντήσεις. Διαθέτουν σε κάθε διεργασία μεγάλα
διαστήματα. Η προσέγγιση αυτή μειώνει τις εναλλαγές ανάμεσα στις
διεργασίες, άρα βελτιώνει την απόδοση.
Αλγόριθμοι:
* Εξυπηρέτηση με βάση τη σειρά άφιξης
* Εξυπηρέτηση με βάση τη μικρότερη διάρκεια
* Εξυπηρέτηση με βάση τη μικρότερη διάρκεια που απομένει
2) Interactive (Αλληλεπιδραστικά)
Συστήματα τα οποία χαρακτηρίζονται από σημαντικές αλληλεπιδράσεις μεταξύ
του χρήστη και του υπολογιστή / συστήματος.
Αλγόριθμοι:
* Round robin
* Priority scheduling
* Πολλαπλές ουρές
* Εξυπηρέτηση με βάση τη μικρότερη διάρκεια
* Εγγυημένος προγραμματισμός
* Χρονοπρογραμματισμός με λοτταρία
* Χρονοπρογραμματισμός δίκαιης διανομής
3) Real-Time (Πραγματικού χρόνου)
Συστήματα που έχουν περιορισμούς πραγματικού χρόνου. Οι διεργασιες κανουν τη δουλεια τους και μετα μπλοκαρονται συντομα.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
27
Q

ποιοι οι στοχοι ενος αλγοριθμου χρονοπρογραμματισμου

A

Για όλα τα συστήματα:
-1)Δικαιοσύνη
Nα εκχωρείται σε κάθε διεργασία ένα δίκαιο μερίδιο της CPU
2) Επιβολή της πολιτικής
Nα παρακολουθείται αν εφαρμόζεται η καθορισμένη πολιτική
-3)Ισορροπία
Nα διατηρούνται ενεργά όλα τα τμήματα του συστήματος
Επιπλέον για:
* Συστήματα δέσμης
- Διεκπεραιωτική ικανότητα :Να μεγιστοποιηθεί ο αριθμός των εργασιών που ολοκληρώνονται ανά ώρα
- Χρόνος διεκπεραίωσης: Να ελαχιστοποιηθεί ο χρόνος που μεσολαβεί ανάμεσα στην υποβολή και
την ολοκλήρωση μιας εργασίας
- Αξιοποίηση της CPU: Να διατηρείται η CPU συνεχώς ενεργός
* Αλληλεπιδραστικά συστήματα
- Χρόνος απόκρισης: Η απόκριση στις αιτήσεις να είναι ταχύτατη
- Τήρηση αναλογιών: Να ικανοποιούνται οι προσδοκίες των χρηστών
* Συστήματα πραγματικού χρόνου
- Τήρηση των προθεσμιών: Να αποφεύγεται η απώλεια δεδομένων
- Προβλεψιμότητα: Να αποφεύγεται ο υποβιβασμός της ποιότητας στα συστήματα πολυμέσων

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
28
Q

Ποιοι ειναι οι τροποι επιτευξης mutual exclusion?

A

1) Απενεργοποίηση διακοπών
Θα απενεργοποιηθούν οι διακοπές ρολογιού καθώς και άλλες και έτσι η CPU
δεν θα μπορεί να εναλλάξει την τρέχουσα διεργασία με κάποια άλλη.
2) Μεταβλητές κλειδώματος (locks)
3) Αυστηρή εναλλαγή

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
29
Q

Τι είναι ο υποσιτισμός διεργασίας;

A

Είναι ένα πρόβλημα που συναντάται σε παράλληλα συστήματα όπου μια
διαδικασία στερείται συνεχώς τους απαραίτητους πόρους για να επεξεργαστεί
το έργο της

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
30
Q

τι ειναι Busy-waiting (ενεργός αναμονή) σε μονο-επεξεγραστικά και σε
πολυ-επεξεργαστικά συστήματα

A

Είναι μια τεχνική που χρησιμοποιείται όταν προγραμματίζουμε με
νήματα/threads. Η ιδέα είναι ότι το νήμα τρέχει ένα βρόχο επανάληψης μέχρι
να ικανοποιηθεί κάποια συνθήκη για να συνεχίσει.
Συνήθως αποφεύγεται γιατί σπαταλάει χρόνο της CPU. Χρησιμοποιείται όταν
υπάρχει σχετική βεβαιότητα ότι η αναμονή θα είναι σύντομη.
Σε μονο-επεξεργαστικά συστήματα, το busy-waiting αποφεύγεται λόγω του ότι
εάν το κύριο process κάνει busy-wait τότε μπλοκάρει όλο το σύστημα.
Σε ένα πολυ-επεξεργαστικό σύστημα το busy-wait δεν θα παγώσει το σύστημα,
ωστόσο και πάλι χάνονται κβάντα χωρίς παραγωγή έργου από το process.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
31
Q

Αναφέρετε χρήσεις του caching.

A

1) Μείωση του network traffic / wait-time
Κάνοντας cache δεδομένα δικτύου, δεν χρειάζεται να στέλνουμε ξανά πακέτα
και να περιμένουμε απάντηση για δεδομένα που τα ζητήσαμε και στο σχετικά
πρόσφατο παρελθόν (δεδομένου πως δεν έχουν υποστεί αλλαγές).
2) Μείωση των main memory lookups
Κάνοντας cache δεδομένα από προγράμματα, η CPU δεν χρειάζεται να τα
ζητήσει από την κύρια μνήμη, με αποτέλεσμα τα προγράμματα να είναι πιο
responsive.
3) Μείωση των page table lookups
Το TLB χρησιμοποιείται για να κάνει cache ορισμένα entries του page
table

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
32
Q

Ποιό είναι το πρόβλημα αντιστροφής προτεραιοτήτων;

A

Είναι ένα σενάριο στον προγραμματισμό στον οποίο μια εργασία υψηλής
προτεραιότητας μπλοκάρεται έμμεσα από μια εργασία χαμηλότερης
προτεραιότητας που αντιστρέφει τις σχετικές προτεραιότητες
των δύο διεργασιών.
Αυτό παραβιάζει το μοντέλο προτεραιότητας, σύμφωνα με το οποίο οι εργασίες
υψηλής προτεραιότητας μπορούν να μπλοκαριστούν μόνο από εργασίες υψηλότερης
προτεραιότητας

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
33
Q

Τι είναι το φράγμα;

A

Το φράγμα (barrier) είναι ένας μηχανισμός συγχρονισμού που προορίζεται
κυρίως για ομάδες διεργασιών.
Όταν μία διεργασία φτάσει σε ένα φράγμα, περιμένει να φτάσουν στο ίδιο
φράγμα και οι υπόλοιπες διεργασίες για να συνεχίσει.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
34
Q

Τι είναι το φράγμα;

A

Το φράγμα (barrier) είναι ένας μηχανισμός συγχρονισμού που προορίζεται
κυρίως για ομάδες διεργασιών.
Όταν μία διεργασία φτάσει σε ένα φράγμα, περιμένει να φτάσουν στο ίδιο
φράγμα και οι υπόλοιπες διεργασίες για να συνεχίσει.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
35
Q

Τι είναι η σελιδοποίηση και γιατί επινοήθηκε;

A

Είναι ένα σχήμα διαχείρισης μνήμης με το οποίο ένας υπολογιστής αποθηκεύει
και ανακτά δεδομένα από δευτερεύουσα αποθήκευση, πχ δίσκο, για χρήση στην
κύρια μνήμη. Σε αυτό το σχήμα, το λειτουργικό σύστημα ανακτά δεδομένα από
το δίσκο σε μπλοκ ίδιου μεγέθους που ονομάζονται σελίδες.
Επινοήθηκε για να δημιουργηθεί μεγάλος και γραμμικός χώρος διευθύνσεων
χωρίς να χρειάζεται να επεκταθεί η φυσική μνήμη

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
36
Q

Περιγράψτε τους αλγόριθμους αντικατάστασης σελίδων.

A

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,
υπάρχει έγκυρο αντίγραφο στο δίσκο και έτσι η σελίδα αφαιρείται και
αντικαθίστανται από τη νέα σελίδα.
- Αν η σελίδα είναι βρώμικη, δεν μπορεί να αντικατασταθεί αμέσως,
διότι δεν υπάρχει έγκυρο αντίγραφο στο δίσκο. Έτσι
χρονο προγραμματίζεται η εγγραφή της στο δίσκο και ο δείκτης προχωρά
με την επόμενη σελίδα.
Ο αλγόριθμος αυτός χρησιμοποιείται αρκετά και στην πράξη. Είναι
αποδοτικός και εύκολος στην υλοποίηση

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
37
Q

Ποιοι ειναι οι αλγοριθμοι αντικαταστασης σελιδων επιγραμματικα

A

1)Βελτιστος αλγοριθμος αντικαταστασης
2)Αλγοριθμος αντικαταστασης Not Recently Used
3)Αλγοριθμος αντικαταστασης FIFO
4)Αλγοριθμος αντικαταστασης σελιδας της δευτερης ευκαιριας
5)Αλγοριθμος αντικαταστασης ρολογιου
6)Αλγοριθμος αντικαταστασης Least Recently Used
7)Αλγοριθμος αντικαταστασης WSClock
8)Αλγοριθμος αντικαταστασης σελιδας του συνολου εργασιας

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
38
Q

Πώς χειρίζεται το σύστημα ένα σφάλμα σελίδας;

A

1) Παγίδευση στον πυρήνα και αποθήκευση του PC στη στοίβα
2) Μία ρουτίνα assembly αποθηκεύει τους registers, έπειτα καλεί το
λειτουργικό σύστημα
3) Το λειτουργικό σύστημα εντοπίζει ποιά σελίδα χρειάζεται
4) Ελέγχει εάν η σελίδα είναι έγκυρη και επιτρέπεται η πρόσβαση σε αυτή
5) Αν η σελίδα είναι βρώμικη, χρονο προγραμματίζεται η εγγραφή της στο
δίσκο, και γίνεται context switch για να τρέξει άλλη διεργασία μέχρι
να ολοκληρωθεί η εγγραφή
6) Όταν η σελίδα είναι πλέον καθαρή, το λειτουργικό τη ζητάει από τον
δίσκο και τη φέρνει στη μνήμη
7) Όταν η σελίδα φτάσει στη μνήμη, ενημερώνεται ο page table
8) Η διεργασία που προκάλεσε το σφάλμα χρονο προγραμματίζεται και το
λειτουργικό επιστρέφει στην ρουτίνα συμβολικής γλώσσας
9) Η ρουτίνα αυτή ξανά φορτώνει του registers και επιστρέφει στο χώρο του
χρήστη για να συνεχιστεί η εκτέλεση

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
39
Q

Τι είναι η τμηματοποίηση και γιατί επινοήθηκε;

A

Είναι η τεχνική κατά την οποία ο χώρος εικονικών διευθύνσεων διαιρείται σε
επιμέρους ανεξάρτητους χώρους διευθύνσεων, οι οποίοι λέγονται ονομάζονται
(segments). Το κάθε τμήμα αποτελείται από μία γραμμική ακολουθία
διευθύνσεων, από το 0 μέχρι κάποιο μέγιστο. Τα τμήματα μπορούν να
αυξομειώνονται ανεξάρτητα χωρίς να επηρεάζονται.
Επινοήθηκε για να επιτρέπει στα προγράμματα και τα δεδομένα να χωρίζονται
σε λογικά ανεξάρτητους χώρους διευθύνσεων, και να υποβοηθείται η
κοινοχρησία και η προστασία.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
40
Q

Ποιά τα πλεονεκτήματα της τμηματοποίησης;

A

1)Απλούστευση του χειρισμού των δομών δεδομένων που αυξάνονται ή
μειώνονται σε μέγεθος
2) Διευκολύνει την κοινή χρήση διαδικασιών ή δεδομένων από πολλές
διεργασίες, πχ κοινόχρηστες βιβλιοθήκες (shared libraries)
Η βιβλιοθήκη μπορεί να τοποθετηθεί σε ένα τμήμα και να είναι διαθέσιμη
σε πολλές διεργασίες, χωρίς να χρειάζεται να βρίσκεται στους χώρους
διευθύνσεων όλων των διεργασιών.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
41
Q

Σε συστήματα που κατανέμουν τα αρχεία τμηματικά, ποιό το μειονέκτημα των
μεγάλων blocks και ποιό αυτό των μικρών blocks;

A
  • Μεγάλα blocks => σπατάλη χώρου (μικρά αρχεία σε μεγάλα blocks)
  • Μικρά blocks => σπατάλη χρόνου (πολλές περιστροφές του δίσκου)
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
42
Q

Ποιές οι διαφορές μεταξύ paging και segmentation.

A

1) Στο paging ο χρήστης δεν χρειάζεται να είναι ενήμερος πως
χρησιμοποιείται η συγκεκριμένη τεχνική, στο segmentation χρειάζεται.
2) Στο paging υπάρχει 1 γραμμικός χώρος διευθύνσεων, στο segmentation
πολλοί.
3) Στο paging οι διαδικασίες και τα δεδομένα δεν είναι διακριτά και δεν
προστατεύονται ξεχωριστά, ενώ στο segmentation συμβαίνει.
4) Στο segmentation είναι ευκολότερος ο χειρισμός πινάκων μεταβλητού
μεγέθους
5) Στο segmentation είναι ευκολότερη η κοινή χρήση των διαδικασιών ανάμεσα
στους χρήστες

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
43
Q

Ποιές είναι οι 3 θεμελιώδεις απαιτήσεις για μακρόχρονη αποθήκευση
πληροφοριών

A

1) Πρέπει να είναι δυνατόν να αποθηκεύονται μεγάλες ποσότητες πληροφοριών
2) Οι πληροφορίες πρέπει να επιβιώνουν μετά από τον τερματισμό της
διεργασίας που τις χρησιμοποιεί
3) Πρέπει να επιτρέπεται σε πολλές διεργασίες να έχουν τη δυνατότητα να
προσπελάσουν ταυτόχρονα τις πληροφορίες

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
44
Q

Τι είναι τα αρχεία και ποιοί οι τύποι τους;

A

Είναι λογικές μονάδες πληροφοριών τις οποίες δημιουργούν οι διεργασίες
Τύποι:
1) Κανονικά αρχεία
Περιέχουν πληροφορίες χρήστη
2) Κατάλογοι (directories)
Βοηθούν στη δόμηση του συστήματος αρχείων
3) Αρχεία χαρακτήρων
Σχετίζονται με την είσοδο / έξοδο και χρησιμοποιούνται για να
μοντελοποιήσουν σειριακές συσκευές Ε/Ε όπως τα τερματικά, εκτυπωτές,
και τα δίκτυα.
4) Αρχεία μπλοκ
Χρησιμοποιούνται για να μοντελοποιήσουν δίσκους

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
45
Q

Τι είναι ο μαγικός αριθμός (magic number);

A

Είναι ο αριθμός στην κεφαλίδα ενός αρχείου που υποδηλώνει οτι το αρχείο
αυτό είναι εκτελέσιμο.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
46
Q

Αναφέρετε μερικά χαρακτηριστικά αρχείων

A

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

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
47
Q

Αναφέρετε μερικές λειτουργίες αρχείων.

A

1) Create
2) Delete
3) Open
4) Close
5) Read
6) Write
7) Append
8) Seek
9) Rename

48
Q

Περιγράψτε τις μεθόδους αποθήκευσης αρχείων.

A

1) Συνεχής κατανομή (Η πιο απλή μέθοδος κατανομής. Κάθε αρχείο αποθηκεύεται ως μία συνεχόμενη αλληλουχία μπλοκ δίσκου)

2)Κατανομη Συνδεδεμενης Λιστας (Τα μπλοκ του κάθε αρχείου βρίσκονται σε μία συνδεδεμένη λίστα. Το κάθε μπλοκ περιέχει ένα δείκτη στη διεύθυνση του επόμενου κατά σειρά μπλοκ. Ο κατάλογος μπορεί να αποθηκεύσει το δείκτη του 1ου μπλοκ ως αφετηρία)

3)Κατανομη Συνδεδεμενης Λιστας με τη χρηση πινακα στη μνημη (Εδώ επεκτείνουμε την κατανομή συνδεδεμένης λίστας και χρησιμοποιούμε ένα Πίνακα Κατανομής Αρχείων (FAT - File Allocation Table). Ο πίνακας αυτός αποθηκεύει τους δείκτες όλων των μπλοκ των αρχείων στη μνήμη.)

4)Κομβοι i (Μία μέθοδος που συσχετίζει κάθε αρχείο με ένα κόμβο i, μία δομή δεδομένων που περιέχει τα χαρακτηριστικά και τις διευθύνσεις των μπλοκ του αρχείου στο δίσκο (όχι όλες). Ο κόμβος i πρέπει να βρίσκεται στη μνήμη μονάχα όταν το αρχείο είναι ανοιχτό.)

49
Q

pros and cons της συνεχους κατανομης

A

Pros:
1) Απλή στην υλοποίηση. Για την εύρεση των μπλοκ ενός αρχείου στο δίσκο
χρειαζόμαστε μονάχα τη διεύθυνση του 1ου μπλοκ και τον αριθμό των
μπλοκ του αρχείου
2) Η απόδοση κατά την ανάγνωση είναι εξαιρετική, επειδή μπορεί να
διαβαστεί ολόκληρο το αρχείο από το δίσκο με μία λειτουργία
Cons:
1) Με την πάροδο του χρόνου, ο δίσκος κατατέμνεται. Έτσι ο δίσκος θα
καταλήξει να περιέχει αρχεία και κενά τμήματα. Για να γεμίσει τα κενά
αυτά, θα πρέπει ο προγραμματιστής να δηλώνει πριν επεξεργαστεί ένα
αρχείο, ποιό θα είναι το μέγεθος του τελικού αρχείου, προκειμένου να
μπορέσει το λειτουργικό να βρει μία θέση για να το αποθηκεύσει. Αυτό
καθιστά την συνεχή κατανομή μη πρακτική.
Η συνεχής κατανομή βρίσκει χρήσεις στην αποθήκευση αρχείων σε CD-ROM,
όπου το μέγεθος των δεδομένων είναι γνωστό εκ των προτέρων.

50
Q

pros and cons της κατανομης συνδεδεμενης λιστας

A

Pros:
1) Δεν υπάρχει απώλεια χώρου εξαιτίας κατάτμησης
Cons:
2) Η τυχαία προσπέλαση είναι πάρα πολύ αργή. Για να διαβαστεί ένα αρχείο
θα πρέπει να γίνουν τόσες τυχαίες προσπελάσεις όσα και τα μπλοκ του
αρχείου. Επομένως οι αναγνώσεις είναι εξαιρετικά χρονοβόρες.

51
Q

pros and cons της κατανομής συνδεδεμένης λίστας με χρήση πίνακα στη μνήμη

A

Pros:
Η προσπέλαση της αλυσίδας, δηλαδή των δεικτών των μπλοκ, γίνεται χωρίς
τυχαία προσπέλαση στο δίσκο. Εάν για παράδειγμα θέλουμε το 100ο μπλοκ
ενός αρχείου, η διεύθυνση αυτού θα βρίσκεται στη μνήμη, επομένως δε
χρειάζεται να εκτελέσουμε 100 τυχαίες προσπελάσεις στο δίσκο για να τη
βρούμε. Για την προσπέλαση του ίδιου του μπλοκ ωστόσο, θα πρέπει να
μπούμε στο δίσκο.
Cons:
Η αποθήκευση ολόκληρου του πίνακα στη μνήμη.

52
Q

pros and cons των κομβων i

A

Pros:
1) Ο κόμβος i είναι συνήθως μικρότερος από το FAT.
2) Αρχεία που δεν είναι ανοιχτά, δεν καταλαμβάνουν χώρο στη κύρια μνήμη
Cons:
1) Επιβάλλεται μία ιεραρχία από μπλοκ διευθύνσεων εάν τα αρχεία
αποτελούνται από πολλά μπλοκ. Το τελευταίο κελί του κόμβου i θα
περιέχει τη διεύθυνση ενός τέτοιου μπλοκ διευθύνσεων

53
Q

Περιγράψτε τα συστήματα αρχείων με καταγραφική δομή (LFS).

A

Όλες οι εγγραφές τοποθετούνται σε προσωρινή μνήμη, και γράφονται περιοδικά στο δίσκο σε ένα μόνο τμήμα, στο τέλος του αρχείου καταγραφής (log). Κατά το άνοιγμα ενός αρχείου χρησιμοποιείται ο χάρτης για να εντοπιστεί ο κόμβος i για το αρχείο. Από τη στιγμή που θα εντοπιστεί ο κόμβος i, οι διευθύνσεις του μπλοκ μπορούν να βρεθούν από αυτόν. Όλα τα μπλοκ βρίσκονται σε τμήματα κάπου μέσα στο αρχείο καταγραφής. Το LFS χρησιμοποιεί ένα νήμα καθαρισμού (cleaner thread) που σαρώνει συνεχώς κυκλικά το αρχείο καταγραφής για να το συμπτύξει

54
Q

Περιγράψτε τα εικονικά συστήματα αρχείων (VFS)

A

Η βασική ιδέα είναι να δημιουργηθεί μια αφαίρεση εκείνου του μέρους του
συστήματος αρχείων που είναι κοινό σε όλα τα συστήματα αρχείων και να
τοποθετηθεί ο κώδικάς τους σε ένα ξεχωριστό επίπεδο το οποίο καλεί τα
υποκείμενα πραγματικά συστήματα αρχείων για να χειριστούν τα δεδομένα.
Στόχος είναι να ενσωματώσουν πολλά συστήματα αρχείων σε μία τακτοποιημένη
δομή.
Το VFS διαθέτει δύο ξεχωριστές διασυνδέσεις:
1) Την ανώτερη με τις διεργασίες χρήστη
2) Την κατώτερη με τα πραγματικά συστήματα αρχείων

55
Q

Περιγράψτε την αναζήτηση του ονόματος διαδρομής /usr/ast/mbox

A

1) Ανάγνωση του κόμβου i για το βασικό κατάλογο (κόμβος i 1)
2) Ανάγνωση του βασικού καταλόγου (μπλοκ 1)
3) Ανάγνωση του κόμβου i για τον κατάλογο /usr
4) Ανάγνωση του καταλόγου /usr
5) Ανάγνωση του κόμβου i για τον κατάλογο /usr/ast
6) Ανάγνωση του καταλόγου /usr/ast
7) Ανάγνωση του κόμβου i /usr/ast/mbox
8) Ανάγνωση του αρχείου /usr/ast/mbox
Για κάθε κατάλογο/αρχείο, χρειάζομαι 1 read για το i node και 1 read για τα
blocks του καταλόγου/αρχείου.

56
Q

Τι είναι ο ελεγκτής συσκευών (device controller);

A

Αποτελεί το ηλεκτρονικό κομμάτι μίας μονάδας Ε/Ε.
Μεταφράζει τα σήματα που πηγαίνουν και προέρχονται από την CPU.

57
Q

Τι είναι η Ε/Ε με χαρτογράφηση στη μνήμη (Memory Mapped I/O);

A

Αποτελεί μία μέθοδο για εκτέλεση εισόδου/εξόδου (I/O) μεταξύ της κεντρικής
μονάδας επεξεργασίας (CPU) και των περιφερειακών συσκευών σε έναν
υπολογιστή.
Χρησιμοποιεί τον ίδιο χώρο διευθύνσεων για την αντιμετώπιση τόσο των
συσκευών μνήμης όσο και των συσκευών I/O. Έτσι, όταν η CPU αποκτά πρόσβαση
σε μια διεύθυνση, μπορεί να αναφέρεται σε ένα τμήμα της φυσικής μνήμης RAM,
ή μπορεί να αναφέρεται στη μνήμη της συσκευής εισόδου / εξόδου.

58
Q

Τι είναι η άμεση προσπέλαση μνήμης (DMA);

A

Είναι μια λειτουργία των συστημάτων υπολογιστών που επιτρέπει σε ορισμένα
υποσυστήματα υλικού να έχουν πρόσβαση στην κύρια μνήμη του συστήματος
(μνήμη τυχαίας προσπέλασης), ανεξάρτητα από την κεντρική μονάδα
επεξεργασίας (CPU).
Είναι απαραίτητη η παρουσία ενός ελεγκτή DMA.

59
Q

Σχολιάστε για ακριβής vs ανακριβής διακοπές.

A

Ακριβής διακοπές:
Μια διακοπή που αφήνει τη μηχανή σε καλά ορισμένη κατάσταση ονομάζεται
ακριβής διακοπή (precise interrupt) και έχει 4 ιδιότητες:
1) Ο PC αποθηκεύεται σε γνωστή θέση
2) Όλες οι εντολές πριν από αυτή στην οποία δείχνει ο PC έχουν ολοκληρωθεί
3) Δεν έχει εκτελεστεί καμία εντολή μετά από αυτή στην οποία δείχνει ο PC
4) Η κατάσταση εκτέλεσης της εντολής στην οποία δείχνει ο PC είναι γνωστή
Ανακριβής διακοπές:
Οι διακοπές που δεν πληρούν τις παραπάνω προδιαγραφές ονομάζονται
ανακριβείς διακοπές.
Όταν συμβαίνει μία ανακριβής διακοπή, το σύστημα συνήθως αδειάζει μεγάλες
ποσότητες πληροφοριών της εσωτερικής του κατάστασης στη στοίβα, ώστε να
δώσει στο λειτουργικό σύστημα τη δυνατότητα να εξακριβώσει τι ακριβώς
συμβαίνει.

60
Q

Ποιοί είναι οι στόχοι του λογισμικού Ε/Ε;

A

1) Ανεξαρτησία από τη συσκευή (device independence)
Να είναι δυνατή η γραφή προγραμμάτων τα οποία θα μπορούν να προσπελάσουν
οποιαδήποτε συσκευή Ε/Ε χωρίς να χρειάζεται να καθορίζεται εκ των
προτέρων η συσκευή.
2) Ομοιόμορφη ονομασία (uniform naming)
Το όνομα ενός αρχείου ή μίας συσκευής πρέπει να είναι απλώς μία
συμβολοσειρά ή ένας ακέραιος και να μην εξαρτάται καθόλου από την
εκάστοτε συσκευή.
3) Χειρισμός σφαλμάτων (error handling)
Να συμβαίνει όσο το δυνατόν πλησιέστερα στο υλικό.
4)Αποφαση για συγχρονες/ασυγχρονες μεταφορες.
5) Προσωρινή αποθήκευση (buffering)
6)επιλογη αναμεσα σε κοινοχρηστες και αποκλειστικες συσκευες

61
Q

Ποιοί είναι οι τρόποι πραγματοποίησης Ε/Ε;

A

1) Προγραμματισμένη Ε/Ε
Συχνά υλοποιείται με:
- Περιόδευση (polling) ή
- Αναμονή με απασχόληση (busy waiting)
Pros:
1) Είναι απλή
Cons:
1) Δεσμεύει τη CPU

2) Ε/Ε οδηγούμενη από διακοπές
Αντί η CPU να περιμένει τη μονάδα Ε/Ε να τελειώσει, αφού της στείλει τα δεδομένα, καλεί τον χρονο προγραμματιστή και αρχίζει να εκτελεί μία άλλη διεργασία. Μόλις η μονάδα Ε/Ε τελειώσει τη δουλειά της και είναι έτοιμη πάλι να δεχτεί δεδομένα από τη CPU, παράγει ένα interrupt το οποίο θα διακόψει τη CPU. Αυτή στέλνει εκ νέου δεδομένα και ξανά καλεί το χρονοπρογραμματιστή για να εκτελέσει κάποια άλλη διεργασία, κοκ.
Pros:
1) Καλύτερη διαχείριση του χρόνου της CPU
Cons:
1) Οι διακοπές είναι γενικά χρονοβόρες

3) Ε/Ε με τη χρήση DMA
Η ιδέα εδώ είναι να ανατεθεί στον ελεγκτή DMA η τροφοδοσία της μονάδας Ε/Ε, χωρίς να απασχολείται η CPU. Στην ουσία, η DMA είναι προγραμματισμένη Ε/Ε, μόνο που όλη η δουλειά γίνεται από τον ελεγκτή DMA αντί από τη CPU.
Pros:
1) Μειώνεται ο αριθμός των διακοπών
Cons:
1) Ο ελεγκτής DMA είναι συνήθως πολύ πιο αργός από τη CPU

62
Q

Ποιές οι ενέργειες του χειριστή διακοπών όταν συμβαίνει μία διακοπή;

A

1) Αποθηκεύει όσους registers δεν έχει αποθηκεύσει το υλικό
2) Καθορίζει το περιβάλλον για τη διαδικασία εξυπηρέτησης διακοπής
3) Δημιουργεί μία στοίβα για τη διαδικασία εξυπηρέτησης διακοπής
4) Στέλνει επιβεβαίωση στον ελεγκτή διακοπών και απενεργοποιεί τις
διακοπές
5) Αντιγράφει τους registers από τη στοίβα στον πίνακα διεργασιών
6) Εκτελεί τη διαδικασία εξυπηρέτησης της διακοπής
7) Επιλέγει τη διεργασία που πρόκειται να εκτελεστεί στη συνέχεια
8) Καθορίζει το περιβάλλον για τη διεργασία που θα εκτελεστεί αμέσως
μετά
9) Φορτώνει τους registers της νέας διεργασίας
10) Ξεκινά την εκτέλεση της νέας διεργασίας

63
Q

Τι είναι οι οδηγοί συσκευών (device drivers);

A

Κάθε συσκευή Ε/Ε συνδεδεμένη στον υπολογιστή χρειάζεται κώδικα
εξειδικευμένο για τον έλεγχό της. Ο κώδικας αυτός ονομάζεται οδηγός
συσκευής.

64
Q

Τι γνωρίζετε για το μείζονα και τον ελάσσονα αριθμό συσκευής;

A

Μείζονας αριθμός συσκευής (major device number)
Χρησιμοποιείται για να εντοπιστεί ο κατάλληλος οδηγός συσκευής.
Ελάσσονας αριθμός συσκευής (minor device number)
Μεταβιβάζεται ως παράμετρος στον οδηγό για να προσδιορίζει τη μονάδα στην
οποία πρέπει να γίνει η ανάγνωση ή η εγγραφή.

65
Q

Τι είναι η διπλή προσωρινή αποθήκευση (double buffering)

A

Αποτελεί μία τεχνική Ε/Ε κατά την οποία όταν γεμίσει ένας buffer πχ κατά
την είσοδο δεδομένων από ένα μόντεμ, μέχρι αντιγραφούν τα δεδομένα του
buffer από τον πυρήνα στο χώρο χρήστη, νέα δεδομένα εισερχόμενα από το
μόντεμ μπορούν να αποθηκεύονται σε έναν δευτερεύον buffer. Όταν και αυτός
γεμίσει, επαναχρησιμοποιείται ο 1ος, αφού τώρα θα είναι άδειος. Η
διαδικασία πάει εναλλάξ

66
Q

Τι είναι η κυκλική προσωρινή μνήμη (circular buffer);

A

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

67
Q

Περιγράψτε τα επίπεδα RAID

A

αυριο

68
Q

Περιγράψτε τη μορφή ενός τομέα δίσκου (disk sector).

A
  • Προοίμιο
    Μία συγκεκριμένη ακολουθία από bits που επιτρέπει στο υλικό να
    αναγνωρίζει την αρχή του τομέα. Περιέχει επίσης τους αριθμούς κυλίνδρου
    και τομέα και κάποιες άλλες πληροφορίες.
  • Δεδομένα
    Το μέγεθος του τμήματος δεδομένων προσδιορίζεται από το πρόγραμμα που
    κάνει τη διαμόρφωση χαμηλού επιπέδου.
  • ECC
    Το πεδίο ECC (error-correcting code) περιέχει πλεονάζουσες πληροφορίες οι
    οποίες μπορούν να χρησιμοποιηθούν κατά την ανάκαμψη από σφάλματα
    ανάγνωσης
69
Q

Ποιοί οι παράγοντες που επηρεάζουν τον χρόνο ανάγνωσης του δίσκου;

A

1) Χρόνος αναζήτησης (seek time - ο χρόνος που χρειάζεται για να
μετακινηθεί ο βραχίονας στον κατάλληλο κύλινδρο)
2) Καθυστέρηση λόγω περιστροφής (rotational delay - ο χρόνος που χρειάζεται
για να περιστραφεί ο κατάλληλος τομέας κάτω από την κεφαλή)
3) Χρόνος μεταφοράς δεδομένων

70
Q

Περιγράψτε τους αλγόριθμους περιστροφής του βραχίονα

A

1) Εξυπηρέτηση με βάση τη σειρά άφιξης (FCFS - First Come First Served)
Ο οδηγός του δίσκου εξυπηρετεί τις αιτήσεις μία-μία, με τη σειρά που
φτάνουν

2) Πρώτα η Συντομότερη Αναζήτηση (SSF - Shortest Seek First)
Ο οδηγός εξυπηρετεί πρώτα την πιο κοντινή αίτηση, με σκοπό την
ελαχιστοποίηση των κινήσεων του βραχίονα

3) Αλγόριθμος του ανελκυστήρα (Elevator algorithm)
Ο βραχίονας κινείται προς μία κατεύθυνση μέχρι να μην υπάρχει αίτηση που εκκρεμεί προς τα εκεί. Έτσι, αλλάζει κατεύθυνση. Απαιτεί από το λογισμικό να διατηρεί μόνο ένα bit: το bit της κατεύθυνσης, το οποίο παίρνει τις τιμές ΠΑΝΩ και ΚΑΤΩ. Όταν ολοκληρωθεί η εξυπηρέτηση μιας αίτησης ο οδηγός του δίσκου ελέγχει αυτό το bit. Αν έχει τιμή ΠΑΝΩ, ο βραχίονας του δίσκου μετακινείται στην επόμενη αίτηση που εκκρεμεί και οδηγεί σε υψηλότερη θέση. Αν δεν υπάρχουν εκκρεμείς αιτήσεις για υψηλότερες θέσεις, το bit κατεύθυνσης αντιστρέφεται. Αν έχει τιμή ΚΑΤΩ, η μετακίνηση γίνεται με βάση την επόμενη αίτηση που εκκρεμεί και οδηγεί σε χαμηλότερη θέση, αν βέβαια υπάρχει

71
Q

Ποιές οι λειτουργίες της ευσταθούς αποθήκευσης;

A

Η ευσταθής αποθήκευση χρησιμοποιεί ενα ζευγάρι πανομοιότυπων δίσκων -
μονάδων, στους οποίους τα αντίστοιχα μπλοκ συνεργάζονται ώστε να
σχηματίσουν ένα μπλοκ χωρίς σφάλματα. Αν δεν υπάρχουν σφάλματα, τα
αντίστοιχα μπλοκ στους δύο δίσκους είναι ίδια.
1) Ευσταθής εγγραφές (stable writes)
Αποτελείται από την εγγραφή του μπλοκ και στη συνέχεια την ανάγνωσή του
από εκεί ώστε να επαληθευτεί ότι γράφτηκε σωστά. Αν δεν έχει γραφτεί
σωστά, η εγγραφή και η ανάγνωση επαναλαμβάνονται n φορές μέχρι να γίνουν
σωστά.
2) Ευσταθής ανάγνωση (stable reads)
Εάν προκύψει λανθασμένος κωδικός ECC, η ανάγνωση επαναλαμβάνεται μέχρι n
φορές. Αν όλες οι αναγνώσεις δώσουν λάθος κωδικό ECC, διαβάζεται το
αντίστοιχο μπλοκ από εφεδρική μονάδα.
3) Ανάκαμψη από κατάρευση (crash recovery)
Μετά από μία κατάρρευση ένα πρόγραμμα ανάκαμψης σαρώνει και τις δύο
μονάδες και συγκρίνει τα αντίστοιχα μπλοκ. Αν και τα δύο μέρη ενός
ζεύγους μπλοκ είναι πανομοιότυπα και σωστά, δεν γίνεται καμία ενέργεια.
Αν το ένα από τα δύο δώσει λάθος κώδικα ECC, αντικαθίστανται από το
αντίστοιχο σωστό μπλοκ. Αν σε ένα ζεύγος μπλοκ και τα δύο μέρη είναι
σωστά αλλά διαφορετικά, το μπλοκ της μονάδας 1 αντικαθιστά το αντίστοιχο
μπλοκ στην μονάδα 2.

72
Q

Ποιοί είναι οι δύο τύποι πόρων;

A
  • Προεκτοπίσιμοι
    Πόροι οι οποίοι μπορούν να αποσπαστούν από μία διεργασία που τους ελέγχει
    χωρίς άσχημες παρενέργειες. πχ η μνήμη.
  • Μη Προεκτοπίσιμοι
    Πόροι που δεν μπορούν να αποσπαστούν από τη διεργασία που τους κατέχει,
    χωρίς να προκληθούν υπολογιστικά σφάλματα. πχ μονάδες εγγραφής CD.
    Γενικά τα αδιέξοδα (deadlocks) αφορούν τους μη προεκτοπίσιμους πόρους.
73
Q

Δώστε τον ορισμό του αδιέξοδου.

A

Ένα σύνολο διεργασιών βρίσκεται σε αδιέξοδο αν κάθε διεργασία του συνόλου
περιμένει ένα συμβάν που μόνο μια άλλη διεργασία του συνόλου μπορεί να
προκαλέσει.

74
Q

Γράψτε τις συνθήκες για την εμφάνιση αδιεξόδου.

A

1) Συνθήκη αµοιβαίου αποκλεισµού (mutual exclusion condition)
Κάθε πόρος είναι είτε εκχωρημένος σε μία ακριβώς διεργασία είτε διαθέσιμος
2) Συνθήκη κράτησης και αναµονής (hold and wait condition)
Διεργασίες, δεσμεύουν την τρέχουσα στιγμή πόρους που τους εκχωρήθηκαν
νωρίτερα, μπορούν να ζητήσουν και άλλους.
3) Συνθήκη μη προεκτόπισης (no preemption condition)
Πόροι που έχουν εκχωρηθεί σε μία διεργασία δεν μπορούν να αφαιρεθούν από
αυτή με τη βία. Πρέπει η ίδια η διεργασία να τους αποδεσμεύσει εκούσια.
4) Συνθήκη κυκλικής αναµονής (circular wait condition)
Πρέπει να υπάρχει μια κυκλική αλυσίδα δύο ή περισσοτέρων διεργασιών,
κάθε μία από τις οποίες περιμένει έναν πόρο που κατέχει το επόμενο μέλος
της αλυσίδας

75
Q

Ποιοί είναι οι τρόποι ανάκαμψης από αδιέξοδο;

A

1) Ανάκαμψη μέσω προεκτόπισης
2) Ανάκαμψη μέσω ανασκευής (rollback)
3) Ανάκαμψη μέσω εξάλειψης διεργασιών

76
Q

Τι είναι το κλείδωμα σε δύο φάσεις (two-phase locking);

A

Αποτελεί μία τεχνική για την αποφυγή αδιέξοδου. Υπάρχουν δύο διακριτές φάσεις:
1. Η διεργασία προσπαθεί να κλειδώσει όλους του πόρους που χρειάζεται, ένα
κάθε φορά. Αν επιτύχει, ξεκινάει τη δεύτερη φάση, αλλιώς η διεργασία
απλώς απενεργοποιεί όλα τα κλειδώματα της και ξεκινάει την πρώτη φάση
από την αρχή.
2. Στη δεύτερη φάση, όπου η διεργασία έχει καταφέρει να κλειδώσει όλους
τους πόρους που χρειάζεται, εκτελεί τις όποιες ενημερώσεις, και
απενεργοποιεί τα κλειδώματα.
Δεν είναι γενικά εφαρμόσιμη τεχνική. Χρησιμοποιείται συνήθως για
βιομηχανικές, χημικές, κτλ διεργασίες και όχι για διεργασίες που έχουμε
στα λειτουργικά συστήματα.

77
Q

Τι είναι η ομοιόμορφη προσπέλαση μνήμης (UMA - Uniform Memory Access);

A

Είναι η ιδιότητα που έχουν ορισμένοι πολυεπεξεργαστές πως κάθε λέξη μνήμης
μπορεί να διαβαστεί με την ίδια ταχύτητα όπως οποιαδήποτε άλλη.

78
Q

Ποιοί οι τρόποι διασύνδεσης πολυεπεξεργαστών UMA;

A

1) Με δίαυλο
Pros:
1) Είναι απλός
Cons:
1) Εάν ο δίαυλος είναι απασχολημένος τη στιγμή που μία CPU θέλει να
διαβάσει ή να γράψει στη μνήμη, η CPU απλώς περιμένει μέχρι ο δίαυλος
να τελειώσει.Με 2 ή 3 CPU, ο ανταγωνισμός για το δίαυλο είναι διαχειρίσιμος, με 32 ή
64 CPU ο ανταγωνισμός γίνεται αφόρητος. Το σύστημα θα περιορίζεται
πλήρως από το εύρος ζώνης του διαύλου, και οι περισσότερες CPU θα είναι
αδρανείς το μεγαλύτερο χρονικό διάστημα.Θα μπορούσαμε να προσθέσουμε κρυφή μνήμη για να ανεχτούμε και περισσότερες CPU αλλά και πάλι αυτή η διασύνδεση δεν κλιμακώνεται καλά.

2) Με σταυρωτό δίκτυο διασύνδεσης
Pros:
1) Αποτελεί μη ανασταλτικό δίκτυο (nonblocking network) σε αντίθεση με
τη διασύνδεση μέσω διαύλου.
Cons:
1) Ο αριθμός των διασταυρώσεων αυξάνεται με το n^2

3) Με δίκτυα μεταγωγής πολλών σταδίων
Ένας μεταγωγός, πχ 2x2 έχει 2 εισόδους και 2 εξόδους. Τα μηνύματα που
φτάνουν σε οποιαδήποτε γραμμή εισόδου μπορούν να μεταφερθούν σε
οποιαδήποτε γραμμή εξόδου.
Pros:
1) Στη γενική περίπτωση , αν υπάρχουν n CPU και n μνήμες χρειαζόμαστε
log2n στάδια, με n/2 μεταγωγούς ανά στάδιο, οπότε συνολικά
χρειάζονται (n/2)log2n μεταγωγοί, αριθμός που είναι πολύ καλύτερος
από τις n^2 διασταυρώσεις ειδικά για μεγάλες τιμές του n.
Cons:
1) Αποτελεί ανασταλτικό δίκτυο (blocking network)

79
Q

Τι γνωρίζετε για την μη ομοιόμορφη προσπέλαση μνήμης (NUMA - Non Uniform Memory
Access);

A

Οι πολυεπεξεργαστές UMA με ένα δίαυλο γενικά περιορίζονται στη χρήση το
πολύ μερικών δεκάδων CPU, ενώ οι πολυεπεξεργαστές με σταυρωτά δίκτυα
διασύνδεσης χρειάζονται αρκετό (ακριβό) υλικό και δεν είναι και τόσο
μεγαλύτεροι. Η παρατήρηση αυτή οδηγεί στους πολυεπεξεργαστές NUMA.
Όπως και οι UMA, παρέχουν ένα μοναδικό χώρο διευθύνσεων σε όλες τις CPU
αλλά, σε αντίθεση με τους UMA, η πρόσβαση στις τοπικές υπομονάδες μνήμης
είναι ταχύτερη από την πρόσβαση στις απομακρυσμένες. Επομένως, όλα τα
προγράμματα UMA μπορούν να εκτελούνται χωρίς αλλαγή σε μηχανές NUMA, αλλά η
απόδοση θα είναι χειρότερη σε σχέση με τις μηχανές UMA που έχουν το ίδιο
ρυθμό ρολογιού.
Οι μηχανές NUMA έχουν τρία κρίσιμα γνωρίσματα:
1) Υπάρχει ένας και μοναδικός χώρος διευθύνσεων ορατός σε όλες τις CPU
2) Η πρόσβαση σε απομακρυσμένες μνήμες γίνεται μέσω εντολών LOAD και STORE
3) Η πρόσβαση στις απομακρυσμένες μνήμες γίνεται βραδύτερα από την πρόσβαση
στην τοπική μνήμη

80
Q

Τι είναι η αδιακρισία (snooping);

A

Ειδικά κυκλώματα υλικού εξασφαλίζουν ότι, αν μια λέξη υπάρχει σε δύο ή
περισσότερες κρυφές μνήμες και κάποια από τις CPU την τροποποιήσει, η λέξη
αφαιρείται αυτόματα και αδιαίρετα από όλες τις κρυφές μνήμες, ώστε να
διατηρηθεί η συνέπεια. Η διαδικασία αυτή είναι γνωστή ως αδιακρισία.

81
Q

Ποιοι ειναι οι τυποι λειτουργικων συστηματων για πολυεπεξεργαστες

A

1) Κάθε CPU διαθέτει το δικό της λειτουργικό σύστημα
2)Πολυεπεξεργαστες master-slave
3)Συμμετρικοι Πολυεπεξεργαστες

82
Q

Περιγραψτε το λειτουργικο :Κάθε CPU διαθέτει το δικό της λειτουργικό σύστημα

A

Διαιρείται η μνήμη σε στατικά σε ισάριθμα με τις CPU διαμερίσματα και
δίνεται σε κάθε CPU η δική της ιδιωτική μνήμη και το δικό της ιδιωτικό
αντίγραφο του λειτουργικού συστήματος. Ουσιαστικά, οι n CPU λειτουργούν
σαν n ανεξάρτητοι υπολογιστές.
Pros:
1) Το μοντέλο αυτό είναι απλό στην κατασκευή.
Cons:
1) Δεν υπάρχει κοινοχρησία διεργασιών. Αν κάποιος χρήστης συνδεθεί στη
CPU 1, όλες οι διεργασίες του θα εκτελούνται στη CPU 1. Συνεπώς,
είναι πιθανό η CPU 1 να είναι αδρανής ενώ η CPU 2 να έχει μεγάλο
φόρτο εργασίας.
2) Δεν υπάρχει κοινοχρησία σελίδων. Είναι πιθανόν η CPU 1 να έχει
αρκετές διαθέσιμες σελίδες ενώ η CPU 2 να σελιδοποιεί συνεχώς. Δεν
υπάρχει τρόπος η CPU 2 να δανειστεί μερικές σελίδες από τη CPUT 1,
επειδή η κατανομή μνήμης είναι σταθερή.
3) Αν το λειτουργικό σύστημα διατηρεί μια προσωρινή κρυφή μνήμη για τα
μπλοκ δίσκου που έχουν χρησιμοποιηθεί πρόσφατα, κάθε λειτουργικό
σύστημα εκτελεί αυτή τη εργασία ανεξάρτητα από τα υπόλοιπα. Επομένως,
ένα συγκεκριμένο μπλοκ δίσκου μπορεί να βρίσκεται σε πολλές
προσωρινές κρυφές μνήμες ταυτόχρονα και να είναι “βρώμικο”, γεγονός
που οδηγεί σε ασυνεπή αποτελέσματα. Ο μόνος τρόπος να αποφευχθεί αυτό
το πρόβλημα είναι να μη χρησιμοποιούνται προσωρινές κρυφές μνήμες.
Αυτό δεν είναι δύσκολο αλλά μειώνει αρκετά την απόδοση.

83
Q

Περιγραψτε το λειτουργικο master slave

A

Υπάρχει ένα αντίγραφο του λειτουργικού συστήματος και των πινάκων του
στη CPU 1 και όχι στις υπόλοιπες. Όλες οι κλήσεις συστήματος
ανακατευθύνονται για επεξεργασία στη CPU 1. Η CPU 1 μπορεί επίσης να
εκτελεί διεργασίες χρηστών αν της μένει χρόνος.
Pros:
1) Κοινοχρησία διεργασιών. Όταν μία CPU είναι αδρανής, ζητάει από το
λειτουργικό σύστημα να της αναθέσει μία διεργασία, και αφού την
παραλάβει την εκτελεί. Επομένως, ποτέ μία CPU δεν είναι αδρανής την
ώρα που κάποια άλλη έχει υπερφορτωθεί (καλύτερο load-balancing).
2) Κοινοχρήσια σελίδων. Οι σελίδες μπορούν να κατανεμηθούν δυναμικά στις
διεργασίες.
3) Υπάρχει μόνο μία προσωρινή κρυφή μνήμη, οπότε δεν μπορούν α συμβούν
ασυνέπειες.
Cons:
1) Όταν υπάρχουν πολλές CPU, μπορεί να δημιουργηθεί συμφόρηση στην
κύρια, μιας και αυτή θα πρέπει να χειριστεί όλες τις κλήσεις
συστήματος που προέρχονται από τις υπόλοιπες.

84
Q

Περιγραψτε το λειτουργικο: Συμμετρικοι Πολυεπεξεργαστες

A

Υπάρχει ένα αντίγραφο του λειτουργικού συστήματος στη μνήμη, αλλά μπορεί
να το εκτελέσει οποιαδήποτε CPU. Όταν γίνεται μία κλήση συστήματος, η
CPU που την έκανε μεταφέρεται σε κατάσταση λειτουργίας πυρήνα και
επεξεργάζεται την κλήση συστήματος.
Pros:
1) Εξισορροπεί δυναμικά τις διεργασίες και τη μνήμη
2) Εξαλείφει επίσης τη συμφόρηση στη κύρια CPU αφού δεν υπάρχει τέτοια
Cons:
1) Επειδή το λειτουργικό σύστημα είναι 1 και το εκτελούν όλες οι CPU,
απαιτείται συγχρονισμός, πράγμα που κάνει τον κώδικα του λειτουργικού
πιο περίπλοκο. Πρέπει να βρεθούν οι κρίσιμες περιοχές και να
προστατευτούν με mutexes.

85
Q

Σχολιάστε σχετικά με περιστροφή vs εναλλαγή

A

Εάν κάποιο νήμα που εκτελείται σε μία CPU χρειάζεται να προσπελάσει την
προσωρινή κρυφή μνήμη του συστήματος αρχείων και αυτή είναι κλειδωμένη, η
CPU μπορεί να αποφασίσει να περιμένει με περιστροφή ή να κάνει εναλλαγή σε
ένα διαφορετικό νήμα αντί να περιμένει.
Ο συμβιβασμός είναι ο εξής: η περιστροφή σπαταλάει με άμεσο τρόπο κύκλους
της CPU. Η επαναλαμβανόμενη δοκιμή ενός κλειδώματος δεν είναι παραγωγική
εργασία. Η εναλλαγή πάντως σπαταλάει επίσης κύκλους CPU εφόσον πρέπει να
αποθηκευτεί η κατάσταση του τρέχοντος νήματος, να αποκτηθεί το κλείδωμα της
λίστας των έτοιμων διεργασιών, να επιλεγεί ένα νήμα, να φορτωθεί η
κατάστασή του, και να ξεκινήσει η εκτέλεσή του. Επιπλέον, η κρυφή μνήμη της
CPU θα περιέχει όλα τα λανθασμένα μπλοκ όποτε, κατά την εκκίνηση του νέου
νήματος, θα συμβούν αρκετές χρονοβόρες αστοχίες κρυφής μνήμης. Είναι πολύ
πιθανό να συμβούν επίσης αστοχίες TLB. Τέλος, πρέπει να γίνει επιστροφή στο
αρχικό νήμα η οποία θα οδηγήσει σε πρόσθετες αστοχίες κρυφής μνήμης. Θα
χαθούν οι κύκλοι για τις δύο θεματικές εναλλαγές και για τις αστοχίες της
κρυφής μνήμης.
Το πρόβλημα είναι πως οι κρίσιμες περιοχές ποικίλουν σε μεγάλο βαθμό ως
προς τη διάρκειά τους, οπότε ποιά προσέγγιση είναι η καλύτερη;
Τα καλύτερα αποτελέσματα επιτυγχάνονται όταν το σύστημα καταγράφει έναν
αριθμό από τους τελευταίους χρόνους περιστροφής και υποθέτει ότι η
συγκεκριμένη περίπτωση θα είναι παρόμοια με τις προηγούμενες.
Με άλλα λόγια με τη χρήση ενός αλγορίθμου, θα γίνεται η υπόθεση για το
χρόνο περιστροφής, εάν αυτός είναι μικρότερος από το πιθανό κόστος
εναλλαγής, η CPU περιστρέφεται, αλλιώς, εναλλάσσει το νήμα με ένα άλλο

86
Q

Ποιοί οι τρόποι χρονο προγραμματισμού πολυεπεξεργαστών;

A

1) Χρονομερισμός
2)Χωρομερισμος
3)Χρονοπρογραμματισμος ομαδας

87
Q

περιγραψτε τον χρονομερισμο

A

Υπάρχει μόνο μία δομή δεδομένων σε όλο το σύστημα για τα έτοιμα νήματα,
πιθανόν όπως μια λίστα ή ακόμη καλύτερα, ένα σύνολο από λίστες για τα
νήματα με διαφορετικές προτεραιότητες.
Pros:
1) Απλός στην υλοποίηση
2) Αυτόματη εξισορρόπηση φορτίου επειδή δεν μπορεί ποτέ μία CPU να είναι
αδρανής και οι άλλες υπερφορτωμένες.
Cons:
1) Ανταγωνισμός για τη δομή δεδομένων χρονο προγραμματισμού καθώς
αυξάνεται ο αριθμός των CPU
2) Η συνήθης επιβάρυνση της θεματικής εναλλαγής κατά το μπλοκάρισμα ενός
νήματος για Ε/Ε

88
Q

περιγραψτε τον χωρομερισμο

A

Αν τα νήματα μιας διεργασίας επικοινωνούν πολύ, είναι χρήσιμο να
εκτελούνται ταυτόχρονα. Ο ταυτόχρονος χρονο προγραμματισμός πολλών
νημάτων σε πολλές CPU ονομάζεται χωρομερισμός (space sharing)
Υποθέστε πως μία ολόκληρη ομάδα από σχετιζόμενα νήματα δημιουργείται
ταυτόχρονα. Τη στιγμή της δημιουργίας τους, χρονο προγραμματιστής
ελέγχει αν υπάρχουν ισάριθμες ελεύθερες CPU. Αν υπάρχουν, σε κάθε νήμα
ανατίθεται η αποκλειστική του CPU, και ξεκινούν όλα μαζί. Αν δεν
υπάρχουν αρκετές CPU, δεν ξεκινάει κανένα από τα νήματα μέχρι να γίνει
διαθέσιμος ο αντίστοιχος αριθμός CPU.
Pros:
1) Εξάλειψη της επιβάρυνσης λόγω θεματικών εναλλαγών
Cons:
1) Χάνεται χρόνος όταν κάποια CPU μπλοκάρεται και δεν κάνει τίποτε άλλο
μέχρι να έλθει ξανά σε ετοιμότητα.

89
Q

περιγραψτε τον χρονοπρογραμματισμο ομαδας

A

Αποτελείται από 3 τμήματα:
1) Οι ομάδες σχετιζόμενων νημάτων χρονο προγραμματίζονται ως μία
ενότητα.
2) Όλα τα μέλη μιας ομάδας εκτελούνται ταυτόχρονα,σε διαφορετικές
χρονομεριζόμενες CPU.
3) Όλα τα μέλη της ομάδας ξεκινούν και τερματίζουν τα χρονομερίδιά τους
ταυτόχρονα.
Ο χρόνος διαιρείται σε διακριτά κβάντα. Στην αρχή κάθε νέου κβάντου,
επαναχρονοπρογραμματίζονται όλες οι CPU και σε κάθε μία από αυτές
ξεκινάει ένα νέο νήμα. Στην αρχή του επόμενου κβάντου, ξαναγίνεται χρονο
προγραμματισμός. Στο μεσοδιάστημα, δε γίνεται καθόλου χρονο
προγραμματισμός. Αν κάποιο νήμα μπλοκαριστεί, η αντίστοιχη CPU παραμένει
αδρανής μέχρι το τέλος του κβάντου.
Pros:
1) Η βασική ιδέα είναι πως εκτελούνται μαζί όλα τα νήματα μιας
διεργασίας ώστε, αν κάποιο από αυτά στείλει μια αίτηση σε κάποιο
άλλο, το δεύτερο να παραλάβει σχεδόν αμέσως το μήνυμα και να έχει τη
δυνατότητα να απαντήσει σχεδόν στιγμιαία.

90
Q

Τι είναι η δρομολόγηση συγγένειας (affinity scheduling);

A

Είναι μία τεχνική που εξασφαλίζει ότι μία διεργασία ή ένα thread μετά από
κάποια εναλλαγή θα συνεχίσει να τρέχει στην ίδια CPU.
Pros:
- Μείωση των cache misses
Η scheduler αφού εναλλάξει το process, θα το επαναφέρει στην ίδια CPU
και ό,τι δεδομένα είχε η CPU στην cache της εξακολουθεί να τα
χρησιμοποιεί. Εάν το process εκτελούνταν σε άλλη CPU μετά την εναλλαγή,
εκείνη θα έπρεπε να φέρει στην cache της τα δεδομένα του, προκαλώντας
τόσο cache miss στην ίδια όσο και cache invalidation στην προηγούμενη
(εάν πείραζε τα δεδομένα)

91
Q

Τι γνωρίζετε για τους πολυ-υπολογιστές (multicomputers);

A

Αποτελούνται από συζευγμένες CPU που δε μοιράζονται μνήμη. Κάθε μία έχει τη
δική της μνήμη. Το μυστικό της υψηλής απόδοσης είναι η έξυπνη σχεδίαση του
δικτύου σύνδεσης και της κάρτας διασύνδεσης. Ο στόχος είναι η αποστολή
μηνυμάτων σε κλίμακα μικροδευτερολέπτου, και όχι η προσπέλαση μνήμης σε
κλίμακα νανοδευτερολέπτου.
Κάθε κόμβος διαθέτει μία κάρτα διασύνδεσης δικτύου από την οποία βγαίνουν
ένα ή δύο καλώδια. Τα καλώδια αυτά συνδέονται είτε με άλλους κόμβους είτε
με μεταγωγούς (switches). Υπάρχουν διάφορες τοπολογίες διασύνδεσης:
1) Απλός μεταγωγός
2) Δακτύλιος
3) Πλέγμα
4) Διπλό πλέγμα
5) Κύβος
6) Τετραδιάστατος υπερκύβος

92
Q

Ποιά τα βήματα του φυλλομετρητή για να φέρει τη σελίδα
http://www.minix3.org/doc/faw.html;

A
  1. Ο φυλλομετρητής ζητάει από το σύστημα DNS τη διεύθυνση IP του
    www.minix3.org
  2. Το DNS απαντάει ότι η διεύθυνση αυτή είναι 130.37.20.20
  3. Ο φυλλομετρητής δημιουργεί με τη διεύθυνση 130.37.20.20 μια σύνδεση TCP
    στη θύρα 80
  4. Ο φυλλομετρητής στέλνει μια αίτηση ζητώντας το αρχείο doc/faq.html
  5. Διακόπτεται η σύνδεση TCP
  6. Ο φυλλομετρητής εμφανίζει όλο το κείμενο του αρχείου doc/faq.html
  7. Ο φυλλομετρητής προσκομίζει και εμφανίζει όλες τις εικόνες του αρχείου
    doc/faq.html
93
Q

Ποιοί είναι οι στόχοι της ασφάλειας λειτουργικών συστημάτων;

A

1) Εμπιστευτικότητα δεδομένων
2) Ακεραιότητα δεδομένων
3) Διαθεσιμότητα συστήματος
4) Αποκλεισμός εισβολέων

94
Q

Ποιά είναι η Αρχή του Kerckhoffs (Kerckhoffs’ Principle);

A

Οι αλγόριθμοι πρέπει να είναι όλοι δημόσιοι και η μυστικότητα να βρίσκεται
αποκλειστικά στα κλειδιά.

95
Q

Τι είναι η κρυπτογραφία μυστικού κλειδιού (secret key cryptography) ή
κρυπτογραφία συμμετρικού κλειδιού (symmetric key cryptography);

A

Αποτελεί είδος κρυπτογράφησης, όπου εάν δοθεί το κλειδί κρυπτογράφησης,
είναι εύκολο να βρεθεί το κλειδί αποκρυπτογράφησης.
Το κλειδί είναι ένα, και όπως λέει και ο τίτλος, είναι μυστικό.
Pros:
1) Είναι αποδοτική επειδή η ποσότητα υπολογισμών που απαιτείται για να
κρυπτογραφηθεί ή να αποκρυπτογραφηθεί ένα μήνυμα είναι διαχειρίσιμη.
Cons:
1) Ο αποστολέας και ο παραλήπτης πρέπει να γνωρίζουν το κοινό μυστικό
κλειδί. Ίσως πρέπει να συναντηθούν προσωπικά για να δώσει ο ένας το
κλειδί στον άλλο.

96
Q

Τι είναι η κρυπτογραφία δημόσιου κλειδιού (public key cryptography);

A

Εδώ χρησιμοποιούνται διαφορετικά κλειδιά για την κρυπτογράφηση και την
αποκρυπτογράφηση και, αν δοθεί ένα καλά επιλεγμένο κλειδί κρυπτογράφησης,
είναι πρακτικά αδύνατον να ανακαλυφθεί το αντίστοιχο κλειδί
αποκρυπτογράφησης. Κάτω από αυτές τις περιστάσεις, το κλειδί κρυπτογράφησης
μπορεί να δημοσιοποιηθεί και να διατηρείται μυστικό μόνο το κλειδί
αποκρυπτογράφησης.
Ο τρόπος λειτουργίας της κρυπτογραφίας δημόσιου κλειδιού είναι ότι και τα
δύο μέρη διαλέγουν ένα ζεύγος (δημόσιο κλειδί, ιδιωτικό κλειδί) και
δημοσιοποιούν το δημόσιο κλειδί. Το δημόσιο κλειδί είναι το κλειδί
κρυπτογράφησης, το ιδιωτικό κλειδί είναι το κλειδί αποκρυπτογράφησης.
Pros:
1) Δεν υπάρχει το πρόβλημα αποστολής ενός μοναδικού, μυστικού κλειδιού
μεταξύ αποστολέα και παραλήπτη
2) Υπολογιστικά δύσκολο να βρεθεί το μυστικό κλειδί αποκρυπτογράφησης
Cons:
1) Είναι χίλιες φορές πιο αργή από τη συμμετρική κρυπτογραφία

97
Q

Τι γνωρίζετε για τις ψηφιακές υπογραφές;

A

Μια ψηφιακή υπογραφή είναι ένα μαθηματικό σχήμα για την επαλήθευση της
αυθεντικότητας των ψηφιακών μηνυμάτων ή εγγράφων.
Μια έγκυρη ψηφιακή υπογραφή δίνει στον παραλήπτη το λόγο να πιστεύει ότι το
μήνυμα δημιουργήθηκε από έναν γνωστό αποστολέα (έλεγχος ταυτότητας), ότι ο
αποστολέας δεν μπορεί να αρνηθεί την αποστολή του μηνύματος (μη αποκήρυξη)
και ότι το μήνυμα δεν μεταβλήθηκε κατά τη μεταφορά (ακεραιότητα).

98
Q

Τι εννοούμε με τον όρο τομέας (domain) και δικαίωμα (right);

A

Ο τομέας είναι ένα σύνολο ζευγών (αντικείμενο, δικαιώματα). Κάθε ζεύγος
προσδιορίζει ένα αντικείμενο και κάποιο υποσύνολο των λειτουργιών που
μπορούν να εκτελεστούν σε αυτό. Δικαίωμα με αυτή την έννοια σημαίνει άδεια
εκτέλεσης μιας από τις λειτουργίες.

99
Q

Τι είναι ένα μητρώο προστασίας (protection matrix);

A

Είναι ένας μεγάλος δισδιάστατος πίνακας όπου οι γραμμές αντιστοιχούν στους
τομείς και οι στήλες στα αντικείμενα. Κάθε κελί περιέχει τα δικαιώματα, αν
υπάρχουν, που διαθέτει ο τομέας για το συγκεκριμένο αντικείμενο.
Στη πράξη η αποθήκευση του μητρώου γίνεται σπάνια επειδή είναι μεγάλο και
αραιό. Τα περισσότερα πεδία δεν έχουν καθόλου πρόσβαση στα περισσότερα
αντικείμενα, οπότε η αποθήκευση ενός πολύ μεγάλου και κατά το μεγαλύτερο
μέρος κενού μητρώου είναι σπατάλη χώρου δίσκου.
Δύο μέθοδοι που είναι όμως πρακτικές είναι η αποθήκευση του μητρώου κατά
γραμμές ή κατά στήλες, και στη συνέχεια η αποθήκευση μόνο των μη κενών
στοιχείων.

100
Q

Τι είναι οι λίστες έλεγχου πρόσβασης (ACL - Access Control Lists);

A

Μία τεχνική που αντιστοιχίζει σε κάθε αντικείμενο μία ταξινομημένη λίστα, η
οποία περιέχει όλους τους τομείς που μπορούν να το προσπελάσουν καθώς και
τον επιτρεπόμενο τρόπο προσπέλασης.

101
Q

Ποιοί είναι οι 3 γενικοί κανόνες, σύμφωνα με τους οποίους προσδιορίζεται η
ταυτότητα:

A

1) Κάτι το οποίο γνωρίζει ο χρήστης
2) Κάτι το οποίο κατέχει ο χρήστης
3) Κάτι το οποίο είναι ο χρήστης

101
Q

Αναφέρετε τεχνικές πιστοποίησης ταυτότητας.

A

1) Πιστοποίηση με ρήση κωδικών πρόσβασης
2) Πιστοποίηση με χρήση φυσικού αντικειμένου
3) Πιστοποίηση με χρήση βιομετρίας

102
Q

Για την ασφάλεια των κωδικών πρόσβασης στο UNIX, χρησιμοποιείται “αλάτι” (salt).
Τι γνωρίζεται γι’ αυτό;

A

Η ιδέα είναι να αντιστοιχιστεί σε κάθε κωδικό πρόσβασης ένας τυχαίος
αριθμός των n bit, ο οποίος ονομάζεται αλάτι (salt). Ο τυχαίος αυτός
αριθμός αλλάζει όποτε αλλάξει και ο κωδικός. Ο τυχαίος αριθμός αποθηκεύεται
στο αρχείο κωδικών πρόσβασης σε μη κρυπτογραφημένη μορφή, ώστε ο καθένας να
μπορεί να τον διαβάσει. Αντί να αποθηκεύεται απλώς ο κρυπτογραφημένος
κωδικός πρόσβασης στο αρχείο κωδικών πρόσβασης, πρώτα συνενώνονται και
κρυπτογραφούνται μαζί ο κωδικός πρόσβασης και ο τυχαίος αριθμός. Αυτό το
κρυπτογραφημένο αποτέλεσμα αποθηκεύεται στο αρχείο κωδικών πρόσβασης. Κάθε
χρήστης έχει μία γραμμή του αρχείου, με τρεις καταχωρίσεις που χωρίζονται
με κόμματα: όνομα χρήστη, αλάτι, και κρυπτογραφημένο το συνδυασμό κωδικός
πρόσβασης + αλάτι.Τώρα, έστω πως ένας επιτιθέμενος θέλει να κατασκευάσει μία λίστα από
πιθανούς κωδικού πρόσβασης, να τους κρυπτογραφήσει, και να αποθηκεύσει τα
αποτελέσματα σε ένα ταξινομημένο αρχείο f, ώστε να μπορεί να αναζητήσει
οποιοδήποτε κρυπτογραφημένο κωδικό πρόσβασης εύκολα. Αν ο επιτιθέμενος
υποπτευθεί ότι το PASS μπορεί να είναι κωδικός πρόσβασης, δεν αρκεί πλέον
να κρυπτογραφήσει το PASS και να τοποθετήσει το αποτέλεσμα στο f. Πρέπει να
κρυπτογραφήσει 2^n συμβολοσειρές όπως οι PASS0000, PASS0001, PASS0002,
κ.ο.κ. και να τις τοποθετήσει στο f. Η τεχνική αυτή αυξάνει το μέγεθος του
f κατά 2^n. Το UNIX χρησιμοποιεί αυτή τη μέθοδο με n=12.

103
Q

Πως γινεται η εισβολη μεσω της εκμεταλλευσης του λογισμικου;

A

1)Υπερχειλιση προσωρινης μνημης
2)καναρινια στοιβα;

104
Q

Πως γινεται η εισβολη μεσω της εκμεταλλευσης του λογισμικου;

A

1)Υπερχειλιση προσωρινης μνημης
2)επιστροφη στην libc (επαναχρησιμοποιησης κωδικα)
3)επιθεσεις με συμβολοσειρες μορφοποιησης
4)αιωρουμενοι δεικτες
5)υπερχειλιση ακεραιων
6)εισαγωγη εντολων

105
Q

Τι γνωρίζεται για επιθέσεις από το εσωτερικό του συστήματος;

A

Τις φέρνουν σε πέρα προγραμματιστές ή άλλοι εργαζόμενοι της εταιρείας που
δουλεύουν στον προς προστασία υπολογιστή ή κατασκευάζουν κρίσιμο λογισμικό.
1) Λογικές βόμβες (logic bombs)
2) Καταπακτές (Trap doors)
3) Παραπλανητική σύνδεση (login spoofing)

106
Q

Ποιό κακόβουλο λογισμικό ονομάζεται Δούρειος ίππος (Trojan Horse);

A

Η προσέγγιση κατά την οποία ο κακόβουλος χρήστης γράφει κάποιο έξυπνα
χρήσιμο βοηθητικό πρόγραμμα και ενσωματώνει σε αυτό το κακόβουλο λογισμικό.
Οι χρήστες θα κατεβάσουν με τη θέλησή τους και θα εγκαταστήσουν την
εφαρμογή. Ως “δώρο”, θα πάρουν και το κακόβουλο λογισμικό.
Το ωραίο της επίθεσης είναι ότι ο συγγραφέας του δε χρειάζεται να κάνει
τίποτε για να διεισδύσει στον υπολογιστή του θύματος. Το θύμα κάνει τα
πάντα μόνον του.

107
Q

Ποιό κακόβουλο λογισμικό ονομάζεται Ιός (Virus);

A

Ιός είναι ένα πρόγραμμα που μπορεί να αναπαραχθεί μόνο του, προσθέτοντας
τον κώδικά του σε κάποιο άλλο πρόγραμμα, παρόμοια με τον τρόπο που
αναπαράγονται οι βιολογικοί ιοί. Επίσης, ο ιός μπορεί να κάνει και άλλα
πράγματα εκτός από το να φροντίζει για την αναπαραγωγή του

108
Q

Πώς λειτουργούν οι ιοί;

A

Ο συγγραφέας του ιού, αφού τον γράψει, τον προσθέτει σε ένα πρόγραμμα στον
υπολογιστή του χρησιμοποιώντας ένα εργαλείο που ονομάζεται σταγονόμετρο
(dropper). Στη συνέχεια, διανέμει το μολυσμένο πρόγραμμα. Αφού εγκατασταθεί
στον υπολογιστή του θύματος, ο ιός “κοιμάται” μέχρι να εκτελεστεί το
μολυσμένο πρόγραμμα. Όταν αυτό ξεκινήσει, ο ιός συνήθως αρχίζει να μολύνει
και άλλα προγράμματα στον υπολογιστή και μετά εκτελεί το “ωφέλιμο” φορτίο
του (payload). Σε πολλές περιπτώσει, το φορτίο αυτό μπορεί να μην κάνει
τίποτα μέχρι κάποια συγκεκριμένη ημερομηνία, ώστε να εξασφαλιστεί ότι ο ιός
θα έχει διαδοθεί ευρέως πριν ανακαλυφθεί

109
Q

Ποιά είναι τα είδη ιών που διακρίνονται με βάση το στοιχείο που μολύνεται;

A

1)συνοδευτικοι ιοι
2)ιοι εκτελεσιμων προγραμματων
3)ιοι που παραμενουν στη μνηνη
4)ιοι τομεα εκκινησης
5)ιοι οδηγων συσκευων
6)μακροιοι
7)ιοι πηγαιου κωδικα

110
Q

Ποιοί είναι οι τρόποι εξάπλωσης των ιών;

A

1) Λογισμικό δοκιμαστικής χρήσης (shareware)
2) Τοπικό δίκτυο
3) Ηλεκτρονική ταχυδρόμηση μολυσμένου προγράμματος ως συνημμένο

111
Q

Ποιοί οι τρόποι εξάπλωσης του λογισμικού κατασκοπίας

A

1) Μέσω ενός Δούρειου Ίππου
2) Μολυσμένη γραμμή εργαλείων (brower plug-ins/addons)
3) Μέσω των στοιχείων ελέγχου activeX με στόχο τον Internet Explorer

112
Q

Αναφέρετε τρόπους άμυνας από κακόβουλο λογισμικό.

A

1) Τείχη προστασίας
2) Τεχνικές εναντίον των ιών και προστασίας των ιών από αυτές
3) Υπογραφή κώδικα
4) Φυλάκιση (jailing)
5) Ανίχνευση εισβολής με βάση μοντέλο (model-based intrusion detection)
6) Ενθυλάκωση κινητού κώδικα

113
Q

Γιατί η σχεδίαση λειτουργικών συστημάτων είναι δύσκολη;

A

1) Τα λειτουργικά συστήματα έχουν γίνει εξαιρετικά ογκώδη
2) Πρέπει να χειρίζονται τον ταυτοχρονισμό (concurrency)
3) Πρέπει να αντιμετωπίσουν πιθανόν εχθρικούς χρήστες
4) Πρέπει να παρέχει εμπιστευτικότητα μεταξύ χρηστών
5) Πρέπει να έχουν μεγάλη διάρκεια ζωής
6) Οι σχεδιαστές δεν έχουν ένα πλήρες πλάνο της χρήσης των λειτουργικών
συστημάτων που δημιουργούν
7) Σχεδιάζονται με σκοπό να είναι φορητά, να εκτελούνται επάνω σε πολλές
πλατφόρμες υλικού
8) Έχουν την ανάγκη για αναδρομική συμβατότητα (backward compatibility)

114
Q

Ποιές είναι η καθοδηγητικές αρχές σχεδίασης διασυνδέσεων;

A
  1. Απλότητα
  2. Πληρότητα
  3. Αποδοτικότητα
115
Q

Σχολιάστε περί Μηχανισμού και Πολιτικής

A

Μία αρχή που βοηθάει τη συνοχή της αρχιτεκτονικής, λέει ότι ο μηχανισμός
πρέπει να διαχωρίζεται από την πολιτική.
Η πολιτική απαντάει στο “Τι θα γίνει, πότε, ποιός θα το κάνει, κτλ”, ενώ ο
μηχανισμός απαντάει στο “Πως θα γίνει”.
Ένα παράδειγμα:
Σχετικά με τη δυνατότητα φόρτωσης υπομονάδων στον πυρήνα. Ο μηχανισμός
αφορά τον τρόπο εισαγωγής και σύνδεσής του, τις κλήσεις που μπορούν να
κάνουν, και τις κλήσεις που μπορούν να εφαρμοστούν σε αυτές. Η πολιτική
είναι το ποιος επιτρέπεται να φορτώνει ποιές υπομονάδες στον πυρήνα.
Ένα ακόμα παράδειγμα:
Σχετικά με τη σελιδοποίηση. Ο μηχανισμός περιλαμβάνει τη διαχείριση της
MMU, τη διατήρηση λιστών με κατειλημμένες και ελεύθερες σελίδες, και
κώδικα για τη μετακίνηση σελίδων από και προς το δίσκο. Η πολιτική
αποφασίζει τι πρέπει να γίνει όταν προκύψει κάποιο σφάλμα σελίδας, τον
αλγόριθμο επιλογής σελίδας, κτλ.

116
Q

Σχολιάστε περί Ορθογωνικότητας.

A

Η δυνατότητα να συνδυάζονται ανεξάρτητα ξεχωριστές έννοιες ονομάζεται
ορθογωνικότητα (orthogonality)
Ένα παράδειγμα:
Στο UNIX η δημιουργία διεργασίας γίνεται εδώ σε δύο βήματα: πρώτα καλείται
η fork και μετά η exec. Η δημιουργία του νέου χώρου διευθύνσεων και η
φόρτωση μιας νέας εικόνας μνήμης σε αυτό είναι ξεχωριστές ενέργειες, που
επιτρέπουν την εκτέλεση άλλων ενεργειών στο μεταξύ (όπως ο χειρισμός
περιγραφέων αρχείων).
Ως γενικό κανόνα θα λέγαμε ότι, έχοντας λίγα ορθογωνικά στοιχεία που
μπορούν να συνδυαστούν με πολλούς τρόπους, οδηγούμαστε σε μικρά, απλά, και
κομψά συστήματα.