Skip to content

SirLentas/fork_sorter

Repository files navigation

fork_sorter

Δημιουργία εκτελέσιμου:

Η δημιουργία του εκτελέσιμου γίνεται με την κληση της εντολής make η οποία δημιουργεί το mysort ,η διαγραφή του οποίου γίνεται με την make clean.

Κλήση εφαρμογής:

Η εφαρμογή καλείται με την εξής εντολή ./mysort -f inputfile -h|q columnid [-h|q columnid]

Παράδειγμα : $ ./mysort -f Records1000000.bin -q 1 -q 2 -h 4 -h 6

Τα μέλη της εντολής αυτής μπορούν να δωθούν με οποιαδήποτε σειρά αρκεί να βρίσκονται μετά το αντίστοιχο flag . Το iputfile είναι το μοναδικό στοιχείο που απαιτείται η εισαγωγή του και σε αντίθετη περίπτωση το πρόγραμμα τερματίζει. Η έλλειψη σημαίας τύπου q ή h προκαλεί ταξινόμηση του αρχείου εισόδου βασισμένη στο 1ο πεδίο μόνο. Η έξοδος γινεται σε ενα αρχείο με όνομα το όνομα του αρχείου εισαγωγής και στο τελος τον αριθμό της στηλης στην οποία εγινε η ταξινομηση. Το columnid αντιστοιχει στην σειρα με την οποία εμφανίζονται οι στείλες.

Λειτουργία:

Ο coordinator ειναι αυτος που αναλογα με τον αριθμο των ορισματων καλει τους coach0, coach1, coach2, coach3 με την χρήση της execvp(). Με τη σειρα τους οι coaches δημιουργουν τον αριθμο των sorters που αντιστοιχει στον καθενα, ενω οι τελευταιοι καλουν τις συναρτήσεις heap ή quick για να ταξινομησουν τα κομματια που τους αντιστοιχουν. Στη συνέχεια επιστρέφουν στον coach τους μεσω pipes τα ταξινομημενα κομματια εγγραφών και στατιστικα για το χρονο εκτέλεσης τους, ενω στελνουν και ενα signal προς αυτον. Ο coach με τη σειρα του συνχωνευει τα ταξινομημενα κομματια με τη βοήθεια της merge και τα τυπώνει στο κατάλληλο αρχειο. Επισης στελνει στον coordinator μεσω pipes στατιστικα για αυτον και τους sorters. Ο cordinator τυπώνει όλα τα στατιστικά που εχει συλλέξει στο tty.

Αρχεία εξοδου:

Το προγραμμα δημιουργεί τοσα αρχεια, οσοι και οι coaches που κληθηκαν. Η έξοδος απο καθε coach γινεται σε ενα αρχείο με το όνομα του αρχείου εισαγωγής και στο τελος τον αριθμό της στηλης στην οποία εγινε η ταξινομηση(columnid).

Έξοδος στο tty:

Στο tty ο coordinator γραφει τα στατιστικα για τους coaches και τους sorters που δημιουργηθηκαν, αλλα και στατιστικα οπως min,max,average time των sorters για καθε coach ξεχωριστα. Τελος γραφει το Turnaround time του coordinator και τα min, max και average time των coaches.

O χρονος που εμφανιζεται ειναι σε ms για μεγαλυτερη ακρίβεια.

Πηγές:

Η υλοποίηση της heap sort βασιστηκε, κυρίως ως προς την κατανοηση στον παρακατω συνδεσμο geeksforgeeks.org/heap-sort/

Ενω η υλοποιηση της quick sort βασιστηκε στο κεφαλαιο 2.7 του βιβλιου "Εισαγωγη στους αλγοριθμους" του Cormen.

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages