Προς το περιεχόμενο

Εφαρμογές που τρεχουν σε πραγματικο χρονο


geo1st487

Προτεινόμενες αναρτήσεις

Δημοσ.
ναι αλλα δεν ειναι απαραιτητο να γραψεις ολο τον κωδικα σε assembly . Απλα μπορεις να κανεις optimize τα βασικοτερα κομματια ( αυτα που θα τρεχουν πιο συχνα ) αρα και σε μεγαλα project αυτος ο κωδικας δεν ξεπερναει τις 100-200 γραμμες ( υποθετω :rolleyes: )

 

Ο compiler έχει για παράδειγμα προγραμματισμένη λογική για την αλλαγή της σειράς των εντολών ώστε να γίνεται αποδοτικότερη χρήση του pipeline χωρίς φυσικά να αλλάζει η λογική του προγράμματος.

Νομίζεις ότι μπορεί εύκολα να το κάνει άνθρωπος αυτό; Και αφού το κάνει, μπορεί αυτός ο κώδικας να συντηρηθεί;

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

  • Απαντ. 45
  • Δημ.
  • Τελ. απάντηση
Δημοσ.
ναι αλλα δεν ειναι απαραιτητο να γραψεις ολο τον κωδικα σε assembly . Απλα μπορεις να κανεις optimize τα βασικοτερα κομματια ( αυτα που θα τρεχουν πιο συχνα ) αρα και σε μεγαλα project αυτος ο κωδικας δεν ξεπερναει τις 100-200 γραμμες ( υποθετω :rolleyes: )

 

Ο compiler έχει για παράδειγμα προγραμματισμένη λογική για την αλλαγή της σειράς των εντολών ώστε να γίνεται αποδοτικότερη χρήση του pipeline χωρίς φυσικά να αλλάζει η λογική του προγράμματος.

Νομίζεις ότι μπορεί εύκολα να το κάνει άνθρωπος αυτό; Και αφού το κάνει, μπορεί αυτός ο κώδικας να συντηρηθεί;

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

Δημοσ.

Ο reverse engineer διαβάζει και καταλαβαίνει assembly (όπως και ένας προγραμματιστής που ξέρει assembly). Δεν είναι απαραίτητο να γράφει.

Και ο hacker ξέρει assembly και γράφει shellcode και φτιάχνει το payload.

Το θέμα αφορά εφαρμογές και επιλογή γλώσσας.

Δημοσ.

Ο reverse engineer διαβάζει και καταλαβαίνει assembly (όπως και ένας προγραμματιστής που ξέρει assembly). Δεν είναι απαραίτητο να γράφει.

Και ο hacker ξέρει assembly και γράφει shellcode και φτιάχνει το payload.

Το θέμα αφορά εφαρμογές και επιλογή γλώσσας.

Δημοσ.
μέσα σε συγκεκριμένα deadlines από τη στιγμή που θα παραληφθεί το input.

 

Σωστό.

Real time δεν σημαίνει ταχύτητα...

Ένα σύστημα που σίγουρα θα αντιδράσει σε ένα μήνα είναι real time.

Ένα σύστημα πού κατά 99,999% θα ανταποκριθεί σε 100μs δεν είναι.

Δημοσ.
μέσα σε συγκεκριμένα deadlines από τη στιγμή που θα παραληφθεί το input.

 

Σωστό.

Real time δεν σημαίνει ταχύτητα...

Ένα σύστημα που σίγουρα θα αντιδράσει σε ένα μήνα είναι real time.

Ένα σύστημα πού κατά 99,999% θα ανταποκριθεί σε 100μs δεν είναι.

Δημοσ.
Σε ποια VB αναφέρεται ο ποιητής; 6? ή .ΝΕΤ 10?

 

Δεν αναφέρει την εκδοση της VB. Εχει διαφορά; Ποια ειναι γρηγοροτερη απο τις δυο;

 

Δεν μπορω να καταλαβω κατι. Εφοσον η VB και η VC++ παραγουν exe αρχεια τα οποια περιεχουν κωδικα μηχανης ο οποιος ειναι ταχυτατος διοτι μιλαει απευθειας στη γλωσσα του υπολογιστη πως γινεται οι εφαρμογες γραμμενες σε VC++ να τρεχουν γρηγοροτερα απο τις VB; Εκτος και αν η VC++ παραραγει αποδοτικοτερο κωδικα μηχανης απο την VB οποτε αυτο ειναι θεμα ικανοτητας compiler.

Δημοσ.
Σε ποια VB αναφέρεται ο ποιητής; 6? ή .ΝΕΤ 10?

 

Δεν αναφέρει την εκδοση της VB. Εχει διαφορά; Ποια ειναι γρηγοροτερη απο τις δυο;

 

Δεν μπορω να καταλαβω κατι. Εφοσον η VB και η VC++ παραγουν exe αρχεια τα οποια περιεχουν κωδικα μηχανης ο οποιος ειναι ταχυτατος διοτι μιλαει απευθειας στη γλωσσα του υπολογιστη πως γινεται οι εφαρμογες γραμμενες σε VC++ να τρεχουν γρηγοροτερα απο τις VB; Εκτος και αν η VC++ παραραγει αποδοτικοτερο κωδικα μηχανης απο την VB οποτε αυτο ειναι θεμα ικανοτητας compiler.

Δημοσ.

Η παλιά VB είναι interpreted, το .exe που βγάζει δεν περιέχει κώδικα μηχανής.

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

Δημοσ.

Η παλιά VB είναι interpreted, το .exe που βγάζει δεν περιέχει κώδικα μηχανής.

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

Δημοσ.
Δεν αναφέρει την εκδοση της VB. Εχει διαφορά; Ποια ειναι γρηγοροτερη απο τις δυο;

 

Δεν μπορω να καταλαβω κατι. Εφοσον η VB και η VC++ παραγουν exe αρχεια τα οποια περιεχουν κωδικα μηχανης ο οποιος ειναι ταχυτατος διοτι μιλαει απευθειας στη γλωσσα του υπολογιστη πως γινεται οι εφαρμογες γραμμενες σε VC++ να τρεχουν γρηγοροτερα απο τις VB; Εκτος και αν η VC++ παραραγει αποδοτικοτερο κωδικα μηχανης απο την VB οποτε αυτο ειναι θεμα ικανοτητας compiler.

 

Πρακτικά, real time εφαρμογές είναι αυτές που σου εξήγησα στην αρχή.

Μια εφαρμογή που αποκρίνεται μετά από λεπτά, ώρες, μέρες κ.α. ΔΕΝ μπορεί να θεωρηθεί real time διότι απόκρισή της στον χρήστη δεν είναι άμεση.

Τα υπόλοιπα επ' αυτού είναι αμπελλοφιλοσοφίες.

 

Κάποιες γλώσσες παράγουν ταχύτερο κώδικα μηχανής από άλλες λόγω της αρχιτεκτονικής τους.

Συνήθως αυτό αυτό είναι εις βάρος της φιλικότητας και της ευχρηστίας.

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

Η Βasic είναι παραδοσιακά πολύ φιλικότερη σε τέτοια πράγματα εις βάρος της ταχύτητας βέβαια.

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

Σε αυτό παίζoυν ρόλο και οι βελτιστοποιήσεις που μπορεί να κάνει ο compiler.

Υπάρχουν όμως και άλλες απαιτήσεις όπου δεν μπορεί να ανταποκριθεί η Basic.

Π.χ. η παραλληλία είναι σήμερα "εκ των ων ουκ ανευ" για κάθε επιστημονική εφαρμογή λόγω των μεγάλων απαιτήσεων σε υπολογιστικό φορτίο.

Οι εφαρμογές στην Basic δεν μπορούν να παραλληλιστούν αυτόματα σε αντίθεση με τη fotran και εν μέρη με τη C++. Oύτε υποστηρίζει openMP ή ΜPI.

Και δεν ξέρω αν η Βasic παρέχει ευκολίες για προγραμματισμό σε χαμηλότερο επίπεδο όπως η C++.

Xώρια που αν ο άνθρωπος γράφει επιστημονικό λογισμικό πιθανόν να χρησιμοποιεί βιβλιοθήκες που δεν υπάρχουν στην Basic ή/και δεν μπορούν να μεταγραφούν σ' αυτήν.

 

Συνοπτικά : η βασική απαίτηση για μια real time εφαρμογή είναι η ταχύτητα επεξεργασίας ώστε να αποκρίνεται πρακτικώς άμεσα στον χρήστη.

Σε αυτήν επιδρά ένα πλήθος παραγόντων. Οι παράγοντες αυτοί ελέγχονται περισσότερο στη C++ απ ότι στην Basic ενώ και η υποστήριξη από άποψη

βοηθητικών μέσων (βιβλιοθήκες, εξειδικευμένο hardware κ.α.) είναι σημαντικά μεγαλύτερη στην C++ καθιστώντας την πιο κατάλληλη για ανάπτυξη σοβαρού λογισμικού.

Δημοσ.
Δεν αναφέρει την εκδοση της VB. Εχει διαφορά; Ποια ειναι γρηγοροτερη απο τις δυο;

 

Δεν μπορω να καταλαβω κατι. Εφοσον η VB και η VC++ παραγουν exe αρχεια τα οποια περιεχουν κωδικα μηχανης ο οποιος ειναι ταχυτατος διοτι μιλαει απευθειας στη γλωσσα του υπολογιστη πως γινεται οι εφαρμογες γραμμενες σε VC++ να τρεχουν γρηγοροτερα απο τις VB; Εκτος και αν η VC++ παραραγει αποδοτικοτερο κωδικα μηχανης απο την VB οποτε αυτο ειναι θεμα ικανοτητας compiler.

 

Πρακτικά, real time εφαρμογές είναι αυτές που σου εξήγησα στην αρχή.

Μια εφαρμογή που αποκρίνεται μετά από λεπτά, ώρες, μέρες κ.α. ΔΕΝ μπορεί να θεωρηθεί real time διότι απόκρισή της στον χρήστη δεν είναι άμεση.

Τα υπόλοιπα επ' αυτού είναι αμπελλοφιλοσοφίες.

 

Κάποιες γλώσσες παράγουν ταχύτερο κώδικα μηχανής από άλλες λόγω της αρχιτεκτονικής τους.

Συνήθως αυτό αυτό είναι εις βάρος της φιλικότητας και της ευχρηστίας.

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

Η Βasic είναι παραδοσιακά πολύ φιλικότερη σε τέτοια πράγματα εις βάρος της ταχύτητας βέβαια.

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

Σε αυτό παίζoυν ρόλο και οι βελτιστοποιήσεις που μπορεί να κάνει ο compiler.

Υπάρχουν όμως και άλλες απαιτήσεις όπου δεν μπορεί να ανταποκριθεί η Basic.

Π.χ. η παραλληλία είναι σήμερα "εκ των ων ουκ ανευ" για κάθε επιστημονική εφαρμογή λόγω των μεγάλων απαιτήσεων σε υπολογιστικό φορτίο.

Οι εφαρμογές στην Basic δεν μπορούν να παραλληλιστούν αυτόματα σε αντίθεση με τη fotran και εν μέρη με τη C++. Oύτε υποστηρίζει openMP ή ΜPI.

Και δεν ξέρω αν η Βasic παρέχει ευκολίες για προγραμματισμό σε χαμηλότερο επίπεδο όπως η C++.

Xώρια που αν ο άνθρωπος γράφει επιστημονικό λογισμικό πιθανόν να χρησιμοποιεί βιβλιοθήκες που δεν υπάρχουν στην Basic ή/και δεν μπορούν να μεταγραφούν σ' αυτήν.

 

Συνοπτικά : η βασική απαίτηση για μια real time εφαρμογή είναι η ταχύτητα επεξεργασίας ώστε να αποκρίνεται πρακτικώς άμεσα στον χρήστη.

Σε αυτήν επιδρά ένα πλήθος παραγόντων. Οι παράγοντες αυτοί ελέγχονται περισσότερο στη C++ απ ότι στην Basic ενώ και η υποστήριξη από άποψη

βοηθητικών μέσων (βιβλιοθήκες, εξειδικευμένο hardware κ.α.) είναι σημαντικά μεγαλύτερη στην C++ καθιστώντας την πιο κατάλληλη για ανάπτυξη σοβαρού λογισμικού.

Δημοσ.

Τα υπόλοιπα επ' αυτού είναι αμπελλοφιλοσοφίες.

 

Αυτό είναι σίγουρο! Για τον χρήστη είναι πραγματικός χρόνος, όμως για το πέρας κύκλου εκτέλεσης του λογισμικού είναι αιώνες (πόσα εκατομμύρια υπολογιστικά βήματα λαμβάνουν χώρα κάθε δευτερόλεπτο σε ένα σύστημα; Πάρα πολλά)

Αρχειοθετημένο

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

  • Δημιουργία νέου...