..


Σύνδεσμοι διαφημιζόμενων

Ταυτόχρονη προγραμματισμού στο POSIX C

Το άρθρο γράφτηκε από τον Mark Frison
Σελίδα 1 από 5

Όλα τα σύγχρονα λειτουργικά συστήματα χρειαστούν χρόνια για να είναι ένα μοντέλο διαχείρισης πολλαπλών διαδικασία, ορίζοντας το χρόνο εκτέλεσης και χώρο μνήμης για τα διάφορα προγράμματα που εκτελούνται ταυτόχρονα. Τα τελευταία χρόνια, οφείλεται σε μεγάλο βαθμό τη διεισδυτικότητα της επικοινωνίας του δικτύου, αυτή η έννοια έχει επεκταθεί και στις ατομικές λογισμικό, διαιρώντας την ίδια διαδικασία πολλαπλάσια ρεύματα του ελέγχου αυτών των θεμάτων. Αυτή η νέα προσέγγιση φέρνει τεράστιες αλλαγές στη δομή του λογισμικού, τόσο στη θεωρία όσο και στην πράξη, όπως πάντα συμβαίνει, η σπονδυλωτής και εκφραστικότητα καταβάλλονται σε σχέση με την αυξημένη πολυπλοκότητα του λογισμικού.

Οι γλώσσες προγραμματισμού πιο πρόσφατα, από την Java, όλα προσφέρουν μητρική APIs για τη δημιουργία και τη διαχείριση των θεμάτων? Συστήματα που βασίζονται σε εικονικές μηχανές, όπως η Java και C # έχει ο κύριος του έργου ένα επίπεδο αφαίρεσης συνεπής σε αυτό το θέμα και όλα τα άλλα πρέπει να βασίζονται σε τα αρχέτυπα του λειτουργικού συστήματος, αναλαμβάνοντας συχνά προβλήματα της φορητότητας του κώδικα. Σε αυτό το πλαίσιο, οι βιβλιοθήκες αποτελούν μέρος του POSIX Threads (Pthreads) να επιτρέψει C προγραμματιστές επίσης μια ελάχιστη εγγύηση για τη δυνατότητα μεταφοράς μεταξύ των διαφόρων συστημάτων.

Προϋποθέσεις

Αυτό το άρθρο απευθύνεται σε όποιον επιθυμεί να προσεγγίσει το θέμα της ταυτόχρονης προγραμματισμού σε γλώσσες χαμηλού επιπέδου. Σε αυτή την παρουσίαση υποθέτει ότι ο αναγνώστης έχει ήδη αποκτήσει μια βασική γνώση της γλώσσας C δεν θα πρέπει να αντιμετωπίζονται ως βασικά θέματα, όπως, για παράδειγμα, διαχείριση μνήμης και τύποι δεδομένων.

Οι βιβλιοθήκες νημάτων POSIX

Όπως εύκολα να μαντέψει από το όνομα, τις βιβλιοθήκες νημάτων POSIX είναι μέρος του συνόλου των POSIX (Portable Interface λειτουργικό σύστημα [για Unix]). Επικαλούμενη τον ορισμό "pthread [...] προσδιορίζει ένα σύνολο από διασυνδέσεις (λειτουργίες, αρχεία κεφαλής) για σπείρωμα διαδικασία προγραμματισμού για ενιαία [...] μπορεί να περιέχει πολλά θέματα, τα οποία εκτελούν το πρόγραμμα εξέτασης [...] Το ίδιο ποσοστό παγκόσμια μνήμη (δεδομένων και των τμημάτων σωρός), αλλά κάθε νήμα του έχει το δικό στοίβα. " Αυτό το απόσπασμα περιγράφει ακριβώς αυτό που εμπλέκεται σε πολυ-προγραμματισμού σε θέματα που POSIX:

  • πολλαπλές ροές ελέγχου (τα θέματα) σε μια ενιαία διαδικασία?
  • κοινή χρήση της μνήμης που περιέχει τον κωδικό (δεδομένα του τομέα) και δυναμική μνήμη (τμήμα σωρό)?
  • ιδιωτικό στοίβα.
Αυτό που δεν καθιστά σαφές είναι η κατάσταση των εγγραφών, ιδίως εκείνων που, όπως ο δείκτης διδασκαλία των βασικών »και το δείκτη στοίβας, γι 'αυτό θα ορίζει ότι όλα τα αρχεία είναι απολύτως ιδιωτικά σε κάθε νήμα και να αποθηκεύονται / αποκαθίσταται όταν η ροή του ελέγχου έχει μετατοπιστεί από μεταξύ των θεμάτων (αλλαγή νήμα).

Χρησιμοποιήστε το πρότυπο POSIX παρέχει υψηλό επίπεδο ολοκλήρωσης σε όλες τις POSIX συμβατά συστήματα όπως, για παράδειγμα, το GNU / Linux, Mac OSX, BSD και ακόμα και τα Windows (με ορισμένες προσθήκες). Σε όλο αυτό το άρθρο θα αναφερθούμε στη χρήση του ΣΣΚ σύμφωνα με την GNU / Linux, φυσικά, όλες οι εκτιμήσεις μεταφερθούν σε οποιοδήποτε άλλο POSIX-όπως το περιβάλλον.

Μια πρώτη (λανθασμένη) παράδειγμα

Η βιβλιοθήκη pthread.h προσφέρει όλα όσα χρειάζεστε για τον προγραμματισμό σε ένα πολυ-τα θέματα, αντί να κάνει μια απλή παράθεση των παρεχόμενων τα αρχέτυπα, θα παρουσιάσουμε ένα πρακτικό παράδειγμα από καιρό σε καιρό συζητώντας τις διαφορές τους.

Οπότε σκεφτείτε το εξής πρόβλημα: το πρόγραμμα πρέπει να διαβάζει από τραπεζικό έμβασμα πολλά αρχεία της συλλογής ή / και καταθέσεων που πρέπει να γίνουν σε ένα λογαριασμό, τότε αυτά τα αρχεία θα έχουν την ακόλουθη μορφή:






 120







 -550







 896







 5541







 -85







 ...



Για να επιταχυνθεί διαφορετικά νήματα "ταμείο" κάθε λειτουργούν σε ένα ενιαίο αρχείο και ο λογαριασμός ενημερώθηκε ταυτόχρονα πελάτη, θα εκτελούνται όλες οι λειτουργίες της κατάστασης εξόδου του λογαριασμού.

Στην ίδια κατηγορία ...
E-Learning
AutoCAD (eBook) AutoCAD (eBook)
Δημιουργία αρχιτεκτονικές δομές. Σε μόνο 29 €.
MS Access (για προχωρημένους) MS Access (για προχωρημένους)
Μάθετε πώς να δημιουργήσετε και να διαχειριστείτε τις βάσεις δεδομένων γρήγορα και εύκολα. Ξεκινώντας από 29 €.
SQL και βάσης δεδομένων (Μάθημα) SQL και βάσης δεδομένων (Μάθημα)
Δημιουργία και διαχείριση των σχεσιακών βάσεων δεδομένων. Από 39 €.
Σύνδεσμοι διαφημιζόμενων