./mydiz {-c -a -x -m -d -p -j} <archive-file> <list-of-files/dirs>

Σχετικά έγγραφα
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).

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

Kitchen Doormam. Floor with Tables. Restaurant Floorplan and Operation

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

an:3 are:6 a:10

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

50 Ketseo,Theoni Sarif,Omar 104

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

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

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

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

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

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

Αρχεία Ένα αρχείο αποτελείται από μία σειρά ομοειδών δεδομένων που ονομάζονται λογικές εγγραφές (logical record)

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

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

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

Άσκηση 1 (ανακοινώθηκε στις 20 Μαρτίου 2017, προθεσμία παράδοσης: 24 Απριλίου 2017, 12 τα μεσάνυχτα).

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

ΕΡΓΑΣΤΗΡΙΟ 6: Συναρτήσεις και Αναδρομή

Λειτουργικά Συστήματα - Εργαστήριο 6. 6ο Εργαστήριο. Συμπίεση αρχείων Χρήση ειδικών χαρακτήρων στην γραμμή εντολών. Χρήστες και Ομάδες Χρηστών

Crossword1.txt, Crossword2.txt, Crossword3.txt, Crossword4.txt και Crossword5.txt, $ cat Crossword1.txt $

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

ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΠΛΗΡΟΦΟΡΙΚΗ

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

ΣΕΤ ΑΣΚΗΣΕΩΝ 3. Προθεσµία: 7/1/2014, 22:00

Πληροφορική ΙΙ Εισαγωγή στις Βάσεις Δεδομένων. Τμήμα Λογιστικής

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

Πως θα αποθηκεύσει τη λίστα με τα ψώνια του και θα την ανακτήσει στο Σ/Μ; και πως θα προσθέσει στη λίστα του επιπλέον προϊόντα;

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

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

Άσκηση 3 (ανακοινώθηκε στις 14 Μαΐου 2018, προθεσμία παράδοσης: 8 Ιουνίου 2018, 12 τα μεσάνυχτα).

(Κεφάλαιο 2.7 και 12) Αρχεία στην C. (Διάλεξη 15)

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

ΠΛΑΤΦΟΡΜΑ ΔΙΑΧΕΙΡΙΣΗΣ ΒΙΝΤΕΟΔΙΑΛΕΞΕΩΝ ΔΗΛΟΣ delos.uoa.gr. Εγχειρίδιο Χρήσης Μελών ΔΕΠ

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

ΦΑΚΕΛΟΙ ΚΑΙ ΑΡΧΕΙΑ ΥΠΟΛΟΓΙΣΤΩΝ. Βασίλης Πρέκας Β'3

Διαχείριση Πολιτισμικών Δεδομένων

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

Υποβολή Πιστοποιητικού

Εισαγωγή...1 Το κοινό αυτού του βιβλίου...2 Οι συμβάσεις που χρησιμοποιούνται στο βιβλίο...3

Μέρος B: Εισαγωγή στις έννοιες παιδαγωγικής αξιοποίησης των ΤΠΕ με εφαρμογή στη διδακτική της Πληροφορικής Οργάνωση και Σχεδίαση Μαθήματος

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

Οδηγίες για τη Ανάπτυξη Ανοικτών Ψηφιακών Μαθημάτων

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

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

Αρχιτεκτονική Υπολογιστών Ασκήσεις Εργαστηρίου

Manual Χρήσης της εφαρμογής PK Data Software 1.2

Περιεχόμενα. Κεφάλαιο 1 Εισαγωγή στην Access Κεφάλαιο 2 Χειρισμός πινάκων... 27

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

ΤΜΗΜΑ ΜΗΧΑΝΙΚΩΝ Η/Υ, ΤΗΛΕΠΙΚΟΙΝΩΝΙΩΝ ΚΑΙ ΔΙΚΤΥΩΝ, ΠΑΝΕΠΙΣΤΗΜΙΟ ΘΕΣΣΑΛΙΑΣ

1 Συστήματα Αυτοματισμού Βιβλιοθηκών

wget --post-file meme.jpg :9646

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

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

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

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

Εργαστήριο Βάσεων Δεδομένων. Εισαγωγικό Φροντιστήριο Βασικές Έννοιες - Ανάλυση Απαιτήσεων

ΑΣΚΗΣΗ. Δημιουργία Ευρετηρίων Συλλογής Κειμένων

A ΕΠΑ.Λ ΕΦΑΡΜΟΓΕΣ ΠΛΗΡΟΦΟΡΙΚΗΣ 5 η ΕΝΟΤΗΤΑ: ΒΑΣΕΙΣ ΔΕΔΟΜΕΝΩΝ. Εκπαιδευτικοί: ΓΑΛΑΝΟΣ ΓΕΩΡΓΙΟΣ ΜΠΟΥΣΟΥΝΗΣ ΚΩΝΣΤΑΝΤΙΝΟΣ

Μαζική Έκδοση Παραστατικών

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

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

Εργαστήριο 5. Εαρινό Εξάμηνο

2η Προγραµµατιστική Εργασία

Λειτουργικά Συστήματα (ΗΥ-345) Χειμερινό Εξάμηνο

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

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

Τι είναι υποπρόγραμμα; Τμήμα προγράμματος το οποίο επιτελεί ένα αυτόνομο υπολογιστικό έργο (γράφεται χωριστά από το υπόλοιπο πρόγραμμα)

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

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

Εφαρμογές Πληροφορικής

Επιμορφωτικές Τηλεκπαιδεύσεις

Διαχείριση Δεδομένων

Δημιουργία μιας εφαρμογής Java με το NetBeans

Σχεδίαση Βάσεων Δεδομένων

ΑΡΧΗ 1ΗΣ ΣΕΛΙΔΑΣ Γ ΗΜΕΡΗΣΙΩΝ

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

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

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

ΤΜΗΜΑ ΔΙΟΙΚΗΣΗΣ ΕΠΙΧΕΙΡΗΣΕΩΝ - ΜΕΣΟΛΟΓΓΙ ΗΛΕΚΤΡΟΝΙΚΟ ΕΜΠΟΡΙΟ ΕΡΓΑΣΤΗΡΙΟ ΕΑΡΙΝΟ ΕΞΑΜΗΝΟ Διαδικασία Κατάρτησης Επιχειρηματικού Σχεδίου

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

4.1 Άνοιγμα υπάρχοντος βιβλίου εργασίας

ΕΡΓΑΣΙΑ. (στο μάθημα: Τεχνολογίες Εφαρμογών Διαδικτύου του Η εξαμήνου σπουδών του Τμήματος Πληροφορικής & Τηλ/νιών)

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

Κεφάλαιο VΙ: Προσπέλαση Αρχείων. 5.1 Αρχεία δεδομένων.

Εδώ υπάρχει ένα παράδειγμα από ένα φανταστικό πρόγραμμα και το πακέτο του:

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

Μεθόδων Επίλυσης Προβλημάτων

ΠΛΗΡΟΦΟΡΙΚΗ Ι JAVA Τμήμα θεωρίας με Α.Μ. σε 8 & 9 11/10/07

SMPcache. Ένα εργαλείο για προσομοίωση-οπτικοποίηση κρυφής μνήμης (Cache)

Γ ΤΑΞΗ ΓΕΝΙΚΟΥ ΛΥΚΕΙΟΥ ΚΑΙ ΕΠΑΛ (ΟΜΑΔΑ Β

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

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

Ελληνική Δημοκρατία Τεχνολογικό Εκπαιδευτικό Ίδρυμα Ηπείρου. Πληροφορική II. Ενότητα 6 : Δομές αρχείων. Δρ. Γκόγκος Χρήστος

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

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

Transcript:

ΠΑΝΕΠΙΣΤΗΜΙΟ ΑΘΗΝΩΝ Τμήμα Πληροφορικής και Τηλεπικοινωνιών η Εργασία - Τμήμα: Περιττών Αριθμών Μητρώου Κ: Λειτουργικά Συστήματα Χειμερινό Εξάμηνο 6 Ημερομηνία Ανακοίνωσης: 8 Ιανουαρίου Ημερομηνία Υποβολής: 9 Φεβρουαρίου και Ωρα 3:9 Εισαγωγή στην Εργασία: Ο στόχος αυτής της εργασίας είναι να δημιουργήσετε ένα πρόγραμμα συστήματος, με την ονομασία mydiz, που επιπεδοποιεί λογικές ιεραρχίες καταλόγων και αρχείων στο Linux Το αρχείο που δημιουργείται έχει postfix di και μπορεί να διαθέτει τα περιεχόμενα των αρχείων στην ιεραρχία σε συμπυκνωμένη μορφή με την βοήθεια του προγράμματος gzip όπως επίσης και όλες τις απαραίτητες πληροφορίες σχετικά με την δομή της λογικής ιεραρχίας στο Linux Το πρόγραμμα σας θα πρέπει να δέχεται σαν παραμέτρους εισόδου σημαίες και ονόματα/λίστες αρχείων/καταλόγων που θα πρέπει να αποθηκευτούν στο υπό διαμόρφωση di αρχείο Το πρόγραμμα σας θα πρέπει με επιτυχία να «ανακτά» είτε ολόκληρη ή μέρος της ιεραρχίας καταλόγων/αρχείων από το επιπεδοποιημένο di αρχείο Θα πρέπει να τονιστεί ότι το mydiz θα πρέπει να διαχειρίζεται όχι μόνο καταλόγους και αρχεία αλλά και συνδέσμους αρχείων Το ζητούμενο πρόγραμμα θα πρέπει να δουλεύει με παρεμφερή τρόπο όπως εκείνος των υπηρεσιών zip, tar, rar κλπ Διεπαφή του mydiz και Βασικές Λειτουργίες: Οι σημαίες της γραμμής κλήσης καθορίζουν την λειτουργικότητα του mydiz Σε περίπτωση που δοθούν λάθος παράμετροι, το πρόγραμμα σας θα πρέπει να δίνει κάποια ένδειξη λάθους και να τερματίσει Παρακάτω, περιγράφουμε την διεπαφή του mydiz και την αναμενόμενη λειτουργία των επιμέρους σημαιών: /mydiz {-c -a -x -m -d -p -j} <archive-file> <list-of-files/dirs> Οι σημαίες της γραμμής εντολής δουλεύουν ως εξής: -c Αρχειοθέτηση των οντοτήτων συστήματος αρχείου που παρέχονται από την <list-of-files/dirs> στο αρχείο <archive-file> Κατάλογοι και αρχεία που είναι φωλιασμένα στην λίστα <list-of-files/ dirs> αποθηκεύονται με αναδρομικό τρόπο στο <archive-file> -a Προσθήκη των εγγράφων και καταλόγων στην <list-of-files/dirs> στον πιθανά ήδη υπάρχον αρχείο <archive-file> Αν υπάρχουν φωλιασμένοι κατάλογοι στο <list-of-files/dirs> περιλαμβάνονται αναδρομικά μαζί με όλο το περιεχόμενο τους στο <archive-file> -x Εξαγωγή όλων των εγγράφων/καταλόγων που βρίσκονται αποθηκευμένοι στο <archive-file> -j Τα έγγραφα πριν την αρχειοθέτηση στο <archive-file> θα πρέπει να συμπιεστούν με gzip -d Διαγραφή των οντοτήτων που αναφέρονται στη λίστα <list-of-files/dirs> από το υπάρχον αρχείο επιπεδοποίησης <archive-file> Η υλοποίηση της σημαίας αυτής είναι προαιρετική -m Εκτύπωση μεταπληροφοριών (owner, group, access rights) για όλες τις οντότητες που είναι αποθηκευμένες στο <archive-file> -q Επερώτηση για το αν η όχι τα στοιχεία της λίστας <list-of-files/dirs> βρίσκονται στο αρχείο <archive-file> Για κάθε στοιχείο της <list-of-files/dirs> θα παρέχεται μια θετική ή μια αρνητική απάντηση -p Εκτύπωση της ιεραρχίας των καταλόγων και των αρχείων που βρίσκονται στο <archive-file> με τρόπο που να είναι εύκολα αντιληπτός/αναγνώσιμος

Μερικές παρατηρήσεις: Το πρόγραμμα σας δεν είναι απαραίτητο να χρησιμοποιεί την στάνταρντ είσοδο/έξοδο με οποιοδήποτε άλλο τρόπο πλην αυτού που περιγράφεται παραπάνω Η διαδικασία ανάκτησης περιλαμβάνει μόνο αρχεία ή/και καταλόγους που ο χρήστης παραθέτει στην γραμμή εκτέλεσης του προγράμματος με την χρήση της παραμέτρου/λίστας <list-of-files/dirs> Αν δεν δίνεται καμία τέτοια λίστα, με την επίκληση της σημαίας -x, όλες οι αποθηκευμένες οντότητες «ανα-δημιουργούνται» στο κατάλογο που διενεργείται η ανάκτηση Η σημαία -j μπορεί να χρησιμοποιηθεί μόνο μαζί με την σημαία -c ή την -a Οταν γίνεται ανάκληση αρχείων, η τελική μορφή των αρχείων στην (λογική) ιεραρχία θα είναι χωρίς συμπίεση (ανεξάρτητα αν είχε υπάρξει συμπίεση περιεχομένου στα σχετικά αρχεία) Ανάπτυξη του Προγράμματος σας: Η αποθήκευσή της λίστας των αρχείων/καταλόγων στο di αρχείο, θα πρέπει να γίνει με ένα τρόπο που βοηθά την ανάκτηση της πληροφορίας και να είναι συμπαγής Εκτός από τα απλά αρχεία, το di αρχείο θα πρέπει να αποθηκεύει με ορθό τρόπο την λογική ιεράρχησή καταλόγων αλλά και τις μεταπληροφορίες για όλες τις αποθηκευμένες οντότητες συστήματος αρχείου όπως κάτοχο (owner), ομάδα (group), δικαιώματα προσπέλασης (access rights), timestamps δημιουργίας/ αλλαγής/ προσπέλασης, κλπ Το Σχήμα προτείνει μια γενική διάταξη για τα επιπεδοποιημένα αρχεία που θα παράγει το mydiz Μπορείτε να επεκτείνετε η και να αλλάξετε την παραπάνω δομή όπως εσείς θεωρείτε καλύτερα ώστε να επιτύχετε συμπαγή οργάνωση και γρήγορη λειτουργία (ακόμα και όταν μεγάλες σε όγκο και μορφή ιεραρχίες καταλόγων πρέπει να επιπεδοποιηθούν) Θα πρέπει ωστόσο να εξηγήσετε και να δικαιολογήσετε τις σχεδιαστικές επιλογές σας filegz dirb filegz Heer file3gz filegz filegz filegz filegz dira filegz dirc file3gz filegz stored compressed files meta data structure Σχήμα : Παράδειγμα οργάνωσης της δομής του αρχείου di Η προτεινόμενη οργάνωση του di αρχείου αποτελείται από τρία τμήματα: μια επικεφαλίδα, μια σειρά από τα (συμπιεσμένα) αρχεία και μια δομή που να αναπαριστά με ακρίβεια την λογική ιεραρχία και τις μεταπληροφορίες των οντοτήτων που αποθηκεύονται Ολη η παραπάνω οργάνωση αποθηκεύεται στο δίσκο Πιο συγκεκριμένα: ) Η επικεφαλίδα μπορεί να βαστάει οποιαδήποτε στοιχεία που περιγράφουν την φύση του di αρχείου όπως πχ μέγεθος σε bytes αλλά και ένα δείκτη (δηλ αριθμό byte) πέρα από τον οποίο αποθηκεύεται η αναπαράσταση της δομής της ιεραρχίας (δηλ μεταδεδομένα) Το μέγεθος της επικεφαλίδας παραμένει σταθερό και είναι γνωστό εξ αρχής ) Τα (συμπιεσμένα) αρχεία αποθηκεύονται το ένα μετά το

άλλο στο δεύτερο τμήμα του di αρχείου 3) Το τρίτο και τελευταίο κομμάτι του di αρχείου είναι ουσιαστικά το «λεξικό» το οποίο διαθέτει όλες της πληροφορίες ιεράρχησης της <list-of-files/dirs> και τις μεταπληροφορίες των επιμέρους οντοτήτων (αρχεία, κατάλογοι, δεσμοί) Θα πρέπει να τονιστεί ότι η <list-of-files/dirs> μπορεί να περιέχει υποκαταλόγους πολλαπλών επιπέδων των οποίων το βάθος δεν είναι γνωστό εκ των προτέρων Το mydiz θα πρέπει αναδρομικά να καλύπτει όλη την ιεραρχία καταλόγων όπως επίσης και φωλιασμένων αρχείων και δεσμών Τέλος, όταν το πρόγραμμα σας επικαλείται με σημαία -j θα πρέπει για κάθε αρχείο με περιεχόμενο (ASCII η binary) να γίνει κλήσης της gzip Αυτό μπορεί να γίνεται με ταυτόχρονη επίκληση fork()/exec*() κατά τα γνωστά Στην διάρκεια της ανάκτησης η αντίστροφη διαδικασία θα πρέπει να ακολουθηθεί Το πρόγραμμα σας θα μπορεί να διαβάσει πληροφορίες για i-nodes χρησιμοποιώντας την κλήση stat (κάνετε man -S stat) Επίσης θα φανούν χρήσιμες οι παρακάτω κλήσεις lstat, redir, opendir, relink, fchdir, chdir, getcwd, open, close, re, write, κλπ Διαδικαστικά: Το πρόγραμμά σας θα πρέπει να γραφτεί σε C (ή C++ αν θέλετε αλλά χωρίς την χρήση STL/Templates) και να τρέχει στις μηχανές Linux του τμήματος Παρακολουθείτε την ιστοσελίδα του μαθήματος για επιπρόσθετες ανακοινώσεις στο URL http://wwwdiuoagr/~/k Υπεύθυνοι για την άσκηση αυτή (ερωτήσεις, αξιολόγηση, βαθμολόγηση κλπ) είναι οι Θάνος Γιαννόπουλος (thanosgn+at-di) και Ιωσήφ Αγγελίδης (iosang@+at-di) Μέσα από την σελίδα https://piazzacom/uoagr/fall6/k/home, θα μπορείτε να κάνετε ερωτήσεις και να δείτε απαντήσεις ή/και διευκρινήσεις που δίνονται σχετικά με την άσκηση (όπως έγινε με τις τρεις προηγούμενες ασκήσεις) Τι πρέπει να Παραδοθεί: Μια σύντομη και περιεκτική εξήγηση για τις επιλογές που έχετε κάνει στο σχεδιασμό του προγράμματος σας (- σελίδες σε ASCII κειμένου είναι αρκετές) Ενα Makefile (που να μπορεί να χρησιμοποιηθεί για να γίνει αυτόματα το compile του προγράμματος σας) 3 Ενα tar-file με όλη σας την δουλειά σε έναν κατάλογο που πιθανώς να φέρει το όνομά σας και θα περιέχει όλη σας την δουλειά δηλ source files, heer files, output files (αν υπάρχουν) και οτιδήποτε άλλο χρειάζεται Άλλες Σημαντικές Παρατηρήσεις: Η εργασία είναι είτε ατομική ή μπορεί να γίνει σε ομάδες των δύο ατόμων Αν επιλέξετε έναν/μία συνάδελφο, καλό είναι να κάνετε μια καλή επιλογή ώστε να έχετε τον ίδιο βαθμό ενδιαφέροντος επιτυχούς ολοκλήρωσής της άσκησης Το πρόγραμμα σας θα πρέπει να τρέχει σε Linux του Τμήματος αλλιώς δεν θα βαθμολογηθεί 3 Αν και αναμένεται να συζητήσετε με φίλους και συνεργάτες το πως θα επιχειρήσετε να δώσετε λύση στο πρόβλημα, αντιγραφή κώδικα (οποιαδήποτε μορφής) είναι κάτι που δεν επιτρέπεται και δεν πρέπει να γίνει Οποιοσδήποτε βρεθεί αναμεμειγμένος σε αντιγραφή κώδικά απλά παίρνει μηδέν στο μάθημα Το ίδιο ισχύει και για τις ομάδες Οσοι εμπλέκονται ανεξάρτητα από το ποιος έδωσε/πήρε κλπ μηδενίζονται 3

Appendix:Μια μέθοδος Οργάνωσης των Μεταδεδομένων σε di Αρχεία Το Σχήμα παρουσιάζει μια λογική ιεραρχία κομμάτι της οποίας αποθηκεύεται σε di αρχείο Το εν λόγω τμήμα αποτελείται από το αρχείο file και τους καταλόγους dira και dirb Εμφανώς υπάρχουν και άλλα τμήματα της ιεραρχίας /home// καθώς επίσης και του /home/ που παραμένουν εκτός αποθήκευσης Σχήμα : Παράδειγμα τμήματος ιεραρχίας που αποθηκεύεται σε αρχείο di Το Σχήμα 3 δίνει μια ισοδύναμη εικόνα της παραπάνω ιεραρχίας που προσφέρεται για κατά γραμμή εκτύπωση με τρόπο DFS Στο σχήμα αυτό το βάθος κενών χαρακτήρων από την αρχή της γραμμής είναι μεταβλητό και μπορεί να ορίζεται από την/τον χρήστη Σχήμα 3: Παράδειγμα εκτύπωσης κατά γραμμή της ιεραρχίας προς αποθήκευση σε αρχείο di Αν απο το κατάλογο βάσης /home// εκτελέσουμε την εντολή: /mydiz -c storeddi file dira dirb τότε το Σχήμα παρουσιάζει μια προτεινόμενη οργάνωση των μεταδεδομένων για τα αρχεία και καταλόγους που αποθηκεύονται στο υπό σύνθεσή storeddi αρχείο Η προτεινόμενη οργάνωση βασίζεται σε μια απλουστευμένη μορφή των i-node-list και i-nodes του Linux, και με παρόμοιο τρόπο αποτελείται από μία dinodeslist και προσαρτώμενα dinodes Και οι δύο αυτές οντότητες μπορούν να δημιουργούνται με βάση μπλοκς τα όποια έχουν σταθερό μέγεθος (ας πούμε ή bytes)

dinode list continuation of dinode list Jan 9:3:3 dinode(s) 8 Jan ::3 filegz 3 Jan 9:3:3 8 filegz 9 3 dira dirb 8 9 filegz Jan :3:3 Jan 9:3:3 filegz (stored in di file) filegz (stored in di file) Jan ::3 Jan 9:3:3 filegz file3gz dirc 6 filegz (stored in di file) Jan :3: filegz (stored in di file) 6 Jan 9:3:3 file3gz (stored in di file) Σχήμα : Παράδειγμα οργάνωσης της μεταδεδομένων του αρχείου di με την βοήθεια μιας dinodes-list και σχετικών dinodes