80 likes | 98 Views
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.
E N D
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
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
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
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
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
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
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”
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)