- Τι είναι το RTOS;
- Γιατί RTOS;
- Διαφορά μεταξύ πραγματικού χρόνου λειτουργικού συστήματος και λειτουργικού συστήματος
- Τύποι RTOS
- Οφέλη από τη χρήση δωρεάν RTOS
- Μερικά σημαντικά ζητήματα που σχετίζονται με το RTOS
- Πώς να χρησιμοποιήσετε το RTOS
Τα ενσωματωμένα συστήματα έχουν ένα ευρύ φάσμα εφαρμογών σε όλες τις ηλεκτρονικές συσκευές γύρω μας, ένα εμφανές παράδειγμα είναι ο μίνι φορητός υπολογιστής που κουβαλάμε μαζί μας όλη την ώρα, ναι, αναφέρομαι στα κινητά μας τηλέφωνα.
Όποτε ενσωματώνεται ενσωματωμένο σύστημα, είναι πάντα ένας συνδυασμός υλικού όπως μικροελεγκτές ή μικροεπεξεργαστές και λογισμικό όπως υλικολογισμικό ή λειτουργικό σύστημα. Ένα λειτουργικό σύστημα αποτελεί τη βάση όλων των ηλεκτρονικών συσκευών και διαχειρίζεται τόσο το υλικό όσο και το λογισμικό σε οποιαδήποτε ηλεκτρονική συσκευή. Ο όρος λειτουργικό σύστημα δεν περιορίζεται μόνο στα Unix και Windows για υπολογιστές, αλλά μπορεί επίσης να επεκταθεί και στους μικροελεγκτές. Ένα τέτοιο λειτουργικό σύστημα που μπορεί να εκτελεστεί σε μικροελεγκτές ονομάζεται λειτουργικό σύστημα σε πραγματικό χρόνο. Εδώ θα μάθετε για RTOS και τις εφαρμογές του λειτουργικού συστήματος σε πραγματικό χρόνο.
Τι είναι το RTOS;
Το λειτουργικό σύστημα σε πραγματικό χρόνο γνωστό ως RTOS παρέχει στον ελεγκτή τη δυνατότητα να ανταποκρίνεται στις εισόδους και να ολοκληρώνει εργασίες εντός συγκεκριμένης χρονικής περιόδου βάσει προτεραιότητας. Με την πρώτη ματιά, ένα RTOS μπορεί να ακούγεται σαν οποιοδήποτε άλλο ενσωματωμένο πρόγραμμα ή υλικολογισμικό, αλλά βασίζεται στην αρχιτεκτονική ενός λειτουργικού συστήματος. Ως εκ τούτου, όπως οποιοδήποτε λειτουργικό σύστημα, το RTOS μπορεί να επιτρέψει την εκτέλεση πολλαπλών προγραμμάτων ταυτόχρονα υποστηρίζοντας την πολυπλεξία. Όπως γνωρίζουμε, ο πυρήνας ενός επεξεργαστή ή ελεγκτή μπορεί να εκτελέσει μόνο μία εντολή κάθε φορά, αλλά το RTOS έχει κάτι που ονομάζεται προγραμματιστήςπου αποφασίζει ποιες οδηγίες πρέπει να εκτελεστούν πρώτα και έτσι εκτελεί τις οδηγίες πολλαπλών προγραμμάτων το ένα μετά το άλλο. Τεχνικά ένα RTOS δημιουργεί μια ψευδαίσθηση πολλαπλών λήψεων εκτελώντας παράλληλες οδηγίες μία κάθε φορά.
Αυτό καθιστά το RTOS κατάλληλο για διάφορες εφαρμογές στον πραγματικό κόσμο. Σε RTOS για οποιαδήποτε είσοδο κάθε φορά που έχει αξιολογηθεί μια λογική που δίνει την αντίστοιχη έξοδο. Αυτή η λογική μετριέται με βάση όχι μόνο τη λογική δημιουργικότητα αλλά και τη χρονική διάρκεια κατά την οποία έχει εκτελεστεί η συγκεκριμένη εργασία. Εάν ένα σύστημα αποτύχει στην εκτέλεση εργασιών σε αυτήν τη συγκεκριμένη χρονική διάρκεια, είναι γνωστό ως αστοχία συστήματος.
Γιατί RTOS;
- Διαθεσιμότητα προγραμμάτων οδήγησης: Υπάρχουν πολλά προγράμματα οδήγησης διαθέσιμα στο RTOS, το οποίο μας επιτρέπει να τα χρησιμοποιούμε απευθείας για διάφορες εφαρμογές.
- Προγραμματισμένα αρχεία: Το RTOS φροντίζει τον προγραμματισμό, οπότε αντί να επικεντρώνεται στον προγραμματισμό οποιουδήποτε συστήματος μπορούμε απλά να επικεντρωθούμε στην ανάπτυξη εφαρμογών. Για παράδειγμα, χρησιμοποιούνται αρχεία προγραμματισμού εργασιών για τον καθορισμό συγκεκριμένων ενεργειών κάθε φορά που πληρούνται ένα σύνολο συνθηκών. Το RTOS χρησιμοποιεί ορισμένους προηγμένους αλγόριθμους για προγραμματισμό που συνήθως εκτελείται, έτοιμες και αποκλεισμένες καταστάσεις οι οποίες, ενώ εκτελεί το RTOS, εστιάζει περισσότερο στην ανάπτυξη εφαρμογών παρά στον προγραμματισμό.
- Ευελιξία προσθήκης χαρακτηριστικών: Μέσα στο RTOS ακόμα κι αν είστε πρόθυμοι να προσθέσετε νέες δυνατότητες, μπορείτε απλώς να το προσθέσετε χωρίς να ενοχλείτε τις υπάρχουσες δυνατότητες
Διαφορά μεταξύ πραγματικού χρόνου λειτουργικού συστήματος και λειτουργικού συστήματος
Υπάρχουν διάφορες διαφορές μεταξύ του λειτουργικού συστήματος σε πραγματικό χρόνο και των λειτουργικών συστημάτων όπως τα Windows, το Linux κ.λπ. Ας ρίξουμε μια ματιά σε αυτά ένα προς ένα με τη βοήθεια της μορφής πίνακα:
ΝΟ | Λειτουργικό σύστημα | Σύστημα σε πραγματικό χρόνο |
1 | Η κατανομή χρόνου είναι η βάση της εκτέλεσης διαδικασιών στο λειτουργικό σύστημα | Οι διαδικασίες εκτελούνται με βάση τη σειρά της προτεραιότητάς τους |
2 | Το λειτουργικό σύστημα λειτουργεί ως διεπαφή μεταξύ του υλικού και του λογισμικού ενός συστήματος | Το σύστημα σε πραγματικό χρόνο έχει σχεδιαστεί για να έχει την εκτέλεση του για τα προβλήματα του πραγματικού κόσμου |
3 | Η διαχείριση της μνήμης δεν είναι κρίσιμο ζήτημα όσον αφορά την εκτέλεση του λειτουργικού συστήματος | Η διαχείριση της μνήμης είναι δύσκολη καθώς βασίζεται σε πραγματικό χρόνο η μνήμη εκχωρείται, η οποία είναι και αυτή κρίσιμη |
4 | Εφαρμογές: Γραφείο, κέντρα δεδομένων, σύστημα για το σπίτι κ.λπ. | Εφαρμογές: Έλεγχος αεροσκαφών ή πυρηνικών αντιδραστήρων, εξοπλισμός επιστημονικής έρευνας |
5 | Παραδείγματα: Microsoft Windows, Linux, OS | Παραδείγματα: Vx Works, QNX, Windows CE |
Τύποι RTOS
Μπορούμε να κατηγοριοποιήσουμε το λειτουργικό σύστημα σε πραγματικό χρόνο σε τρία μέρη δηλαδή
- Σκληρό λειτουργικό σύστημα σε πραγματικό χρόνο
- Μαλακό λειτουργικό σύστημα σε πραγματικό χρόνο
- Εταιρικό λειτουργικό σύστημα πραγματικού χρόνου
1. Σκληρό λειτουργικό σύστημα σε πραγματικό χρόνο
Ας αρχίσουμε να κατανοούμε αυτόν τον τύπο λειτουργικού συστήματος χρησιμοποιώντας ένα παράδειγμα, το ζωντανό παράδειγμα είναι το σύστημα ελέγχου πτήσης. Μέσα στο σύστημα ελέγχου πτήσης οποιεσδήποτε εργασίες δίνονται από τον πιλότο με τη μορφή εισόδου, πρέπει να εκτελούνται εγκαίρως. Σε ένα λειτουργικό σύστημα σε πραγματικό χρόνο, οι αστοχίες του συστήματος είναι ανεκτές. Τα χαρακτηριστικά του σκληρού RTOS είναι:
- Για την εκτέλεση εργασιών εγκαίρως
- Η μη τήρηση της προθεσμίας είναι θανατηφόρα
- Εγγυημένος χρόνος απόκρισης χειρότερης περίπτωσης
- Μπορεί να οδηγήσει σε αστοχία του συστήματος
2. Μαλακό λειτουργικό σύστημα πραγματικού χρόνου
Το ευκολότερο παράδειγμα χρήσης του soft RTOS είναι η ηλεκτρονική βάση δεδομένων, καθώς στο soft RTOS η παράμετρος για την οποία ανησυχούμε περισσότερο είναι η ταχύτητα. Ως εκ τούτου, τα χαρακτηριστικά του soft RTOS είναι:
- Οι εργασίες πρέπει να εκτελούνται όσο το δυνατόν γρηγορότερα
- Η καθυστερημένη ολοκλήρωση των εργασιών είναι ανεπιθύμητη αλλά όχι μοιραία
- Υπάρχει πιθανότητα υποβάθμισης της απόδοσης
- Δεν είναι δυνατή η αποτυχία του συστήματος
3. Ισχυρό λειτουργικό σύστημα σε πραγματικό χρόνο
Ο βραχίονας ρομπότ που χρησιμοποιείται για την επιλογή αντικειμένων μπορεί να θεωρηθεί ως ένα από τα παραδείγματα της εταιρείας RTOS. Εδώ, μέσα σε αυτήν την εταιρεία RTOS ακόμη και αν η διαδικασία καθυστερήσει είναι ανεκτή.
Οφέλη από τη χρήση δωρεάν RTOS
Τα παρακάτω είναι τα πλεονεκτήματα της χρήσης RTOS στις εφαρμογές σας.
- Δεν υπάρχουν προβλήματα τείχους προστασίας
- Χαμηλό εύρος ζώνης για βελτιωμένη απόδοση
- Βελτιωμένη ασφάλεια και απόρρητο
- Χαμηλό κόστος, λόγω της μείωσης των εξαρτημάτων υλικού και λογισμικού που χρησιμοποιούνται για ανάπτυξη
Μερικά σημαντικά ζητήματα που σχετίζονται με το RTOS
Τώρα, παρά το ότι έχει πολλά πλεονεκτήματα για το RTOS στην εφαρμογή του πραγματικού κόσμου, έχει επίσης διάφορα μειονεκτήματα. Μερικά από τα θέματα που σχετίζονται με αυτό συζητούνται εδώ.
- Οι διακοπές χρησιμοποιούνται συνήθως σε προγράμματα για να σταματήσουν το πρόγραμμα εκτέλεσης για να εκτρέψουν τη ροή σε κάποιο άλλο σημαντικό μέρος του κώδικα. Εδώ, μέσα σε RTOS επειδή απαιτείται χρόνος γρήγορης απόκρισης. Συνιστάται οι διακοπές να απενεργοποιούνται για τον ελάχιστο δυνατό χρόνο.
- Δεδομένου ότι, ο πυρήνας πρέπει επίσης να ανταποκρίνεται σε διάφορα συμβάντα που απαιτείται να έχει μικρότερο μέγεθος πυρήνα, ώστε να χωράει σωστά μέσα σε ROM
- Οι εξελιγμένες δυνατότητες του RTOS θα πρέπει να αφαιρεθούν, καθώς δεν υπάρχει ιδέα για αυτήν την εικονική μνήμη.
Πώς να χρησιμοποιήσετε το RTOS
Τώρα που γνωρίζετε τι είναι το RTOS και πού μπορείτε να το χρησιμοποιήσετε, για να ξεκινήσετε με το RTOS, πρέπει συνήθως να χρησιμοποιήσετε το Tornado ή το περιβάλλον ανάπτυξης του FreeRTOS. Ας ρίξουμε μια σύντομη ματιά σε αυτά τα δύο αναπτυξιακά περιβάλλοντα.
Tornado - VxWorks
Το Tornado είναι ένα ολοκληρωμένο περιβάλλον για την ανάπτυξη ενσωματωμένων εφαρμογών RTOS σε πραγματικό χρόνο στο σύστημα προορισμού. Ο ανεμοστρόβιλος αποτελείται από τρία βασικά στοιχεία που παρατίθενται παρακάτω.
1) VxWorks
2) Εργαλεία δημιουργίας εφαρμογών (μεταγλωττιστής και συναφή προγράμματα)
3) Ολοκληρωμένο περιβάλλον ανάπτυξης, το οποίο μπορεί να διαχειριστεί, να διορθώσει και να παρακολουθήσει την εφαρμογή VxWorks
Το VxWorks είναι ένα δικτυακό λειτουργικό σύστημα σε πραγματικό χρόνο. Για να ξεκινήσουμε με το VxWorks θα πρέπει να έχουμε ένα κιτ ανάπτυξης (target) μαζί με έναν σταθμό εργασίας. Εδώ, το κιτ ανάπτυξης δεν είναι τίποτα άλλο από τον κεντρικό υπολογιστή προορισμού ή το στοιχείο που επικοινωνεί με το διακομιστή προορισμού στο σταθμό εργασίας. Ο στόχος εδώ συνδέει εργαλεία ανεμοστρόβιλου, όπως το κέλυφος και το πρόγραμμα εντοπισμού σφαλμάτων. Επομένως, χρησιμοποιώντας το VxWorks θα διαμορφώσουμε και θα δημιουργήσουμε τα συστήματα, ενώ το Tornado μας παρέχει ένα γραφικό περιβάλλον χρήστη και εργαλεία γραμμής εντολών για διαμόρφωση και κατασκευή.
Πολύ σημαντικό σημείο που έρχεται στην εικόνα εδώ είναι ότι κατά την εγκατάσταση ανεμοστρόβιλου στο σύστημά σας, ο κατάλογος εγκατάστασης θα πρέπει να χρησιμοποιεί τα ονόματα διαδρομών ως:
installDir / target. Για παράδειγμα, εάν θέλετε να αποθηκεύσετε τον ανεμοστρόβιλο σας σε C: \ tornado σε έναν κεντρικό υπολογιστή παραθύρων, το πλήρες όνομα διαδρομής θα πρέπει να προσδιοριστεί σε αυτήν την περίπτωση ως installDir / target / h / vxworks.h.
Εδώ, δεν θα συζητήσουμε λεπτομερώς σχετικά με τις δυνατότητες των έργων Vx (θα το αφήσουμε για το επόμενο σεμινάριο), αλλά θα συζητήσουμε πώς μπορεί να γίνει η ανάπτυξη χρησιμοποιώντας το C ++ στο Vxworks χρησιμοποιώντας το WindRiver GNU. Το WindRiver GNU μας βοηθά στην παροχή μιας γραφικής ανάλυσης σχετικά με τη διακοπή που συνεπάγεται η εκτέλεση καθώς και την αναφορά χρήσης μνήμης.
Για παράδειγμα, η παραπάνω αναφερόμενη προβολή του WindRiver εξηγεί τον σχετικό αριθμό επεξεργαστή μαζί με την προτεραιότητα των εργασιών (tLowPri & tHighPri). Κατάσταση αναμονής, δηλαδή η πράσινη γραμμή, δηλώνει τη χρονική περίοδο για την οποία ο επεξεργαστής δεν βρίσκεται στην κατάσταση λειτουργίας του, η οποία παρατηρείται μετά από λίγα δευτερόλεπτα. Τα t1, t7, t8 & t9 δεν είναι τίποτα άλλο από τους διάφορους επεξεργαστές που χρησιμοποιούνται. Εδώ, επιλέγουμε μόνο επεξεργαστή t7.
Ως εκ τούτου, αυτό το Windriver μπορεί να επικαλεστεί και τις υπορουτίνες του VxWorks και της λειτουργικής μονάδας εφαρμογών. Μπορείτε να ξεκινήσετε την εφαρμογή Windriver είτε από τη γραμμή εργαλείων εκκίνησης ανεμοστρόβιλου (κουμπί -> i) αργότερα κάντε κλικ στο μενού και στη συνέχεια κάντε κλικ στο κέλυφος. Τέλος, από τη γραμμή εντολών πληκτρολογήστε "> Windsh Target Server".
Τώρα για να προγραμματίσετε χρησιμοποιώντας το C ++, είναι σημαντικό να συμπεριλάβετε το στοιχείο INCLUDE_CPLUS_DEMANGLER, αυτό το στοιχείο demangler επιτρέπει στα σύμβολα κελύφους στόχου να επιστρέφουν ανθρώπινες αναγνώσιμες μορφές ονομάτων συμβόλων C ++. Πριν από τη λήψη της μονάδας C ++ στον στόχο Vxworks, ακολουθήστε τη διαδικασία που είναι γνωστή ως Munching. Εδώ, το munching αναφέρεται σε επιπλέον βήμα επεξεργασίας κεντρικού υπολογιστή.
Μεταγλωττίστε το πρόγραμμα προέλευσης εφαρμογής C ++ και λάβετε για παράδειγμα αρχείο hello.cpp. Αργότερα εκτελέστε το για να κάνετε munch στο.o και να μεταγλωττίσετε το αρχείο ctdt.c που δημιουργήθηκε. Επιπλέον, συνδέστε την εφαρμογή με το ctdt.o για να δημιουργήσετε λειτουργική μονάδα με δυνατότητα λήψης, hello.out μέσα στο VxWorks. Η έξοδος μετά την εκτέλεση αυτού του VxWorks θα είναι ένα αρχείο make που θα χρησιμοποιηθεί σε κάποιο στόχο.
Δωρεάν RTOS
Γενικά, όποτε ξεκινάμε με RTOS προτιμούμε γενικά το Vx Works RTOS. Αλλά, ας κάνουμε μια σύντομη συζήτηση σχετικά με το Δωρεάν RTOS, το οποίο μπορεί επίσης να χρησιμοποιηθεί από τους αρχάριους για να περάσουν από την έννοια του λειτουργικού συστήματος σε πραγματικό χρόνο. Το Free RTOS αναπτύχθηκε από την Richard Barry και την ομάδα του FreeRTOS, επίσης ανήκει στην Real Time engineer ltd, αλλά είναι δωρεάν για χρήση και μπορεί να μεταφορτωθεί απλά κάνοντας κλικ στον παρακάτω σύνδεσμο
Λήψη δωρεάν ROTS
Η τελευταία έκδοση του δωρεάν RTOS που χρησιμοποιείται τη στιγμή αυτού του άρθρου είναι η έκδοση 10, που αναφέρεται ως FreeRTOS V10.
Το μεγαλύτερο πλεονέκτημα του δωρεάν RTOS που το καθιστά ανώτερο από την άποψη του άλλου RTOS είναι η ανεξάρτητη πλατφόρμα συμπεριφοράς από την άποψη του υλικού, δηλαδή ο κωδικός c που θα χρησιμοποιούμε για την εκτέλεση ενός λειτουργικού συστήματος μπορεί να εκτελείται σε διάφορες πλατφόρμες με διαφορετική αρχιτεκτονική. Επομένως, ανεξάρτητα από το εάν χρησιμοποιείτε μικροελεγκτή 8051 ή κάποιον τελευταίο μικροελεγκτή ARM, ο κώδικας που γράψατε μαζί με τη διαδικασία εκτέλεσης θα είναι παρόμοιος και για τους δύο.
Υπάρχουν πολλά άλλα οφέλη από τη χρήση δωρεάν RTOS σε σχέση με έργα Vx και άλλα εργαλεία λειτουργίας RTOS. Μερικά από αυτά μπορούν να δηλωθούν ως:
- Παρέχει ευκολότερες δοκιμές
- Προωθεί την έννοια της επαναχρησιμοποίησης κώδικα
- Λιγότερος χρόνος αδράνειας
- Εύκολη συντήρηση
- Περίληψη πληροφοριών χρονισμού
Επίσης, ο βασικός πυρήνας, όπου ο πυρήνας αναφέρεται στο κεντρικό στοιχείο ενός λειτουργικού συστήματος που υπάρχει μέσα στο δωρεάν RTOS το καθιστά προσβάσιμο στη χρήση για διάφορες εφαρμογές. Δεδομένου ότι είναι εύκολο να συνδέσετε διευρυμένες λειτουργικές μονάδες σε λειτουργικά συστήματα για να αποκτήσετε περισσότερες εφαρμογές, το δωρεάν RTOS γίνεται πιο ισχυρό.
Ένα από τα παραδείγματα χρήσης δωρεάν RTOS μπορεί να εξηγηθεί χρησιμοποιώντας την έννοια του συνδυασμού Free RTOS με το Nabto. Το Nabto είναι μια δωρεάν συσκευή ιστού που χρησιμοποιείται για τη μεταφορά των πληροφοριών από τη συσκευή στο πρόγραμμα περιήγησης.
Επομένως, συνδυάζοντας το Free RTOS με το Nabto το καθιστά ένα μικρό κομμάτι κώδικα C, όπως εξηγείται στο σχήμα α. Τώρα μια μέρα το Internet of Things (IOT) βρίσκεται σε τάση και κάθε συσκευή IOT στην οποία θα έχουμε πρόσβαση έχει μια μοναδική διεύθυνση URL μέσω του Διαδικτύου και η τεχνολογία επιτρέπει ασφαλείς και εξαιρετικά χαμηλές συνδέσεις σημείου προς σημείο εύρους ζώνης. Ελλείψει σύνδεσης στο Διαδίκτυο, αυτός ο συνδυασμός μπορεί να είναι χρήσιμος. Επομένως, το δωρεάν RTOS είναι μια δημοφιλής επιλογή για την εφαρμογή του IOT.