1 / 25

Input/Output IV Timers

Input/Output IV Timers. CS 423, Fall 2007 Klara Nahrstedt/Sam King. Outline . Disks – Caching issues Timers. History of Disk-related Concerns. When memory was expensive Do as little bookkeeping as possible When disks were expensive Get every last sector of usable space

bairn
Download Presentation

Input/Output IV Timers

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Input/Output IVTimers CS 423, Fall 2007 Klara Nahrstedt/Sam King

  2. Outline • Disks – Caching issues • Timers

  3. History of Disk-related Concerns • When memory was expensive • Do as little bookkeeping as possible • When disks were expensive • Get every last sector of usable space • When disks became more common • Make them much more reliable • When processor got much faster • Make them appear faster

  4. Kernel Components Affected by Block Device Op. VFS Disk Caches Disk Filesystem Disk Filesystem Disk Filesystem Mapping Layer Generic Block Layer I/O Scheduler Layer Block Device Driver Block Device Driver

  5. On-Disk Caching • Method • Put RAM on disk controller to cache blocks • Seagate ATA disk has .5MB, IBM Ultra160 SCSI has 16MB • Some of the RAM space stores “firmware” (an OS) • Blocks are replaced usually in LRU order • What are the pros and cons of on-disk caching?

  6. Disk Block Caches • Main memory rather than disk may hold disk blocks • 85% or more of all I/O requests by file system and applications can be satisfied by disk block cache • BSD UNIX provides a disk block cache as part of the block-oriented device software layer • It consists of between 100 and 1000 individual buffers.

  7. CD-ROM • Compact Disk – Read Only Memory, Optical Disk • 1980 – Philips and Sony developed CD • CD is prepared (WRITE OPERATION) • using a high-power infrared laser to burn 0.8 micron diameter holes in a coated glass master disk; • from the master disk, mold is created, processed and reflective layer is deposited on polycarbonate; • depressions on the polycarbonate substrate are called pits, the unburned areas between pits are called lands • CD is read (READ OPERATION) • Low-power laser diode shines infrared light with a wavelength of 0.78 micron on pits and lands as they stream by. • Laser is on the polycarbonate side, so pits stick out toward the laser as bumps in the flat surface. • Pits and lands return different light to the player’s photodetector (pit returns less light than light bouncing off land), hence the player tells pit from land. Pit length is 0.6 micrometers. • Pit/land and land/pit transitions represent 1, absence of transition is 0. • CD-Recordable, CD-Rewritables, DVD

  8. Disk I/O Summary • Disk is an important I/O device • Disk must be fast and reliable • Error Handling is important; check checksum, called ECC (Error Correcting Code) • Track a bad sector • Substitute a spare for the bad sector • Shift al sectors to bypass the bad one • RAID protects against few bad sectors, but does not protect against write errors laying down bad data • Stable Storage may be needed

  9. Clocks and Timers • Hardware clocks (also called timers) • give the current time • give the elapsed time • set a timer to trigger operation X at time T • Programmable interval timer - hardware to measure elapsed time and trigger operations • This mechanism is used by the scheduler, disk I/O subsystem, network subsystem • Give examples where/when/how CPU scheduler uses timers.

  10. Clock Hardware • Older/simpler clocks • tied to the 110 or 220 volt power line and cause interrupt on every voltage cycle at 50-60 Hz. • Current clocks consist of three components: • a crystal oscillator • a counter • a holding register. • Feature: • The quartz crystal generates a periodic signal of very high accuracy (several hundred MHz). This signal is fed into the counter which counts down to zero. When the counter is zero, it causes CPU interrupt. The holding register is used to load the counter.

  11. Programmable Clock • Modes of programmable clocks: • one-shot mode: when the clock starts (started explicitly by the software), it copies the register value into the counter, decrements the counter, causes an interrupts when counter is zero, and stops ; • square-wave mode: when the clock starts, it copies the register value into the counter, decrements the counter, causes an interrupts when counter is zero, and then automatically the holding register value is copied into the counter, and the whole process repeats (i.e., there is no explicit start of the clock by the software) • The periodic interrupts are called clock ticks. • Programmable clock chips usually contain two or three independently programmable clocks.

  12. Clock Issues • Battery-powered backup clocks • Some clocks drift and need to be resynchronized. • manually resynchronize the clocks. • get the current time from a remote host which carries the UTC (Universal Coordinated Time ), formally known as Greenwich Mean Time). • NTP (Network Time Protocol) is a standard protocol to re-synchronize clocks between two networked systems (regularly the system administrators re-synchronize all clocks in our machines using NTP).

  13. Clock Software • Clock hardware generates interrupts at known intervals. • The clock hardware is served by the clock driver software. • Functions of the clock driver: • Maintaining the time of day • Preventing processes from running longer than they are allowed to • Accounting for CPU usage • Handling alarm system call made by the user process • Providing watchdog timers for parts of the system itself • Doing profiling, monitoring and statistics gathering

  14. Clock Overflow • Time of the day(real clock): requires incrementing a counter at each clock tick. • One difficulty is the overflow of the counter (e.g., a 32-bit counter overflows in two years). • What are the possible solutions to the overflow problem?

  15. Other Functions • Preventing processes from running too long • whenever a process is started, the scheduler initializes a counter to the value of that process' quantum in clock ticks. As the clock ticks, the counter is decremented, and when counter is zero, the clock driver calls the scheduler to set up another process. • CPU accounting • The system should start a second timer (different from the main timer). Whenever the process starts, the second timer starts counting. When a process stops, the timer can be read out to tell how long the process has run. When a process is interrupted, the timer value should be stored and when the process restarts, the timer value should be restored. • Simpler way to do CPU accounting • currently running process keeps a field in the process table entry. At every clock tick, this field in the current process is incremented, ie. every clock tick is ``charged'' to the process running at the time (problems might arise if many interrupts occur).

  16. Timer for Individual Process • Providing timers (alarm) to requests from processes in order to give a warning after a certain time interval • If the clock driver had enough clocks, it could set a separate clock for each request. This is not the case. • Simulate virtual clocks with a single physical clock. • maintain (a) table in which the signal time for all pending times is kept, and (b) a variable giving the time of the next one. When time of day is updated, the driver checks for the closest signal to occur. Once it has, the table is searched for the next one to occur.

  17. Watchdog Timer and Profiling • A timer is set, and when the timer goes off, instead of causing signal as it is the case for user signals, the clock driver calls a procedure supplied by the caller. • Use it for profiling • Build histogram of the program counter and see where it is spending its time. • Debugging

  18. Soft Timers • Software-based timer, called soft timer, is a timer which • sets to the requested frequency as needed • is checked by the kernel when entries are made for other reasons such as system calls, TLB misses, page faults, I/O interrupts, CPU going idle. • If the soft timer has expired, the scheduled event is performed (e.g., packet transmission) with no need to switch to kernel mode. • The kernel resets the soft timer again to go off. The kernel copies the current clock value to the timer and adds the timeout interval to it. • Soft timer can avoid interrupts • the frequency of kernel entries is so frequent that the kernel can check on the soft timer and schedule the events without sending an interrupt.

  19. Linux Timekeeping Architecture • Linux carries several time-related activities: • Updates the time elapsed since system startup • Updates the time and data • Determines for each CPU quanta • Updates resource usage statistics • Checks whether the interval of time associated with each software timer elapsed.

  20. Timing Measurements • Real Time Clock (RTC) • Independent of CPU and other chips • Continues to tick on small battery • Capable to issues periodic interrupts on IRQ8 at frequency 2Hz to 8,192 Hz • Time Stamp Counter • Interface register that allows access to clock signal counter • Programmable Interval Time (PIT) • Similar to alarm clock – it is used to issue timer interrupts on IRQ0 at frequency 1000 Hz • Time interval is called tick

  21. Timing Measurements • CPU Local Timer • similar to PIT – can issue one shot or periodic interrupts • High Precision Event Timer (HPET) • New timer chip (Intel&Microsoft) • Includes up to 8 32-bit or 64-bit independent counters • HPET is expected to replace PIT • Power Management Timer

  22. Data Structures of Timekeeping Architecture • Examples of some of the 80x86 architecture • Timer object • Identifies timer source and Supports four standard methods • Method that records exact time (invoked by timer interrupt handler) • Method that returns time elapsed since last tick • Method that returns number of nsec since kernel init • Method that waits for a given number of “loops” • Jiffies variable • Counter that stores number of ticks since system started • Xtime variable • Stores current time and date

  23. Software Timers • Timer – software facility that allows functions to be invoked at some future moment, after a given time interval elapsed • Time-out facility • Linux has two types of timers • Dynamic timers • Interval timers • Dynamic timers may be dynamically created and destroyed • Interval timers – these timers cause UNIX signals to be sent periodically to the process

  24. System Calls Related to Timing Measurements • time() • Returns number of elapsed seconds since midnight of January 1, 1970 • gettimeofday() • Returns structure ‘timeval’ – number of elapsed microseconds in the last second and seconds since midnight January 1, 1970 • Sleep(), usleep() • Puts process to sleep for certain amount of seconds, microseconds, respectively • Other timers (alarm, setitimer…) • Group activity: • Write a pseudo-code where you calculate in a loop multiplication of a number x with itself and you return the result after 100 microseconds

  25. Timer Summary • Always check what is the timer resolution on your platform since too many components depend on it • Linux kernel implements POSIC timers by means of dynamic timers • Linux also supports Delay Functions – if software timers are useless (in case kernel must wait for a short time period – few ms, the kernel makes use of udelay() or ndelay())

More Related