# Συζήτηση Κυκλωμάτων > Ψηφιακά Κυκλώματα > Μικροελεγκτές >  >  Ποσοστό χρήσης CPU.Τι εκφράζει;

## Hary Dee

Καλησπέρα! Χρόνια τώρα βλέπω στα windows το ποσοστό χρήσης της CPU και εμπειρικά λίγο-πολύ καταλάβαινα τι θα πει. Άμα χτύπαγε 100% θα σερνόταν, άμα ήταν γενικά ψηλό θα ανέβαινε η θερμοκρασία κλπ. 
Τώρα όμως που ασχολούμαι λίγο με επεξεργαστές (λόγω AVR), δεν καταλαβαίνω πρακτικά τι θα πει αυτό το ποσοστό. Φυσικά δεν έχουν την ίδια αρχιτεκτονική οι CPU των AVR με αυτές των Intel πχ, αλλά δεν μπόρεσα να σκεφτώ κάτι. Απλά βλέπω έναν επεξεργαστή που συνεχώς δουλεύει! Μπορεί κάποιος να μου δώσει ένα παράδειγμα για να καταλάβω;

----------


## xifis

δεν ειμαι κομπιουτερας ουτε προγραματιστης,αλλα εικαζω πως το ποσοστο αυτο εκφραζει τον φορτο της CPU,δηλαδη,αυτη καλειται να εκτελεσει καποιους υπολογισμους μεσα σε καποιο διαστημα,οι οποιοι ενδεχεται να γινουν αμεσως,κ να απασχολησουν το CPU για λιγο χρονικο διαστημα,μπορει ομως να θελουν καποια ωρα παραπανω,οποτε το CPU 100αριζει.ισως γιαυτο οταν κολλαει κατι τραβαει 100% CPU,κ λογικο ειναι,αφου πεφτει σε καποια λουπα χωρις τελος.ενω οταν το πισι καθεται,ειναι 5% η λιγοτερο.

απλη λογικη.καποιος θα ξερει ποιο πολλα.

----------


## ΚΥΡΙΑΚΟΣ 69

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

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

Ενώ στα υπόλοιπα σχήματα ,  δεν επιδρούν οι μηχανισμοί επιτάχυνσης .

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

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

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

Στο μετρητή  βλέπεις τα κεφτεδάκια  και όχι τον φούρνο.   :Smile:

----------


## fmav

Το ποσοστό χρήσης της CPU έχει νόημα μόνο όταν το λειτουργικό που τρέχει είναι multitasking, δηλαδή όταν τρέχουν παράλληλα πολλές διεργασίες (tasks). Ουσιαστικά, επειδή δεν είναι δυνατόν να τρέχουν πραγματικά παράλληλα οι διεργασίες, τμηματοποιούνται χρονικά και τρέχουν μικρά κομμάτια της κάθε μιας, το ένα μετά το άλλο, δημιουργώντας της ψευδαίσθηση της ταυτόχρονης επεξεργασίας. Συνήθως η εκτέλεση των διεργασιών είναι χρονισμένη (και ελέγχεται από τον time scheduler), που σημαίνει ότι υπάρχει μέγιστος χρόνος για κάθε διεργασία και μέγιστος χρόνος μέχρι να ολοκληρωθεί ένας κύκλος εναλλαγών (χρόνος από τη στιγμή που ξεκίνησε μια διεργασία, μέχρι να ξαναέρθει η σειρά της). 
Ας πούμε για παράδειγμα, ότι ένας κύκλος εναλλαγών διαρκεί 1000μsec (1000Hz) και κάθε διεργασία της δίνονται το πολύ 100μsec. Τότε είναι προφανές ότι με μία διεργασία να εκτελείται το ποσοστό χρήσης της CPU είναι 10%, με 2 20% και με 10 100%.
Τα παραπάνω χονδρικά βέβαια, αφού υπάρχουν και άλλα πράγματα που γίνονται εσωτερικά στο λειτουργικό σύστημα (όπως προτεραιότητες κλπ).

Σε μικροελεγκτή το ποσοστό χρήσης έχει νόημα μόνο όταν τρέχει λειτουργικό με στοιχεία multitasking (ονομαζονται RTOS Real Time Operating System), ή αν ο κώδικας του χρήστη δημιουργεί ουσιαστικά έναν time scheduler και άρα έχει λειτουργία κατά κάποιο τρόπο multitasking.

----------

Hary Dee (04-01-11)

----------


## electrifier

Ορίζεται ως το *ποσοστό του χρόνου* που εκτελείται μια συγκεκριμένη διεργασία στη CPU (γι αυτό και λέγεται και CPU time/utilization).

Σημείωση:
Με βάση τον ορισμό, αν πχ έχω ένα επεξεργαστή που εκτελεί 1000 κύκλους στη μονάδα του χρόνου και ένα κώδικα που για να επιστρέψει χρειάζεται 100 κύκλους, τότε - στη μονάδα του χρόνου - το CPU usage - υπολογισμένο στη μονάδα του χρόνου - δε θα ξεπεράσει ποτέ το 100*(100/1000)=10%.
Δεν ξέρω αν φάνηκε στο παραπάνω παράδειγμα, αλλά το CPU usage είναι ένα σχετικό μέγεθος, δηλαδή εξαρτάται πώς ορίζουμε τη μονάδα του χρόνου. Όσο δηλαδή εκτελείται ο κώδικας του παραδείγματος (για 0,1sec) σε έναν real time task manager το CPU usage θα έδειχνε 100% και στον υπόλοιπο χρόνο (0,9sec) 0%. Οπότε αν ο task manager δεν είναι real time (όπως αυτοί που έχουμε) και χρησιμοποιεί ως μονάδα χρόνου (πχ στον Process Explorer λέγεται update speed) το 1sec τότε θα δείξει CPU usage 10%, αν χρησιμοποιεί 0,1sec τότε θα δείξει 100% κι αν ξεκίνησε τη μέτρηση στο ενδιάμεσο της διαδικασίας τότε θα δείξει ακόμα λιγότερο για την ίδια μονάδα χρόνου, για το συγκεκριμένο κώδικα κ.ο.κ. Δηλαδή εξαρτάται από το πώς το μετράμε κάθε φορά και δεν υπάρχει σύγκριση μεταξύ τιμών CPU usage που υπολογίστηκαν με διαφορετικό τρόπο. Δύναται δηλαδή δύο διαφορετικοί task managers να αναφέρουν διαφορετικές τιμές CPU usage, ειδικά για κώδικες που εκτελούνται γρήγορα.

----------

Hary Dee (04-01-11)

----------


## Hary Dee

Παιδιά οι απαντήσεις σας ήταν πολύ κατατοπιστικές! Πραγματικά σας ευχαριστώ πολύ!  :W00t:

----------


## lastid

Σωστά όλα τα παραπάνω. Να προσθέσω μόνο κάτι για ένα ερώτημα που δεν ξέρω αν απαντήθηκε ξεκάθαρα. 
Το ερώτημα πάνω κάτω ήταν: Καλά, όλοι οι επεξεργαστές (CPU και microcontrollers) δεν εκτελούν συνέχεια εντολές ανά πάσα στιγμή?
1. Όχι. Αν δεν έχει τί να κάνει μέχρι το επόμενο timer tick πέφτει για ύπνο. Ισχύει τόσο για CPU όσο και για microcontrollers.
2. Σε μία CPU, μία εντολή μπορεί να χρησιμοποιεί λιγότερα ή περισσότερα μέρη της CPU, ανάλογα με την πολυπλοκότητά της, με το αν χρησιμοποιεί threading κλπ. Άρα η κατανάλωση ενέργειας αλλάζει από εντολή σε εντολή. Αν λοιπόν η CPU τελειώσει με ένα task και δεν έχει τίποτε άλλο να κάνει εκείνη τη στιγμή, μπορεί να "ξεκουράζεται" μέσα σε ένα loop ελαφρών εντολών του λειτουργικού, καταναλώνοντας έτσι λιγότερη ενέργεια. Το βάρος της CPU usage περνά δηλαδή στο software..

----------

Hary Dee (04-01-11)

----------


## ΚΥΡΙΑΚΟΣ 69

> Αν λοιπόν η CPU τελειώσει με ένα task και δεν έχει τίποτε άλλο να κάνει εκείνη τη στιγμή, μπορεί να "ξεκουράζεται" μέσα σε ένα loop ελαφρών εντολών του λειτουργικού, καταναλώνοντας έτσι λιγότερη ενέργεια. Το βάρος της CPU usage περνά δηλαδή στο software..



Δεν μας τα λες καλά Θείο ..  :Smile: 
Το σωστό λειτουργικό σύστημα υπολογιστή , στέλνει μόνιμα εντολές Power saving ...  και απλά αγνοούνται σε περίπτωση φορτίου ..

Τα Windows  NT-4 & Win2000  Pro  & XP Pro , το κάνουν με INTEL επεξεργαστές, και μόνο.

----------


## electrifier

Το CPU usage/time/utilization είναι κάτι πολύ απλό ως ορισμός, ένα απλό κλάσμα. Οι παράγοντες που μπορεί να επηρεάζουν το CPU usage/time/utilization και το κάνουν "specific" για κάθε σύστημα δεν έχουν καμία σχέση με τον ορισμό και είναι κάθε φορά διαφορετικοί, οπότε με βάση το αρχικό ερώτημα τζάμπα τα αναλύετε.  :Smile:

----------


## lastid

Ανηψιέ  :Cool:  μην μπερδεύεσαι. Αυτό που αναφέρεις είναι μία ειδική περίπτωση αυτών που λέω. Εξάλλου, χωρίς χρήση interrupts δεν θα μπορούσαμε να χρησιμοποιήσουμε power saving εντολές. Μελέτησέ το λίγο καλύτερα σε παρακαλώ και βάλε και κανέναν πυκνωτή στην έξοδό σου.
Αντρέα, συμφωνώ ότι ο ορισμός είναι λίγο ασαφής και στο ότι το CPU usage time των Windows μετρά στην ουσία κάτι άλλο. Υπάρχει μπόλικη βιβλιογραφία για τα background tasks (βλέπε System Idle process) και για τον ρόλο που παίζουν στο θέμα αυτό. Για να μην αναφέρω τον τρόπο της /proc/stat στο Linux.

----------


## ΚΥΡΙΑΚΟΣ 69

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




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

----------


## navar

> Βλέπω ότι έχεις την μύγα ..  να την ταΐζεις καλά ,
> γιατί θα ειναι η μόνη σου παρέα.



είσαι και γεροδεμένος ρε γμτ και δεν μπορούμε να σε δείρουμε εύκολα !
τέσπα, συνέχισε έτσι και θα μαζευτούμε !  :Tongue2:  :Tongue2:

----------


## lastid

Όντως... troll μου μυρίζει.
Καλό καλοκαίρι.

----------


## Nemmesis

ε ακομα δεν τον μαθατε τον ΚΥΡΙΑΚΟΣ 69??? δεστε λιγα απο τα ποστ του αν εχετε ωρα να γελασετε

----------


## ΚΥΡΙΑΚΟΣ 69

> ε ακομα δεν τον μαθατε τον ΚΥΡΙΑΚΟΣ 69??? δεστε λιγα απο τα ποστ του αν εχετε ωρα να γελασετε



Είμαι πηγή αισιοδοξίας , είναι δεδομένο ... 


Αλλα και εσύ ,  το κομπλεξάκι με τους *Έξυπνους και τους ηλίθιους* ,
φαίνεται να σε απασχολεί ιδιαίτερα ...  

Αλήθεια .. που εντάσεις το εαυτό σου  ??  Σε ποια κατηγορία ?

----------


## Hary Dee

Παιδιά "Ειρήνη υμήν"! Σαν "οικοδεσπότης" ( :Lol: ) του thread σας παρακαλώ ας μην το χαλάσουμε άλλο! Αν κάποιος έχει έναν "ωφέλιμο λόγο" περί CPU ευχαρίστως! Αν και νομίζω ότι τα βασικά ειπώθηκαν...
Ευχαριστώ!

----------

