1 Τ.Ε.Ι Θεσσαλονίκης – Τμήμα Πληροφορικής Μάθημα Προηγμένες Αρχιτεκτονικές Υπολογιστών Εργαστηριακό Μέρος Μοντέλα ουρών αναμονής (Queuing Network Models) Μέρος: Τέταρτο Εξάμηνο: Έβδομο Καθηγητής: Α. Βαφειάδης 2007
2 Αρχικές ιδέες Ένας εξωτερικός παρατηρητής μετρά: Τ : Τον χρόνο παρατήρησης (observation time) Α : Τον αριθμό των αφίξεων των απαιτήσεων προς το σύστήμα ( request arrivals) C : Τoν αριθμό των ικανοποιημένων απαιτήσεων από το σύστημα (request completions) B : Το χρονικό διάστημα που το σύστημα ήταν απασχολημένο (busy time)
3 Ορισμοί Ρυθμός άφιξης (arrival rate) λ ≈ A/T Παραγωγικότητα (Throughput)X ≈ C/T Χρησιμοποίηση (Utilization)U ≈ B/T Μέσος χρόνος εξυπηρέτησης / απαίτησηS ≈ B/C Μέσος χρόνος παραμονής στο σύστημα / απαίτηση = R Μέσο πλήθος των απαιτήσεων (requests) που βρίσκονται στο σύστημα = N
4 Βασικοί νόμοι Utilization Low Χρησιμοποίηση = παραγωγικότητα Χ μέσος χρόνος εξυπηρέτησης / απαίτηση Little’s Low Ο μέσος αριθμός των απαιτήσεων στο σύστημα = παραγωγικότητα Χ μέσος χρόνος παραμονής στο σύστημα / απαίτηση N = X * R U = X * S
5 Ένα Παράδειγμα Χρόνος παρατήρησης Τ =4 min Αφίξεις Α = 8 Αναχωρήσεις C = 8 Χρόνος απασχόλησης B = 2 min a = A/T = 8/4 = 2 αφίξεις /min X = C/T = 8/4 = 2 αναχωρήσεις / min U = B/T = 2/5 = 0.5 (50%) S = B/C = 2/8 = 0.25 min/άφιξη Utilization Low U = X * S = 2 * 0.25 = 0.5
6 Εφαρμογή του Little’s Low Web server Μέσος Αριθμός requests στο Server = Μέσος ρυθμός αναχωρήσεων από το server (παραγωγικότητα) X Μέσος χρόνος παραμονής στο server req/sec req ?
7 Little’s Law PUB avg. number people in the pub = avg. departure rate from the pub X avg. time spent at the pub
8 Μορφές Συστημάτων
9
10 Μορφές Συστημάτων
11 Τύπος κέντρων εξυπηρέτησης Με ουρά αναμονής(Queuing Centers) Στο κέντρο αυτό μια αίτηση εξυπηρέτησης που φτάνει στο κέντρο είτε εξυπηρετείται ‘άμεσα εφόσον ο σταθμός ή οι σταθμοί είναι διαθέσιμοι είτε αναμένει σε μια ουρά αναμονής από την οποία επιλέγεται με βάση την πειθαρχία της ουράς όταν ο σταθμός γίνει διαθέσιμος βρίσκεται είτε στο σταθμό. Τέτoια κέντρα εξυπηρέτησης παριστάνουν μια CPU ή ένα σύστημα Ι/Ο Χωρίς ουρά αναμονής(Delay Centers) Στο κέντρο αυτό μια αίτηση εξυπηρετείται άμεσα αφού το κέντρο διαθέτει άπειρους (ιδεατά) σταθμούς εξυπηρέτησης. Τέτοια κέντα παριστάνουν τον think time κατά την διάρκεια μιας διαδραστικής (interactive) επικοινωνίας
12 Κέντρο Εξυπηρέτησης
13 Παράμετροι κέντρου εξυπηρέτησης Παράμετροι εισόδου Πλήθος σταθμών/κέντρο εξυπηρέτησης Μέσος χρόνος εξυπηρέτησης Κατανομές χρόνων εξυπηρέτησης Μέσος χρόνος αφίξεων Κατανομές χρόνων αφίξεων Πειθαρχία ουράς Παράμετροι εξόδου (δείκτες απόδοσης) Χρησιμοποίηση (Utilization) (U) Παραγωγικότητα (Throughput) (T) Μέσο μήκος ουράς αναμονής (Mean queue length) (L) Μέσος χρόνος αναμονής (Mean waiting time) (Q)
14 Βασικοί τύποι little’s Low Waiting time Q (m) = L (m) / R (m) Utilization Low Utilization U (m) = R (m) * μ 1 m = το πλήθος των μονάδων Χρησιμοποίηση (Utilization) (U) Παραγωγικότητα (Throughput) (T) Μέσο μήκος ουράς αναμονής (Mean queue length) (L) Μέσος χρόνος αναμονής (Mean waiting time) (Q)
15 Πειθαρχίες ουρών αναμονής FCFS (First Come First Served) Κατάλληλη για Ι/Ο συστήματα LCFSPR (Last Come First Served Preemptive Resume) Η τελευταία απαίτηση που φτάνει στο σταθμό εξυπηρετείται αμέσως και διακόπτεται από μια άλλη απαίτηση που έχει μεγαλύτερη προτεραιότητα. Η απαίτηση που έχει διακοπεί εισέρχεται στο σταθμό, όταν δεν υπάρχει άλλη απαίτηση με μεγαλύτερη προτεραιότητα. Κατάλληλη για CPU σε ένα time sharing σύστημα το οποίο παρουσιάζει κατανομή χρόνων με μικρή μεταβλητότητα PS (Processor Sharing) Κατάλληλο για CPU στην οποία εφαρμόζεται ο round robin αλγόριθμος (σε κάθε απaίτηση δίνεται μέρος του χρόνου που ζητά και ανατοποθετείται στην ουρά. Κατάλληλη για CPU σε ένα time sharing σύστημα το οποίο παρουσιάζει κατανομή χρόνων με μεγάλη μεταβλητότητα IS (Infinite Server) Κατάλληλη για τερματικά
16 Κατανομές χρόνων Κατανομές χρόνων εξυπηρέτησης Εκθετική(exponential) Κατάλληλη για CPU και Ι/Ο όταν η πειθαρχία είναι FCFS Υποεκθετική (Hypoexponential) Κατάλληλη για I/O Υπερεκθετική (Hyperexponential) Κατάλληλη για CPU όταν η πειθαρχία είναι FCFS Κατανομές χρόνων άφιξης Εκθετική(exponential)
17 Κλειστό μοντέλο Υπολογιστή
18 Κλειστό μοντέλο Υπολογιστή Προϋποθέσεις για αναλυτική λύση Υποθέσεις: 1.Το μοντέλο είναι κλειστό και αποτελείται από Μ σταθμούς. Εξυπηρέτησης 2.Υπάρχουν Ν προγράμματα στο σύστημα οι οποίοι διεκδικούν τους σταθμούς 3.Κάθε σταθμός έχει μια ουρά αναμονής με πειθαρχία FCFS 4.Ο χρόνο εξυπηρέτησης ενός πελάτη από τον σταθμό i δίνεται από μια τυχαία μεταβλητή με εκθετική κατανομή με μέση τιμή μ i 5.Ένα πρόγραμμα μετά από την εξυπηρέτηση του από τον σταθμό i μεταβαίνει στο σταθμό j με πιθανότητα μετάβασης p ij Η μετάβαση είναι ανεξάρτητη από την κατάσταση του συστήματος τη δεδομένη χρονική στιγμή t. Ισχύει
19 Κλειστό μοντέλο Υπολογιστή Προϋποθέσεις για αναλυτική λύση 6. Αν Νi(t) είναι το πλήθος των απαιτήσεων στο σταθμό Ι τη χρονική στιγμή t, Τότε S(t) = (N 1 (t), N 2 (t),….N M (t)) είναι η κατάσταση του συστήματος την χρονική στιγμή t και ισχύει
20 Μαρκοβιανή αλυσίδα κλειστού μοντέλου για Ν=3
21 Κλειστό μοντέλο Υπολογιστή H λύση Συμπέρασμα Η μετάβαση από μια κατάσταση στην άλλη αποτελεί Μαρκοβιανή αλυσίδα(Μarkov chain) και η πιθανότητα το μοντέλο να βρίσκεται σε μια δεδομένη κατάσταση δίνεται από τον τύπο Όπου Pi(Νi) είναι η πιθανότητα ο σταθμός εξυπηρέτησης i να έχει Νi προγράμματα και G(N) είναι ο παράγων σταθεροποίησης Η δυνατότητα υπολογισμού της πιθανότητας P(Ν 1,Ν 2,...Ν Μ ) μας επιτρέπει να υπολογίσουμε για κάθε σταθμό i και για βαθμό πολυπρογραμματισμού N τo utilization U i (Ν), το throughput R i (N) το mean queuing time Q i (N) και το mean queue length L i (N) Και βεβαίως ισχύει L i (N)=Q i (N) x R i (N) (Little’s Low)
22 O αλγόριθμος επίλυσης LBANC (Local Balance Algorithm for Normalizing Constants) Ένα πρώτο κλειδί για την επίλυση αποτελεί η εξίσωση Όπου l (m) το μη κανονικοποιημένο μήκος της ουράς του σταθμού m το Οποίο υπολογίζεται με διάφορους τύπους ανάλογα με την πειθαρχία που εφαρμόζεται στην ουρά m. Π.χ για πειθαρχία FCFS έχουμε l (m) (n) = u (m) [G(n-1)+l (m) (n-1)] Αν υπολογίσουμε το G(N) τότε είναι εύκολο να βρούμε τους τέσσερις βασικούς δείκτες
23 O αλγόριθμος επίλυσης LBANC Ένα δεύτερο κλειδί αποτελεί ο υπολογισμός των relative throughputs r (m) για όλους τους σταθμούς m Αν ορίσουμε αυθαίρετα r 1 =1 τότε r 2 = r 1 * p 12 r 3 = r 1 * p 13 …………………………. r M = r 1 * p 1M Ισχύει r 1 = r 2 + r 3 + …..+ r M + r 1 * p 11 Local balance equation Ο τελευταίος παράγοντας του αθροίσματος ονομάζεται και Relative System Throughput
24 O αλγόριθμος επίλυσης LBANC Οι τύποι για βαθμό πολυπρογραμματισμόυ Ν και για την ουρά m έχουν ως εξής: Throughput R (m) = r (m) *G(N-1)/G(N) Queue length L (m) = l (m) /G(N) Waiting time Q (m) = L (m) / R (m) ( little’s Low) Utilization U (m) = R (m) * μ 1 (Utilization Low) Όπου r (m) είναι το σχετικό throughput To System Throughput υπολογίζεται από τη σχέση Τ = T (1) * U (1) /μ 1 Υπενθυμίζουμε ότι μ 1 είναι ο μέσος χρόνος εξυπηρέτησης του σταθμού 1
25 To πρόγραμμα LBANC ! Parameters preparation do m=1,MM if(NSS(m).eq.1) then SF(m)=0 else SF(m)=1 do j=1,MAXNJ if (j.GE.NSS(m)) then CAP(m,j)=NSS(m) else CAP(m,j)=j end if end do end if end do ! compute relative throughputs rt(1)=1 do m=2,MM rt(m)=rt(1)*bp(m) end do ! compute relative utilization do m=1,MM ru(m)=rt(m)/a(m) end do !
26 To πρόγραμμα LBANC ! LBANC Algorithm G(0)=1 do m=1,MM l(m)=0 p(m,0)=1 end do ! Iterate over populations do n=1,NJ G(n)=0 ! Fixed rate queues do m=1,MM if(SF(m).eq.0) then l(m)=ru(m)*(G(n-1)+l(m)) G(n)=G(n)+l(m) else l(m)=0 do k=n,1,-1 p(m,k)=p(m,k-1)*ru(m)/CAP(m,k) l(m)=l(m)+k*p(m,k) end do G(n)=G(n)+l(m) end if end do ! Finished computing G(n) G(n)=G(n)/n
27 To πρόγραμμα LBANC ! Variable rates queues do m=1,MM if(SF(m).eq.1) then p(m,0)=G(n) do k=1,n p(m,0)=p(m,0)-p(m,k) end do else end if end do do m=1,MM L(m)=L(m)/G(NJ) end do do m=1,MM R(m)=rt(m)*G(NJ-1)/G(NJ) Q(m)=L(m)/R(m) U(m)=R(m)/a(m) U(m)=U(m)/NSS(m) end do tt=a(1)*bp(1)*u(1) R(1)=R(1)-tt Q(1)=L(1)/R(1) end do