Σημειώνουμε ότι τα αρχεία περιλαμβάνουν κανονικά αρχεία, καταλόγους και συνδέσμους (links). Οι αντίστοιχες εντολές είναι οι εξής:



Σχετικά έγγραφα
./mydiz {-c -a -x -m -d -p -j} <archive-file> <list-of-files/dirs>

... s12 s13 s14. Σχήμα1: ΙεραρχίαΔιεργασιώνμε l=3καιβάθος d=3. Οκάθεεργάτης(worker)δουλεύειμετο 1/27του αρχείου των ψήφων.

fall2018/k22/home m1436+at-di.

waitpid(), read(), write(), pipe(), mkfifo() κ.α.).

$./jms console -w <jms in> -r <jms out> -o <operations file> namedpipe. (standard input).

an:3 are:6 a:10

3ο Εργαστήριο Βασικές εντολές διαχείρισης αρχείων σε LINUX

Kitchen Doormam. Floor with Tables. Restaurant Floorplan and Operation

εμφανίζονται σε ένα γράφημα που υλοποιείται από κλήση στην εφαρμογή gnuplot.

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

$./MirrorInitiator -n <MirrorServerAddress> -p <MirrorServerPort> \\ -s <ContentServerAddress1:ContentServerPort1:dirorfile1:delay1, \\

50 Ketseo,Theoni Sarif,Omar 104

Εισαγωγή στην Επιστήμη Υπολογιστών. Εισαγωγή στο Λ.Σ. UNIX

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

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

Πληροφορική & Τηλεπικοινωνίες. K18 - Υλοποίηση Συστημάτων Βάσεων Δεδομένων Χειμερινό Εξάμηνο

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

Δίκτυα Η/Υ στην Επιχείρηση

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

Μεταφραστής (Compiler)

CloudBox!: Ένα εργαλείο cloud αποθήκευσης αρχείων με κατανεμημένο τρόπο

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

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

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

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

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

Εισαγωγή. Interface της εφαρμογής. Κ24: Προγραμματισμός Συστήματος - 1η Εργασία, Εαρινό Εξάμηνο 2019 Προθεσμία Υποβολής: Παρασκευή 15 Μαρτίου, 23:59

0 The quick brown fox leaped over the lazy lazy dog 1 Quick brown foxes leaped over lazy dogs for fun

ΕΡΓΑΣΤΗΡΙΟ 3: Προγραμματιστικά Περιβάλλοντα και το Πρώτο Πρόγραμμα C

ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΙΙ ΕΡΓΑΣΤΗΡΙΟ ΑΠΑΙΤΗΣΕΙΣ ΚΑΙ ΔΙΑΔΙΚΑΣΙΑ ΕΞΕΤΑΣΗΣ

Λειτουργικό σύστημα Unix

Προγραμματισμός Ι. Εργαστήριο 1 ο Περιβάλλον Εργασίας. Νικόλαος Δ. Τσελίκας Κυριακή Θ. Σεκλού

Εργαστήριο Λειτουργικών Συστημάτων. Minix Overview

ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΕΣ ΤΕΧΝΙΚΕΣ Σύντομη εισαγωγή στο εργαστήριο

Προγραμματισμός Διαχείρισης Συστημάτων Ι

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

ΑΣΚΗΣΗ: ΔΙΑΧΕΙΡΙΣΗ ΚΑΤΑΛΟΓΟΥ ΑΡΧΕΙΩΝ ΕΝΟΣ DIRECTORY. Μέρος Α`

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

Μεταφορά Αρχείων µε χρήση της Υπηρεσίας FTP σελ. 1

Εργαστήριο ΤΟ ΛΕΙΤΟΥΡΓΙΚΟ ΣΥΣΤΗΜΑ UNIX

ABC3341, CCD2345, ,... CCDA2345, , ,00E

Η-Υ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ. Εργαστήριο 1 Εισαγωγή στη C. Σοφία Μπαλτζή s.mpaltzi@di.uoa.gr

Εισαγωγή στον Προγραμματισμό Μάθημα 1: Βασική Πλοήγηση σε Linux CLI. Οκτώβριος 2016 Χ. Αλεξανδράκη

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

ΗΥ240: οµές εδοµένων Χειµερινό Εξάµηνο Ακαδηµαϊκό Έτος Παναγιώτα Φατούρου. Προγραµµατιστική Εργασία 3 ο Μέρος

[11] Υπολογιστικά συστήματα: Στρώματα. Περιεχόμενα. Εισαγωγή. επικοινωνία εφαρμογές λειτουργικό σύστημα προγράμματα υλικό

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

Προγραμματισμός Η/Υ. Χειρισμός Αρχείων. ΤΕΙ Ιονίων Νήσων Τμήμα Τεχνολόγων Περιβάλλοντος Κατεύθυνση Τεχνολογιών Φυσικού Περιβάλλοντος

Προγραμματισμός Ι. Είσοδος/Έξοδος. Δημήτρης Μιχαήλ. Ακ. Έτος Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο

Πληροφορική & Τηλεπικοινωνίες K18 - Υλοποίηση Συστημάτων Βάσεων Δεδομένων Χειμερινό Εξάμηνο M. Χατζόπουλος. Προθεσμία: 19/01/2015

Εργαστήριο 4 Ασκήσεις: Διαχείριση Δικτύου (nmap, iptables) και Προχωρημένες Εντολές Unix (grep, ps, cut, find)

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

inotify system call interface του Linux [1, 2]. prompt >>./mirr source backup uoa.gr/fall2018/k22/home compilation.

Εντολές του Λειτουργικού Συστήματος UNIX

Πίνακες: μια σύντομη εισαγωγή. Πίνακες χαρακτήρων: τα "Αλφαριθμητικά"

Τετάρτη 5-12/11/2014. ΣΗΜΕΙΩΣΕΙΣ 3 ου και 4 ου ΜΑΘΗΜΑΤΟΣ ΕΙΔΙΚΟΤΗΤΑ: ΤΕΧΝΙΚΟΣ ΕΦΑΡΜΟΓΩΝ ΠΛΗΡΟΦΟΡΙΚΗΣ ΜΑΘΗΜΑ: ΑΡΧΙΤΕΚΤΟΝΙΚΗ Η/Υ Α ΕΞΑΜΗΝΟ

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

Unix: Εντολές, οργάνωση και χειρισµός αρχείων, διεργασίες

wget --post-file meme.jpg :9646

ΕΠΛ 003: ΕΠΙΣΤΗΜΗ ΤΗΣ ΠΛΗΡΟΦΟΡΙΚΗΣ ΚΑΙ ΠΛΗΡΟΦΟΡΙΑΚΑ ΣΥΣΤΗΜΑΤΑ. Εισαγωγή στο Unix

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

Προγραμματισμός Διαχείρισης Συστημάτων ΙΙ

Προγραμματισμός Υπολογιστών & Υπολογιστική Φυσική

Πανεπιστήμιο Κρήτης, Τμήμα Επιστήμης Υπολογιστών ΗΥ463 Συστήματα Ανάκτησης Πληροφοριών Χειμερινό Εξάμηνο

Πως δημιουργούμε ένα νέο αρχείο κειμένου; Με τρεις τρόπους:

FTP - (File Transfer Protocol ) Πρωτόκολλο Μεταφοράς Αρχείων

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

Εισαγωγή στον Προγραμματισμό Εργαστήριο 3: Βοηθητικά προγράμματα του Linux CLI. Οκτώβριος 2014 Χ. Αλεξανδράκη Γ. Δημητρακάκης

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

Διάλεξη 20: Χαμηλού Επιπέδου Προγραμματισμός II

ΕΡΓΑΣΤΗΡΙΟ 2: Unix Tutorial

'Ασκηση 1: Στατικός Κατακερματισμός. Εισαγωγή. Ρουτίνες υλοποίησης κατακερματισμού. (Ημερομηνία Παράδοσης: Παρασκευή, 16/5/2008, 5μμ) HT_Init()

ΗΥ240: Δομές Δεδομένων Εαρινό Εξάμηνο Ακαδημαϊκό Έτος 2017 Διδάσκουσα: Παναγιώτα Φατούρου Προγραμματιστική Εργασία - 2o Μέρος

Διαδικασιακός Προγραμματισμός

Browsers. Λειτουργικότητα και Παραμετροποίηση

Διαδικασιακός Προγραμματισμός

ΗΥ240: Δομές Δεδομένων Εαρινό Εξάμηνο Ακαδημαϊκό Έτος Διδάσκουσα: Παναγιώτα Φατούρου Προγραμματιστική Εργασία - 1o Μέρος

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

Σύντομη εισαγωγή στο λειτουργικό σύστημα Linux

Το Λειτουργικό Σύστημα MS-DOS

ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΥΠΡΟΥ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ ΠΡΟΓΡΑΜΜΑΤΙΣΤΙΚΗ ΑΣΚΗΣΗ 2

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

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

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

ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ. Επισκόπηση Λ.Σ. Εργαστηριακές Ασκήσεις

2.1. Οι λογαριασµοί χρηστών Σύνδεση (login) και αποσύνδεση (logout)

Κεφάλαιο 4: Λογισμικό Συστήματος

ΕΡΓΑΣΤΗΡΙΟ 3: Προγραμματιστικά Περιβάλλοντα και το Πρώτο Πρόγραμμα C

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

Εργαστήριο ΔΙΑΧΕΙΡΙΣΗ ΑΡΧΕΙΩΝ & ΚΑΤΑΛΟΓΩΝ ΣΤΟ UNIX. Εισαγωγή

Εισαγωγή στον Προγραμματισμό Εργαστήριο 3: Βοηθητικά προγράμματα του Linux CLI. Οκτώβριος 2014 Χ. Αλεξανδράκη Γ. Δημητρακάκης

ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΥΠΡΟΥ ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ. ΑΣΚΗΣΗ 5 Ανάπτυξη Προγράμματος Συμπίεσης/Αποσυμπίεσης Αρχείων

Πληροφορική & Τηλεπικοινωνίες

Η εντολή ln. σύνδεση με την πραγματική καταχωρημένη πληροφορία. περισσότερα ονόματα (συνδέσεις). Τα επιπλέον ονόματα δημιουργούνται με

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

ΤΕΙΘ ΣΤΕΦ - ΤΜΗΜΑ ΠΛΗΡΟΦΟΡΙΚΗΣ ΜΑΘΗΜΑ: ΕΙΣΑΓΩΓΗ ΣΤΑ ΛΕΙΤΟΥΡΓΙΚΑ ΣΥΣΤΗΜΑΤΑ (UNIX) ΕΡΓΑΣΤΗΡΙΟ. 3o ΕΡΓΑΣΤΗΡΙΟ

Διαχείριση Βάσης Δεδομένων (dbadmin)

Προγραμματισμός Διαχείρισης Συστημάτων Ι

Προγραμματισμός Ι. Δομές & Ενώσεις. Πανεπιστήμιο Πελοποννήσου Τμήμα Πληροφορικής & Τηλεπικοινωνιών

Transcript:

ΠΑΝΕΠΙΣΤΗΜΙΟ ΑΘΗΝΩΝ Τμήμα Πληροφορικής και Τηλεπικοινωνιών 4η Εργασία- Τμήμα: Περιττών Αριθμών Μητρώου Κ22: Λειτουργικά Συστήματα Χειμερινό Εξάμηνο 14 Ημερομηνία Ανακοίνωσης: Τετάρτη 14 Ιανουαρίου Ημερομηνία Υποβολής: Τετάρτη 24 Φεβρουαρίου και Ωρα 23:59 Εισαγωγή στην Εργασία: Ο στόχος αυτής της εργασίας είναι να δημιουργήσετε ένα μικρό αλλά λειτουργικό σύστημα αρχείων στο χώρο του χρήστη. Το σύστημα που ονομάζεται MFS (MyFileSystem) παρέχει όλες του τις οντότητες(αρχεία, καταλόγους και συνδέσμους) καθώς και όλες του τις λειτουργίες μέσα σε ένα κανονικό αρχείο του Linux. Αρχεία που φιλοξενούν MFS-περιεχόμενο, έχουν το επίθεμα.mfs για να διαχωρίζονται από τα κανονικά αρχεία Linux. Το MFS παρέχει ουσιαστικά την δενδρική λογική δομή του Linux FS πάνω στα βασικά του στοιχεία: αρχεία, κατάλογοι και σύνδεσμοι. Επίσης, ένας αριθμός από λειτουργίες είναι εφικτός και αυτές συμπεριλαμβάνουν δημιουργία, διαγραφή, εμφάνιση και τροποποίηση αρχείων, καταλόγων και δεσμών. Η πλήρης περιγραφή των εντολών δίνεται παρακάτω. Οι εντολές αυτές θα πρέπει να είναι εκτελέσιμες από το κέλυφος(δηλ. συνηθισμένη γραμμή εντολής). Σε φυσικό επίπεδο, όλα τα αρχεία ενός MFS αποθηκεύονται σε ένα μοναδικό κανονικό Linux αρχείο το οποίο θα τοποθετείται σε μια καθορισμένη θέση στο δίσκο, π.χ. /home/users/stud0000/myfile.mfs. Πέρα από τις βασικές πράξεις, θα πρέπει να υποστηρίζετε λειτουργικότητα εισαγωγής και εξαγωγής αρχείων από το MFS στο σύστημα αρχείων Linux και αντίστροφα. Διαδικαστικά: Τοπρόγραμμάσαςθαπρέπειναγραφτείσε C (ή C++ανθέλετεαλλάχωρίςτηχρήση STL)καινατρέχει στις μηχανές Unix (Workstations Linux/Solaris) του τμήματος. Παρακολουθείτε την ιστοσελίδα του μαθήματος για επιπρόσθετες ανακοινώσεις στο URL http://www.di.uoa.gr/~ad/osdir/. Υπεύθυνοι για την άσκηση αυτή(ερωτήσεις, αξιολόγηση, βαθμολόγηση κλπ.) είναι οι κ. Αργυρώ Κοκογιαννάκη (argirok +AT- di) και Ιωάννης Κάββουρας (i.kavvouras +AT- di). Μέσα από το piazza.com και πιο συγκεκριμένα από τη σελίδα https://piazza.com/uoa.gr/fall2014/ k22sectiondelis/home θα μπορείτε να κάνετε ερωτήσεις και να δείτε απαντήσεις ή/και διευκρινήσεις που δίνονται σχετικά με την άσκηση(όπως έγινε με τις προηγούμενες ασκήσεις). Η Διεπαφή του MFS Μέσω των Βασικών Λειτουργιών του: Το MFS χειρίζεται αρχεία, καταλόγους και συνδέσμους, μέσω ενός μοναδικού αρχείου το οποίο βρίσκεται στο σύστημα αρχείων του Linux. Σε λογικό επίπεδο ο χρήστης έχει την ψευδαίσθηση ότι εργάζεται κανονικά σε ιεραρχικό σύστημα αρχείων. Οι βασικές πράξεις/λειτουργίες του MFS που θα πρέπει να υποστηρίζονται και να εκτελούνται από το κέλυφος είναι οι ακόλουθες: Δυνατότητα ορισμού αρχείου.mfs τύπου πάνω στο οποίο οι εντολές που ακολουθούν εκτελούνται. Δημιουργίααρχείων. Παράθεση(listing) αρχείων. Διαγραφήαρχείων. Αντιγραφήαρχείων. Συγχώνευσηαρχείων. Εισαγωγή/Εξαγωγή αρχείων από/προς το MFS. 1

Σημειώνουμε ότι τα αρχεία περιλαμβάνουν κανονικά αρχεία, καταλόγους και συνδέσμους (links). Οι αντίστοιχες εντολές είναι οι εξής: 1. mfs workwith <FILE> οι εντολές που θα ακολουθήσουν, θα εκτελεστούν στο αρχείο τύπου MFS που δίνεται στη παράμετρο <FILE>. 2. mfs ls <FILES> Εκτύπωση περιεχομένων αρχείων. -a: Προβολή όλων των αρχείων συμπεριλαμβανομένων και των κρυφών(αρχεία που το όνομά τους ξεκινά από το χαρακτήρα. ) -r: Αναδρομική εκτύπωση αρχείων με βάση τον τρέχοντα κατάλογο -l: Προβολή όλων των χαρακτηριστικών των αρχείων. Τα χαρακτηριστικά που πρέπει οπωσδήποτε να περιλαμβάνονται είναι χρόνος δημιουργίας, χρόνος τελευταίας πρόσβασης, χρόνος τελευταίας τροποποίησης και μέγεθος. -U: Προβολή των αρχείων χωρίς ταξινόμηση, αλλά με τη σειρά που αποθηκεύονται στον κατάλογο. -d: Προβολή μόνο των καταλόγων. 3. mfs cd <PATH> Αλλαγή τρέχοντος καταλόγου στο <PATH>. Η επιλογή του <PATH> περιλαμβάνει και τον τρέχοντα κατάλογο. η και τον γονικό κατάλογο.. 4. mfs pwd Εμφάνιση τρέχοντος καταλόγου. 5. mfs cp <SOURCE> <DESTINATION> <SOURCES>... <DIRECTORY> Αντιγραφή αρχείων και καταλόγων. Αντιγραφή του <SOURCE> στο <DESTINATION> ή αντιγραφή των(πιθανώς πολλών) <SOURCES> στο <DIRECTORY>. -i: Αντιγραφή κατόπιν αποδοχής του χρήστη, ύστερα από ερώτηση του συστήματος. -l: Δημιουργία συνδέσμων, αντί κανονικών αρχείων. -r: Αναδρομική αντιγραφή καταλόγων. 6. mfs mv <SOURCE> <DESTINATION> <SOURCES>... <DIRECTORY> Μετονομασία του <SOURCE> στο <DESTINATION> ή μετακίνηση των(πιθανώς πολλών) <SOURCES> στο <DIRECTORY>. -i: Μετακίνηση κατόπιν αποδοχής του χρήστη, ύστερα από ερώτηση του συστήματος. 7. mfs rm <FILES> Διαγραφή αρχείων. -i: Αντιγραφή κατόπιν αποδοχής του χρήστη, ύστερα από ερώτηση του συστήματος. -r: Αναδρομική διαγραφή καταλόγων. 8. mfs mkdir <DIRECTORIES> Δημιουργία νέου καταλόγου με το(τα) όνομα(ονόματα) <DIRECTORIES>. 2

9. mfs touch <FILES> Τροποποίηση των χρονοσήμων των αρχείων <FILES>. -a: Ανανέωση μόνο του χρονόσημου πρόσβασης. -m: Ανανέωση μόνο του χρονόσημου τροποποίησης. 10. mfs import <FILES>... <DIRECTORY> Εισαγωγή των αρχείων <FILES> του συστήματος αρχείων Unix στο <DIRECTORY> του MFS. 11. mfs export <FILES>... <DIRECTORY> Εξαγωγή των αρχείων <FILES> του MFSστο <DIRECTORY> του συστήματος αρχείων Unix. 12. mfs cat -i <INPUT FILES> -o <OUTPUT FILE> Συγχώνευση των <INPUT FILES> στα <OUTPUT FILE>. Η λίστα <INPUT FILES> είναι είτε λίστα κανονικών αρχείων, είτε κενή, οπότε εννοείται το standard input. Το <OUTPUT FILE> είναι είτε κανονικό αρχείο, είτε κενό αλφαριθμητικό, οπότε εννοείται το standard output. 13. mfs create <FILE> Δημιουργία ενός MFSστο αρχείο <FILE>. -bs <BLOCK SIZE>: Καθορισμός μεγέθους μπλοκ δεδομένων σε bytes. -fns <FILENAME SIZE>: Καθορισμός μεγέθους ονόματος αρχείων σε bytes. -mfs <MAX FILE SIZE>: Καθορισμός μέγιστου μεγέθους αρχείων σε bytes. -mdfn <MAX DIRECTORY FILE NUMBER>: Καθορισμός μέγιστου αριθμού αρχείων ανά κατάλογο. Σχεδιασμός των Προγραμμάτων σας: Σε φυσικό επίπεδο όλα τα στοιχεία του MFS τοποθετούνται κάτω από ένα μοναδικό αρχείο. Οπως συμβαίνει στα περισσότερα συστήματα αρχείων, έτσι και στο MFS, για κάθε αρχείο υπάρχει και η αντίστοιχη καταχώρηση μεταδεδομένων. Στο ext2/ext3 η δομή αυτή ονομάζεται inode-structure. Στο MFS η δομή θα πρέπει οπωσδήποτε να περιλαμβάνει όνομα αρχείου, χαρακτηριστικό αριθμό αρχείου, μέγεθος, τύπο, χρονόσημο δημιουργίας, τελευταίας πρόσβασης και τελευταίας τροποποίησης, γονικό κατάλογο(αν πρόκειται για κατάλογο) και μια λίστα μπλοκ δεδομένων. Οποιες άλλες προσθήκες είναι θετικές αλλά όχι υποχρεωτικές. Ενα παράδειγμα δομής μεταδεδομένων είναι η εξής: typedef struct{ unsigned int nodeid; char *filename; unsigned int size; unsigned int type; unsigned int parent -nodeid; time_t creation_time; time_t access_time; time_t modification_time; Datastream data; }MDS; typedefe struct{ unsigned int datablocks[ DATABLOCK_NUM]; } Datastream; Το πεδίο nodeid είναι ο χαρακτηριστικός αριθμός αρχείου, το size είναι το μέγεθος του αρχείου και το type 3

είναι ο τύπος του αρχείου. Οι βασικοί τύποι περιλαμβάνουν τους εξής: απλό αρχείο, κατάλογος, σύνδεσμος. Οποιαδήποτε άλλη προσθήκη είναι ευπρόσδεκτη. Αν το αρχείο είναι κατάλογος, τότε το πεδίο parent-nodeid συμβολίζει τον χαρακτηριστικό αριθμό του γονικού καταλόγου. Τα πεδία creation_time,access_time και modification_time είναι ο χρόνος δημιουργίας, τελευταίας πρόσβασης και τελευταίας τροποποίησης, αντίστοιχα. Τέλος, το πεδίο data συγκρατεί το πλήθος των μπλοκ που καταλαμβάνει το εν λόγω αρχείο. Στην παραπάνω δομή, απεικονίζεται η πιο απλή μορφή η οποία είναι ένας πίνακας από αριθμούς μπλοκ, πλήθους DATABLOCK_NUM, χωρίς κάτι τέτοιο να σημαίνει ότι χρησιμοποιούνται όλα τα μπλοκ. Κάλλιστα μπορεί να υιοθετηθεί το κλασσικό μοντέλο σύμφωνα με το οποίο υπάρχουν άμεσα και έμμεσα(μέχρι τρίτου επιπέδου) μπλοκ δεικτοδότησης. Τα άμεσα δείχνουν απευθείας σε μπλοκ δεδομένων, ενώ τα έμμεσα σε άλλα μπλοκ δεικτοδότησης(άμεσα ή έμμεσα). Η παραπάνω δομή είναι κοινή σε απλά αρχεία, καταλόγους και σύνδεσμους. Τα μπλοκ δεδομένων των αρχείων σε ένα MFS δεν ακολουθούν κάποια συγκεκριμένη μορφή. Μπορείτε να επιλέξετε εσείς την εν λόγω μορφή. Απεναντίας, τα μπλοκ δεδομένων των καταλόγων θα περιλαμβάνουν-κατ ελάχιστον- ζεύγη χαρακτηριστικού αριθμού αρχείων- ονομάτων αρχείων, τα οποία ανήκουν στον εκάστοτε κατάλογο. Τα ζεύγη μπορεί να είναι ταξινομημένα σε μια λίστα ή οποιαδήποτε άλλη δομή της επιλογής σας. Στοπρώτο byteτουαρχείουστοοποίοθαχτιστείτο MFSθαβρίσκεταιηδομήμεταδεδομένωντουαρχικού καταλόγου (root directory - /). Πέραν τούτου, το αρχείο θα περιλαμβάνει δομές μεταδεδομένων και μπλοκ αρχείων με τυχαία σειρά. Το στοιχείο που απλοποιεί την κατάσταση είναι ότι η δομή μεταδεδομένων και το μπλοκδεδομένωνέχουνσταθεράμεγέθη.ηπρώτηείναιίσημετομέγεθοςτηςδομής,ενώτοδεύτεροέχει προκαθορισμένο μέγεθος, που αποφασίζεται κατά την αρχικοποίηση του MFS, π.χ. 1Κ. Μια εναλλακτική προσέγγιση είναι να υπάρχει ένα superblock στο οποίο θα αποθηκεύονται κρίσιμες πληροφορίες σχετικές με το MFS, όπως το μέγεθος του μπλοκ δεδομένων, το μέγεθος της δομής μεταδεδομένων, τη θέση του δομής μεταδεδομένων του αρχικού καταλόγου, κ.ά.. Το superblock θα τοποθετείται στο πρώτο byte του αρχείου του MFS. Σχεδιασμός των Προγραμμάτων σας: Αυτό που ζητείται στην παρούσα εργασία είναι η δημιουργία των εντολών που προαναφέρθηκαν. Η αρχιτεκτονική του MFS, εκτός των βασικών σημείων, επαφίεται στον καθένα. Πιθανή προσθήκη στην εργασία είναι η δημιουργία συστήματος δικαιωμάτων μέσω δημιουργίας ομάδων χρηστών και χρήσης bits προστασίας (rwx). Επιπλέον, θα διευκόλυνε να υλοποιήσετε ένα εύκολα κατανοητό τρόπο που να δίνει την συνολική δομή του αρχείου σας. Κάτι τέτοιο θα σας βοηθήσει στην αποσφαλμάτωση του προγράμματος σας. Τι πρέπει να Παραδοθεί: 1. Μια σύντομη και περιεκτική εξήγηση για τις επιλογές που έχετε κάνει στο σχεδιασμό του προγράμματος σας(1-2 σελίδες σε ASCII κειμένου είναι αρκετές). 2. Ενα Makefile(που να μπορεί να χρησιμοποιηθεί για να γίνει αυτόματα το compile του προγράμματος σας). 3. Ενα tar-fileμεόλησαςτηνδουλειάσεένανκατάλογοπουπιθανώςναφέρειτοόνομάσαςκαιθα περιέχει όλη σας την δουλειά δηλ. source files, header files, output files(αν υπάρχουν) και οτιδήποτε άλλο χρειάζεται. Άλλες Σημαντικές Παρατηρήσεις: 1. Ηεργασίεςείναιείτε ατομικήήμπορείναγίνεισεομάδεςτωνδύοατόμων.ανεπιλέξετεέναν/μίασυ- 4

νάδελφο, καλό είναι να κάνετε μια καλή επιλογή ώστε να έχετε τον ίδιο βαθμό ενδιαφέροντος επιτυχούς ολοκληρωσης της άσκησης. 2. Το πρόγραμμα σας θα πρέπει να τρέχει σε Linux/Solaris αλλιώς δεν θα βαθμολογηθεί. 3. Αν και αναμένεται να συζητήσετε με φίλους και συνεργάτες το πως θα επιχειρήσετε να δώσετε λύση στο πρόβλημα, αντιγραφή κώδικα(οποιαδήποτε μορφής) είναι κάτι που δεν επιτρέπεται και δεν πρέπει να γίνει. Οποιοσδήποτε βρεθεί αναμεμειγμένος σε αντιγραφή κώδικά απλά παίρνει μηδέν στο μάθημα. Το ίδιο ισχύει και για τις ομάδες. Οσοι εμπλέκονται ανεξάρτητα από το ποιος έδωσε/πήρε κλπ. μηδενίζονται. 4. Σε καμιά περίπτωση τα MS-Windows δεν είναι επιλέξιμη πλατφόρμα για την παρουσίαση αυτής της άσκησης. 5