Λειτουργικά Συστήματα Ι

Μέγεθος: px
Εμφάνιση ξεκινά από τη σελίδα:

Download "Λειτουργικά Συστήματα Ι"

Transcript

1 Λειτουργικά Συστήματα Ι Κεφάλαιο 4ο: Συστήματα Αρχείων «Σύγχρονα Λειτουργικά Συστήματα» -- A.S. Tanenbaum (Κλειδάριθμος) Distributed Systems, Concepts and Design, G. Coulouris and J. Dollimore, (Addison-Wesley) 1

2 5.1 Περίληψη Αρχείο (File): Περιλαμβάνει ένα σύνολο λογικά συσχετιζόμενων δεδομένων, μη-προσωρινής φύσης (συνήθως αποθηκευμένο σε δίσκους). Συστήματα Αρχείων (File Systems): Μέρος ενός Λ.Σ. Ασχολείται με την οργάνωση, αποθήκευση, προσπέλαση, προστασία, διαμοιρασμό και ονομασία (naming) των αρχείων. Προσφέρει το file abstraction: κρύβει όλες τις λεπτομέρειες διαχείρισης και προσπέλασης των συσκευών αποθήκευσης (π.χ. μαγνητικών δίσκων), οργάνωσης δεδομένων ενός αρχείου, κλπ 2

3 5.1 Περίληψη Κατάλογος (Directory): Επιτρέπει ονόματα υψηλού επιπέδου (π.χ. ASCII χαρακτηροσειρές) ν' ανατεθούν σ' αυτό το storage abstraction π.χ. " peter/foo" σε κάποια εσωτερική ταυτότητα (file id) (συνήθως ένας μεγάλος αριθμός που ορίζει το αρχείο «peter/foo» στο σύστημα). Εξυπηρετεί την: Ονομασία (File naming): Η διαδικασία μετάφρασης ενός υψηλού-επιπέδου ονόματος (user-level name) ενός αρχείου στο αντίστοιχο file ID. Έλεγχος πρόσβασης (Access Control): περιορίζει πρόσβαση σε αρχεία. Μόνο εξουσιοδοτημένοι χρήστες μπορούν να προσπελάσουν συγκεκριμένα αρχεία. 3

4 Οργάνωση ενός Συστήματος Αρχείων Υπηρεσία Καταλόγου (Directory Service): Directory Module: Μετάφραση υψηλού επιπέδου ονόματα -> File Ids Access Control Module: έλεγχος άδειας πρόσβασης Υπηρεσία Αρχείων (File Service): File Module: File IDs -> «files» (δομές που καθορίζουν που βρίσκονται τα δεδομένα) File Access Module: Προσπέλαση αρχείου Υπηρεσία Αποθήκευσης (Block Service): Block Module: Διαχείριση χώρου στο δίσκο Device Module: disk I/O & buffering 4

5 Οργάνωση ενός Συστήματος Αρχείων File Service: - Υλοποιεί έναν «επίπεδο χώρο ονομάτων» (flat file namespace). Πρέπει να μπορεί να προσδιορίζει την ταυτότητα του ζητούμενου αρχείου (μονοσήμαντα) μοναδικές ταυτότητες (unique file ids -- UFIDs). Δεδομένου του UFID η (μετα)πληροφορία του αντίστοιχου αρχείου μπορεί να εντοπιστεί. Files = Δεδομένα + Ιδιχαρακτηριστικά (Data + attributes). Attributes = Metadata (δηλ. πληροφορία για την πληροφορία). Συνήθως περιγράφουν το μέγεθος, ιδιοκτήτη, λίστα ελέγχου πρόσβασης, κ.λπ. Μερικά είναι προσπελάσιμες από τους χρήστες. Block Service: Διαχειρίζεται μονάδες αποθήκευσης του δίσκου (disk blocks): Αναθέτει/ελευθερώνει blocks σε/από files και προσπελαύνει/ενημερώνει blocks. 5

6 Οργάνωση ενός Συστήματος Αρχείων Υπηρεσία Καταλόγου (Directory Service): Διαχειρίζεται καταλόγους (directories) συνήθως σαν ειδικά αρχεία. ο directory server είναι πελάτης του file server. Διαχειρίζεται UFIDs, όταν δημιουργούνται αρχεία, που επιστρέφονται στους χρήστες. Έπειτα, οι χρήστες αναφέρονται στα αρχεία χρησιμοποιώντας τα UFIDs. UFIDs μπορεί να είναι δικαιώματα (capabilities): δηλ. χρησιμοποιούνται από τους κατέχοντες σαν απόδειξη προς τον File Server του δικαιώματος προσπέλασης αρχείων. 6

7 Οργάνωση ενός Συστήματος Αρχείων ο directory server πριν επιστρέψει UFIDs σε χρήστες πρέπει πρώτα να ελέγξει ότι οι χρήστες διαθέτουν τα ανάλογα δικαιώματα πρόσβασης. Ο διαχωρισμός του Directory Service από το File Service μπορεί να δημιουργήσει προβλήματα! π.χ. όταν διαγράφουμε ένα αρχείο, πρέπει να: 1) διαγραφεί directory info και 2) διαγραφούν file blocks. Αν το πρόγραμμα, λόγω βλάβης, δεν εκτελέσει το βήμα (2) τότε έχουμε ένα μη-προσπελάσιμο αρχείο το οποίο δεν μπορούμε να διαγράψουμε. 7

8 5.2 Υπηρεσία Καταλόγου (Directory Service) Έλεγχος πρόσβασης: Η Υπηρεσία καταλόγων διαχειρίζεται καταλόγους που αποθηκεύουν ζεύγη (file name, UFID). Πριν επιστρέψει ένα UFID, πρέπει να ελέγξει αν ο χρήστης έχει δικαίωμα πρόσβασης access control. User Ids: προσδιορίζουν την ταυτότητα χρηστών που προσπελαύνουν αρχεία. Κάθε χρήστης σχετίζεται με ένα user id μετά από μια διαδικασία authentication (εξακρίβωση στοιχείων) (π.χ. passwords). Μπορεί να υπάρχει ξεχωριστός authentication server. 8

9 5.2 Υπηρεσία Καταλόγου (Directory Service) Access Controll Lists (ACLs) Operation Users Read Write Λίστα με χρήστες Λίστα με χρήστες Επίσης ομάδες χρηστών (με ομαδικά δικαιώματα πρόσβασης) μπορούν να δημιουργηθούν Σύνοψη: Δεδομένου ενός user id και ενός ονόματος αρχείου ο dir. server προσπελαύνει το ACL του αρχείου και, αν όλοι οι έλεγχοι εκτελεστούν ομαλά, επιστρέφει ένα UFID στον χρήστη. Σε όλες τις μετέπειτα αιτήσεις του ο χρήστης προσκομίζει μόνο το UFID για ν' αποδείξει το δικαίωμα πρόσβασής του στο αρχείο. 9

10 Λειτουργίες Υπηρεσίας Καταλόγων: Ονομασία και έλεγχος πρόσβασης (access control). Διαχειρίζεται directories (ειδικά αρχεία). Επιστρέφει ένα UFID με καθορισμένα δικαιώματα προσπέλασης ή λάθος! Τα directories επίσης ονομάζονται με τα UFIDs. (Ενδεικτικές) Λειτουργίες: LookUp(DirUFID, Name, Access Mode, Userld, &UFID) Σε επιτυχία ελέγχου πρόσβασης, επιστρέφει το UFID του αρχείου-ορίσματος 10

11 Λειτουργίες Υπηρεσίας Καταλόγων: AddName(DirUFID, Name, UFID, UserId) Προσθέτει το ζεύγος (Name, UFID) στο directory UnName (DirUFID, Name) Το ζεύγος που περιέχει το "Name" διαγράφεται από το DirUFID ReName (DirUFID, Old Name, New Name) Αλλάζει το ζεύγος (OldName, UFID) -> (NewName, UFID) GetName (DirUFID, pattern) Επιστρέφει όλα τ' ονόματα το DirUFID που ταιριάζουν στο "pattern". 11

12 Λειτουργίες Υπηρεσίας Καταλόγων: Το Directory service πρέπει επίσης να μπορεί να αλλάζει ιδιότητες ενός αρχείου -- π.χ. το ACL, για να υποστηρίζει «chmod»... Επίσης πρέπει να παρέχει λειτουργίες για να εξετάζονται τα attributes. Το directory service είναι ο ιδιοκτήτης όλων των directories. Για κοινόχρηστα (shared) directories πρέπει να δηλώσουμε ένα χρήστη σαν ιδιοκτήτη και μια στρατηγική access-permission. Xαμένα Αρχεία: Για λειτουργία create-file: καλούμε το create system call (λειτουργία File Service) και κατόπιν AddName (λειτουργία Directory Service). Έτσι, σφάλματα/αποτυχίες δημιουργούν προβλήματα. 12

13 5.3 Υπηρεσία Αρχείων (File Service) Λειτουργίες (στα δεδομένα) Μια εναλλακτική: Create (&UFID): Δημιουργεί ένα νέο (άδειο) αρχείο και επιστρέφει ένα UFID Delete (UFID) : Διαγράφει το αρχείο Length (UFID) : Επιστρέφει το μήκος του αρχείου Read (UFID, position, number, &buffer): Διαβάζει "number" bytes αρχίζοντας από τη θέση "position" του αρχείου UFID και τα τοποθετεί στο "buffer". Write (UFID, position, buffer): Γράφει τα δεδομένα του "buffer" στο αρχείο UFID στη θέση "position". 13

14 5.3 Υπηρεσία Αρχείων (File Service) Λειτουργίες στα atributes: SetAttributes (UFID, attributes) GetAttributes (UFID, &attributes) UFIDs: Πρέπει να είναι: μοναδικά (μεταξύ όλων των files και όλων των κόμβων που υλοποιούν το F.S.) δύσκολο να "μαντευτούν" 48 bits 32 bits 32 bits server host id file number random number server host id Internet address, (μπορεί να είναι μικρότερο για ένα ethernet) random number για να είναι δύσκολο να μαντευτεί. 14

15 5.3 Υπηρεσία Αρχείων (File Service) Για διαμοιραζόμενα αρχεία πολλοί διαφορετικοί τύποι πρόσβασης (για διαφορετικούς clients) είναι δυνατοί Τα UFIDs πρέπει να είναι περισσότερο ευέλικτα. Τα UFIDs μπορούν να περιέχουν ένα permission field (π.χ. r, w,...) διαφορετικά UFIDs για διαφορετικούς τύπους πρόσβασης για το ίδιο file. Παράδειγμα: 2 bits (για r-o, w-o, & r+w) για permission field. Χρειάζεται πολύ προσοχή με αυτό το σχήμα: Το permission field πρέπει να συνδυάζεται με το τυχαίο κομμάτι. Αλλιώς κάποιος εύκολα θ' άλλαζε permissions για πιο αυστηρή πρόσβαση. Κρυπτογράφηση (encrypt permission field + random number) χρησιμοποιώντας ένα κρυφό κλειδί! (γνωστό στο server). 15

16 5.3 Υπηρεσία Αρχείων (File Service) Υλοποίηση - Απαιτείται δυναμική ανάθεση [ (de) allocation] των blocks του δίσκου ώστε να επιτρέπονται δυναμικές αλλαγές στα αρχεία. Ένα αρχείο γενικά καταλαμβάνει μη συνεχόμενα disk blocks (Γιατί;) Το file service διατηρεί μια δομή δεδομένων, το file index. Το file index συνήθως περιέχει τα attributes του αρχείου και μια ακολουθία από δείκτες στα μπλοκ του δίσκου που περιέχουν τα δεδομένα του αρχείου. Το file index πρέπει να υποστηρίζει σειριακή και τυχαία πρόσβαση (sequential + random access) ενός file. Γιατί τα attributes δεν αποθηκεύονται σε blocks μαζί με τα δεδομένα; (Eχουν διαφορετικές απαιτήσεις ελέγχου πρόσβασης). 16

17 5.3 Υπηρεσία Αρχείων (File Service) Εντοπίζοντας δεδομένα αρχείων Input: UFID Output: Τοποθεσία του file index Το κάνει το File Location Map! Στην πραγματικότητα κάθε αίτηση που έρχεται στο file service περιέχει ένα UFID και ένα offset (πχ read(ufid, 1500, &buffer) (a) UFID δείκτη του μπλοκ για το file index (b) offset δείκτη του μπλοκ για το ζητούμενο μπλοκ του αρχείου (a)+(b) : «μετάφραση σε 2 βήματα» Τα File Location Maps κάνουν το (a). Εξ αιτίας της ύπαρξης τους τα files μπορούν να μεταφερθούν. To (b) γίνεται χρησιμοποιώντας το file index. 17

18 5.3 Υπηρεσία Αρχείων (File Service) Παράδειγμα File index Το file index απασχολεί επίσης blocks. 18

19 5.3 Υπηρεσία Αρχείων (File Service) Μπορούμε να έχουμε file index πολλαπλών επιπέδων π.χ. file index 2 επιπέδων : 19

20 5.3 Υπηρεσία Αρχείων (File Service) Το UNIX έχει μια δομή που ονομάζεται i-node (file index). 20

21 5.4 Υπηρεσία Αποθήκευσης (Block Service) Γενικά: δέσμευση και αποδέσμευση blocks του δίσκου μεταφορά δεδομένων από και προς τα μπλοκς του δίσκου Δείκτες σε μπλοκς: disk_id + διεύθυνση στο δίσκο Λειτουργίες AllocateBlock (&blockptr) -- δεσμεύει ένα νέο block στο δίσκο και επιστρέφει ένα δείκτη σε αυτό το block 21

22 5.4 Υπηρεσία Αποθήκευσης (Block Service) FreeBlock (blockptr) -- ελευθερώνει το block που δείχνεται από το blockptr. GetBlock (blockptr, &buffer) -- διαβάζει τα περιεχόμενα του block που δείχνεται από το δείκτη blockptr και τ' αποθηκεύει στο buffer. PutBlock (blockptr, &buffer) -- γράφει τα περιεχόμενα του buffer στο disk block που δείχνεται από το blockptr Οι παραπάνω λειτουργίες υλοποιούνται χρησιμοποιώντας περισσότερο στοιχειώδεις λειτουργίες του δίσκου (primitive disk ops), παρέχονται από το device module. 22

23 5.4 Υπηρεσία Αποθήκευσης (Block Service) Μέγεθος Μονάδας Αποθήκευσης Πληροφορίας (Block Size) Tradeoff: Χώρος: μειωμένη χρήση αποθηκευτικού χώρου στο δίσκο για μεγάλα blocks έναντι καλύτερης χρήσης αποθηκευτικού χώρου στο δίσκο (μικρότερα blocks): προσέξτε την ύπαρξη πολλών μικρότερων αρχείων. Ταχύτητα: Η μεταφορά των δεδομένων μεταξύ δίσκου -- κύριας μνήμης είναι >1000 φορές πιο γρήγορη από το κόστος αναζήτησης + κόστος περιστροφής όσο λιγότερα blocks αναζητούμε τόσο το καλύτερο. 23

24 5.4 Υπηρεσία Αποθήκευσης (Block Service) Κάποια συστήματα χρησιμοποιούν πολλαπλά μεγέθη block (π.χ., UNIX 4.2. BSD): Eνα block χωρίζεται σε τμήματα (fragments). Ένα αρχείο των N bytes αποτελείται από (N / b) blocks και από κανένα ή ένα τμήμα από κάθε μέγεθος (b/2, b/4, b/8) (b είναι ο αριθμός των bytes ανά block) Εάν b είναι 8K, πολλά μικρά αρχεία μπορούν να αποθηκευτούν σ' ένα απλό block (χρησιμοποιώντας τα τμήματά του). Αυτός ήταν ο κύριος λόγος της επιτάχυνσης του συστήματος αρχείων του UNIX BSD από 2-5% σε 30-47% της ονομαστικής «ταχύτητας» του δίσκου (raw disk bandwidth). 24

25 5.4.1 Λειτουργίες του File Service / Επικοινωνία με το Block Service Create: παράγει UFID + δεσμεύει χώρο για το file index + αρχικοποιεί ιδιοχαρακτηριστικά (attributes) + προσθέτει μια νέα είσοδο (entry) στο File Location Map και επιστρέφει το UFID. Delete: σβήνει την είσοδο από το FLM + ελευθερώνει όλα τα blocks του αρχείου και τ' αντίστοιχα blocks που δεσμεύει το file index. Read: χρησιμοποιείται η GetBlock για κάθε μπλοκ που χρειάζεται Write: AllocateBlock (στο τέλος του αρχείου) + PutBlock ή GetBlock (overwrite) + PutBlock 25

26 5.5 Ανεκτικότητα σε Σφάλματα Γενικά: να προφυλάσουμε τη συνέπεια της πληροφορίας σε αρχεία (από αποτυχία (crashing) του συστήματος), s/w bugs του λειτουργικού συστήματος, προσωρινά σφάλματα υλικού κατά ανάγνωσης/εγγραφής στο δίσκο, κλπ. τη διάρκεια Προσεκτική Μνήμη -- Careful Storage: Ένα abstraction Η χρήση της αποσκοπεί στο να γίνουν ανιχνεύσιμα τα σφάλματα και οι αποτυχίες CarefulPut / CarefulGet Βασική ιδέα: Αποθήκευση ενός checksum μαζί με κάθε block κάθε φορά που μεταβάλλονται τα περιεχόμενα ενός block. 26

27 5.5 Ανεκτικότητα σε Σφάλματα CarefulGet (Read): επαναπροσδιορισμός του checksum των δεδομένων που διαβάζουμε σύγκριση μ' εκείνο που είναι αποθηκευμένο μαζί με το block. Εάν διαφέρουν τότε: επανέλαβε/εγκατέλειψε και επέστρεψε μήνυμα λάθους. CarefulPut (Write): Μετά την εγγραφή, ξαναδιάβασε το block από το δίσκο και σύγκρινε το checksum με το πρωτότυπο. Επανέλαβε, εάν χρειάζεται. Εάν το πρόβλημα εμμένει, σημείωσε το block ως "bad, ζήτησε ένα νέο block από το block service, και ξαναδοκίμασε. Παρατήρηση: Αποτυχία κατά τη διάρκεια κάποιας εγγραφής, ένα block ίσως εγγραφεί κατά ένα μέρος του, αρχείο, inode, FLM, χάνονται. 27

28 5.5 Ανεκτικότητα σε Σφάλματα Σταθερή Μνήμη (Stable Storage) Μια αφαίρεση που χρησιμοποιείται για ν' αποφευχθεί το παραπάνω πρόβλημα δηλ. να ανανήψει το σύστημα. βασίζεται σε προσεκτικά (careful) put & (careful) get. Προκειμένου το σύστημα ν' αναρρώσει από αποτυχίες εγγραφών, χρειάζεται κάποιος πλεονασμός/αντίγραφα. Ο στόχος είναι το σύστημα να αποτύχει καθώς εγγράφεται ένα από τα δύο αντίγραφα το άλλο θα παραμείνει ανέπαφο μπορούμε να χρησιμοποιήσουμε το ανέπαφο αντίγραφο για να επαναφέρουμε το block στην κατάσταση που ήταν πριν την ανεπιτυχή εγγραφή. 28

29 5.5 Ανεκτικότητα σε Σφάλματα Η σταθερή μνήμη αποτελείται από σταθερά blocks (stable blocks). Κάθε σταθερό block αποτελείται από δύο διαφορετικά block και οι λειτουργίες εγγραφής διεξάγονται και στα δύο blocks (καλύτερα να τοποθετούνται τα δύο αντίγραφα σε διαφορετικούς δίσκους). StableGet: διάβασε ένα block με CarefulGet; εάν ανιχνευθεί σφάλμα, τότε διάβασε το έταιρο block με την CarefulGet. StablePut: γράψε κάθε block με αυστηρή σειρά με (careful) PutBlock. Το δεύτερο block εγγράφεται ΜΟΝΟ ΑΝ το πρώτο (careful) PutBlock ήταν επιτυχές. Για παράλληλες λειτουργίες, χρησιμοποιείται monitor ή mutex. 29

30 5.6 Αρχεία "στο μικροσκόπιο Γιατί Αρχεία; 3 κύριοι λόγοι: Για να μπορούν προγράμματα να χρησιμοποιήσουν πληροφορία μεγαλύτερη από το μέγεθος του virtual address space. Για να υπάρχουν πληροφορίες/δεδομένα ανεξάρτητα από τη «ζωή των προγραμμάτων» που τα χρησιμοποιούν. Για να μπορούν δεδομένα να διαμοιράζονται μεταξύ προγραμμάτων (δια μέσου κοινών αρχείων). 30

31 5.6 Αρχεία "στο μικροσκόπιο Το F.S. είναι υπεύθυνο για την δόμηση/οργάνωση, προσπέλαση, προστασία, ονομασία, και υλοποίηση στο δίσκο. Η "ονομασία" αναφέρεται στη διαδικασία μετάφρασης ενός υψηλού-επιπέδου ASCII ονόματος σε εσωτερικά file ids με βάση τα οποία το σύστημα μπορεί να προσπελάσει το αρχείο. Το ΣΑ υλοποιεί/προσφέρει το abstraction του αρχείου (δηλ. κρύβει λεπτομέρειες υλοποίησης του file). 31

32 5.6 Αρχεία "στο μικροσκόπιο Η δομή των αρχείων ποικίλει: Συνήθως ένα file είναι απλώς μια σειρά από bytes χωρίς καμία δομή, τουλάχιστον σε ότι αφορά το Λ.Σ. Σε μερικά (παλαιότερα) F.S. ένα file είναι μια σειρά από records (που αποτελούνται από ένα συγκεκριμένο αριθμό bytes). Read & write λειτουργίες τώρα επιδρούν σε records και όχι σε τυχαία bytes. Σ' άλλα F.Ss ένα file έχει μια δενδρική οργάνωση, όπου οι κόμβοι είναι records. Κάθε record έχει και μία κλειδί/κλειδολέξη με βάση την οποία προσπελαύνονται συγκεκριμένα records. 32

33 5.6 Αρχεία "στο μικροσκόπιο Τύποι Αρχείων: Data Files: περιέχουν πληροφορίες χρηστών (user-data) Directory files: περιέχουν κυρίως ζεύγη όπως: (ASCII file name, fid). Block Special Files: χρησιμοποιούνται για να μοντελοποιήσουν δίσκους σαν αρχεία απ' ευθείας πρόσβαση σε ένα δίσκο γίνεται με open(), read(), write(), close()... Character Special Files: Μοντελοποιούν σειριακές συσκευές όπως τερματικά, εκτυπωτές, κ.λπ. 33

34 5.6 Αρχεία "στο μικροσκόπιο Data Files μπορεί να είναι ASCII αρχεία περιέχουν κείμενο από ASCII chars, <CR>, κ.λπ. Binary αρχεία συνήθως είναι «εκτελέσιμα» -- executable images (δηλ. προγράμματα μετά τη μετάφραση & σύνδεση ή μεταφρασμένες ρουτίνες μιας βιβλιοθήκης που περιμένουν να συνδεθούν με προγράμματα. Τύποι προσπέλασης: Σειριακή: (Sequential Access:) Όλα τα bytes ενός αρχείου προσπελαύνονται κατά σειρά (από το 1ο μέχρι το τελευταίο μπλοκ). Τυχαία: (Random Access). Όταν τα bytes/records ενός αρχείου προσπελαύνονται κατά μια τυχαία σειρά. 34

35 5.6 Αρχεία "στο μικροσκόπιο Η αφαίρεση: Ο χρήστης βλέπει κάθε αρχείο σα μια σειρά από ψηφία, καθένα από τα οποία είναι προσπελάσιμο. οι λειτουργίες προσπέλασης επιτρέπουν στο χτήστη να ορίσει ποια ψηφία εμπλέκονται στην κάθε του εντολή. Το σύστημα αρχείων αποθηκεύει και διαχειρίζεται δίσκους και τα μπλοκ των δίσκων. Πρέπει να μεταφράζει εντολές χρηστών στα κατάλληλα μπλοκ που πρέπει να προσπελαστούν από το δίσκο και να τα προπελαύνει αρμοδίως. 35

36 Προσπέλαση και Λειτουργίες Η τυχαία προσπέλαση υλοποιείται με 2 τρόπους: Κάθε read() & write() προσδιορίζει που ακριβώς στο αρχείο θα επιδράσει η λειτουργία - δηλ. ποιο θα είναι το 1ο byte. Το F.S. κρατάει έναν read/write δείκτη (για κάθε process που προσπελαύνει ένα αρχείο). Το 1ο byte είναι αυτό στο οποίο δείχνει ο δείκτης. [Υπάρχει και ένα system call seek() με το οποίο ο χρήστης μπορεί να ενημερώσει το δικό του r/w pointer. ] Λειτουργίες που παρέχονται συνήθως από ένα F.S.: open(), close(), read(), write(), append(), seek(), create(), delete(), get/set-attributes(), rename(). 36

37 Προσπέλαση και Λειτουργίες Οι μόνες λειτουργίες που χρειάζονται δικαιολόγηση ύπαρξης είναι οι open() & close(). Ο κύριος λόγος ύπαρξης είναι υψηλή απόδοση (performance). Ο χρήστης δηλώνει ότι πρόκειται να προσπελάσει ένα file με το open(). Το F.S. : ελέγχει τα δικαιώματα πρόσβασης του χρήστη στο αρχείο και αποταμιεύει στη Κ.Μ. του FS χρήσιμες πληροφορίες, όπως σε ποια disk blocks βρίσκονται αποθηκευμένα τα δεδομένα του αρχείου και τα attributes. αυτές οι πληροφορίες έτσι θα βρίσκονται στη Κ.Μ. κάθε read() & write() δεν θα χρειαστεί διπλό κόστος I/O, ούτε το κόστος ελέγχου πρόσβασης. 37

38 Αρχεία Χαρτογραφημένα στη Μνήμη -- Memory mapped files Πολλοί υποστηρίζουν ότι το παραπάνω interface του Σ.Α. είναι... "άβολο". Μια εναλλακτική λύση είναι memory-mapped files. Ο χρήστης μπορεί να καλέσει το Map (filename, virtualaddress) όπου το virtual-address είναι μια μεταβλητή προγράμματος (π.χ. filebuffer, τύπου char *). Το Λ.Σ., εκτελώντας αυτή την εντολή, χρησιμοποιεί τους πίνακες που κρατούν τις διευθύνσεις των disk blocks που αποτελούν το αρχείο και ενημερώνει τα disk blocks που αποτελούν το χώρο εναλλαγής ("swap space«) για το process και συγκεκριμένα το χώρο που αφορά στη μεταβλητή filebuffer 38

39 Αρχεία Χαρτογραφημένα στη Μνήμη -- Memory mapped files το swap space για το virtual address space στο οποίο χαρτογραφείται το αρχείο περιέχει τα disk blocks του αρχείου. τα page faults εξυπηρετούνται προσπελαύνοντας τα κατάλληλα disk blocks (από το swap space) το process προσπελαύνει ένα αρχείο όπως οποιαδήποτε μεταβλητή/δομή δεδομένων του προγράμματός του (π.χ. με ένα for loop... for (i>=1) do { file[i]:=. } 39

40 Αρχεία Χαρτογραφημένα στη Μνήμη -- Memory mapped files Επιτρέποντας memory-mapped αρχεία, δημιουργεί δυνητικά προβλήματα διαμοιρασμού και συνέπειας. π.χ. Ένα process Π1 έχει ενημερώσει ένα αρχείο, αλλά τα σχετικά blocks του αρχείου δεν έχουν αποθηκευτεί στο δίσκο ακόμα (δηλ. δεν έγιναν page out). Ένα άλλο process Π2 τότε προσπελαύνει το ίδιο αρχείο χρησιμοποιώντας για παράδειγμα το κανονικό File System interface (open()/read(), ) δεν θα δει την πιο πρόσφατη πληροφορία.! 40

41 5.7 Κατάλογοι "στο μικροσκόπιο τα directories συνήθως υλοποιούνται σαν αρχεία («directory files»). εγγραφές (directory entries) είναι ζεύγη: (filename, UFID). Ειδικότερα αυτό το UFID προσδιορίζει (δομές που κρατούν) τις διευθύνσεις των disk blocks που αποτελούν το αρχείο καθώς και τα ιδιοχαρακτηριστικά (attributes) του. Συνήθως, η εγγραφή καταλόγου: είτε περιέχει κατ' ευθείαν την πληροφορία για τις διευθύνσεις των μπλοκς του δίσκου, είτε περιέχει ένα δείκτη σε κάποια δομή του πυρήνα, που περιέχει την παραπάνω πληροφορία. 41

42 5.7 Κατάλογοι "στο μικροσκόπιο Όταν το Σ.Α. εξυπηρετεί την εντολή open(fname,...): ψάχνει τον κατάλογο μέχρι να βρει την εγγραφή για το fname. μετά ενημερώνει έναν πίνακα του πυρήνα (inode table) με τα ιδιοχαρακτηριστικά και τις διευθύνσεις στο δίσκο για τα μπλοκς του αρχείου fname. Όλα τα read()/write() του ίδιου χρήστη γι αυτό το αρχείο fname χρησιμοποιούν αυτόν τον πίνακα (inode table) για να εκτελεστούν. 42

43 5.7 Κατάλογοι "στο μικροσκόπιο Συχνά, οι χρήστες θέλουν να οργανώσουν λογικά τα αρχεία τους. Αυτό έχει συνήθως ως αποτέλεσμα την δημιουργία ιεραρχικών Σ.Α. Δηλ. υπάρχουν κατάλογοι που περιέχουν άλλους καταλόγους, κ.ο.κ. Αυτό με τη σειρά του έχει ως αποτέλεσμα τα αρχεία να ονομάζονται με «ονόματα μονοπατιών» (pathnames) όπως /usr/peter/foo. Το πρώτο "/" είναι το «root directory» του Σ.Α. Κάποιο dir. του root έχει όλους τους χρήστες, "usr". Ένας χρήστης είναι ο "peter" ο οποίος έχει το δικό του dir το οποίο με τη σειρά του έχει ένα αρχείο με το όνομα "foo". 43

44 5.7 Κατάλογοι "στο μικροσκόπιο Σε ιεραρχικά συστήματα υπάρχουν 2 τρόποι ονομασίας ενός αρχείου: απόλυτη και σχετική ονομασία [absolute & relative path name]. Το απόλυτα όνομα είναι μοναδικό για κάθε αρχείο και πάντα αρχίζει με το root directory. Το σχετικό όνομα σχετίζεται με την έννοια του current (ή working) directory. Αν το τωρινό dir είναι το /usr/peter, τότε τα ονόματα "foo" & "/usr/peter/foo" αναφέρονται στο ίδιο αρχείο. Κάθε process φυσικά έχει το δικό της current directory (δηλ. είναι μια per-process μεταβλητή). Έτσι αν για τον χρήστη "dora" το current dir. είναι /usr/dora και για τον χρήστη "peter" το current dir είναι /usr/peter τότε το σχετικό όνομα "foo" αναφέρεται σε διαφορετικά αρχεία, ανάλογα με τον χρήστη. 44

45 5.7 Κατάλογοι "στο μικροσκόπιο Οι πιο συνήθης λειτουργίες που παρέχονται από directory services είναι: opendir(), closedir(), create(), delete(), readdir(), rename(), link(), unlink(). Το read_dir() μπορεί υλοποιηθεί χρησιμοποιώντας το read() για το σχετικό dir. file. Αλλά συνήθως υλοποιείται διαφορετικά, έτσι ώστε να επιστρέφει την επόμενη εγγραφή του dir. απαλλάσσεται ο προγραμματιστής από την ανάγκη να ξέρει ακριβώς την εσωτερική δομή των dir.entries (π.χ. πόσα bytes και που είναι το filename, τα attributes, disk blocks, κ.λπ). To link() επιτρέπει σε πολλά directories να "περιέχουν" το ίδιο αρχείο - έτσι π.χ., επιτρέπεται ο διαμοιρασμός του αρχείου από διαφορετικούς χρήστες που το τοποθετούν στο δικό τους directory. Το unlink() διαγράφει ένα directory entry. Αν αυτό ήταν το μοναδικό dir. entry που αναφέρεται στο αρχείο τότε το αρχείο διαγράφεται επίσης. 45

46 5.8 Σημαντικά Θέματα Υλοποίησης Διαχείριση των disk blocks ενός αρχείου Συνήθως ο τρόπος διαχείρισης των disk blocks εξαρτάται από τον τρόπο ανάθεσης blocks σ' ένα αρχείο. Υπάρχουν 3 βασικές στρατηγικές ανάθεσης: Συνεχόμενη ανάθεση (contiguous allocation), Ανάθεση βασιζόμενη σε συνδεδεμένες λίστες (linkedlist), & Δεικτοδοτημένη ανάθεση (indexed allocation) 46

47 Συνεχόμενη Ανάθεση (Contiguous) Ο πιο απλός τρόπος ανάθεσης. Όταν ένα αρχείο χρειάζεται N disk blocks, τότε Ν συνεχόμενα blocks ανατίθενται στο αρχείο αυτό. Πέραν της απλότητας, αυτή η στρατηγική έχει το πλεονέκτημα ότι για να διαβαστεί ολόκληρο το αρχείο απαιτείται να πληρωθεί το κόστος για το disk seek και η κα8υστέρηση περιστροφής δίσκου (disk rotational delay) μόνο μια φορά. Αυτό είναι σημαντικό εξ αιτίας των σχετικών μεγάλων κοστών!!! 47

48 Συνεχόμενη Ανάθεση Τα μειονεκτήματα της συνεχόμενης ανάθεσης είναι ότι συχνά δεν είναι γνωστό από πριν (και είναι μεταβαλλόμενο) το μέγιστο μέγεθος του αρχείου το ΣΑ δεν μπορεί να ξέρει πόσα disk blocks ν' αναθέσει.! Επίσης (κυρίως όταν τα αρχεία διαγράφονται) δημιουργούνται προβλήματα κατακερματισμού (fragmentation). Δηλ. ένας δίσκος μπορεί να διαθέτει συνολικά N ελεύθερα (free) blocks και ένα αρχείο που χρειάζεται N blocks να μην μπορεί να δημιουργηθεί λόγω του ότι τα N ελεύθερα blocks του δίσκου δεν είναι συνεχόμενα. Αυτό το πρόβλημα λύνεται μόνο μέσω σύμπτυξης (compaction) αλλά αυτό στοιχίζει πάρα πολύ (disk_to_disk copying). Μπορεί όμως να γίνει "off-line" δηλ. την νύχτα όταν το σύστημα δεν χρησιμοποιείται. 48

49 Ανάθεση με συνδεδεμένες λίστες Linked List Allocation: Μ' αυτή τη στρατηγική τα αρχεία είναι μια λίστα από blocks, με μερικά bytes του κάθε block να δείχνουν στο επόμενο block της λίστας. αποφεύγεται το πρόβλημα κατακερματισμού. Επίσης η κάθε εγγραφή καταλόγου αποθηκεύει μόνο τη διεύθυνση του 1ου block του αρχείου. Το βασικό πρόβλημα αυτής της μεθόδου είναι ότι όταν επιθυμείται τυχαία προσπέλαση (random access), η απόδοση του συστήματος είναι άθλια! 49

50 Ανάθεση με συνδεδεμένες λίστες Παράδειγμα: Για να προσπελαστεί το Ν-οστό block πρέπει πρώτα να γίνουν Ν-1 παραπανίσια disk Ι/Οs. Το πρόβλημα αυτό μπορεί να λυθεί χρησιμοποιώντας ένα χάρτη δεικτοδότησης (index) στη Κ.Μ. που περιέχει τους δείκτες για τα disk blocks. 50

51 Δεικτοδοτημένη ανάθεση (indexed allocation) Η πρώτη επιλογή αφορά στο αν υπάρχει "per file" index ή ένα index για όλα τα αρχεία στο σύστημα. Το UNIX FS χρησιμοποιεί per-file index ενώ το MS-DOS χρησιμοποιεί "global" index. Με global index, το index βρίσκεται πάντα στη ΚΜ παραπανίσια disk I/Os ελαχιστοποιούνται. Το πρόβλημα όμως είναι ότι το global index καταναλώνει πολύ Κ.Μ. γιατί διαθέτει μια εγγραφή για κάθε block του δίσκου. 51

52 Δεικτοδοτημένη ανάθεση (indexed allocation) Ένα παράδειγμα per-file index είναι τα inodes που χρησιμοποιεί το UNIX. To inode πρώτα περιέχει τα attributes. Κατόπιν 10 δείκτες για τα πρώτα 10 blocks του αρχείου. Κατόπιν ένα δείκτη που δείχνει σ' ένα disk block (single indirect block) που με τη σειρά του δείχνει στα επόμενα 256 disk blocks του file. Κατόπιν ένα δείκτη σε double indirect block Κατόπιν ένα δείκτη σε triple indirect block. 52

53 5.8.2 Υλοποίηση Καταλόγων Η δομή των στοιχείων των καταλόγων διαφέρει από ΣΑ σε ΣΑ, όπως είπαμε. Στο UNIX: έχει τη μορφή (fname, inode#). Όλα τα inodes (για όλα τα ΣΑ) είναι αποθηκευμένα στην αρχή του δίσκου που αποθηκεύει το ΣΑ, και ονομάζονται με inode1, inode2, inode3,... Μετάφραση Ονόματος (Pathname translation): Η διαδικασία που δέχεται σαν είσοδο ένα pathname (π.χ. "/d1/d2/d3/foo") και παράγει σαν έξοδο το inode# του αρχείου. 53

54 Μετάφραση Ονόματος Μονοπατιού Η διαδικασία αυτή έχει ως εξής: 1. a) Το inode για το root directory "/" ανακτάται από τον δίσκο. (Αυτό το inode βρίσκεται σε μια γνωστή και μη ενημερώσιμη διεύθυνση στο δίσκο). b) Απ' το inode του root βρίσκονται τα disk blocks (που περιέχουν τα dir. entries), ανακτώνται και ψάχνονται για την εγγραφή "d1". Όταν βρίσκεται η εγγραφή για το "d1" τότε βρίσκεται και το inode# του d1. 2. a) Το inode για το "d1" ανακτάται απ' το δίσκο. b) Τα disk blocks του dir file "d1" ανακτώνται και ψάχνονται για την εγγραφή "d2". 54

55 Μετάφραση Ονόματος Μονοπατιού a) Τέλος το inode & disk blocks του "dir3" ανακτώνται και ψάχνονται για την εγγραφή "foo". b) Έτσι βρίσκεται το inode# για το αρχείο «foo» το οποίο ανακτάται και τοποθετείται στη μνήμη (σ' ένα cache ειδικό για inodes που λέγεται inode table). 3. Αφού τοποθετηθεί το inode στο inode table του πυρήνα ο file descriptor πίνακας του process ενημερώνεται. 4. Μια εγγραφή του χρησιμοποιείται για έναν δείκτη ακολουθώντας τον οποίο μπορεί ο kernel να βρει το inode στο inode table. 5. Τέλος επιστρέφεται ο δείκτης της εγγραφής του file descriptor πίνακα... 55

56 5.8.3 Διαμοιραζόμενα Αρχεία [SHARED FILES] Για να διευκολυνθεί ο διαμοιρασμός αρχείων, συχνά ένα αρχείο εμφανίζεται σε πολλούς διαφορετικούς καταλόγους (π.χ. σ' έναν κατάλογο για κάθε χρήστη που το διαμοιράζεται). Αυτό επιτυγχάνεται με links που συνδέουν ένα πεδίο καταλόγου μ' ένα αρχείο σε κάποιον άλλον κατάλογο. Αν τα πεδία καταλόγων εμπεριέχουν τις διευθύνσεις των μπλοκς στο δίσκο, τότε στον κατάλογο που ορίζεται το link σ' ένα αρχείο F1 θα πρέπει να γίνει ένα αντίγραφο των διευθύνσεων στο δίσκο των μπλοκ του F1. Αν αυτά αλλάξουν (π.χ. append()) τότε προκύπτει πρόβλημα διαχείρισης αντιγράφων. 56

57 5.8.3 Διαμοιραζόμενα Αρχεία [SHARED FILES] Στο UNIX το πρόβλημα λύνεται ως εξής: Τα πεδία καταλόγων δεν περιέχουν διευθύνσεις στο δίσκο αλλά (ουσιαστικά) δείκτες σε δομές του πυρήνα (δηλ. τα inodes) που τις περιέχουν. Μια άλλη λύση βασίζεται στην έννοια «συμβολικών συνδέσμων» (symbolic link). Όταν δημιουργείται ένα link L1 στο αρχείο F1, το L1 είναι ένα ειδικό αρχείο τύπου link. Τα περιεχόμενα αρχείων τύπου link είναι μόνο το pathname του αρχείου στο οποίο είναι link. Όπως είναι προφανές, symbolic links προσθέτουν παραπάνω κόστος. 57

58 5.8.4 Ανάθεση Μονάδων Δίσκου σε Αρχεία Όπως προείπαμε, τα αρχεία συνήθως δεν αποθηκεύονται σε συνεχή μπλοκ του δίσκου. Αυτό συμβαίνει για να αποφευχθούν τα προβλήματα κατακερματισμού και το κόστος αντιγραφών (disk_to_disk copying). αρχεία χωρίζονται σ' ένα αριθμό μπλοκ και το κάθε μπλοκ αρχείου αποθηκεύεται σε συνεχόμενους τομείς (disk sectors) στο δίσκο (που λέγονται μπλοκ του δίσκου). Μέγεθος BLOCK Πόσο μεγάλα πρέπει να είναι τα μπλοκ αρχείων; 58

59 5.8.4 Ανάθεση Μονάδων Δίσκου σε Αρχεία Σε πολλά περιβάλλοντα τα αρχεία είναι μικρά. Αν το μπλοκ είναι μεγάλο τότε θα σπαταλείται χώρος στο δίσκο. Αν, αντιθέτως, τα μπλοκ είναι μικρά, τότε για να ανακτηθεί ένα ολόκληρο αρχείο θα χρειαστούν πολλά «disk seeks» (ένα για κάθε block). Η απόδοση (throughput) του συστήματος θα είναι κακή γιατί για μεγάλα χρονικά διαστήματα ο δίσκος εκτελεί εντολές seek (και όχι "χρήσιμες" λειτουργίες). βλέπουμε μια διελκυνστίδα (trade-off) μεταξύ καλής εκμετάλλευσης χώρου (space efficiency) & καλής απόδοσης έργο ανά μονάδα χρόνου (throughput). 59

60 Διαχείριση Ελεύθερου Χώρου στο Δίσκο Συνήθως, χρησιμοποιούνται 2 μέθοδοι: Συνδεδεμένες λίστες (Linked List): Κάθε κόμβος της λίστας είναι ένα μπλοκ δίσκου. Κάθε κόμβος περιέχει: και Ν-1 διευθύνσεις ελευθέρων (free) μπλοκ, όπου Ν είναι ο αριθμός των διευθύνσεων που χωρούν σ' ένα μπλοκ δίσκου. την διεύθυνση του επόμενου κόμβου της λίστας (π.χ. με μέγεθος μπλοκ = 2K και με διευθύνσεις 4 ψηφίων, N = 2048/4). 60

61 Διαχείριση Ελεύθερου Χώρου στο Δίσκο Χάρτης ψηφίων (Bit Map): Ένας πίνακας (bit map) με Ν εγγραφές απαιτείται για ένα δίσκο με N blocks. Τα ελεύθερα μπλοκ αντιπροσωπεύονται με την τιμή 1 στον πίνακα. για κάθε μπλοκ κρατείται πληροφορία μεγέθους 1 bit και όχι μερικά bytes όπως στη μέθοδο linked list (εκτός μερικών περιπτώσεων) η μέθοδος bit map είναι προτιμότερη, από πλευράς χώρου. 61

62 Διαχείριση Ελεύθερου Χώρου στο Δίσκο Επίσης, επειδή το bit map είναι μικρότερο υπάρχει μεγαλύτερη πιθανότητα να χωράει στη Κ.Μ. Αν ναι, τότε η μέθοδος bit map προτιμάται Αν όχι, τότε μπορεί κάθε block/κόμβος της λίστας (linked list) περιέχει συνήθως πιο πολλά ελεύθερα blocks απ' ότι ένα μπλοκ του bit map ίσως να είναι προτιμότερη η μέθοδος linked list. 62

63 5.9 Βελτιώνοντας την Απόδοση του Συστήματος Όπως έχουμε πει, κάθε πρόσβαση στη Κ.Μ. κοστίζει < 1 μs, ενώ κάθε πρόσβαση στο δίσκο κοστίζει ~ 8 ms. το FS θα έχει την καλύτερη δυνατή απόδοση όσο πιο λίγες φορές χρειάζεται disk I/O!!! Προσωρινή (Κρυφή) Μνήμη Η επίτευξη του στόχου αυτού βασίζεται στην έννοια της F.S. buffer cache. H κρυφή μνήμη είναι ένα τμήμα της Κ.Μ. (στον πυρήνα) το οποίο αποθηκεύει προσωρινά μερικά μπλοκ του δίσκου. 63

64 Προσωρινή (Κρυφή) Μνήμη Όταν κάποια διεργασία ζητεί πρόσβαση σε κάποιο μπλοκ, ο πυρήνας φορτώνει πρώτα αυτό το μπλοκ στην κρυφή μνήμη και μετά το δίνει στη διεργασία. οι μεταγενέστερες αιτήσεις (από την ίδια ή άλλες διεργασίες) για το ίδιο μπλοκ θα εξυπηρετηθούν από τη κρυφή μνήμη. το disk I/O αποφεύγεται! Έτσι, κάθε φορά που ζητείται κάποιο μπλοκ, ο kernel πρώτα ψάχνει τη κρυφή μνήμη και μόνο αν δεν το βρει απευθύνεται στο δίσκο. 64

65 Προσωρινή (Κρυφή) Μνήμη Φυσικά, απαιτείται κάποιος αλγόριθμος αντικατάστασης έτσι ώστε να λειτουργεί η πιο πάνω διαδικασία ακόμα και όταν γεμίζει η κρυφή μνήμη. Αυτός ο αλγόριθμος είναι συνήθως LRU (με μερικές αλλαγές). Πριν ένα μπλοκ της Buffer Cache "φιλοξενήσει" ένα καινούργιο μπλοκ του δίσκου, θα πρέπει το αρχικό μπλοκ να εγγραφεί στο δίσκο αν έχει ενημερωθεί όσο ήταν στην κρυφή μνήμη (δηλ. αν είναι dirty). [Αυτή είναι η ανάλογη ενέργεια που συμβαίνει από το paging σύστημα, που γράφει μια σελίδα στο χώρο εναλλαγής πριν το ίδιο πλαίσιο σελίδας φιλοξενήσει κάποια καινούργια σελίδα]. 65

66 Προσωρινή (Κρυφή) Μνήμη Οι αλλαγές στον αλγόριθμο LRU χρειάζονται: για να αποφευχθούν όσο το δυνατόν περισσότερα disk I/Os... Πρόβλημα κόστους... για να αποφευχθούν προβλήματα ασυνέπειας του F.S. ή χάσιμο δεδομένων όταν συμβούν βλάβες. Ζήτημα ασυνέπειας: Όταν ένα μπλοκ ενημερώνεται, αυτό πρώτα γίνεται στην κρυφή μνήμη. Αν συμβεί κάποια αστοχία/σφάλμα τότε η ενημέρωση χάνεται. απαιτείται μια πολιτική εγγραφής (write policy). 66

67 Προσωρινή (Κρυφή) Μνήμη Όταν κάποιο μπλοκ στην κρυφή μνήμη περιέχει ευαίσθητα δεδομένα, όσον αφορά στη συνέπεια του συστήματος, τότε όταν αυτό το block ενημερωθεί εγγράφεται αμέσως στο δίσκο (σύγχρονα ή ασύγχρονα). Επίσης συνήθως υπάρχει κάποιο άνω όριο, όσον αφορά το χρόνο κατά τον οποίο ένα ενημερωμένο μπλοκ παραμένει στην κρυφή μνήμη χωρίς να εγγραφεί στο δίσκο. Για να μη χαθούν δεδομένα όταν συμβούν σφάλματα και βλάβες, πολλά συστήματα παρέχουν ειδικά system calls (π.χ. flush() ή SYNC) τα οποία γράφουν όλα τα ενημερωμένα blocks από την κρυφή μνήμη στο δίσκο. Σε πολλά «UNIX F.S». (πχ NFS) υπάρχει ένα «πρόγραμμα παρασκηνίου» (background program) το οποίο εκτελείται κάθε 30 secs, το οποίο εκτελεί τη SYNC. τα χαμένα δεδομένα μπορεί να είναι αυτά που γράφτηκαν μόνο τα τελευταία 30 secs. 67

68 Προσωρινή (Κρυφή) Μνήμη Ευαίσθητα δεδομένα είναι: inode μπλοκ, directory μπλοκ, και γενικά μπλοκ που δεν έχουν απλά δεδομένα χρηστών. π.χ. Σκεφθείτε τι θα συμβεί αν το inode μπλοκ ενός αρχείου ενημερωθεί και πριν εγγραφεί στο δίσκο, καταρρεύσει το σύστημα. Ζήτημα κόστους: Όταν κάποιο μπλοκ στην κρυφή μνήμη είναι μόνο μερικώς ενημερωμένο τότε τοποθετείται στο τέλος της LRU λίστας (καθυστερημένη εγγραφή) αφού δεν αναπληρώνεται αμέσως υπάρχει πιθανότητα όταν, μετά από χρόνο, αναπληρωθεί, να έχει ενημερωθεί ολόκληρο και έτσι θα απαιτηθεί ένα και μόνο disk I/O για όλες τις ενημερώσεις ενός μπλοκ. 68

69 Προσωρινή (Κρυφή) Μνήμη Απαιτείται μηχανισμός γρήγορου εντοπισμού μπλοκ στην Προσωρινή (Κρυφή) Μνήμη Μηχανισμός διαχείρισης ελεύθερων μπλοκ στην Προσωρινή (Κρυφή) Μνήμη Σε συνεργασία με μηχανισμούς διαχείρισης σύγχρονων, ασύγχρονων και καθυστερημένων εγγραφών. 69

70 Προσωρινή (Κρυφή) Μνήμη στο UNIX Hash Q Headers Free List Header Block#0 mod Block#1 mod Block#2 mod Block#3 mod

71 Προσωρινή (Κρυφή) Μνήμη στο UNIX Free list: για ανάθεση Υλοποιεί LRU αλγόριθμο Αναζήτηση με βάση τον αριθμό μπλοκ ανεξάρτητη από το συγκεκριμένο δίσκο (δηλ. Αριθμός κυλίνδρου, επιφάνειας, κλπ). Αν βρεθεί, τότε βγαίνει από τη λίστα LRU. Απελευθέρωση: επιστρέφεται στο τέλος της λίστας LRU 71

72 Ομαδοποίηση (Clustering) Μπλοκ Μια άλλη τεχνική για να βελτιωθεί η απόδοση ενός Σ.Α. βασίζεται στην έννοια του clustering (ομαδοποίηση μπλοκ σε «γειτονιές») το κόστος της εντολής seek (που μετακινεί τις κεφαλές του δίσκου από ένα κύλινδρο σε άλλον) είναι συνάρτηση του διαστήματος που διανύουν οι κεφαλές του δίσκου Μπλοκ που ανακτώνται / ζητούνται συνήθως το ένα μετά το άλλο, τοποθετούνται κοντά στο δίσκο (π.χ. στο ίδιο ή κάποιο κοντινό κύλινδρο). το seek που απαιτείται για ν' ανακτηθεί το επόμενο μπλοκ προσθέτει ελάχιστο επιπλεόν κόστος. Προσέξτε ότι όταν η διαχείριση των ελευθέρων μπλοκ γίνεται με χάρτες ψηφίων, διευκολύνεται η ανάθεση συνεχόμενων μπλοκ ενός αρχείου σε κοντινά μπλοκ του δίσκου. Πώς μπορεί να επιτευχθεί κάτι ανάλογο με «free lists» ; 72

73 Τοποθέτηση με βάση την περιστροφή δίσκου (Rotationally-optimal Placement) Στρατηγικές ανάθεσης ελεύθερων μπλοκ σε αρχεία προσπαθούν να μειώσουν το χρόνο περιστροφής (rotational delay). Έτσι, όταν συνεχόμενα μπλοκ ενός αρχείου τοποθετούνται στην ίδια τροχιά (track) (ή κύλινδρο) του δίσκου, υπάρχει ένα "κενό" το μέγεθος του οποίου εξαρτάται από το χρόνο που απαιτείται για την ικανοποίηση ενός get-disk-block-request. π.χ. αν μια ολόκληρη περιστροφή του δίσκου γίνεται σε 10 ms και από την στιγμή που ανακτάται ένα μπλοκ του δίσκου περνούν 3 ms πριν ο δίσκος λάβει την αίτηση για το επόμενο μπλοκ, τότε το μέγεθος του "κενού" είναι 3 ms. 73

74 Σχετική Τοποθέτηση inode και Data Σε παλιά UNIX F.S. τα μπλοκ των inodes τοποθετούνται στα αρχικά μπλοκ του δίσκου. απαιτείται μεγάλο seek μεταξύ του inode μπλοκ ενός αρχείου και των data μπλοκ του αρχείου. Μια λύση στο πρόβλημα αυτό βασίζεται στην έννοια των ομάδων κυλίνδρων (cylinder groups). Κάθε ομάδα αποτελείται από Ν συνεχόμενους κυλίνδρους και περιέχει inodes, μπλοκ για data, και την δική του free list. Οταν δημιουργείται ένα αρχείο επιλέγεται οποιοδήποτε inode από κάποια ομάδα και το σύστημα προσπαθεί τα data μπλοκ του αρχείου να βρίσκονται στην ίδια ομάδα με το inode μπλοκ. 74

Λειτουργικά Συστήματα Ι. Συστήματα Αρχείων (File Systems)

Λειτουργικά Συστήματα Ι. Συστήματα Αρχείων (File Systems) Λειτουργικά Συστήματα Ι Συστήματα Αρχείων (File Systems) Με μια ματιά File (Αρχείο) Περιλαμβάνει ένα σύνολο λογικά συσχετιζόμενων δεδομένων, μηπροσωρινής φύσης (συνήθως αποθηκευμένο σε δίσκους). File System

Διαβάστε περισσότερα

ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ ΙΙ - UNIX. Συστήματα Αρχείων. Διδάσκoντες: Καθ. Κ. Λαμπρινουδάκης Δρ. Α. Γαλάνη

ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ ΙΙ - UNIX. Συστήματα Αρχείων. Διδάσκoντες: Καθ. Κ. Λαμπρινουδάκης Δρ. Α. Γαλάνη ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ ΙΙ - UNIX Μάθημα: Λειτουργικά Συστήματα Συστήματα Αρχείων Διδάσκoντες: Καθ. Κ. Λαμπρινουδάκης (clam@unipi.gr) Δρ. Α. Γαλάνη (agalani@unipi.gr) Λειτουργικά Συστήματα 1 Μακροχρόνια

Διαβάστε περισσότερα

Εισαγωγή στα Λειτουργικά Συστήματα (Λ/Σ) Το UNIX και οι εντολές του Παρουσίαση 3

Εισαγωγή στα Λειτουργικά Συστήματα (Λ/Σ) Το UNIX και οι εντολές του Παρουσίαση 3 Λειτουργικά Συστήματα & Γλώσσες Προγραμματισμού Εισαγωγή στα Λειτουργικά Συστήματα (Λ/Σ) Το UNIX και οι εντολές του Παρουσίαση 3 1 Λειτουργικά Συστήματα & Γλώσσες Προγραμματισμού Διαφάνειες σύμφωνα με

Διαβάστε περισσότερα

Λειτουργικά Συστήματα (Λ/Σ)

Λειτουργικά Συστήματα (Λ/Σ) Λειτουργικά Συστήματα (Λ/Σ) Διαχείριση Αρχείων Βασίλης Σακκάς 11/12/2013 1 Διαχείριση Αρχείων 1 Μακρόχρονη αποθήκευση πληροφοριών 1. Αποθήκευση μεγάλου όγκου δεδομένων 2. Οι αποθηκευμένες πληροφορίες πρέπει

Διαβάστε περισσότερα

Εισαγωγή στα Λειτουργικά Συστήματα

Εισαγωγή στα Λειτουργικά Συστήματα Εισαγωγή στα Λειτουργικά Συστήματα Ενότητα 8: Αρχεία Ι Γεώργιος Φ. Φραγκούλης Τμήμα Ηλεκτρολόγων Μηχανικών Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης Creative Commons. Για εκπαιδευτικό

Διαβάστε περισσότερα

Λειτουργικά Συστήματα (ΙΙ) (διαχείριση αρχείων)

Λειτουργικά Συστήματα (ΙΙ) (διαχείριση αρχείων) Ιόνιο Πανεπιστήμιο Τμήμα Πληροφορικής Εισαγωγή στην Επιστήμη των Υπολογιστών 2015-16 Λειτουργικά Συστήματα (ΙΙ) (διαχείριση αρχείων) http://di.ionio.gr/~mistral/tp/csintro/ Μ.Στεφανιδάκης Λειτουργικό Σύστημα:

Διαβάστε περισσότερα

ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ Ι. Λειτουργικά Συστήματα Ι. Συστήματα Αρχείων. Επ. Καθ. Κ. Λαμπρινουδάκης

ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ Ι. Λειτουργικά Συστήματα Ι. Συστήματα Αρχείων. Επ. Καθ. Κ. Λαμπρινουδάκης ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ Ι Μάθημα: Λειτουργικά Συστήματα Ι Συστήματα Αρχείων Διδάσκων: Επ. Καθ. Κ. Λαμπρινουδάκης clam@unipi.gr 1 Μακροχρόνια Αποθήκευση Πληροφοριών 1. Δυνατότητα αποθήκευσης μεγάλων ποσοτήτων

Διαβάστε περισσότερα

Λειτουργικό Σύστημα: διαχείριση πόρων. Διαχείριση αρχείων. Τι είναι ένα αρχείο ; Λειτουργικά Συστήματα (ΙΙ) (διαχείριση αρχείων)

Λειτουργικό Σύστημα: διαχείριση πόρων. Διαχείριση αρχείων. Τι είναι ένα αρχείο ; Λειτουργικά Συστήματα (ΙΙ) (διαχείριση αρχείων) Ιόνιο Πανεπιστήμιο Τμήμα Πληροφορικής Εισαγωγή στην Επιστήμη των Υπολογιστών 2015-16 Λειτουργικό Σύστημα: διαχείριση πόρων Εισαγωγή Λειτουργικά Συστήματα (ΙΙ) (διαχείριση αρχείων) Επικοινωνία με χρήστη

Διαβάστε περισσότερα

ΙΑΧΕΙΡΙΣΗ ΑΡΧΕΙΩΝ Στέφανος Γκρίτζαλης Αναπληρωτής Καθηγητής Κωνσταντίνος Καραφασούλης ιδάσκων (Π 407) Μαγνητικοί ίσκοι Τα δεδοµένα αποθηκεύονται στο µαγνητικό φιλµ του δίσκου Ο δίσκος περιστρέφεται µε

Διαβάστε περισσότερα

ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ ΙΙ - UNIX. Συστήματα Αρχείων. Διδάσκoντες: Καθ. Κ. Λαμπρινουδάκης Δρ. Α. Γαλάνη

ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ ΙΙ - UNIX. Συστήματα Αρχείων. Διδάσκoντες: Καθ. Κ. Λαμπρινουδάκης Δρ. Α. Γαλάνη ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ ΙΙ - UNIX Μάθημα: Λειτουργικά Συστήματα Συστήματα Αρχείων Διδάσκoντες: Καθ. Κ. Λαμπρινουδάκης (clam@unipi.gr) Δρ. Α. Γαλάνη (agalani@unipi.gr) Λειτουργικά Συστήματα 1 Αρχεία με Χαρτογράφηση

Διαβάστε περισσότερα

Αποθήκευση και Οργάνωση αρχείων. Βάσεις Δεδομένων Μάθημα 2ο Διδάσκων: Μαρία Χαλκίδη

Αποθήκευση και Οργάνωση αρχείων. Βάσεις Δεδομένων Μάθημα 2ο Διδάσκων: Μαρία Χαλκίδη Αποθήκευση και Οργάνωση αρχείων Βάσεις Δεδομένων Μάθημα 2ο Διδάσκων: Μαρία Χαλκίδη Κατηγοριοποίηση των φυσικών μέσων αποθήκευσης Ταχύτητα με την οποία προσπελαύνονται τα δεδομένα Κόστος ανά μονάδα δεδομένων

Διαβάστε περισσότερα

Λειτουργικά Συστήματα Κεφάλαιο 2 Οργάνωση Συστήματος Αρχείων 2.1 Διαχείριση Αρχείων και Σύστημα Αρχείων(File System)

Λειτουργικά Συστήματα Κεφάλαιο 2 Οργάνωση Συστήματος Αρχείων 2.1 Διαχείριση Αρχείων και Σύστημα Αρχείων(File System) ..8 Κατανομή των αρχείων σε συσκευές Ακολουθείται κάποια λογική στην αποθήκευση των αρχείων:.αρχεία που χρησιμοποιούνται συχνά τοποθετούνται στους σκληρούς δίσκους που έχουν μεγάλη ταχύτητα πρόσβασης..αν

Διαβάστε περισσότερα

Λειτουργικά Συστήματα Ι. Καθηγήτρια Παπαδάκη Αναστασία

Λειτουργικά Συστήματα Ι. Καθηγήτρια Παπαδάκη Αναστασία Λειτουργικά Συστήματα Ι Καθηγήτρια Παπαδάκη Αναστασία 2013 1 - 2 - Κεφάλαιο 2 ο Δευτερεύουσα μνήμη Οι εύκαμπτοι μαγνητικοί δίσκοι (floppy disks) ή δισκέτες Οι σκληροί μαγνητικοί δίσκοι (hard disks) Οι

Διαβάστε περισσότερα

Λειτουργικό Σύστημα: διαχείριση πόρων. Τι είναι ένα αρχείο ; Διαχείριση αρχείων. Λειτουργικά Συστήματα (ΙΙ) (διαχείριση αρχείων)

Λειτουργικό Σύστημα: διαχείριση πόρων. Τι είναι ένα αρχείο ; Διαχείριση αρχείων. Λειτουργικά Συστήματα (ΙΙ) (διαχείριση αρχείων) Ιόνιο Πανεπιστήμιο Τμήμα Πληροφορικής Εισαγωγή στην Επιστήμη των Υπολογιστών 2018-19 Λειτουργικό Σύστημα: διαχείριση πόρων Εισαγωγή Λειτουργικά Συστήματα (ΙΙ) (διαχείριση αρχείων) Επικοινωνία με χρήστη

Διαβάστε περισσότερα

Εικονική Μνήμη (Virtual Μemory)

Εικονική Μνήμη (Virtual Μemory) ΗΥ 431 Αρχιτεκτονική Παραλλήλων Συστημάτων Διάλεξη 16 Εικονική Μνήμη (Virtual Μemory) Νίκος Μπέλλας Τμήμα Ηλεκτρολόγων Μηχανικών και Μηχανικών Η/Υ Απλό πείραμα int *data = malloc((1

Διαβάστε περισσότερα

Λειτουργικά Συστήματα. Τ.Ε.Ι. Ιονίων Νήσων Σχολή Διοίκησης και Οικονομίας - Λευκάδα

Λειτουργικά Συστήματα. Τ.Ε.Ι. Ιονίων Νήσων Σχολή Διοίκησης και Οικονομίας - Λευκάδα Λειτουργικά Συστήματα Τ.Ε.Ι. Ιονίων Νήσων Σχολή Διοίκησης και Οικονομίας - Λευκάδα Στέργιος Παλαμάς, Υλικό Μαθήματος «Λειτουργικά Συστήματα», 2015-2016 Κεφάλαιο 2: Σύστημα Αρχείων Τα προγράμματα που εκτελούνται

Διαβάστε περισσότερα

Εισαγωγή στην Πληροφορική

Εισαγωγή στην Πληροφορική Ανοικτά Ακαδημαϊκά Μαθήματα στο ΤΕΙ Ιονίων Νήσων Εισαγωγή στην Πληροφορική Ενότητα 8: Λειτουργικά Συστήματα Το περιεχόμενο του μαθήματος διατίθεται με άδεια Creative Commons εκτός και αν αναφέρεται διαφορετικά

Διαβάστε περισσότερα

Εικονική Μνήμη (Virtual Μemory)

Εικονική Μνήμη (Virtual Μemory) ΗΥ 232 Οργάνωση και Σχεδίαση Υπολογιστών Διάλεξη 16 Εικονική Μνήμη (Virtual Μemory) Νίκος Μπέλλας Τμήμα Ηλεκτρολόγων Μηχανικών και Μηχανικών Η/Υ Απλό πείραμα int *data = malloc((1

Διαβάστε περισσότερα

Συστήματα Αρχείων (Σ.Α.)

Συστήματα Αρχείων (Σ.Α.) Άδεια Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης Creative Commons. Για εκπαιδευτικό υλικό, όπως εικόνες, που υπόκειται σε άδεια χρήσης άλλου τύπου, αυτή πρέπει να αναφέρεται ρητώς. Συστήματα

Διαβάστε περισσότερα

Λειτουργικά Συστήματα

Λειτουργικά Συστήματα Λειτουργικά Συστήματα Κεφάλαιο 5ο Συστήματα Εισόδου - Εξόδου (INPUT/OUTPUT) 1 6.1 I/O Υλικό To Ι/Ο σύστημα αποτελεί ένα πολύ μεγάλο τμήμα ενός Λ.Σ. Συνήθως "διευθύνει" όλες τις συσκευές I/O (π.χ. δίσκους,

Διαβάστε περισσότερα

Λιβανός Γιώργος Εξάμηνο 2017Β

Λιβανός Γιώργος Εξάμηνο 2017Β Λιβανός Γιώργος Εξάμηνο 2017Β Υπολογιστικό σύστημα Υλικό (hardware) Λογισμικό (Software) Ολοκληρωμένα κυκλώματα, δίσκοι, οθόνη, κλπ. Λογισμικό συστήματος Προγράμματα εφαρμογών Χρειάζονται ένα συντονιστή!!!

Διαβάστε περισσότερα

Μάθημα 8: Διαχείριση Μνήμης

Μάθημα 8: Διαχείριση Μνήμης Μάθημα 8: Διαχείριση Μνήμης 8.1 Κύρια και δευτερεύουσα μνήμη Κάθε μονάδα ενός υπολογιστή που χρησιμεύει για τη μόνιμη ή προσωρινή αποθήκευση δεδομένων ανήκει στην μνήμη (memory) του υπολογιστή. Οι μνήμες

Διαβάστε περισσότερα

Λειτουργικά Συστήματα Η/Υ

Λειτουργικά Συστήματα Η/Υ Λειτουργικά Συστήματα Η/Υ Κεφάλαιο 8 «Ιδεατή Μνήμη» Διδάσκων: Δ. Λιαροκαπης Διαφάνειες: Π. Χατζηδούκας Ιδεατή Μνήμη Οργάνωση. Εισαγωγή. Ιδεατές και πραγματικές διευθύνσεις. Λογική οργάνωση. Τμηματοποίηση

Διαβάστε περισσότερα

Λειτουργικά Συστήματα Κεφάλαιο 2 Οργάνωση Συστήματος Αρχείων 2.1 Διαχείριση Αρχείων και Σύστημα Αρχείων(File System)

Λειτουργικά Συστήματα Κεφάλαιο 2 Οργάνωση Συστήματος Αρχείων 2.1 Διαχείριση Αρχείων και Σύστημα Αρχείων(File System) 2.1.1 Εισαγωγή στη διαχείριση αρχείων Οι Η/Υ αποθηκεύουν τα δεδομένα και τα επεξεργάζονται. Εφαρμογή Προγράμματος C:\Documents and Settings\user\Τα έγγραφά μου\leitourgika.doc Λ.Σ. File System Γι αυτό

Διαβάστε περισσότερα

Λειτουργικά Συστήματα (Λ/Σ)

Λειτουργικά Συστήματα (Λ/Σ) Λειτουργικά Συστήματα (Λ/Σ) Διαχείριση Μνήμης Βασίλης Σακκάς 6/12/2013 1 Διαχείριση Μνήμης 1 Το τμήμα του Λ/Σ που διαχειρίζεται τη μνήμη λέγεται Διαχειριστής Μνήμης (Memory manager). Καθήκον του είναι

Διαβάστε περισσότερα

ENOTHTA 8 IAXEIPIΣH KAI ΣYΣTHMATA APXEIΩN

ENOTHTA 8 IAXEIPIΣH KAI ΣYΣTHMATA APXEIΩN ENOTHTA 8 Περιεχόµενα 1. οµή αρχείων 2. Λειτουργίες επί των αρχείων 3. Oργάνωση αρχείων 4. Iδιοχαρακτηριστικά αρχείων 5. Kατάλογοι αρχείων 6. ιαχείριση του χώρου του δίσκου 7. Yλοποίηση αρχείων 8-1 1.

Διαβάστε περισσότερα

Λειτουργικά Συστήματα (Λ/Σ)

Λειτουργικά Συστήματα (Λ/Σ) Λειτουργικά Συστήματα (Λ/Σ) Βασικές Έννοιες Λειτουργικών Συστημάτων Βασίλης Σακκάς 13/11/2013 1 ΒασικέςΈννοιεςΛ/Σ Η επικοινωνία μεταξύ Λ/Σ και των προγραμμάτων του χρήστη γίνεται μέσω του συνόλου των «εκτεταμένων

Διαβάστε περισσότερα

Εισαγωγή στα Λειτουργικά Συστήματα

Εισαγωγή στα Λειτουργικά Συστήματα Εισαγωγή στα Λειτουργικά Συστήματα Ενότητα 9: Αρχεία ΙΙ Γεώργιος Φ. Φραγκούλης Τμήμα Ηλεκτρολόγων Μηχανικών Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης Creative Commons. Για εκπαιδευτικό

Διαβάστε περισσότερα

Κεφάλαιο 5. Κεφ. 5 Λειτουργικά Συστήματα 1

Κεφάλαιο 5. Κεφ. 5 Λειτουργικά Συστήματα 1 Λειτουργικά Συστήματα Κεφάλαιο 5 Κεφ. 5 Λειτουργικά Συστήματα 1 Διαχείριση Κεντρικής Μνήμης Στην Κεντρική (κύρια) Μνήμη του Η/Υ αποθηκεύονται ανα πάσα στιγμή όλα τα προγράμματα που εκτελούνται στην ΚΜΕ

Διαβάστε περισσότερα

Μάθημα 2 ο ΟΡΓΑΝΩΣΗ ΣΥΣΤΗΜΑΤΟΣ ΑΡΧΕΙΩΝ

Μάθημα 2 ο ΟΡΓΑΝΩΣΗ ΣΥΣΤΗΜΑΤΟΣ ΑΡΧΕΙΩΝ Μάθημα 2 ο ΟΡΓΑΝΩΣΗ ΣΥΣΤΗΜΑΤΟΣ ΑΡΧΕΙΩΝ Εισαγωγή στη Διαχείριση Αρχείων Οι Η/Υ θα ήταν άχρηστοι, αν δεν μπορούσαν να αποθηκεύσουν τα δεδομένα που επεξεργάζονται για μελλοντική χρήση. Τα δεδομένα αποθηκεύονται

Διαβάστε περισσότερα

Διαχείριση αρχείων. Τυπικές πράξεις με αρχεία. Δομή και οργάνωση αρχείων

Διαχείριση αρχείων. Τυπικές πράξεις με αρχεία. Δομή και οργάνωση αρχείων ΕΠΛ222: Λειτουργικά Συστήματα (μετάφραση στα ελληνικά των διαφανειών του βιβλίου Operating Systems: Internals and Design Principles, 8/E, William Stallings) Ενότητα 10 (Κεφάλαιο 12) Διαχείριση και Συστήματα

Διαβάστε περισσότερα

ΒΑΣΕΙΣ Ε ΟΜΕΝΩΝ. Επίπεδα Αφαίρεσης Σ Β. Αποθήκευση Εγγραφών - Ευρετήρια. ρ. Βαγγελιώ Καβακλή ΠΑΝΕΠΙΣΤΗΜΙΟ ΑΙΓΑΙΟΥ, Επίπεδο Όψεων.

ΒΑΣΕΙΣ Ε ΟΜΕΝΩΝ. Επίπεδα Αφαίρεσης Σ Β. Αποθήκευση Εγγραφών - Ευρετήρια. ρ. Βαγγελιώ Καβακλή ΠΑΝΕΠΙΣΤΗΜΙΟ ΑΙΓΑΙΟΥ, Επίπεδο Όψεων. ΒΑΣΕΙΣ Ε ΟΜΕΝΩΝ Χειµερινό Εξάµηνο 2002 Αποθήκευση Εγγραφών - Ευρετήρια ρ Βαγγελιώ Καβακλή ΠΑΝΕΠΙΣΤΗΜΙΟ ΑΙΓΑΙΟΥ, ΤΜΗΜΑ ΠΟΛΙΤΙΣΜΙΚΗΣ ΤΕΧΝΟΛΟΓΙΑΣ ΚΑΙ ΕΠΙΚΟΙΝΩΝΙΑΣ Επίπεδα Αφαίρεσης Σ Β Επίπεδο Όψεων Όψη Όψη

Διαβάστε περισσότερα

Εισαγωγή στα Λειτουργικά

Εισαγωγή στα Λειτουργικά Εισαγωγή στα Λειτουργικά Συστήματα Ενότητα 9: Αρχεία ΙΙ Γεώργιος Φ. Φραγκούλης Τμήμα Ηλεκτρολόγων Μηχανικών Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σεάδειες χρήσης Creative Commons. Για εκπαιδευτικό

Διαβάστε περισσότερα

Διαχείριση Κύριας Μνήμης

Διαχείριση Κύριας Μνήμης Εθνικό Μετσόβιο Πολυτεχνείο Σχολή Ηλεκτρολόγων Μηχ. και Μηχανικών Υπολογιστών Εργαστήριο Υπολογιστικών Συστημάτων Διαχείριση Κύριας Μνήμης Λειτουργικά Συστήματα Υπολογιστών 7ο Εξάμηνο, 2016-2017 Διαχείριση

Διαβάστε περισσότερα

Κεφ.11: Ευρετήρια και Κατακερματισμός

Κεφ.11: Ευρετήρια και Κατακερματισμός Κεφ.11: Ευρετήρια και Κατακερματισμός Database System Concepts, 6 th Ed. See www.db-book.com for conditions on re-use Κεφ. 11: Ευρετήρια-Βασική θεωρία Μηχανισμοί ευρετηρίου χρησιμοποιούνται για την επιτάχυνση

Διαβάστε περισσότερα

Αποθήκευση Δεδομένων. Βάσεις Δεδομένων Ευαγγελία Πιτουρά 1

Αποθήκευση Δεδομένων. Βάσεις Δεδομένων Ευαγγελία Πιτουρά 1 Αποθήκευση Δεδομένων Βάσεις Δεδομένων 2017-2018 1 ΣΔΒΔ SQL ΣΔΒΔ ΒΑΣΗ ΔΕΔΟΜΕΝΩΝ Τυπικά, Κάθε σχέση (το στιγμιότυπο της) αποθηκεύεται σε ένα αρχείο Βάσεις Δεδομένων 2017-2018 2 Δομή ενός ΣΔΒΔ (πιο αναλυτικά)

Διαβάστε περισσότερα

ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ. Συστήματα Αρχείων. Διδάσκoντες: Καθ. Κ. Λαμπρινουδάκης Δρ. Α. Γαλάνη

ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ. Συστήματα Αρχείων. Διδάσκoντες: Καθ. Κ. Λαμπρινουδάκης Δρ. Α. Γαλάνη ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ Μάθημα: Λειτουργικά Συστήματα Συστήματα Αρχείων Διδάσκoντες: Καθ. Κ. Λαμπρινουδάκης (clam@unipi.gr) Δρ. Α. Γαλάνη (agalani@unipi.gr) Λειτουργικά Συστήματα 1 Χρήση Κρυφής Μνήμης (Cache)

Διαβάστε περισσότερα

Ιεραρχία Μνήμης. Εικονική μνήμη (virtual memory) Επεκτείνοντας την Ιεραρχία Μνήμης. Εικονική Μνήμη. Μ.Στεφανιδάκης

Ιεραρχία Μνήμης. Εικονική μνήμη (virtual memory) Επεκτείνοντας την Ιεραρχία Μνήμης. Εικονική Μνήμη. Μ.Στεφανιδάκης Ιόνιο Πανεπιστήμιο Τμήμα Πληροφορικής ρχιτεκτονική Υπολογιστών 2016-17 Εικονική Μνήμη (και ο ρόλος της στην ιεραρχία μνήμης) http://mixstef.github.io/courses/comparch/ Μ.Στεφανιδάκης Δευτερεύουσα μνήμη

Διαβάστε περισσότερα

Υποστήριξη Λ.Σ. ΜΥΥ-106 Εισαγωγή στους Η/Υ και στην Πληροφορική

Υποστήριξη Λ.Σ. ΜΥΥ-106 Εισαγωγή στους Η/Υ και στην Πληροφορική Υποστήριξη Λ.Σ. ΜΥΥ-106 Εισαγωγή στους Η/Υ και στην Πληροφορική Επικοινωνία με περιφερειακά Αρτηρία εισόδου-εξόδου, διευθύνσεις, εγγραφές αναγνώσεις Διαδικασία εξόδου έλεγχος κατάστασης περιφερειακού περίμενε

Διαβάστε περισσότερα

Σύστηµα Αρχείων και Καταλόγων

Σύστηµα Αρχείων και Καταλόγων ΕΠΛ 003 ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΕΠΙΣΤΗΜΗ ΤΗΣ ΠΛΗΡΟΦΟΡΙΚΗΣ & ΠΛΗΡΟΦΟΡΙΑΚΑ ΣΥΣΤΗΜΑΤΑ Σύστηµα Αρχείων και Καταλόγων ιάλεξη 7 (Κεφάλαιο 11 του βιβλίου) Στόχοι Κεφαλαίου Περιγραφή της έννοιας του αρχείου, συστήµατος

Διαβάστε περισσότερα

Σύστηµα Αρχείων File System

Σύστηµα Αρχείων File System Σύστηµα Αρχείων File System Περίληψη Το σύστηµα αρχείων από την σκοπιά του χρήστη Ονοµασία αρχείων και επιτρεπόµενες λειτουργίες Κατάλογος αρχείων (directories) Το σύστηµα αρχείου από την σκοπιά του σχεδιαστή

Διαβάστε περισσότερα

ΣΥΣΚΕΥΕΣ ΑΠΟΘΗΚΕΥΣΗΣ (ΜΝΗΜΗ)

ΣΥΣΚΕΥΕΣ ΑΠΟΘΗΚΕΥΣΗΣ (ΜΝΗΜΗ) ΣΥΣΚΕΥΕΣ ΑΠΟΘΗΚΕΥΣΗΣ (ΜΝΗΜΗ) Συσκευές αποθήκευσης Ένας υπολογιστής προκειµένου να αποθηκεύσει δεδοµένα χρησιµοποιεί δύο τρόπους αποθήκευσης: Την Κύρια Μνήµη Τις συσκευές µόνιµης αποθήκευσης (δευτερεύουσα

Διαβάστε περισσότερα

Κεφάλαιο 7 Ιεραρχία Μνήμης (Memory Hierarchy)

Κεφάλαιο 7 Ιεραρχία Μνήμης (Memory Hierarchy) Κεφάλαιο 7 Ιεραρχία Μνήμης (Memory Hierarchy) 1 Συστήματα Μνήμης Η οργάνωση του συστήματος μνήμης επηρεάζει τη λειτουργία και απόδοση ενός μικροεπεξεργαστή: Διαχείριση μνήμης και περιφερειακών (Ι/Ο) απότολειτουργικόσύστημα

Διαβάστε περισσότερα

Λειτουργικά Συστήματα (διαχείριση επεξεργαστή, μνήμης και Ε/Ε)

Λειτουργικά Συστήματα (διαχείριση επεξεργαστή, μνήμης και Ε/Ε) Ιόνιο Πανεπιστήμιο Τμήμα Πληροφορικής Εισαγωγή στην Επιστήμη των Υπολογιστών 2015-16 Λειτουργικά Συστήματα (διαχείριση επεξεργαστή, και Ε/Ε) http://di.ionio.gr/~mistral/tp/csintro/ Μ.Στεφανιδάκης Τι είναι

Διαβάστε περισσότερα

Τι είναι ένα λειτουργικό σύστημα (ΛΣ); Μια άλλη απεικόνιση. Το Λειτουργικό Σύστημα ως μέρος του υπολογιστή

Τι είναι ένα λειτουργικό σύστημα (ΛΣ); Μια άλλη απεικόνιση. Το Λειτουργικό Σύστημα ως μέρος του υπολογιστή Ιόνιο Πανεπιστήμιο Τμήμα Πληροφορικής Εισαγωγή στην Επιστήμη των Υπολογιστών 2014-15 Λειτουργικά Συστήματα (διαχείριση επεξεργαστή, και Ε/Ε) http://di.ionio.gr/~mistral/tp/csintro/ Μ.Στεφανιδάκης Τι είναι

Διαβάστε περισσότερα

ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ ΕΙΣΑΓΩΓΗ

ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ ΕΙΣΑΓΩΓΗ ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ Διάλεξη 1 ΕΙΣΑΓΩΓΗ Οι διαφάνειες έχουν καθαρά επικουρικό χαρακτήρα στην παρουσίαση των διαλέξεων του μαθήματος. Δεν αντικαθιστούν σε καμία περίπτωση την παρακάτω βιβλιογραφία που

Διαβάστε περισσότερα

Εργαστήριο Λειτουργικών Συστημάτων 8o εξάμηνο, Ροή Υ, ΗΜΜΥ

Εργαστήριο Λειτουργικών Συστημάτων 8o εξάμηνο, Ροή Υ, ΗΜΜΥ ΕΘΝΙΚΟ ΜΕΤΣΟΒΙΟ ΠΟΛΥΤΕΧΝΕΙΟ Σχολή Ηλεκτρολόγων Μηχανικών και Μηχανικών Υπολογιστών Εργαστήριο Λειτουργικών Συστημάτων 8o εξάμηνο, Ροή Υ, ΗΜΜΥ Σχεδιασμός και υλοποίηση υποδομής σημείωσης διεργασιών στον

Διαβάστε περισσότερα

Λειτουργικά Συστήματα. Τ.Ε.Ι. Ιονίων Νήσων Σχολή Διοίκησης και Οικονομίας - Λευκάδα

Λειτουργικά Συστήματα. Τ.Ε.Ι. Ιονίων Νήσων Σχολή Διοίκησης και Οικονομίας - Λευκάδα Λειτουργικά Συστήματα Τ.Ε.Ι. Ιονίων Νήσων Σχολή Διοίκησης και Οικονομίας - Λευκάδα Στέργιος Παλαμάς, Υλικό Μαθήματος «Λειτουργικά Συστήματα», 2015-2016 Εργαστηριακή Άσκηση 2: Σύστημα Αρχείων Τα προγράμματα

Διαβάστε περισσότερα

Αποθήκευση εδομένων. ομή ενός Σ Β. Εισαγωγή Το «εσωτερικό» ενός ΜΕΡΟΣ Β : Η (εσωτερική) αρχιτεκτονική ενός Σ Β είναι σε επίπεδα

Αποθήκευση εδομένων. ομή ενός Σ Β. Εισαγωγή Το «εσωτερικό» ενός ΜΕΡΟΣ Β : Η (εσωτερική) αρχιτεκτονική ενός Σ Β είναι σε επίπεδα Αποθήκευση εδομένων Βάσεις Δεδομένων 2009-2010 Ευαγγελία Πιτουρά 1 ΜΕΡΟΣ Β : Εισαγωγή Το «εσωτερικό» ενός Σ Β ομή ενός Σ Β Η (εσωτερική) αρχιτεκτονική ενός Σ Β είναι σε επίπεδα Τυπικά, κάθε σχέση σε ένα

Διαβάστε περισσότερα

ΔΙΑΧΕΙΡΙΣΗ ΜΝΗΜΗΣ. Λειτουργικά Συστήματα Ι. Διδάσκων: Καθ. Κ. Λαμπρινουδάκης ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ Ι

ΔΙΑΧΕΙΡΙΣΗ ΜΝΗΜΗΣ. Λειτουργικά Συστήματα Ι. Διδάσκων: Καθ. Κ. Λαμπρινουδάκης ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ Ι ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ Ι Μάθημα: Λειτουργικά Συστήματα Ι ΔΙΑΧΕΙΡΙΣΗ ΜΝΗΜΗΣ Διδάσκων: Καθ. Κ. Λαμπρινουδάκης clam@unipi.gr 1 ΕΙΣΑΓΩΓΗ Μνήμη : Πόρος ζωτικής σημασίας του οποίου η διαχείριση απαιτεί ιδιαίτερη

Διαβάστε περισσότερα

1ο Εργαστήριο Σύστημα Αρχείων

1ο Εργαστήριο Σύστημα Αρχείων ΤΕΙ ΔΥΤΙΚΗΣ ΕΛΛΑΔΑΣ Τμήμα Μηχανικών Πληροφορικής ΤΕ Λειτουργικά Συστήματα (Εργαστήριο) Διδάσκων: I. Τσακνάκης 1ο Εργαστήριο Σύστημα Αρχείων ΒΑΣΙΚΕΣ ΕΝΝΟΙΕΣ - ABSOLUTE KAI RELATIVE PATH Λειτουργικό Σύστημα

Διαβάστε περισσότερα

Τμήμα Οικιακής Οικονομίας και Οικολογίας. Οργάνωση Υπολογιστών

Τμήμα Οικιακής Οικονομίας και Οικολογίας. Οργάνωση Υπολογιστών Οργάνωση Υπολογιστών Υπολογιστικό Σύστημα Λειτουργικό Σύστημα Αποτελεί τη διασύνδεση μεταξύ του υλικού ενός υπολογιστή και του χρήστη (προγραμμάτων ή ανθρώπων). Είναι ένα πρόγραμμα (ή ένα σύνολο προγραμμάτων)

Διαβάστε περισσότερα

3. Σελιδοποίηση μνήμης 4. Τμηματοποίηση χώρου διευθύνσεων

3. Σελιδοποίηση μνήμης 4. Τμηματοποίηση χώρου διευθύνσεων ΑΡΧΙΤΕΚΤΟΝΙΚΗ ΥΠΟΛΟΓΙΣΤΩΝ MHXANIKOI Η/Υ ΚΑΙ ΠΛΗΡΟΦΟΡΙΚΗΣ ΕΠΙΠΕ Ο ΜΗΧΑΝΗΣ ΛΕΙΤΟΥΡΓΙΚΟΥ ΣΥΣΤΗΜΑΤΟΣ Γ. Τσιατούχας 6 ο Κεφάλαιο 1. Επίπεδο OSM 2. Εικονική μνήμη ιάρθρωση 3. Σελιδοποίηση μνήμης 4. Τμηματοποίηση

Διαβάστε περισσότερα

Εικονική Μνήμη (virtual memory)

Εικονική Μνήμη (virtual memory) Εικονική Μνήμη (virtual memory) Πολλά προγράμματα εκτελούνται ταυτόχρονα σε ένα υπολογιστή Η συνολική μνήμη που απαιτείται είναι μεγαλύτερη από το μέγεθος της RAM Αρχή τοπικότητας (η μνήμη χρησιμοποιείται

Διαβάστε περισσότερα

Τα δεδομένα (περιεχόμενο) μιας βάσης δεδομένων αποθηκεύεται στο δίσκο

Τα δεδομένα (περιεχόμενο) μιας βάσης δεδομένων αποθηκεύεται στο δίσκο Κατακερματισμός 1 Αποθήκευση εδομένων (σύνοψη) Τα δεδομένα (περιεχόμενο) μιας βάσης δεδομένων αποθηκεύεται στο δίσκο Παραδοσιακά, μία σχέση (πίνακας/στιγμιότυπο) αποθηκεύεται σε ένα αρχείο Αρχείο δεδομένων

Διαβάστε περισσότερα

Εξωτερική Αναζήτηση. Ιεραρχία Μνήμης Υπολογιστή. Εξωτερική Μνήμη. Εσωτερική Μνήμη. Κρυφή Μνήμη (Cache) Καταχωρητές (Registers) μεγαλύτερη ταχύτητα

Εξωτερική Αναζήτηση. Ιεραρχία Μνήμης Υπολογιστή. Εξωτερική Μνήμη. Εσωτερική Μνήμη. Κρυφή Μνήμη (Cache) Καταχωρητές (Registers) μεγαλύτερη ταχύτητα Ιεραρχία Μνήμης Υπολογιστή Εξωτερική Μνήμη Εσωτερική Μνήμη Κρυφή Μνήμη (Cache) μεγαλύτερη χωρητικότητα Καταχωρητές (Registers) Κεντρική Μονάδα (CPU) μεγαλύτερη ταχύτητα Πολλές σημαντικές εφαρμογές διαχειρίζονται

Διαβάστε περισσότερα

Δυναμικός Κατακερματισμός. Βάσεις Δεδομένων Ευαγγελία Πιτουρά 1

Δυναμικός Κατακερματισμός. Βάσεις Δεδομένων Ευαγγελία Πιτουρά 1 Δυναμικός Κατακερματισμός Βάσεις Δεδομένων 2017-2018 1 Κατακερματισμός Πρόβλημα στατικού κατακερματισμού: Έστω Μ κάδους και r εγγραφές ανά κάδο - το πολύ Μ * r εγγραφές (αλλιώς μεγάλες αλυσίδες υπερχείλισης)

Διαβάστε περισσότερα

Λειτουργικά Συστήματα (ΗΥ222)

Λειτουργικά Συστήματα (ΗΥ222) Λειτουργικά Συστήματα (ΗΥ222) Διάλεξη 14: Οργάνωση Συστημάτων Αρχείων Αρχεία: Ονόματα Θέσεων στο Δίσκο Οπτική του χρήστη: Μια ακολουθία από bytes με συγκεκριμένο όνομα 2 oslab.c int main() { Οπτική του

Διαβάστε περισσότερα

Αρχιτεκτονική Υπολογιστών

Αρχιτεκτονική Υπολογιστών Τμήμα Μηχανικών Πληροφορικής & Τηλεπικοινωνιών Αρχιτεκτονική Υπολογιστών Ενότητα 13: Λειτουργίες Αρχείων Δρ. Μηνάς Δασυγένης mdasyg@ieee.org Εργαστήριο Ψηφιακών Συστημάτων και Αρχιτεκτονικής Υπολογιστών

Διαβάστε περισσότερα

Εισαγωγή στα Λειτουργικά Συστήματα

Εισαγωγή στα Λειτουργικά Συστήματα Εισαγωγή στα Λειτουργικά Συστήματα Ενότητα 6: Διαχείριση Μνήμης Ι Γεώργιος Φ. Φραγκούλης Τμήμα Ηλεκτρολόγων Μηχανικών Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης Creative Commons.

Διαβάστε περισσότερα

ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ. Συστήματα αρχείων, δίσκοι

ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ. Συστήματα αρχείων, δίσκοι ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ Συστήματα αρχείων, δίσκοι Υλικό από: Tanenbaum, Modern Operating Systems,Structured Computer Organization Stallings, Operating Systems: Internals and Design Principles. Silberschatz,

Διαβάστε περισσότερα

Προηγμένοι Μικροεπεξεργαστές. Paging & Segmentation

Προηγμένοι Μικροεπεξεργαστές. Paging & Segmentation Προηγμένοι Μικροεπεξεργαστές Paging & Segmentation Segmentation Τεχνική για σπάσουμε την μνήμη σε λογικά κομμάτια Κάθε κομμάτι αποθηκεύει πληροφορία σχετική με data segments for each process code segments

Διαβάστε περισσότερα

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Κλάσεις και Αντικείμενα Αναφορές

ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ. Κλάσεις και Αντικείμενα Αναφορές ΤΕΧΝΙΚΕΣ ΑΝΤΙΚΕΙΜΕΝΟΣΤΡΑΦΟΥΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ Κλάσεις και Αντικείμενα Αναφορές Μαθήματα από το lab Υπενθύμιση: Η άσκηση ζητούσε να υλοποιήσετε μία κλάση vector που να διαχειρίζεται διανύσματα οποιουδήποτε

Διαβάστε περισσότερα

Κεφάλαιο 3.1: Λειτουργικά Συστήματα. Επιστήμη ΗΥ Κεφ. 3.1 Καραμαούνας Πολύκαρπος

Κεφάλαιο 3.1: Λειτουργικά Συστήματα. Επιστήμη ΗΥ Κεφ. 3.1 Καραμαούνας Πολύκαρπος Κεφάλαιο 3.1: Λειτουργικά Συστήματα 1 3.1.1 Λογισμικό και Υπολογιστικό Σύστημα Ένα σύγχρονο υπολογιστικό σύστημα αποτελείται από: το υλικό: τα ηλεκτρονικά μέρη του υπολογιστή και το λογισμικό: το σύνολο

Διαβάστε περισσότερα

Εικονική Μνήμη (1/2)

Εικονική Μνήμη (1/2) Εθνικό Μετσόβιο Πολυτεχνείο Σχολή Ηλεκτρολόγων Μηχ. και Μηχανικών Υπολογιστών Εργαστήριο Υπολογιστικών Συστημάτων Εικονική Μνήμη (1/2) Λειτουργικά Συστήματα Υπολογιστών 7ο Εξάμηνο, 2016-2017 Εικονική Μνήμη

Διαβάστε περισσότερα

Αρχιτεκτονική Υπολογιστών

Αρχιτεκτονική Υπολογιστών ΠΑΝΕΠΙΣΤΗΜΙΟ ΙΩΑΝΝΙΝΩΝ ΑΝΟΙΚΤΑ ΑΚΑΔΗΜΑΪΚΑ ΜΑΘΗΜΑΤΑ Αρχιτεκτονική Υπολογιστών Υποσύστημα μνήμης Διδάσκων: Επίκουρος Καθηγητής Αριστείδης Ευθυμίου Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες

Διαβάστε περισσότερα

Εισαγωγή στην επιστήμη των υπολογιστών. Οργάνωση εδομένων Κεφάλαιο 11ο ομές εδομένων

Εισαγωγή στην επιστήμη των υπολογιστών. Οργάνωση εδομένων Κεφάλαιο 11ο ομές εδομένων Εισαγωγή στην επιστήμη των υπολογιστών Οργάνωση εδομένων Κεφάλαιο 11ο ομές εδομένων 1 ομή εδομένων Μια δομή δεδομένων (data structure) χρησιμοποιεί μια συλλογή από σχετικές μεταξύ τους μεταβλητές, οι οποίες

Διαβάστε περισσότερα

Ιόνιο Πανεπιστήμιο Τμήμα Πληροφορικής Αρχιτεκτονική Υπολογιστών Εικονική Μνήμη. (και ο ρόλος της στην ιεραρχία μνήμης)

Ιόνιο Πανεπιστήμιο Τμήμα Πληροφορικής Αρχιτεκτονική Υπολογιστών Εικονική Μνήμη. (και ο ρόλος της στην ιεραρχία μνήμης) Ιόνιο Πανεπιστήμιο Τμήμα Πληροφορικής Αρχιτεκτονική Υπολογιστών 2011-12 Εικονική (και ο ρόλος της στην ιεραρχία μνήμης) http://di.ionio.gr/~mistral/tp/comparch/ Μ.Στεφανιδάκης Ιεραρχία η νέα τάση: [2011]

Διαβάστε περισσότερα

Δυναμικός Κατακερματισμός. Βάσεις Δεδομένων Ευαγγελία Πιτουρά 1

Δυναμικός Κατακερματισμός. Βάσεις Δεδομένων Ευαγγελία Πιτουρά 1 Δυναμικός Κατακερματισμός 1 Κατακερματισμός Τι αποθηκεύουμε στους κάδους; Στα παραδείγματα δείχνουμε μόνο την τιμή του πεδίου κατακερματισμού Την ίδια την εγγραφή (ως τρόπος οργάνωσης αρχείου) μέγεθος

Διαβάστε περισσότερα

Οργάνωση Υπολογιστών (IΙI)

Οργάνωση Υπολογιστών (IΙI) Ιόνιο Πανεπιστήμιο Τμήμα Πληροφορικής Εισαγωγή στην Επιστήμη των Υπολογιστών 2016-17 Οργάνωση Υπολογιστών (IΙI) (συσκευές εισόδου-εξόδου) http://mixstef.github.io/courses/csintro/ Μ.Στεφανιδάκης Ένα τυπικό

Διαβάστε περισσότερα

Λειτουργικά Συστήματα Ι. Συστήματα Εισόδου/Εξόδου (I/O --- Input/Output)

Λειτουργικά Συστήματα Ι. Συστήματα Εισόδου/Εξόδου (I/O --- Input/Output) Λειτουργικά Συστήματα Ι Συστήματα Εισόδου/Εξόδου (I/O --- Input/Output) I/O Hardware (Υλικό Ε/Ε) Το σύστημα Ι/Ο αποτελεί ένα πολύ μεγάλο τμήμα ενός Λ.Σ. Συνήθως "διευθύνει" όλες τις συσκευές I/O (π.χ.,

Διαβάστε περισσότερα

ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ Ι ΔΙΑΧΕΙΡΙΣΗ ΜΝΗΜΗΣ. Διδάσκοντες: Καθ. Κ. Λαμπρινουδάκης Δρ. Α. Γαλάνη Λειτουργικά Συστήματα

ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ Ι ΔΙΑΧΕΙΡΙΣΗ ΜΝΗΜΗΣ. Διδάσκοντες: Καθ. Κ. Λαμπρινουδάκης Δρ. Α. Γαλάνη Λειτουργικά Συστήματα ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ Ι Μάθημα: ΔΙΑΧΕΙΡΙΣΗ ΜΝΗΜΗΣ Διδάσκοντες: Καθ. Κ. Λαμπρινουδάκης (clam@unipi.gr) Δρ. Α. Γαλάνη (agalani@unipi.gr) 1 ΕΙΣΑΓΩΓΗ Μνήμη : Πόρος ζωτικής σημασίας του οποίου η διαχείριση

Διαβάστε περισσότερα

Λειτουργικά Συστήματα

Λειτουργικά Συστήματα 1 Ελληνική Δημοκρατία Τεχνολογικό Εκπαιδευτικό Ίδρυμα Ηπείρου Λειτουργικά Συστήματα Ενότητα 9 : Ιδεατή Μνήμη 1/2 Δημήτριος Λιαροκάπης 2 Ανοιχτά Ακαδημαϊκά Μαθήματα στο ΤΕΙ Ηπείρου Τμήμα Μηχανικών Πληροφορικής

Διαβάστε περισσότερα

Διαχείριση Μνήμης (Memory Management)

Διαχείριση Μνήμης (Memory Management) Διαχείριση Μνήμης (Memory Management) Εισαγωγή Βασικές έννοιες και μοντέλο εκτέλεσης Εναλλαγή (swapping) Ανάθεση σε συνεχόμενα τμήματα (contiguous allocation) Σελιδοποίηση (paging) Τμηματοποίηση (segmentation)

Διαβάστε περισσότερα

ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ Ι. Λειτουργικά Συστήματα Ι ΔΙΑΧΕΙΡΙΣΗ ΜΝΗΜΗΣ. Επ. Καθ. Κ. Λαμπρινουδάκης

ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ Ι. Λειτουργικά Συστήματα Ι ΔΙΑΧΕΙΡΙΣΗ ΜΝΗΜΗΣ. Επ. Καθ. Κ. Λαμπρινουδάκης ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ Ι Μάθημα: Λειτουργικά Συστήματα Ι ΔΙΑΧΕΙΡΙΣΗ ΜΝΗΜΗΣ Διδάσκων: Επ. Καθ. Κ. Λαμπρινουδάκης clam@unipi.gr 1 ΕΙΣΑΓΩΓΗ Μνήμη : Πόρος ζωτικής σημασίας του οποίου η διαχείριση απαιτεί ιδιαίτερη

Διαβάστε περισσότερα

Πληροφορική 2. Δομές δεδομένων και αρχείων

Πληροφορική 2. Δομές δεδομένων και αρχείων Πληροφορική 2 Δομές δεδομένων και αρχείων 1 2 Δομή Δεδομένων (data structure) Δομή δεδομένων είναι μια συλλογή δεδομένων που έχουν μεταξύ τους μια συγκεκριμένη σχέση Παραδείγματα δομών δεδομένων Πίνακες

Διαβάστε περισσότερα

Δυναμικός Κατακερματισμός. Βάσεις Δεδομένων Ευαγγελία Πιτουρά 1

Δυναμικός Κατακερματισμός. Βάσεις Δεδομένων Ευαγγελία Πιτουρά 1 Δυναμικός Κατακερματισμός Βάσεις Δεδομένων 2013-2014 Ευαγγελία Πιτουρά 1 Κατακερματισμός Τι αποθηκεύουμε στους κάδους; Στα παραδείγματα δείχνουμε μόνο την τιμή του πεδίου κατακερματισμού Την ίδια την εγγραφή

Διαβάστε περισσότερα

Οργάνωση ενός σύγχρονου Υπολογιστικού Συστήματος ή Ηλεκτρονικού Υπολογιστή (Η/Υ) Τα σύγχρονα συστήματα Η/Υ έχουν την παρακάτω οργάνωση:

Οργάνωση ενός σύγχρονου Υπολογιστικού Συστήματος ή Ηλεκτρονικού Υπολογιστή (Η/Υ) Τα σύγχρονα συστήματα Η/Υ έχουν την παρακάτω οργάνωση: Οργάνωση ενός σύγχρονου Υπολογιστικού Συστήματος ή Ηλεκτρονικού Υπολογιστή (Η/Υ) Τα σύγχρονα συστήματα Η/Υ έχουν την παρακάτω οργάνωση: Page 1 Χρήστης Εφαρμογή Λειτουργικό Σύστημα Υλικό Γνωστά Λειτουργικά

Διαβάστε περισσότερα

Επιπλέον διδακτικό υλικό κρυφών μνημών: set-associative caches, πολιτικές αντικατάστασης, χειρισμός εγγραφών

Επιπλέον διδακτικό υλικό κρυφών μνημών: set-associative caches, πολιτικές αντικατάστασης, χειρισμός εγγραφών ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΡΗΤΗΣ Οργάνωση Υπολογιστών Επιπλέον διδακτικό υλικό κρυφών μνημών: set-associative caches, πολιτικές αντικατάστασης, χειρισμός εγγραφών Μανόλης Γ.Η. Κατεβαίνης Τμήμα Επιστήμης

Διαβάστε περισσότερα

Εισαγωγή στην Πληροφορική

Εισαγωγή στην Πληροφορική Εθνικό Μετσόβιο Πολυτεχνείο Σχολή Αγρονόµων Τοπογράφων Μηχανικών Εισαγωγή στην Πληροφορική Αστροφυσικός Αναπλ. Καθηγητής ΕΜΠ romylos@survey.ntua.gr Λειτουργικά συστήµατα, διεργασίες και δροµολόγηση Σύνδεση

Διαβάστε περισσότερα

Πανεπιςτήμιο Πελοποννήςου Τμήμα Επιςτήμησ και Τεχνολογίασ Τηλεπικοινωνιών. Λειτουργικά Συςτήματα Προγραμματιςμόσ Συςτήματοσ.

Πανεπιςτήμιο Πελοποννήςου Τμήμα Επιςτήμησ και Τεχνολογίασ Τηλεπικοινωνιών. Λειτουργικά Συςτήματα Προγραμματιςμόσ Συςτήματοσ. Πανεπιςτήμιο Πελοποννήςου Τμήμα Επιςτήμησ και Τεχνολογίασ Τηλεπικοινωνιών Λειτουργικά Συςτήματα Προγραμματιςμόσ Συςτήματοσ Συςτήματα Αρχείων Μπλοκ Τα αρχεύα δεν αποθηκεύονται ςτο δύςκο χύμα, αλλϊ ςε μπλοκ

Διαβάστε περισσότερα

PROXY SERVER. Άριστη πύλη διαχωρισμού μεταξύ του εσωτερικού δικτύου και του Internet.

PROXY SERVER. Άριστη πύλη διαχωρισμού μεταξύ του εσωτερικού δικτύου και του Internet. PROXY SERVER Άριστη πύλη διαχωρισμού μεταξύ του εσωτερικού δικτύου και του Internet. Αποτελεσματικό εργαλείο για την απόκρυψη των εσωτερικών λεπτομερειών και διευθύνσεων IP του δικτύου. Αυξάνει τη συνολική

Διαβάστε περισσότερα

Τμήμα Ηλεκτρολόγων Μηχανικών και Μηχανικών H/Y Department of Electrical and Computer Engineering. Εργαστήριο 8. Χειμερινό Εξάμηνο

Τμήμα Ηλεκτρολόγων Μηχανικών και Μηχανικών H/Y Department of Electrical and Computer Engineering. Εργαστήριο 8. Χειμερινό Εξάμηνο Τμήμα Ηλεκτρολόγων Μηχανικών και Μηχανικών H/Y Department of Electrical and Computer Engineering Οργάνωση και Σχεδίαση Η/Y (HY232) Εργαστήριο 8 Χειμερινό Εξάμηνο 2016-2017 1. Προσομοίωση λειτουργίας ιεραρχίας

Διαβάστε περισσότερα

Κεφάλαιο 1.6: Συσκευές αποθήκευσης

Κεφάλαιο 1.6: Συσκευές αποθήκευσης Κεφάλαιο 1.6: Συσκευές αποθήκευσης 1.6.1 Συσκευές αποθήκευσης Μνήμη τυχαίας προσπέλασης - RAM Η μνήμη RAM (Random Access Memory Μνήμη Τυχαίας Προσπέλασης), κρατεί όλη την πληροφορία (δεδομένα και εντολές)

Διαβάστε περισσότερα

ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΡΗΤΗΣ

ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΡΗΤΗΣ ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΡΗΤΗΣ Συστήματα Διαχείρισης Βάσεων Δεδομένων Άσκηση 1 Δημήτρης Πλεξουσάκης Τμήμα Επιστήμης Υπολογιστών HY460 Συστήματα Διαχείρισης Βάσεων Δεδομένων Διδάσκοντες: Δημήτρης

Διαβάστε περισσότερα

Κατανεμημένα Συστήματα Αρχείων

Κατανεμημένα Συστήματα Αρχείων Λειτουργικά Συστήματα Ι Αριστείδης Ηλίας Κατανεμημένα Συστήματα Αρχείων Αρχείο Αρχείο (File), οργανωμένη μονάδα δεδομένων αποθηκευμένων με μόνιμο και σταθερό τρόπο σε μέσα, όπως οι δίσκοι, κ.ά. Ονοματοθεσία

Διαβάστε περισσότερα

Δυναμικός Κατακερματισμός. Βάσεις Δεδομένων Ευαγγελία Πιτουρά 1

Δυναμικός Κατακερματισμός. Βάσεις Δεδομένων Ευαγγελία Πιτουρά 1 Δυναμικός Κατακερματισμός Βάσεις Δεδομένων 2018-2019 1 Κατακερματισμός Πρόβλημα στατικού κατακερματισμού: Έστω Μ κάδους και r εγγραφές ανά κάδο - το πολύ Μ * r εγγραφές (αλλιώς μεγάλες αλυσίδες υπερχείλισης)

Διαβάστε περισσότερα

Πληροφορική & Τηλεπικοινωνίες K18 - Υλοποίηση Συστηµάτων Βάσεων εδοµένων Εαρινό Εξάµηνο 2009 2010

Πληροφορική & Τηλεπικοινωνίες K18 - Υλοποίηση Συστηµάτων Βάσεων εδοµένων Εαρινό Εξάµηνο 2009 2010 Πληροφορική & Τηλεπικοινωνίες K18 - Υλοποίηση Συστηµάτων Βάσεων εδοµένων Εαρινό Εξάµηνο 2009 2010 Καθηγητής. Γουνόπουλος Άσκηση 1 Σκοπός της εργασίας αυτής είναι η κατανόηση της εσωτερικής λειτουργίας

Διαβάστε περισσότερα

ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ ΔΙΑΧΕΙΡΙΣΗ ΜΝΗΜΗΣ

ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ ΔΙΑΧΕΙΡΙΣΗ ΜΝΗΜΗΣ ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ Διάλεξη 7 ΔΙΑΧΕΙΡΙΣΗ ΜΝΗΜΗΣ Οι διαφάνειες έχουν καθαρά επικουρικό χαρακτήρα στην παρουσίαση των διαλέξεων του μαθήματος. Δεν αντικαθιστούν σε καμία περίπτωση την παρακάτω βιβλιογραφία

Διαβάστε περισσότερα

ΕΘΝΙΚΟ ΜΕΤΣΟΒΙΟ ΠΟΛΥΤΕΧΝΕΙΟ ΣΧΟΛΗ ΗΛΕΚΤΡΟΛΟΓΩΝ ΜΗΧΑΝΙΚΩΝ ΚΑΙ ΜΗΧΑΝΙΚΩΝ ΥΠΟΛΟΓΙΣΤΩΝ ΤΟΜΕΑΣ ΤΕΧΝΟΛΟΓΙΑΣ ΠΛΗΡΟΦΟΡΙΚΗΣ ΚΑΙ ΥΠΟΛΟΓΙΣΤΩΝ

ΕΘΝΙΚΟ ΜΕΤΣΟΒΙΟ ΠΟΛΥΤΕΧΝΕΙΟ ΣΧΟΛΗ ΗΛΕΚΤΡΟΛΟΓΩΝ ΜΗΧΑΝΙΚΩΝ ΚΑΙ ΜΗΧΑΝΙΚΩΝ ΥΠΟΛΟΓΙΣΤΩΝ ΤΟΜΕΑΣ ΤΕΧΝΟΛΟΓΙΑΣ ΠΛΗΡΟΦΟΡΙΚΗΣ ΚΑΙ ΥΠΟΛΟΓΙΣΤΩΝ ΕΘΝΙΚΟ ΜΕΤΣΟΒΙΟ ΠΟΛΥΤΕΧΝΕΙΟ ΣΧΟΛΗ ΗΛΕΚΤΡΟΛΟΓΩΝ ΜΗΧΑΝΙΚΩΝ ΚΑΙ ΜΗΧΑΝΙΚΩΝ ΥΠΟΛΟΓΙΣΤΩΝ ΤΟΜΕΑΣ ΤΕΧΝΟΛΟΓΙΑΣ ΠΛΗΡΟΦΟΡΙΚΗΣ ΚΑΙ ΥΠΟΛΟΓΙΣΤΩΝ ΕΡΓΑΣΤΗΡΙΟ ΥΠΟΛΟΓΙΣΤΙΚΩΝ ΣΥΣΤΗΜΑΤΩΝ www.cslab.ece.ntua.gr ΑΡΧΙΤΕΚΤΟΝΙΚΗ

Διαβάστε περισσότερα

Εικονική Μνήμη (Virtual Memory)

Εικονική Μνήμη (Virtual Memory) Εικονική Μνήμη (Virtual Memory) Για τη δημιουργία των διαφανειών έχει χρησιμοποιηθεί υλικό από τις διαφάνειες παραδόσεων που βασίζονται στο βιβλίο, Silberschatz, Galvin and Gagne, Operating Systems Concepts,

Διαβάστε περισσότερα

Εισαγωγή στην Επιστήμη της Πληροφορικής Εργαστήριο. UNIX Μέρος 1

Εισαγωγή στην Επιστήμη της Πληροφορικής Εργαστήριο. UNIX Μέρος 1 Πανεπιστήμιο Κύπρου Τμήμα Πληροφορικής Εισαγωγή στην Επιστήμη της Πληροφορικής και Πληροφοριακά Συστήματα Εργαστήριο - ΕΠΛ003 Εισαγωγή στην Επιστήμη της Πληροφορικής Εργαστήριο UNIX Μέρος 1 Παναγιώτης

Διαβάστε περισσότερα

Βασικές συσκευές Ε/Ε. Είσοδος Έξοδος στον υπολογιστή. Ένα τυπικό υπολογιστικό σύστημα σήμερα. Οργάνωση Υπολογιστών (IΙI) Μ.

Βασικές συσκευές Ε/Ε. Είσοδος Έξοδος στον υπολογιστή. Ένα τυπικό υπολογιστικό σύστημα σήμερα. Οργάνωση Υπολογιστών (IΙI) Μ. Ιόνιο Πανεπιστήμιο Τμήμα Πληροφορικής Εισαγωγή στην Επιστήμη των Υπολογιστών 2016-17 Οργάνωση Υπολογιστών (IΙI) (συσκευές εισόδου-εξόδου) http://mixstef.github.io/courses/csintro/ Μ.Στεφανιδάκης Ένα τυπικό

Διαβάστε περισσότερα

Λειτουργικά Συστήματα

Λειτουργικά Συστήματα ΑΡΙΣΤΟΤΕΛΕΙΟ ΠΑΝΕΠΙΣΤΗΜΙΟ ΘΕΣΣΑΛΟΝΙΚΗΣ ΑΝΟΙΧΤΑ ΑΚΑΔΗΜΑΙΚΑ ΜΑΘΗΜΑΤΑ Λειτουργικά Συστήματα Ενότητα 6: Αθηνά Βακάλη Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης Creative Commons. Για

Διαβάστε περισσότερα

Privilege Separation. Dimitris Mitropoulos

Privilege Separation. Dimitris Mitropoulos Privilege Separation Dimitris Mitropoulos dimitro@di.uoa.gr πως μπορούμε να καθορίζουμε ποιός έχει πρόσβαση σε τι Separation Layers Επίπεδα Διαχωρισμού Ο διαχωρισμός αντικειμένων μπορεί να γίνει: 1. Σε

Διαβάστε περισσότερα

Αποθήκευση και Οργάνωση αρχείων. Βάσεις Δεδομένων Μάθημα 2ο Διδάσκων: Μαρία Χαλκίδη

Αποθήκευση και Οργάνωση αρχείων. Βάσεις Δεδομένων Μάθημα 2ο Διδάσκων: Μαρία Χαλκίδη Αποθήκευση και Οργάνωση αρχείων Βάσεις Δεδομένων Μάθημα 2ο Διδάσκων: Μαρία Χαλκίδη Αρχιτεκτονική DBMS Βάσεις Δεδομένων, Παν. Πειραιώς 2 Κατηγοριοποίηση των φυσικών μέσων αποθήκευσης Ταχύτητα με την οποία

Διαβάστε περισσότερα

File Management και I/O στο UNIX

File Management και I/O στο UNIX File Management και I/O στο UNIX Λειτουργικά Συστήματα Ντίρλης Νικόλαος- ΕΤΥ Τμήμα Μηχανικών Η/Υ και Πληροφορικής Πάτρας Συστήματα 2013-2014 1 Εισαγωγή Ένα από τα βασικά στοιχεία της επιστήμης της Πληροφορικής

Διαβάστε περισσότερα

- Εισαγωγή - Επίπεδα μνήμης - Ολοκληρωμένα κυκλώματα μνήμης - Συσκευασίες μνήμης προσωπικών υπολογιστών

- Εισαγωγή - Επίπεδα μνήμης - Ολοκληρωμένα κυκλώματα μνήμης - Συσκευασίες μνήμης προσωπικών υπολογιστών Μάθημα 4.5 Η Μνήμη - Εισαγωγή - Επίπεδα μνήμης - Ολοκληρωμένα κυκλώματα μνήμης - Συσκευασίες μνήμης προσωπικών υπολογιστών Όταν ολοκληρώσεις το μάθημα αυτό θα μπορείς: Να αναφέρεις τα κυριότερα είδη μνήμης

Διαβάστε περισσότερα

Διεργασίες (μοντέλο μνήμης & εκτέλεσης) Προγραμματισμός II 1

Διεργασίες (μοντέλο μνήμης & εκτέλεσης) Προγραμματισμός II 1 Διεργασίες (μοντέλο μνήμης & εκτέλεσης) Προγραμματισμός II 1 lalis@inf.uth.gr Ο κώδικας δεν εκτελείται «μόνος του» Ο εκτελέσιμος κώδικας αποθηκεύεται σε ένα αρχείο Το αρχείο είναι μια «παθητική» οντότητα

Διαβάστε περισσότερα