CS4760 operating systems

  1. Consider a machine with the memory access time for RAM to be 90ns. You are running processes that, on an average, have 1 page fault in 25,000 memory accesses. Out of these page faults, 1 in 2 pages turn up with their dirty bit set. The disk has a seek time of 14ms and is spinning at 14,400 rpm. Consider about 1ms for transfer time for data. At any time, there are, on an average, two processes in the device queue. Compute the effective memory access time for this system.
  2. Consider a machine with an architecture that requires at least 10 frames to be present in memory for an instruction to be executed. Each frame holds 1 MB. The machine has a memory of 64 MB. The OS has allocated 10 MB memory for itself. There are four processes on the system with memory requirement of 20 MB, 33MB, 10 MB, and 14 MB. Show the memory allocated to these processes using equal allocation and proportional allocation methods.
  3. An engineer suggested to me that he wants to conserve memory and optimize the code at the same time by packing a large amount of data in as little space as possible. In his scenario, the data is integers in the range 0 to 8000. So, data can be organized as 13 bits elements in an array and the array can be packed by treating the memory as a continuous stream of bit elements where each element is at 13-bit boundary. The memory is accessed as 32-bit words. Of course, some elements will get split across word boundaries. The engineer wants to access the data by bit shift operators as needed after reaching the word that contains our element. Can you see any problem with this approach in terms of execution speed?
  4. Consider a machine with disk blocks of 2K bytes. You have a new disk of size 1TB. What is the theoretical maximum file size possible using the UFS scheme of 12 direct blocks, 1 single indirect block, 1 double indirect block, and 1 triple indirect block in the inode table?
  5. We have a machine that executes the following instruction as a single machine language atomic instruction. *a = *b + *c; where a, b, and c are pointers to long words. On this machine, we have three processes of size 4KB, 10KB, and 60KB. Assume a block size of 1K and assume that our memory allocator is based on proportional allocation scheme. Total memory available is 32KB. Show the allocation of memory to each of the three processes.
  6. I just bought a disk that runs at 7200 RPM. There are 256 sectors per track. The disk has 1024 cylinders and the head moves from one track to next in 0.02ms. What is its average latency?
  7. I just received a disk of size 300GB that is to be connected to my computer. This machine tracks free space on the disk using a bit-vector approach. Each block on the disk is of size 4KB. What is the size of my bit-vector in bytes? How many blocks on disk must be reserved for the bit vector?
CS4760 operating systems Image 1
  1. [10+4pt] Consider a disk with c cylinders, h heads per cylinder, s sectors per track and a sector length l. A logical file L with fixed record length r is stored contiguously on this disk starting at location (cL,hL,sL), where cL, hL, and sL are the cylinder, head, and sector numbers, respectively.
    • Derive a formula to calculate the disk address (i.e., cylinder, head, sector) of a given logical record n, assuming that r l.
    • How many seek operations are necessary to read an entire file of m logical records?
  2. [6 pt] We know that Windows does not rely on files being contiguous on disk. Yet, we have automatic schedules to run dfrag. What is the purpose of dfraging when the OS does not require files to be contiguous?