/ Resources / Design / Class Definitions / DiskDrive

RCOS.java Home PageInstructionTransitions

DiskDrive

Class:

Disk

Name:

DiskDrive

Comment:

Simulates a physical disk drive and follows these steps
  DiskScheduler makes a read/write request
  if the disk can't satisfy this request then
    CPU.generateInterrupt( disk_access_error, NOW )
  else
    compute how long it will take to perform request
    CPU.generateInterrupt( type_of_transfer_complete, TIME ) 
      
Should possibly add the presence of a disk buffer provided by the disk along the lines of Nachos' track buffer

Collaborators:

DiskTransfer - contain information about whether the transfer is a read or write and to where
Interrupt - raised after disk has computed how long it will take to finish the request
DiskType - parameters about disk

Responsibilities: