At the beginning of the Spring 1998 quarter, I decided to take a look at Windows NT auditing and disk optimization for Windows in general. I originally proposed that I look at Windows NT audit logs to determine whether it was feasible to use them in a study for disk access patterns and disk optimization. I was to also write a disk simulator in order to test out different disk optimization policies.
First of all, my examination of Windows NT audit logs appear to show that they are not useful. In the introduction, I mentioned five questions as issues for consideration. I believe that the answers to those questions is that the logs do not provide any differentiation for the issues mentioned. Unfortunately, Windows NT audit logs are not well documented and perhaps there is information that can be gained from them that I don't know about.
With respect to disk optimization, I studied the components of disks, disk layout, and the issue of fragmentation. In particular, the two most common file systems, FAT and NTFS. I determined that there are several disk defragmenters from Microsoft as well as third party companies for MS-DOS, Windows 3.1, Windows 95, and Windows 98. I discovered that there are three third party disk defragmenters for Windows NT 4.0, but none by Microsoft themselves. The third party disk defragmenters apparently rely on a handful of undocumented and unsupported functions added by Microsoft in order to avoid an earlier fiasco with custom versions of NT.
Although I wrote a very basic and oversimplified simulator in early June, it has become apparent that simulation does not appear to be the right route to take.
There are several issues involved. First, since I have never written nor looked at source code of disk simulators. I need a full understanding of how disk simulations are written. Second, now that I have done some background research, it has become clear that it is necessary to decide on a specific drive to be simulated. There are several reasons why this is so.
Another problem is that disk simulations are hard to validate. Validating a disk optimization performed via disk simulation would require using a commercial disk defragmentation product on a real disk. However, the on-screen displays of those products do not show the level of detail required to verify that the disk simulator worked properly!
Because of these issues, it became clear by mid-summer that simulation was not going to work. Since then, I've been searching for background material to try to do this by experimentation.
In order to do experimentation, something which was not originally planned, more study is necessary. Specifically it is now necessary to be more familiar with operating system internals. To help with that, I've located example source code for a simple command-line disk defragmenter for Windows NT.