File management and Performance
File Systems Architecture device drivers physical I/O (PIOCS) logical I/O (LIOCS) access methods File organization and access l sequential l index-sequential l direct
File sharing and blocking n File sharing – access rights: read, write, execute, by user classes. – File/record locking: simultaneous access n Record blocking – Logical vs physical record – unblocked vs blocked record – fixed-lenght vs variable-lenght IRG block data IBG block data IBG IRG
File allocation n File allocation table (FAT) n Pre allocation vs dynamic allocation n Portion size – contiguity increases performance – fixed-size portions simplify reallocation – variable-size or small fixed-size minimizes waste of unused space for overallocation – two main alternatives: l variable, large contiguous portions (performance) l small fixed portions (flexibility) n File fragmentation and reorganization
Redundant Array of Independent/ Inexpensive Disks (RAID) RAID is a set of physical disk drives viewed by the OS as a single logical drive Data are distributed across the physical drives of an array Redundant disk capacity is used to store parity information, which guarantees data recovery RAID Levels: various levels of performance and redundancyRAID Levels –the disks are divided in strips: physical blocks, sectors, or similar –the strips are mapped round robin on the array –I/O requests can be processed in parallel strip 0 strip 4 strip 8 strip 12 strip 1 strip 5 strip 9 strip 13 strip 2 strip 6 strip 10 strip 14 strip 3 strip 7 strip 11 strip 15
Performance n How effective is the OS in managing resources? n Overall performance measures: – turnaround time – response time – throughput – workload – capacity – utilization n Bottlenecks
Evaluation Techniques n Timings (hardware) n Instruction mix (software mix) n Kernel (typical program) n Benchmarks (comparison between systems) n Synthetic programs n Analytical models and simulation n Commercial performance packages
Performance enhancement n coprocessing n parallel processing n the RISC vs CISC controversy – CISC l frequently used code as (complex) instructions l increase lower level programming productivity l extensive market penetration – RISC l very few of the complex instructions are used (empirical studies) l therefore a reduced instruction set is more efficient l programs are 20% larger, requiring more disk space and memory l much more registers are needed, but speed of programs written for RISC is close to twice of equivalent for CISC. l facilitate scalability