Computer Architecture Final Project


    Dynamic power management saves power by shutting down idle devices. The tool presented here compares a set of DPM algorithms for controlling power states of hard disk drives.

    The algorithms have been described in "Quantitative Comparison of Power Management Algorithms" by Yung-Hsiang Lu et al. The paper appeared in Proceedings of the conference on Design, automation and test in Europe. The user is encouraged to read  the paper before using the tool.

    The tool has three fold uses. First it can be used to learn a set of scheduling algorithms used by hard disks to schedule track accesses. The first part of tool demonstrate the order in which tracks would be accessed for three different Disk Scheduling algorithms: FCFS (First Come, First Served), S.S.T.F (Shortest Seek Time First), and C-Look. A brief description of these algorithms is presented here. For these set of experiments, no power management algorithms are used. The second part of tool demonstrates the working of DPM algorithms. The algorithms presented are Fixed Timeout, ATO1, ATO2, ATO3 and Exponential Average. Different scheduling algorithms can be used while performing simulations for each of these. For example the user can see how power management algorithm ATO1 performs if disk scheduling algorithm used is S.S.T.F or if another disk scheduling algorithm, SCAN is used. Finally, a performance comparison of any two DPM algorithms can be seen.

    Following are the steps to use this software

  • Step 1:   Select disk parameters
    Disk paraneters such as Power consumed when disk is active are used for Energy calculations and determining performance parameters like minimum sleep time required for disk to conserve energy.
    Disk parameters can be selected in two ways:
    * By selecting a disk model: When a disk modl is selected the table reflects all parameters for that disk model.
    * By inputting a new set of values. When the option "User Defined" is selcted, the values entered in parameter table will be used for all simulations.   
  • Step 2: Enter Head starting Track Number
    The starting position of head can be specified. Any scheduling algorithm will start scheduling assuming this start value.
  • Step 3: Enter Disk Access Track Numbers  (0-600)
    A set of track numbers that need to be accessed should be specified. Track accesses requests are assumed to be buffered in a buffer of size of four.
  • Step 4 : Enter time intervals between accesses
    Between any two set of track accesses, a time interval can be specified where the disk is idle.

 Instead of entering values as specified in Step 1-4, experiment can also be performed clicking "Autofill" button, to fetch default values.

  • Step 5: Start the execution
    The execution can be started by clicking the "Go" button. This would simulate track accesses for all scheduling algortihms and compute the energy requirements of each.
  • Step 6 : Choose Power Management algorithm The second stage of simulator reflects the effect of Power management algortihms. The algortihm can be chosen from the select box. A choice of fixed timeout, Adaptive timeout 1, and Adaptive timeout 2 and Fixed timeout are provided.
  • Step 7: Enter parameters for Fixed Timeout Different timeout values can be specified to see the effect on Fixed timeout algorithm. The algorithm will wait for time specified in timeout interval before scheduling disk spin-down. Also, a choice of disk scheduling algorithms is provided for scheduling track accesses and hence the active time.
  • Step 8: Enter parameters for ATO1: Different values of alpha, beta and roe can be specified for varying timeout adaptively. ATO1 adapts its timeout values based on an acceptable or unacceptable disk shut down. In case of acceptable spin down, timeout is decreased with a factor or beta and in case of an unacceptable spin down, timeout value is increased by alpha. 
  • Step 8: Enter parameters for ATO2: ATO2 adjust timeout asymmetrically, increasing by 1 sec and decreasing by half. Values of roe can be specified to estimate acceptable and unacceptable spin-downs.
  • Step 8: Enter parameters for ATO3:ATO3 adjusts timeout by looking at the busy time period before every idle period. If busy period  is small, timeout decreases, if busy period in large, timeout increases. Initial timeout value can be entered by user.
  • Step 9: Enter parameters for Exponential Average:Exponential Average uses predicted and actual lengths of previous idle preiod to predict the lenths of current idle period
  • View results : For each power management algorithm simulated, set of performance parameters can be viewd such as, Number of shutdowns, Number of wrong shutdowns
  • Step 10: Performance Metrics: Any two set or all Power Management algorithms can be compared for their performance using graphs by clicking "Performance Metrics". Algorithms can be compared in terms of "Energy Gained", "Total Weight Delay", "Average Weight Delay", "Maximum weight sequence" for long and short time windows ( Window sizes can be specified by user).
    Additionaly, a graph plots for each compared algorithm,the longest shutdown sequence in which the time between two adjacent shutdowns is shorter than a threshold.

To start using simulation click on "Simulation" tab above



A hard disk drive is a collection of plates called platters. The surface of each platter is divided into circular  tracks. Further more, each track is divided into smaller pieces called sectors. Disk I/O is done sector by sector. A group of tracks that are positioned on top of each other form a cylinder. There is a head connected to an arm for each surface, which handles all I/O operations.

For each I/O request, first  head is selected. It is then moved over the destination track. The disk is then rotated to position the desired sector under the head= and finally, the read/write operation is performed.

There are two objectives for any disk scheduling algorithm:
1. Maximize the throughput - the average number of requests satisfied per time unit.
2. Minimize the response time - the average time that a request must wait before it is satisfied.

Some of the disk scheduling algorithms are explained below.

  1. FCFS (First Come, First Served)
    • perform operations in order requested
    • no reordering of work queue
    • no starvation: every request is serviced
    • poor performance

  2. SSTF (Shortest Seek Time First)
    • after a request, go to the closest request in the work queue, regardless of direction
    • reduces total seek time compared to FCFS
    • Disadvantages
      • starvation is possible; stay in one area of the disk if very busy
      • switching directions slows things down

  3. SCAN
    • go from the outside to the inside servicing requests and then back from the outside to the inside servicing requests.
    • repeats this over and over.
    • reduces variance compared to SSTF.

  4. LOOK
    • like SCAN but stops moving inwards (or outwards) when no more requests in that direction exist.

  5. C-SCAN (circular scan)
    • moves inwards servicing requests until it reaches the innermost cylinder; then jumps to the outside cylinder of the disk without servicing any requests.
    • repeats this over and over.
    • variant: service requests from inside to outside, and then skip back to the innermost cylinder.

  6. C-LOOK
    • moves inwards servicing requests until there are no more requests in that direction, then it jumps to the outermost outstanding requests.
    • repeast this over and over.
    • variant: service requests from inside to outside, then skip back to the innermost request.