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

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


geo1st487

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

Δημοσ.

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

 

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

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

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

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

 

Μπορείς να δώσεις κάποια ακαδημαϊκή/έγκυρη επιστημονικά πηγή η οποία να στηρίζει τον ορισμό που παρέθεσες; Γιατί εγώ μπορώ να σου παραθέσω ένα σωρό «αμπελλοφιλοσοφίες» από ACM και IEEE publications, όπως:

 

 

C. L. Liu, J. W. Layland, Scheduling Algorithms for Multiprogramming in a Hard-Real-Time Environment

Each function to be performed has associated with it a set of one or more tasks. Some of these tasks are executed in response to events in the equipment controlled or monitored by the computer. The remainder are executed in response to events in other tasks. None of the tasks may be executed before the event which requests it occurs. Each of the tasks must be completed before some fixed time has elapsed following the request for it. Service within this span of time must be guaranteed, categorizing the environment as "hard-real-time" in contrast to "soft-real-time" where a statistical distribution of response times is acceptable.

 

 

T-H. Lin, W. Tarng, Scheduling periodic and aperiodic tasks in hard real-time computing systems

The use of computers in life-critical applications such as the control of aircrafts and nuclear reactors usually requires very high reliability and responsiveness. Most tasks in these apphcations have time constraints, or deadlines, to be satisfied. Computing systems containing tasks with deadlines are called real-time computing systems. A deadline is hard if missing it can cause a catastrophic result, and is soft if it can be satisfied in statistic sense.

 

 

Foundations of Real-Time Computing: Scheduling and Resource Management

Many of the papers in this book take care to define the notion of real-time system precisely, because it is often easy to misunderstand what is meant by that term. Different communities of researchers variously use the term real-time to refer to either very fast computing, or immediate on-line data acquisition, or deadline-driver computing. This text is concerned with the very difficult problems of scheduling tasks and resource management in computer systems whose performance is inextricably fused with the achievement of deadlines. Such systems have been enabled for a rapidly increasing set of diverse end-uses by the unremitting advances in computing power per constant-dollar cost and per constant-unit-volume of space. End-use applications of deadline-driven real-time computers span a spectrum that includes transportation systems, robotics and manufacturing, aerospace and defense, industrial process control, and telecommunications.

 

As real-time computers become responsible for managing increasingly sensitive applications, particularly those in which failures to satisfy deadline constraints can lead to serious or even catastrophic consequences, it has become more important than ever to develop the theoretical foundations that ensure the predictability of real-time computing system behavior.

 

 

G. Buttazzo, Research trends in real-time computing for embedded systems

Most of today’s embedded systems are required to work in dynamic environments, where the characteristics of the computational load cannot always be predicted in advance. Still timely responses to events have to be provided within precise timing constraints in order to guarantee a desired level of performance. Hence, embedded systems are, by nature, inherently real-time.

 

 

A. Bestavros, Advances in Real-Time Database Systems Research

A Real-Time DataBase System (RTDBS) can be viewed as an amalgamation of a conventional DataBase Management System (DBMS) and a real-time system. Like a DBMS, it has to process transactions and guarantee ACID database properties. Furthermore, it has to operate in real-time, satisfying time constraints imposed on transaction commitments.

 

 

Ή υλικό από διδασκαλία του αντικειμένου σε προπτυχιακό και μεταπτυχιακό επίπεδο όπως:

 

Linköping University, TDDD07 Real Time Systems Undergraduate Course, Lecture 1

>
- With real-time systems, it is not enough that processes get a share some time
 The time that the result of the computation is delivered is as important as the result itself
- Predictability!
- Predictable is not "fast"

Δημοσ.

Όλα αυτά είναι αμπελλοφιλοσοφίες για κάποιον αδαή.

 

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

Αν σε ρωτήσει κάποιος "τι είναι ενα μέτρο" τι θα του απαντήσεις ;

" το 1.650.763,73 πλάσιο του μήκους κύματος της ακτινοβολίας που εκπέμπεται από τα άτομα του νουκλεϊδίου Kr 86 κατά την μετάβαση από την 5ds στην 2p10 σε κενό χώρο" ;

Ή απλώς θα του δείξεις μια μεζούρα ;

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

Ελπίζω να κατάλαβες με πιο σκεπτικό απάντησα στο παιδί...

Δημοσ.

Μα η βάση της ένστασής μου δεν είναι στην απόπειρα εκλαΐκευσης προς όφελος του topic starter! Αλλά στο γεγονός ότι ο ορισμός και τα παραδείγματα που έδωσες για την έννοια "real-time" είναι λανθασμένα. Πριν μερικά χρόνια, αν με ρωτούσαν, πάνω κάτω κι εγώ τον ίδιο ορισμό θα έδινα. Τώρα όμως, όχι. Πιθανολογώ ότι το misconception προκύπτει από μία διαισθητική αντίληψη περί της έννοιας και της απόδοσης της στην Ελληνική.

 

Πρόκειται όμως για μία έννοια καθιερωμένη στην επιστήμη της Πληροφορικής και ατυχώς, ο ορισμός της είναι (εδώ θα σου δώσω λίγο δίκιο) κάπως counter-intuitive σε σχέση με αυτό που αντιλαμβάνεται ο «αδαής» όταν διαβάζει την φράση "real-time".

Δημοσ.

Το παιδί ανάφερε τι είπε ο μηχανολόγος μηχανικός που γράφει τις εφαρμογές.

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

Όπως και για τον "ορισμό του μέτρου" που έδωσα παραπάνω.

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

Η απάντηση που έδωσα ήταν από αυτή την άποψη.

 

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

Εξάλλου εγώ δεν έχω σπουδάσει πληροφορική...

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

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

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

 

ευκολα ; φυσικα και οχι ομως οπως ειπες και εσυ , "έχει για παράδειγμα προγραμματισμένη λογική" , αρα καποιος τους προγραμματισε να κανουν και αυτη τη δουλεια , ανθρωοι λοιπον που το κατεχουν καλα το πραγμα... και το συμπερασμα ειναι οτι δεν ειναι ουτε ευκολο αλλα ουτε και ακατορθωτο

Δημοσ.
ευκολα ; φυσικα και οχι ομως οπως ειπες και εσυ , "έχει για παράδειγμα προγραμματισμένη λογική" , αρα καποιος τους προγραμματισε να κανουν και αυτη τη δουλεια , ανθρωποι λοιπον που το κατεχουν καλα το πραγμα... και το συμπερασμα ειναι οτι δεν ειναι ουτε ευκολο αλλα ουτε και ακατορθωτο

 

Για ανθρώπους είναι πρακτικά ακατόρθωτο να γίνει χειροκίνητα.

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

Το να ξέρεις τον αλγόριθμο της λύσης δεν σημαίνει ότι μπορείς και να τη βρεις κάνοντας τις πράξεις με το χέρι.

Το ίδιο γίνεται και με τις βελτιστοποιήσεις που κάνει ο compiler.

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

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

 

σε μεγαλα project αυτος ο κωδικας δεν ξεπερναει τις 100-200 γραμμες

 

 

το παραδειγμα δεν εχει και μεγαλη σχεση ...

Δημοσ.
το παραδειγμα δεν εχει και μεγαλη σχεση ...

 

Καλά. Δοκίμασε να λύσεις με το χέρι ένα σύστημα 10 ανισώσεων.

Και μετά μου λες αν γίνεται με το χέρι.

Ή μήπως φαντάζεσαι ότι σε 100-200 γραμμές τα συστήματα που πρέπει να λυθούν για να γίνει βελτιστοποίηση είναι μικρότερα ;

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

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

Δημοσ.
Δοκίμασε να λύσεις με το χέρι ένα σύστημα 10 ανισώσεων.

Και μετά μου λες αν γίνεται με το χέρι.

 

δηλαδη αν το προσπαθησει οποιοσδηποτε ( που ξερει να λυνει μια ) , σε μια βδομαδα δεν θα τις εχει λυσει με 2 τουλαχιστον τροπους ;

Δημοσ.

Είτε καταλαβαίνεις τι εννοώ οπότε επιμένεις ανούσια και συνεπώς δεν έχει νόημα να απαντήσω,

 

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

 

Λοιπόν, σε αυτή τη βάση, για μένα η συζήτηση έληξε.

Δημοσ.

Υπάρχουν 2 είδη realtime συστημάτων, τα hard και τα soft.

 

Τα hard είναι τα πιο αυστηρά από άποψη προδιαγραφών και επίσης ονομάζονται και time critical systems. Τέτοια είναι τα προγράμματα ελέγχου π.χ. ενός πυρηνικού αντιδραστήρα όπου το παραμικρό λάθος μπορεί να στοιχίσει χιλιάδες ζωές και τα οποία βασίζονται σε ειδικά λειτουργικά συστήματα και σε ειδικές γλώσσες προγραμματισμού (είτε παραλλαγές των γνωστών γλωσσών με χρήση όμως ειδικών time critical αλγορίθμων).

 

Τα soft είναι συστήματα που μας ενδιαφέρει να παίρνουμε κάποιο output από input το οποίο δίνεται real time σε όσο το δυνατό πιο σύντομο χρονικό διάστημα (almost realtime) χωρίς αυτό να είναι τόσο αυστηρά καθορισμένο και προβλέψιμο όσο στα hard. Τέτοια μπορεί να είναι π.χ. η ανάλυση κάποιου σήματος για εύρεση κάποιου pattern κτλ.

 

Οπότε όπως καταλαβαίνετε όλες οι μεριές έχουν κάποιο δίκιο ...

Δημοσ.
Υπάρχουν 2 είδη realtime συστημάτων, τα hard και τα soft.

 

Τα hard είναι τα πιο αυστηρά από άποψη προδιαγραφών και επίσης ονομάζονται και time critical systems. Τέτοια είναι τα προγράμματα ελέγχου π.χ. ενός πυρηνικού αντιδραστήρα όπου το παραμικρό λάθος μπορεί να στοιχίσει χιλιάδες ζωές και τα οποία βασίζονται σε ειδικά λειτουργικά συστήματα και σε ειδικές γλώσσες προγραμματισμού (είτε παραλλαγές των γνωστών γλωσσών με χρήση όμως ειδικών time critical αλγορίθμων).

 

Τα soft είναι συστήματα που μας ενδιαφέρει να παίρνουμε κάποιο output από input το οποίο δίνεται real time σε όσο το δυνατό πιο σύντομο χρονικό διάστημα (almost realtime) χωρίς αυτό να είναι τόσο αυστηρά καθορισμένο και προβλέψιμο όσο στα hard. Τέτοια μπορεί να είναι π.χ. η ανάλυση κάποιου σήματος για εύρεση κάποιου pattern κτλ.

 

Οπότε όπως καταλαβαίνετε όλες οι μεριές έχουν κάποιο δίκιο ...

 

 

Σωστός! :)

Δημοσ.
Υπάρχουν 2 είδη realtime συστημάτων, τα hard και τα soft.

 

Τα hard είναι τα πιο αυστηρά από άποψη προδιαγραφών και επίσης ονομάζονται και time critical systems. Τέτοια είναι τα προγράμματα ελέγχου π.χ. ενός πυρηνικού αντιδραστήρα όπου το παραμικρό λάθος μπορεί να στοιχίσει χιλιάδες ζωές και τα οποία βασίζονται σε ειδικά λειτουργικά συστήματα και σε ειδικές γλώσσες προγραμματισμού (είτε παραλλαγές των γνωστών γλωσσών με χρήση όμως ειδικών time critical αλγορίθμων).

 

Τα soft είναι συστήματα που μας ενδιαφέρει να παίρνουμε κάποιο output από input το οποίο δίνεται real time σε όσο το δυνατό πιο σύντομο χρονικό διάστημα (almost realtime) χωρίς αυτό να είναι τόσο αυστηρά καθορισμένο και προβλέψιμο όσο στα hard. Τέτοια μπορεί να είναι π.χ. η ανάλυση κάποιου σήματος για εύρεση κάποιου pattern κτλ.

 

Οπότε όπως καταλαβαίνετε όλες οι μεριές έχουν κάποιο δίκιο ...

 

Σωστό εν μέρη

Παραθέτω ελεύθερη μετάφραση από το

http://en.wikipedia.org/wiki/Real-time_computing

που παρατέθηκε στην αρχή του ποστ

 

Στο hard real-time αν το αποτέλεσμα έρθει μετά τον χρόνο είναι άχρηστο.Το σύστημα θα έχει καταρρεύσει ή το παιχνίδι θα έχει χαθεί*.

 

Στο soft real-time η αργοπορία θα αποτελέσει μείωση της ποιότητας υπηρεσιών... αλλά όχι κατάρρευση.

 

Εξάλλου λέει:

"Real-time computing is sometimes misunderstood to be high-performance computing, but this is not always the case. "

"Therefore, the most important requirement of a real-time system is predictability and not performance."

και αναφέρεται τόσο στο soft όσο και στο hard real time. Οπότε δεν μπορεί πάρα να έχει μόνο η "αμπελοφιλοσοφική" πλευρά δίκαιο.

 

 

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

 

 

 

* Το παράδειγμα που δίνει με το σκάκι είναι πάρα πολύ καλό. Τα προγράμματα του είδους θα πρέπει να πάρουν απόφαση (μετά από μερικά λεπτά) πριν τελειώσει η χρόνος που έχουν για να παίξουν αλλιώς χάνουν το παιχνίδι.

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

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

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