CHP-4 QUEUE - PowerPoint PPT Presentation

About This Presentation
Title:

CHP-4 QUEUE

Description:

Title: Slide 1 Last modified by: ap Created Date: 8/16/2006 12:00:00 AM Document presentation format: On-screen Show Other titles: Perpetua Arial Franklin Gothic Book ... – PowerPoint PPT presentation

Number of Views:86
Avg rating:3.0/5.0
Slides: 33
Provided by: weeblyCom
Category:

less

Transcript and Presenter's Notes

Title: CHP-4 QUEUE


1
CHP-4 QUEUE
2
1.INTRODUCTION
  • A queue is a linear list in which elements can be
    added at one end and elements can be removed only
    at other end.
  • That is,the first element added to the queue is
    the first element to be removed.
  • Queue works on the principle of
    first-in-first-out(FIFO).
  • A common example of queue is people waiting in
    line at ticket window.

3
2. DEFINITION AND TYPES
  • A queue is a linear data structure in
    whichanewelement is inserted at one end and
    element is deleted from other end.
  • The end of the queue from which the element is
    deleted is known as front.
  • The end at which new element is added is known as
    rear.
  • Fig. 4.1 shows a queue.
  • TYPES OF QUEUE
  • 1.CIRCULAR QUEUE
  • 2.DEQUEUE
  • 3.PRORITY QUEUE

4
3. OPERATIONS ON QUEUE
  • The two basic operations that can be performed on
    a queue are
  • Insert to insert an element at rear of the
    queue
  • Delete to delete an element from front
    of the queue.
  • Before inserting a new element in the queue, it
    is necessary to test the condition of overflow.
  • Overflow occurs when the queue is full and there
    is no space for a new element.
  • Similarly, before removing the element from the
    queue, it is necessary to check the condition of
    underflow.
  • Underflow occurs when the queue is empty.

5
4. MEMORY REPRESENTATION OFQUEUES
  • A queue can be represented in memory either as an
    array or as a singly linked list.

6
(No Transcript)
7
(No Transcript)
8
INSERTOPERATIONS ON QUEUE
9
DELETE OPERATIONS ON QUEUE
10
5. CIRCULAR QUEUE
  • As discussed earlier, in case of queue
    represented as an array, once the value of the
    rear reaches the maximum size of the queue, no
    more elements can be inserted.
  • However, there may be the possibility that space
    on the left of the front index is vacant. Hence,
    in spite of space on the left of front being
    empty, the queue is considered to be full.
  • This wastage of space in the array implementation
    of a queue can be avoided by shifting the
    elements to the beginning of array if the space
    is available.
  • In order to do this, the values of Rear and
    Front indices have to be changed accordingly.
    However, this is a complex process and is
    difficult to be implemented. An alternative
    solution to this problem is to implement a queue
    as a circular queue.
  • The array implementation of circular queue is
    similar to the array implementation of queue. The
    only difference is that as soon as the rear index
    of the queue reaches the maximum size of the
    array, Rear is reset to the beginning of the
    queue provided it is free. The circular queue is
    full only when all the locations in the array are
    occupied. The circular queue is shown in Figure
    4.3.

11
Various States of Circular Queue After insert
and Delete operations
12
Number of Elements in Circular Queue
  • The total number of elements in a circular queue
    at any point of time can be calculated from the
    current values of the Rear and the Front indices
    of the queue.
  • In case, FrontltRear, the total number of elements
    Rear-Front1. For instance, in Figure 4.5(a),
    Front3 and Rear7.
  • Hence, the total number of elements in CQueue at
    this point of time is 7-315.
  • In case, FrontgtRear, the total number of
    elements Max (Rear-Front) 1. For instance, in
    Figure 4.5(b), Front3 and Rear0. Hence, the
    total number of elements in CQueue is 8(0-3)l.

13
Algorithm of Circular Queue
14
Algorithm of Circular Queue
15
6.PRIORITY QUEUE
  • A priority queue is a type of queue in which each
    element is assigned a priority and the elements
    are added or removed according to that priority.
    While implementing a priority queue, following
    two rules are applied.
  • (1)The element with higher priority is processed
    before any element of lower priority.
  • (2)The elements with the same priority are
    processed according to the order in which they
    were added to the queue.
  • A priority queue can be represented in many ways.
    Here, we are discussing multi-queue
    implementation of priority queue.

16
Multi-queue Implementation (Array Representation
of Priority Queue)
  • In multi-queue representation of priority queue,
    for each priority, a queue is maintained. The
    queue corresponding to each priority can be
    represented in the same array of sufficient size.
  • For each queue, two variables Fronti and Reari
    are maintained (see Figure 4.6).
  • Observe that Fronti and Reari correspond to the
    front and rear position of queue for priority
    Priorityi.

17
  • Clearly, in this representation, shifting is
    required to make space for an element to be
    inserted.
  • To avoid this shifting, an alternative
    representation can be used (see Figure 4.7).
  • In this representation, instead of representing
    queue corresponding to each priority using a
    single array, a separate array for each priority
    is maintained.
  • Each queue is implemented as a circular array
    and has its own two variables, Front and Rear.
  • The element with given priority number is
    inserted in the corresponding queue. Similarly,
    whenever an element is to be deleted from the
    queue, it must be the element from the highest
    priority queue.
  • Note that lower priority number indicates higher
    priority.

18
  • If the size of each queue is same, then instead
    of multiple one-dimensional arrays, a single
    two-dimensional array can be used where row i
    corresponds to the queue of priority i.
  • In addition, two single dimensional arrays are
    used. One is used to keep track of front position
    and another to keep track of rear position of
    each queue (see Figure 4.8).

19
INSERT OPERATION IN PRIORITY QUEUE
20
DELETE OPERATION IN PRIORITY QUEUE
21
7.DEQUE
  • Deque (short form of double-ended queue) is a
    linear list in which elements can be inserted or
    deleted at either end but not in the middle.
  • That is, elements can be inserted/deleted to/
    from the rear or the front end.
  • Figure 4.9 shows the representation of a deque.

22
INSERT OPERATION IN BEGINNING OF DEQUE
23
INSERT OPERATION AT END OF DEQUE
24
DELETE OPERATION IN BEGINNING OF DEQUE
25
DELETE OPERATION AT END OF DEQUE
26
VARIATIONS OF DEQUE
  • There are two variations of a deque that are as
    follows
  • (1)Input restricted deque It allows
    insertion of elements at one end only but
    deletion can be done at both ends.
  • (2)Output restricted deque It allows
    deletion of elements at one end only but
    insertion can be done at both ends.
  • The implementation of both these queues is
    similar to the implementation of deque. The only
    difference is that in input restricted queue,
    function for insertion in the beginning is not
    needed whereas in output-restricted queue,
    function for deletion in the beginning is not
    needed.

27
7.APPLICATION OF QUEUE
  • There are numerous applications of queue in
    computer science.
  • Various real-life applications, like railway
    ticket reservation, banking system are
    implemented using queue.
  • One of the most useful applications of queue is
    in simulation.
  • Another application of queue is in operating
    system to implement various functions like CPU
    scheduling in multiprogramming environment,
    device management (printer or disk), etc. Besides
    these, there are several algorithms like
    level-order traversal of binary tree, etc., that
    use queues to solve the problems efficiently.

28
Simulation
  • Simulation is the process of modelling a
    real-life situation through a computer program.
  • Its main use is to study a real life situation
    without actually making it to occur.
  • It is mainly used in areas like military,
    scientific research operations where it is
    expensive or dangerous to experiment with the
    real system.
  • In simulation, corresponding to each object and
    action, there is counterpart in the program.
  • The objects being studied are represented as data
    and action as operations on the data.
  • By supplying different data, we can observe the
    result of the program.
  • If the simulation is accurate, the result of the
    program represents the behaviour of the actual
    system accurately.

29
Simulation(Cont.)
  • Consider a ticket reservation system having four
    counters.
  • If a customer arrives at time t and a counter is
    free then the customer will get the ticket
    immediately.
  • However, it is not always possible that counter
    is free. In that case, a new customer goes to the
    queue having less number of customers.
  • Assume that the time required to issue the
    ticket is t. Then the total time spent by the
    customer is equal to the time t (time required to
    issue the ticket) plus the time spent waiting in
    line.
  • The average time spent in the line by the
    customer can be computed by a program simulating
    the customer action.
  • This program can be implemented using queue,
    since while one customer is being serviced,
    others keep on waiting.

30
CPU Scheduling in Multiprogramming Environment
  • As we know that in multiprogramming environment,
    multiple processes run concurrently to increase
    CPU utilization. All the processes that are
    residing in memory and are ready to execute are
    kept in a list referred as ready queue. It is the
    job of scheduling algorithm to select a process
    from the processes and allocate the CPU to it.
  • Let us consider a multiprogramming environment
    where the processes are classified into three
    different groups, namely, system processes,
    interactive processes and batch processes.
  • To each group of process, some priority is
    associated. The system processes have the highest
    priority whereas the batch processes have the
    least priority.

31
CPU Scheduling in Multiprogramming
Environment(Cont.)
  • To implement multiprogramming environment,
    multi-level queue scheduling algorithm is used.
  • In this algorithm, the ready queue is
    partitioned into multiple queues (see Figure
    4.12).
  • The processes are assigned to the respective
    queues.
  • The higher priority processes are executed before
    the lower priority processes. For example, no
    batch process can run unless all the system
    processes and interactive processes arc executed.
  • If a batch process is running and a system
    process enters the queue, then batch process
    would be pre-empted to execute this system
    process.

32
Round Robin algorithm
  • The round robin algorithm is one of the CPU
    scheduling algorithms designed for the
    timesharing systems.
  • In this algorithm, the CPU is allocated to a
    process for a small time interval called time
    quantum (generally from 10 to 100 milliseconds).
  • Whenever a new process enters, it is inserted at
    the end of the ready queue. The CPU scheduler
    picks the first process from the ready queue and
    processes it until the time quantum elapsed.
  • Then CPU switches to the next process in the
    queue and first process is inserted at the end of
    the queue if it has not been finished.
  • If the process is finished before the time
    quantum, the process itself will release the CPU
    voluntarily and the process will be deleted from
    the ready queue.
  • This process continues until all the processes
    are finished.
  • When a process is finished, it is deleted from
    the queue. To implement the round robin
    algorithm, a circular queue can be used.
Write a Comment
User Comments (0)
About PowerShow.com