1 / 8

Important Announcements

This announcement includes details about the upcoming midterm and final exams, as well as a brief explanation of virtual memory and hard disk data storage.

bruton
Download Presentation

Important Announcements

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. Important Announcements • Midterm 3 is on Wednesday, April 20 from 7pm to 8:30pm • Practice Midterm 1 released tonight • Please email me ASAP in case you need a conflict • Final Exam (cumulative) is on Monday, May 9 from 1:30pm to 4:30pm • Please email me ASAP in case you need a conflict

  2. virtual page number (VPN) page offset virtual address TLB physical address page offset page table block offset index tag disk cache data memory Virtual Memory system PPN

  3. Hard drives • The textbook shows the ugly guts of a hard disk • Data is stored on double-sided magnetic disks called platters • Each platter is arranged like a record, with many concentric tracks • Tracks are further divided into individual sectors, which are the basic unit of data transfer • Each surface has a read/write head like the arm on a record player, but all the heads are connected and move together • A 75GB IBM Deskstar has roughly: • 5 platters (10 surfaces), • 27,000 tracks per surface, • 512 bytes per sector, • ~512 sectors per track… …but this number increases going from the center to the rim

  4. I/O Performance • There are two fundamental performance metrics for I/O systems: • Latency Time to initiate data-transfer (units = sec) • Bandwidth Rate of initiated data-transfer (units = bytes/sec) Time = latency + transfer_size / bandwidth secbytes / (bytes/sec) Dominant term for small transfers Dominant term for large transfers

  5. Accessing data on a hard disk • Factors affecting latency: • Seek time measures the delay for the disk head to reach the track • A rotational delay accounts for the time to get to the right sector • Factors affecting bandwidth: • Usually the disk can read/write as fast as it can spin • Bandwidth is determined by the rotational speed, which also determines the rotational delay • We can compute average seek time/rotational delay/etc. but careful placement of data on the disk can speed things up considerably: • head is already on or near the desired track • data in contiguous sectors • in other words, locality! • Even so, loading a page from the hard-disk can take tens of milliseconds

  6. Parallel I/O • Many hardware systems use parallelism for increased speed • A redundant array of inexpensive disks or RAID system allows access to several hard drives at once, for increased bandwidth • similar to interleaved memories from last week

  7. MP6: Due Friday 4/29 • Input: A string s • Output: Maximum number of non-overlapping increasing substrings in s • A string x is larger than string y if • length(x)  length(y) (e.g. “aa”  “z”); or • length(x) = length(y) but x is lexicographically bigger (e.g. “z”  “a”) • Example 1: s = aaa splits into two increasing substrings “a” and “aa” • Example 2: s = abc splits into three increasing substrings “a”, “b”, “c” • Example 2: s = aaaa splits into two increasing substrings “a” and “aa”; or “a” and “aaa” • Example 3: s = aaaaaa splits into three increasing substrings “a”, “aa” and “aaa”

  8. MP6: Algorithm • Recurrence: • C++ code: Uses a hashtable (STL map) for best(index, substr) values • Optimization techniques: • Compiler optimizations • Better (more cache-friendly) data structure • Better algorithm • Exploit parallelism • Manual optimizations i j next best(i, last) = 1 + best(j, next) best(i+1, last)

More Related