CSCI1600: Embedded and Real Time Software Lecture 19: Queuing Theory Steven Reiss, Fall 2015 Queuing Theory History Agner Krarup Erlang (1878-1929) Analysis of telephone networks (1908-1922) Why does this involve queues? Analysis of Telelphone Networks Issues How many operators are needed How many circuits are needed Queuing Theory A branch of probability theory studying queues Arriving Jobs Applications Computer systems Communication networks Call centers Transportation … Server Departing Jobs Parameters: Arrivals Arriving Jobs Arrival rate λ How fast jobs are arriving Regular or random Random = Poisson process With some distribution Server Departing Jobs Parameters: service Arriving Jobs Server Departing Jobs Service demand S – amount of service the job needs Measured in various terms (time, size, …) Regular or random (with a given distribution) Service capacity C – how fast server process jobs Service rate μ = C/S Service time = S/C = 1/μ Parameter: Service Arriving Jobs Server 1 Departing Jobs Server m Multiple symmetric servers m parallel servers constitute a single serving station Each has capacity C Overall capacity depends on number of serviced jobs C(N) = min(N,m)C Parameters: Queue Arriving Jobs Server Departing Jobs Scheduling discipline First come, first served (FCFS, FIFO) Priority queue (Shortest in, first out) OS I/O scheduler Preemptive vs. nonpreemptive servicing Preemptive servicing can be interrupted by higher priority job Linux real-time thread scheduling Statistical Basis for Queuing Theory Arrival probability distribution Service probability distribution Determine various properties of the system Average queue size Maximum expected queue size Average wait time Maximum expected wait time Poisson Arrival A completely random arrival process The number of jobs is very large Jobs are independent of each other Job arrivals are not simultaneous λ: the average arrival rate Examples Phone calls to a switchboard Radioactive decay Customers going to checkout Trains needing switches thrown Poisson Process Represented by Poisson distribution Probablity of seeing i jobs during the time interval T P[n(t) = i] = (λT)i/i! * e-λT PDF CDF Poisson Process Properties Memoryless The number of arrivals in the time interval (T;T+Δt) Does not depend on the number before T Superposition Combination of m independent Poisson processes with λ1,λ2,…λm is a Poisson process with λ= λ1+λ2+…+λm Interval between job arrivals Is distributed exponentially fx(x) = λe-λx Exponential Service Distribution PDF: fs(t) = μe-μt where μ is the service rate CDF: Fs(t) = 1 - μe-μt Mean = Std. Deviation = 1/μ = service time Other Distributions Erlang The job visits an exponential server k times Hyperexponential k types of jobs, each has probability πi Each type of job has its own service time Each type of jobs passed to its own server General With known mean and standard deviation A/S/n Notation Proposed by D. Kendeall in 1953 Arrival process (A) – message arrival distribution Server process (S) – servicing time distribution Number of servers (n) Distribution lables M : exponential (memoryless, Poisson) D : deterministic (constant arrival/processing times) G : general Ek : k-stage Erlang Hk : k-stage Hyperexponential Examples M/M/1 One server for jobs that arrive and are serviced by Poisson process System with many independent jobs sources can be approximated this way M/D/n Arrival process is Poisson, service is deterministic There are n servers G/G/n General system with arbitrary arrival and service times Goals of Queuing Theory Predict the performance of the system in steady state Not startup or shut down Assumptions The population of jobs is infinite The size of the queue is infinite (can be bounded) Specific distributions for A and S known Performance Metrics W: waiting time (queuing delay) Time between receipt of a job and start of processing Depends on the load on the server S: service time (processing delay) The actual processing time of the job Depends on the serving capacity T: response time T=W+S Throughput Average number of jobs per time unit Little’s Law Number of jobs in the system N(t) N = λT λ : the mean arrival rate T : the mean service time Queue size Q Q = max(0,N – m) Waiting time in the Queue W Q = λW Little’s Law Example Clothing store Customers arrive 10/hour and stay 30 minutes λ = 10, T = 0.5 Average number of customers in the store N = 10*0.5 = 5 Register line subsystem in the store Average register queue is 2 people The wait time W = Q/λ = 2/10 = 0.2 hours Other Metrics Traffic intensity p Single server: p = arrival rate * service time = λ/μ m servers: p = λ/(mμ) p is dimensionless, measured in Erlangs If p > 1, then more jobs arrive than the system can handle p < 1 needed to prevent overload Utilization factor U = min(p,1) Analytic Solutions Some queuing models can be solved analytically M/M/1 for example Other variants M/M/1 Performance Average # jobs in the system N = p/(1-p) Average queue size Q = p2/(1-p) Average wait time W = 𝑝 μ 1−𝑝 Average response time T = 1 μ 1−𝑝 M/M/1 Example Post office Customers arrive 10 per hour (λ=10) Clerk can handle 16 customer per hour (μ = 16) 𝑝= 𝑙 𝑢 = 10 16 = 0.625 Result Average number of customers N = 1.667 Average queue size Q = 1.042 Average wait time W = 0.1042 hours (6.25 minutes) Average response time T = 10 minutes How to Fix Overload How can we reduce job delays Obvious: Shorten μ (speed up the code, profile, optimize) Lengthen λ (decrease the load, make less bursty) Move to M/M/m How many servers do you want This can be solved as well Problems Classical queuing theory is too restrictive Infinite number of jobs Only certain distributions are handled Job routine is not allowed Some limitations can be alleviated But calculations and the math involved are complex Provides insufficient information Solving Queuing Problems Use a computer representation of the system Instead of a mathematical model Use simulation to learn the properties This is what is generally used MATLAB SimEvents OMNET Can construct arbitrary models and run them Homework For next week (10/26) Present you project to the class Plans, progress to date Project model Tasks and model(s) for each task Hand this in Can be part of presentation