Ποια είναι η διαφορά μεταξύ των λειτουργικών συστημάτων πραγματικού χρόνου όπως το VxWorks και τα παραδοσιακά λειτουργικά συστήματα όπως τα Windows;


Απάντηση 1:

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

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

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


Απάντηση 2:

Ο Saleem Abdulrasool έχει μια εξαιρετική απάντηση, είναι όλα σχετικά με την λανθάνουσα κατάσταση του συστήματος. Ο υπολογισμός του ορισμού του πραγματικού χρόνου είναι ένας εγγυημένος χρόνος απόκρισης μεταξύ του γεγονότος που συμβαίνει, συνήθως μιας διακοπής κάποιου είδους και του συστήματος που ανταποκρίνεται στο γεγονός αυτό.

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

Μπορείτε να ορίσετε τα Windows ως πραγματικό χρόνο καθορίζοντας ένα χρόνο απόκρισης 1 δευτερολέπτου. Ίσως ο χρόνος απόκρισης να είναι επαρκής για μια διαδικασία που θεωρείται πραγματικός χρόνος.

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


Απάντηση 3:

Συμφωνώ ουσιαστικά με όσα είπαν ο Saleem και ο Andrew. Γενικά η διαφορά μεταξύ ενός RTOS και ενός παραδοσιακού OS είναι οι αλγόριθμοι προγραμματισμού. Αυτό βασίζεται στον τομέα εφαρμογής του λειτουργικού συστήματος και σε ποιες προτεραιότητες πρέπει να κάνει.

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

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

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


Απάντηση 4:

Δεδομένου ότι το VxWorks είναι ένα λειτουργικό σύστημα πραγματικού χρόνου (RTOS) και τα Windows είναι ένα λειτουργικό σύστημα γενικού σκοπού (GPOS), η ερώτησή σας μπορεί να θεωρηθεί ως RTOS vs GPOS.

Η πιο θεμελιώδης διαφορά είναι ότι η RTOS είναι καθοριστική στη συμπεριφορά χρονισμού, ενώ η GPOS είναι μη ντετερμινιστική.

Με τον προσδιορισμό της συμπεριφοράς χρονισμού, οι εργασίες RTOS θα καταναλώνουν μόνο γνωστές και αναμενόμενες μονάδες χρόνου. π.χ.: μπορούμε να πούμε ότι ένας υπολογισμός δειγματοληψίας (μια εργασία) θα γίνει σε 2ms.

Στο GPOS, οι υπηρεσίες (εργασίες) μπορούν να εισάγουν τυχαίες χρονικές καθυστερήσεις σε λογισμικό εφαρμογών και έτσι να προκαλούν αργή απόκριση σε απροσδόκητους χρόνους. π.χ.: δεν μπορούμε να εγγυηθούμε ότι το Microsoft Word στα παράθυρα θα ανοίξει μέσα σε 2 δευτερόλεπτα αφού κάνετε κλικ για να το ανοίξετε.