Eξομοιωτές vs Προσομοιωτές. Πως λειτουργούν και ποιες οι διαφορές.

Ίσως να έχετε ακούσει και τους δύο όρους, ιδιαίτερα σε παιχνίδια. Οι εξομοιωτές και οι προσομοιωτές αν και μοιάζουν να είναι το ίδιο πράγμα έχουν θεμελιώσεις διαφορές. Δείτε ποιες είναι και πως λειτουργούν τα δύο συστήματα.

virtualbox 1

Στην αγγλική γλώσσα χρησιμοποιούνται οι όροι emulation (εξομειωτής) και simulation (προσομοιωτής). Στον κόσμο του λογισμικού, είναι σύνηθες να ακούμε ανθρώπους να μιλούν για αυτούς, σαν να είναι συνώνυμοι οι όροι.

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

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

Προσομοιωτές και εξομοιωτές: Τι κοινό έχουν

Virtualization,emulation,simulation

Αρχικά, επιτρέψτε μου να εξηγήσω πώς οι προσομοιωτές και οι εξομοιωτές μοιάζουν μεταξύ τους.

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

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

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

Προσομοιωτές εναντίον εξομοιωτών: Πώς είναι διαφορετικοί

microsoft flight simulator

Αλλά το γεγονός ότι οι προσομοιωτές και οι εξομοιωτές εξυπηρετούν και οι δύο παρόμοιους σκοπούς δεν σημαίνει ότι λειτουργούν με τον ίδιο τρόπο. Υπάρχουν ουσιαστικές διαφορές μεταξύ τους.

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

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

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

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

Πότε χρησιμοποιούνται προσομοιωτές

Virtualization,emulation,simulation

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

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

Πότε χρησιμοποιούνται εξομοιωτές

Flight Simulator

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

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

Η εξομοίωση υλικού κάνει τη διαφορά

Έχετε αναρωτηθεί ποτέ πώς λειτουργούν οι εξομοιωτές; Ή γιατί οι εξομοιωτές σας είναι αργοί ή παρουσιάζουν καθυστέρηση; Ας δούμε τι επηρεάζει την απόδοση εξομοίωσης χρησιμοποιώντας ένα πραγματικό παράδειγμα.

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

Sony Playstation 4

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

Πώς λειτουργούν οι εξομοιωτές;

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

Η δυσκολία μετατροπής προηγμένων και μοναδικών κομματιών υλικού σε λειτουργικό λογισμικό είναι ο λόγος για τον οποίο οι εξομοιωτές για σύγχρονες κονσόλες παιχνιδιών χρειάζονται πολύ χρόνο για να αναπτυχθούν. Χρειάζεται πολλή σκληρή δουλειά και προσπάθεια για να λειτουργήσει η διαδικασία εξομοίωσης, επειδή το σύγχρονο υλικό, όπως ένα PlayStation 4 ή ένα Xbox One, είναι εξαιρετικά περίπλοκο.

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

Όμως, ποιο είναι το πιο δύσκολο στοιχείο για μίμηση;

Κεντρική μονάδα επεξεργασίας
Το πιο δύσκολο κομμάτι υλικού προς μίμηση είναι συνήθως η κεντρική μονάδα επεξεργασίας (CPU). Η CPU είναι βασικό στοιχείο κάθε υπολογιστή, από smartphone έως κονσόλες βιντεοπαιχνιδιών. Από πολλές απόψεις, η CPU είναι το πιο σημαντικό στοιχείο υπολογιστή όσον αφορά την εξομοίωση, καθώς κάθε άλλο στοιχείο συνδέεται απευθείας με αυτή.

Virtualization,emulation,simulation

Δεν είναι όλες οι CPU ίδιες. Ο κύριος τρόπος με τον οποίο οι CPU διαφέρουν μεταξύ τους είναι στα σύνολα εντολών τους. Ένα σύνολο εντολών CPU καθορίζει πώς ένας υπολογιστής εκτελεί τις εντολές που του δίνει ένα πρόγραμμα.

Ένας εξομοιωτής θα στοχεύσει ένα σύστημα που έχει διαφορετικό σύνολο εντολών από τον κεντρικό υπολογιστή. Για παράδειγμα, η CPU του PlayStation χρησιμοποιεί ένα σύνολο εντολών γνωστό ως MIPS, το οποίο είναι διαφορετικό από το επιτραπέζιο ή φορητό υπολογιστή που χρησιμοποιεί x86.

Γιατί οι εξομοιωτές είναι τόσο αργοί;

Η διαφορά μεταξύ των εντολών είναι ένας από τους λόγους για τους οποίους οι εξομοιωτές μερικές φορές υπολειτουργούν. Κάθε εντολή CPU που λαμβάνει ο εξομοιωτής πρέπει να μεταφράζεται από το ένα σύνολο στο άλλο. Επιπλέον, η μετάφραση αυτού του σετ οδηγιών πραγματοποιείται άμεσα, on the fly.

Στο παραπάνω παράδειγμα, η CPU του εξομοιωτή PlayStation λαμβάνει μια οδηγία MIPS, τη μεταφράζει σε x86 και στη συνέχεια εκτελείται στον υπολογιστή σας.

Η μετάφραση των εντολών αποτελεί τη βάση του τρόπου με τον οποίο οι εξομοιωτές προσομοιώνουν μια ολόκληρη συσκευή μέσα στον υπολογιστή σας.

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

Virtualization έναντι Emulation: Ποια είναι η διαφορά;

Virtualization,emulation,simulation

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

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

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

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

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

Οι διαφορές είναι μικρές και πρακτικά μιλώντας, η εικονικοποίηση και η εξομοίωση είναι λειτουργικά τα ίδια πράγματα.

Όπως καταλαβαίνεται η εξομοίωση είναι πιο δύσκολη. Η εξομοίωση μιας κονσόλας βιντεοπαιχνιδιών είναι μια πολύπλοκη διαδικασία, και αυτό το άρθρο καλύπτει μόνο τα βασικά.

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

iGuRu.gr The Best Technology Site in Greeceggns

Get the best viral stories straight into your inbox!















Written by Δημήτρης

O Δημήτρης μισεί τις Δευτέρες.....

Αφήστε μια απάντηση

Η ηλ. διεύθυνση σας δεν δημοσιεύεται. Τα υποχρεωτικά πεδία σημειώνονται με *

Το μήνυμα σας δεν θα δημοσιευτεί εάν:
1. Περιέχει υβριστικά, συκοφαντικά, ρατσιστικά, προσβλητικά ή ανάρμοστα σχόλια.
2. Προκαλεί βλάβη σε ανηλίκους.
3. Παρενοχλεί την ιδιωτική ζωή και τα ατομικά και κοινωνικά δικαιώματα άλλων χρηστών.
4. Διαφημίζει προϊόντα ή υπηρεσίες ή διαδικτυακούς τόπους .
5. Περιέχει προσωπικές πληροφορίες (διεύθυνση, τηλέφωνο κλπ).