Advertisement
Guest User

Untitled

a guest
Sep 18th, 2019
130
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 21.17 KB | None | 0 0
  1. skipped:
  2. 2. Λυση του Peterson, Σηματοφοροι, Προβλημα φιλοσοφων, Προβλημα αναγνωστων-γραφεων
  3. 3. 42!!!!, ~45 πολυ μεγαλες μνημες, Συγκριση αλγοριθμων, τμηματοποιηση
  4.  
  5.  
  6. 1 {
  7. Κλήσεις συστήματος: a computer program requests a service from the kernel of the operating system it is executed on.
  8. }
  9. 2 {
  10. Πολυπρογραμματισμος: οταν ενα λειτουργικο μπορει να εκτελεσει παραπανω απο 1 προγραμματα «ταυτοχρονα»
  11. Στοχος χρονοπρογραμματισμου: Ποια διεργασια θα εκτελεστει μετα απο καποια διακοπη;
  12.  
  13.  
  14. Κατηγοριες Συστηματων:
  15.  
  16. -Συστηματα Δεσμης:
  17. Μεγάλη διεκπεραιωτική ικανότητα και μικρός μέσος χρόνος
  18. Εξυπηρετηση με βαση τη σειρα αφιξης
  19. Εξυπηρετηση με βαση τη μικροτερη διαρκεια
  20. Εξυπηρέτηση με βάση το μικρότερο υπόλοιπo
  21. Εξυπηρετηση με βαση τη μικροτερη διαρκεια
  22. Εγγυημενος χρονοπρογραμματισμος (1/n)
  23. Λοταρια
  24. Χρονοπρογραμματισμος δικαιης διανομης(κατι σαν τον εγγυημενο χρονοπρογραμματισμο αλλα σε επιπεδο χρηστων)
  25.  
  26.  
  27. -Συστήματα αλληλεπίδρασης: Χαμηλός χρόνος απόκρισης σε αιτήσεις, Τήρηση αναλογιών (οι «απλές» εξυπηρετούνται γρήγορα)
  28.  
  29. Προτεραιοτητες:
  30. -Αναθεση κβαντου αναλογα με προταιρεοτητα{1 στην υψηλη, 2 στην χαμηλη,...} Οταν μια διεργασια εξαντλει το κβανο της υποβιβαζεται
  31. -Αναθεση προτεραιοτητας με βαση την συμπεριφορα: εστω οτι χρησιμοποιει ποσοστο f του κβαντου τοτε εχει προτεραιοτητα 1/f
  32.  
  33.  
  34.  
  35. -Συστήματα πραγματικού χρόνου: Τήρηση των προθεσμιών των διεργασιών, Προβλεψιμότητα και ομαλότητα χρονοπρογραμματισμού
  36.  
  37.  
  38. Μη προεκτοπιστικοί αλγόριθμοι:
  39. – Η τρέχουσα διεργασία εκτελείται μέχρι να μπλοκαριστεί
  40.  
  41. Προεκτοπιστικοί αλγόριθμοι:
  42. – Η τρέχουσα διεργασία εκτελείται μέχρι κάποιο όριο
  43.  
  44.  
  45. Χρονοπρογραμματισμος: κβαντο = x time > χρονος εναλλαγης διεργασιων
  46. Καλη λυση στον χρονοπρογρμαματισμο ειναι η λοταρια
  47. Μνημη flash: Δεν υπάρχει χρόνος αναζήτησης/περιστροφής
  48.  
  49.  
  50. Νηματα σε επιπεδο χρηστη:
  51. -Αν μπλοκαρει το νημα μπλοκαρει και η διεργασια
  52.  
  53. Σε επιπεδο πυρηνα:
  54. -Μεγαλο κοστος για δημιουργια νεων νηματων, παρακαμψη μεσω διατηρησης νηματων σε ανενεργη κατασταση
  55. +Αντιμετωπιζονται τα μπλοκαριματα, μπορει να επιλεξει αλλο νημα της ιδιας διεργασιας
  56.  
  57. Αναδυομενο νημα: δημιουργειται για την εξυπηρετηση καποιου μνμτος(πχ σερβερ)
  58.  
  59. Μετατροπη κωδικα για νηματα:
  60. -Μη επανεισαγωμενες βιβλιοθηκες, δημιουργια νεων βιβλιοθηκων
  61. -Χειρισμος σηματων ανα νημα ή ανα διεργασια
  62.  
  63.  
  64.  
  65. Αναμονη με απασχοληση: προσπαθουν συνεχεια να μπουν μεχρι να τα καταφερουν, σπαταλαει πορους, μπορει να εχουμε deadlock
  66. αντιμετωπιση: sleep & wakeup
  67. Βελτιωση: απενεργοποιηση διακοπων, επικινδυνο γτ αν κρασαρει η εφαρμογη κρασαρει το συστημα
  68.  
  69. }
  70.  
  71.  
  72. Μνήμη {
  73. First fit: απ την αρχη της μνημης οποια κανει
  74. Next fit: επομενη μνημη που κανει
  75. Best fit: η μικροτερη οπη που χωραει
  76. Worst fit: η μεγαλυτερη οπη που χωραει
  77. Quick fit: εχω ετοιμες λιστες των πχ 4,5,6KB
  78.  
  79.  
  80.  
  81. Εικονικη μνημη: υπερθεματα(overlays) κομματια του προγραμματος τα οποια φορτωνονται σταδιακα στη μνημη οταν χρειαστουν
  82.  
  83. Σελιδες του προγραμματος αντιστοιχουν σε πλαισια σελιδας(page frames)
  84.  
  85. Καθε διευθυνση αποτελειται απο 2 διευθυνσεις:
  86. -Αριθμος εικονικης σελιδας (περισσοτερο σημαντικα bit)
  87. -Offset μεσα στην σελιδα (λιγοτερο σημαντικα bit)
  88.  
  89. Πινακας σελιδων headers:
  90. Bit προστασιας (R, R/W Χ,ΝΧ)
  91. Bit τροποποιησης
  92. Bit αναφορας: η σελιδα εχει χρησιμοποιηθει προσφατα
  93. Bit κρυφης μνημης: ειναι ή οχι στην κρυφη μνημη
  94.  
  95.  
  96. MMU: translation between virtual & physical addresses
  97. TLB: associative cache
  98.  
  99. Ηπια αστοχια: η σελιδα δεν υπαρχει στην TLB αλλα υπαρχει στη μνημη
  100. Αυστηρή αστοχία: η σελιδα δεν υπαρχει ουτε στην TLB ουτε στην μνημη
  101.  
  102. Αλγοριθμος NRU: Bits A(αναγνωση), Τ(τροποποιηση)
  103. Προσομοιωση αν δεν το υποστηριζει το υλικο: ολες οι σελιδες σημειωνονται ως απουσες, στην προσπελαση γινεται σφαλμα κ διακοπη συστηματος, το συστημα ενημερωνει το bit A και μετα βαζει την καταχωρηση κανονικα στον πινακα. Αντιστοιχα με τον Τ
  104.  
  105. Κατηγοριες:
  106. 0: A:0, T:0
  107. 1: A:0, T:1
  108. 2: A:1, T:0
  109. 3: A:1, T:1
  110.  
  111. Επιλεγει σελιδα απο 0 προς 3
  112. Το συστημα περιοδικα μηδενιζει το bit A, τα bit T αν δεν γραφτει στον δισκο δεν μηδενιζεται, μπορει και το συστημα καποια στιγμη να το γραψει μονο του(σπανια)
  113.  
  114. -Αλγοριθμος FIFO
  115. -Αλγοριθμος δευτερης ευκαιριας. Διαλεγει με FIFO, αν Α=1 τοτε Α=0 και την βαζει στο τελος. Ψαχνει για μια παλια και αχρησιμοποιητη σελιδα
  116. -Αλγοριθμος Ρολογιου: Κυκλικη λιστα σαν ρολοι, προσθεση: μπαινει ακριβως πριν τον δεικτη ετσι ωστε να γινει μια πληρης περιστροφη.....Αν εχουμε σφαλμα κοιταμε εκει που δειχνει ο δεικτης, αν Α=1 το κανουμε 0 και προχωραμε τον δεικτη κατα 1. Αλλιως διαγραφεται
  117.  
  118. -Αλγοριθμος LRU:
  119. 1η προσεγγιση: timestamps(counter) σε καθε εγγραφη στον TLB
  120. -Προσομοιωση LRU(σε λογισμικο):
  121. NFU(Not Frequently Used): Σε καθε σελιδα εχουμε εναν μετρητη ο οποιος αποθηκευεται στον TLB. Καθε φορα που εχουμε χτυπο του ρολογιου προσθετουμε το bit Α στον μετρητη και μηδενιζουμε τον μετρητη
  122. Πρεπει να εισαγουμε την aging(γηρανση): σε καθε διακοπη του ρολογιου οι μετρητες ολισθαινονται προς τα δεξια(σαν να κανουμε /2) και βαζω στο αριστερο ακρο το bit A οποτε ειναι σαν να εχουμε ενα bitmap για το αν χρησιμοποιηθηκε στο τελευταιο, προ τελευταιο διαστημα κλπ
  123.  
  124.  
  125. Συνολο εργασιας διεργασιας: Οι σελιδες που χρησιμοποιει μια διεργασια μια τρεχουσα περιοδο(πχ 5 σελ κωδικα και 5 σελ δεδομενων)
  126. Αρα προσπαθουμε οταν φερνουμε σελιδες να φερνουμε σελιδες οι οποιες ειναι στο συνολο εργασιας κ οταν απομακρυνουμε να απομακρυνουμε σελιδες που δεν ειναι στο συνολο εργασιας
  127.  
  128. Οταν η διεργασια πρεπει να χρησιμοποιηθει ξανα κανει προσελιδοποιηση(prepaging) ετσι ωστε να μην συμβουν πολλα σφαλματα σελιδων
  129.  
  130. Αλγοριθμος συνολου εργασιας: σε καθε χτυπο του ρολογιου αν Α==1 τοτε βαζουμε το τρεχων timestamp
  131. οποτε απομακρυνουμε απ το συνολο εργασιας σελιδες που εχουν ωρα να απομακρυνθουν
  132. Για καθε σελιδα αν εχει ηλικια > t μπορει να αντικατασταθει αλλιως απ τις πιο προσφατες αντικαταστουμε τις πιο παλιες
  133.  
  134.  
  135. WSClock:
  136. σαν αλγοριθμος ρολογιου με συνολο εργασιας(δλδ χρησιμοποιει μετρητες για να δουμε τις παλιες σελιδες),
  137. Οι σελιδες οργανωνονται σε κυκλικη λιστα
  138. Αν θελουμε να βγαλουμε καποια σελιδα: Αν Α==1 μηδενιζουμε και προχωραμε.
  139. Αν Α==0 τοτε συγκρινουμε ηλικια με το t. Av ηλικια>t τοτε η σελιδα επιλεγεται.
  140. Αν η σελιδα ειναι καθαρη τοτε αντικαθιστανται αλλιως προγραμματιζεται για εγγραφη και προχωραμε στην επομενη
  141.  
  142. Ο αλγοριθμος δεν σταματα αμεσως μολις βρεθει μια σελιδα, σταματα μολις βρεθουν αρκετες σελιδες προς αντικατασταση ή/και εγγραφη ετσι ωστε οταν χρειαστουμε νεες σελιδες να εχουμε στη διαθεση μας αρκετες σελιδες(παραμετρος n)
  143.  
  144. Αν κανουμε πληρη κυκλο και δεν εχει βρεθει διαθεσιμη σελιδα κανουμε συνεχεια:
  145. Αν εχουμε ηδη χρονοπρογραμματισει μια εγγραφη καποια στιγμη θα ειναι διαθεσιμος ο χωρος οποτε συνεχιζουμε τους κυκλους
  146. Αν ολες οι σελιδες που περασαμε ειναι καθαρες τοτε παιρνουμε μια σελιδα στην τυχη και την αντικαθιστουμε
  147.  
  148. recheck
  149.  
  150. Οι καθολοικες πολιτικες μνημης λειτουργουν καλυτερα
  151.  
  152. Τοπικοτητα:
  153. μερικες φορες αν στην τοπικοτητα, δλδ 1/ν ειναι πολυ μεγαλο τοτε μπορει μερικες εφαρμογες να μην μπορουν να λειτουργησουν.
  154. Αλγοριθμος Συχνοτητας Σφαλματων Σελιδας(PFF): εχουμε εναν γραφο με κατακορυφο αξονα τα σφαλματα και οριζοντιο τον αριθμο σελιδων, σαν την lnx
  155. αν εχουμε σφαλματα μικροτερα απ το ελαχιστο τοτε ισως εχουμε περιττο αριθμο σελιδων οποτε πρεπει να μειωσουμε, αλλιως αν εχουμε σφαλματα μεγαλυτερα απ το ανω οριο.......
  156. Αν ο ελεγχος φορτιου δειχνει οτι το PFF ειναι συστηματικα ψηλα παντου κανει swapping καποιες διεργασιες
  157.  
  158.  
  159. Μεγαλες σελιδες: αυξανουν την εσωτερικη κατατμηση
  160. Μικρες σελιδες: απαιτουν μεγαλο πινακα σελιδων
  161.  
  162. Κοινοχρηστες σελιδες: καταμερισμος του κομματιου κωδικα
  163. Εχουμε πινακα σελιδων κωδικα, που ισως ειναι καταμερισμενος και πινακα σελιδων περιοχης δεδομενων δεδομενων
  164. Μετα το fork() δειχνουν στον ιδιο πινακα δεδομενων, ο οποιος ειναι read-only. Οταν παει καποιος να γραψει, το συστημα βλεπει οτι στην πραγματικοτητα δεν ειναι read only απλα προς το παρον καταμεριζομενη στις 2 σελιδες και το χουμε read only για να δημιουργιθει παγιδα οταν παει να γραψει καποιος. Αυτο γινεται ομως για καθε σελιδα δλδ μπορει πιο μετα να τερματισουν και οι 2 και οι μισες σελιδες να ειναι κοινοχρηστες επειδη δεν χρειαστηκε να αντιγραφουν. Ενα πλεονεκτημα ειναι οτι αν αμεσως μετα κανει exec η μια διεργασια γλυτωνει την τσαμπα αντιγραφη της μνημης
  165.  
  166.  
  167. Κοινοχρηστες βιβλιοθηκες:
  168. Στατικη συνδεση(δλδ το κομματι της βιβλιοθηκης να ειναι ενσωματωματομενες στο προμγραμμα) δεν συμφερει διοτι καθε προγραμμα εχει παρει συγκεκριμενες λειτουργιες απο καθε βιβλιοθηκη και ειναι χυμα στην σελιδα
  169.  
  170. DLL = Δυναμικες κοινοχρηστες βιβλιοθηκες, δλδ το προγραμμα σημειωνει απο πριν ποιες βιβλιοθηκες θα χρησιμοποιησει, δεν ενσωματονεται τπτ
  171. Oι DLL φορτωνονται ολοκληρες στη μνημη, οχι συγκεκριμενες συναρτησεις λογω του οτι ειναι κοινοχρηστες
  172. Καθε διεργασια ρυθμιζει τους δεικτες στην βιβλιοθηκη
  173.  
  174. Προϋποθεσεις ανεξαρτητης βιβλιοθηκης:
  175. 1. πρεπει να ειναι ανεξαρτητης θεσης δλδ ο κωδικας να εκτελειται σε οποιοδηποτε σημειο κ αν φορτωθει, δεν πρεπει να εχει εξαρτησεις απο απολυτες διευθυνσεις, μονο σχετικα αλματα και σχετικες διευθυνσεις
  176. 2. θα πρεπει να φορτωνεται γενικα σε οριο σελιδας, δεν μπορει να ειναι σε διευθυνση n σε ενα προγραμμα και σε διευθυνση n+1 σε αλλο γτ δεν θα μπορουν να ευθυγραμμιστουν
  177.  
  178. Δαιμονας καθαρισμου: ξυπναει περιοδικα και αν εχουμε λιγες διαθεσιμες σελιδες επιλεγει μερικες για αφαιρεση, αν ειναι τροποπ. τις στελνει κ για εγγραφη
  179. Ο δαιμονας δεν διωχνει τις σελιδες, αν ζητηθουν δλδ ξανα ειναι διαθεσιμες απλα κανει τις εγγραφες στον δισκο
  180.  
  181. Swap: δεν εχει συστημα αρχειων, αναφορα απευθειας στα μπλοκ
  182. Χρηση αρχειων ως περιοχων εναλλαγης(windows): + πιο ευελικτη διαχειρηση χωρου, - πιο αργη αντιστοιχηση(δεν παρακαμπτεται το συστημα αρχειων)
  183. Ο κωδικας του προγραμματος δεν παει στο swap γιατι ετσι κ αλλιως υπαρχει στο αντιστοιχο αρχειο του στον σκληρο δισκο
  184. }
  185.  
  186.  
  187. Συστηματα αρχειων {
  188. Τυποι αρχειων:
  189. 1. Κανονικα αρχεια
  190. 2. Φακελοι
  191. 3. Ειδικα αρχεια χαρακτηρων: σειριακες συσκευες
  192. 4. Ειδικα αρχεια μπλοκ: συσκευες αποθηκευσης
  193.  
  194.  
  195. }
  196.  
  197.  
  198.  
  199.  
  200.  
  201. Ασφαλεια {
  202.  
  203. Επίθεσης επιστροφής στη libc: επιστροφη στην system()
  204. Προγραμματισμός προσανατολισμένος στο σημείο επιστροφής: εκτελεση τμηματων σε πολλα σημεια κωδικα, σε καθε επιστορφη παμε στο επομενο σημειο. Ουσιαστικα φτιαχνουμε κωδικα απο μικρες ακολουθιες εντολων
  205. }
  206.  
  207.  
  208.  
  209.  
  210.  
  211.  
  212.  
  213.  
  214.  
  215.  
  216. Παλια θεματα:
  217. recheck:
  218. . [10] Στην ψηφιακή υπογραφή ενός αρχείου πρώτα χρησιμοποιούμε μία συνάρτηση
  219. κατακερματισμού στο αρχείο για να παράξουμε ένα μπλοκ σταθερού μήκους και μετά
  220. κρυπτογραφούμε αυτό το μπλοκ με το ιδιωτικό μας κλειδί. Γιατί δεν κρυπτογραφούμε όλο το
  221. αρχείο με το ιδιωτικό μας κλειδί;
  222.  
  223.  
  224.  
  225.  
  226.  
  227.  
  228. δεν ξερω:
  229. [10] Ποια κατηγορία διεργασιών οργανώνεται στις ουρές του χρονοπρογραμματιστή (scheduler), οι εμποδισμένες (blocked) ή οι έτοιμες (ready), και γιατί; Σε τι είδους ουρές οργανώνονται οι διεργασίες της άλλη κατηγορίας;
  230.  
  231. [10] Στην κρυφή μνήμη μπλοκ (block cache) των συστημάτων αρχείων, ποια μπλοκ πρέπει
  232. να γράφονται πιο γρήγορα στο δίσκο όταν τροποποιούνται, τα μπλοκ των καταλόγων ή τα
  233. μπλοκ των απλών αρχείων, και γιατί;
  234.  
  235. 7. [10] Στη διαχείριση αδιεξόδων, ο εντοπισμός και ανάκαμψη (detection and recovery) μπορεί
  236. να χρησιμοποιεί σχεδόν τον ίδιο αλγόριθμο με την αποφυγή αδιεξόδων (deadlock avoidance).
  237. Σε τι διαφέρουν λοιπόν οι δύο προσεγγίσεις;
  238.  
  239. 10. [10] Στα συστήματα Linux ο χρήστης αρχικά δίνει το όνομα (username) και τον κωδικό
  240. (password) του σε μία διεργασία επιπέδου πυρήνα, αλλά αφού συνδεθεί στο σύστημα ο
  241. φλοιός (shell) του εκτελείται σε επίπεδο χρήστη. Γιατί η αλλαγή από επίπεδο σε πυρήνα σε
  242. επίπεδο χρήστη πρέπει να γίνει αφού ελεγχθεί ο κωδικός του χρήστη και όχι πριν;
  243.  
  244.  
  245. [10] Σε ένα σύστημα UNIX/Linux αφού καλέσουμε την κλήση fork(), η διεργασία γονέας και η
  246. διεργασία παιδί είναι αρχικά πανομοιότυπες. Αν θεωρήσουμε ότι η μνήμη της διεργασίας
  247. αποτελείται από κώδικα, δεδομένα και στοίβα, ποια από αυτά τα κομμάτια μπορεί να
  248. διαφοροποιηθούν όσο εκτελούνται οι δύο αυτές διεργασίες, και γιατί;
  249.  
  250.  
  251. [10] Γιατί οι λύσεις αμοιβαίου αποκλεισμού (busy waiting) που χρησιμοποιούν αναμονή με
  252. απασχόληση (με χρήση εντολών τύπου TSL και XCHG) αντί για εμποδισμό διεργασιών
  253. θεωρούνται σπάταλες από πλευράς πόρων επεξεργασίας; Πότε έχει νόημα να
  254. χρησιμοποιείται αναμονή με απασχόληση αντί για εμποδισμός;
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement