FlyerTalk Forums - View Single Post - Disk Defraggers?
View Single Post
Old Aug 7, 2008 | 10:09 am
  #13  
DallasBill
 
Join Date: Jul 2004
Location: The Big D
Programs: AA, CO, DL, WN, SPG Gold
Posts: 1,842
Originally Posted by alanh
Back in the DOS days (and early versions of Windows), the system would read one file at a time, end to end. Combined with slow seek rates, this made defragging a big win.

However, XP/Vista will read segments of multiple files at the same time. Since it has to seek between files anyway, fragmentation is less of an issue.

XP/Vista also uses caching and prefetching to minimize disk access times. The Windows\Prefetch directory contains maps of frequently accessed disk blocks for different programs. When they start it loads those blocks right away rather than waiting for them to be demanded.
You are talking programs, not data. Most (all?) programs you use involve a data file (doc, xls, wmv, mov, etc.). When those files are written (and saved, and re-saved, and re-saved, etc.) to a fragged disk, pieces of them are put into multiple locations on the disk, further fragging said disk. The Windows MFT file is a "master pointer locater" to where all those file peices are and how they fit in what order. A fragged disk will also result in a fragged MFT file as you add more to the disk and it has to grow with new data to "watch.". It tries to stay whole, but eventually it will frag if the disk is fragged heavily.

So, when your program needs to access a file for data, it reads the MFT (which may be fragged itself and take disk seek time to get it all), which then tells the disk where to seek and read for the data file pieces. Which are then assembled for the program to use. That all takes time and disk cycles. Defragging puts those files together in as many larger, continguous sections as possible, in order to stop that extra disk thrashing.

That's why it works to improve performance. Program defragging is a good, but secondary purpose, and usually involves placing your most used programs contiguously towards the center of the disk where seek time is fastest. BTW, XP/Vista cannot "read segments of multiple files at the same time" because on a typical single disk system, the read-head has to be somewhere at any given time. It can't be reading the MFT and reading in other places on the disk and be in 2, 3 or more places at once.
DallasBill is offline