Upload
eldora
View
57
Download
0
Embed Size (px)
DESCRIPTION
COP 4600 /EEL 4882 Project 4. Task. I/O Request processing SIO WIO Process state Active (only one) Ready (multiple) Block Done. Input. Input files are the same This time we need actually run instructions inside program script Simulation of SIO, WIO instruction. - PowerPoint PPT Presentation
Citation preview
COP 4600 /EEL 4882Project 4
Task
I/O Request processing– SIO– WIO
Process state– Active (only one)– Ready (multiple)– Block– Done
University of Central Florida
University of Central Florida
Input
Input files are the same
This time we need actually run instructions inside program script
Simulation of SIO, WIO instruction
Instruction “SIO” and “WIO”
ReviewSIO 40DSK2 10 -- Start Dsk2, requesting 10 bytes……WIO 0REQ [1,1] -- See if I/O request at [1,1] has finished, if not, block
How do we handle that?– Whenever we execute SIO, generate EIO event in a future time– When WIO occur first:
– Check if I/O request still there, if so, block– When EIO occur first:
– Remove I/O request
University of Central Florida
Interrupt
University of Central Florida
Interrupt() Interrupt_Handler()
Scheduler() Dispatcher()
Obj1.c: Get EVENT from event queue:
LOGONSTARTIOWAITIOENDIO
PGMEND
Simulator.c: Call event handler:
Logon_ServiceSio_ServiceWio_ServiceEio_ServiceEnd_Service
Events
Logon– Generated by Obj1.c: Load_events()
– When read logon.dat
SIO/WIO/PGMEND– Generated by Obj2.c:Cpu()– When execute SIO/WIO/END instruction
EIO– Generated by Obj4.c:Sio_Service()
University of Central Florida
Scheduler
University of Central Florida
Interrupt() Interrupt_Handler()
Scheduler() Dispatcher()
Select process to run
P2 ‘B’ P5 ‘B’
P4 ‘R’ P1 ‘R’ P3 ‘R’Ready Queue
Which Process to run: FCFS
Dispatcher
University of Central Florida
Interrupt() Interrupt_Handler()
Scheduler() Dispatcher()
Obj2.c: XPGM()
Obj2.c: Cpu()
Run one or several instructions (one cpu burst)
Event Flow
University of Central Florida
Interrupt() Interrupt_Handler()
Scheduler() Dispatcher()
Event Queue:
Logon Logon Logon Logon
Editor Editor LogoffScript:
P1:SIO 23PRNT 100SIO 32DISK 300WIO 0REQ [0,1]END 17
Obj3:Logon_Service
Obj3: Next_pgm
SIO
Event Flow
University of Central Florida
Event Queue:
Logon SIO Logon
Interrupt() Interrupt_Handler()
Scheduler() Dispatcher()
Printer LogoffScript:
P2:SIO 27DISK 3000SIO 15PRNT 100END 30
P1:SIO 23PRNT 100SIO 32DISK 300WIO 0REQ [0,1]END 17
SIO
Event Flow
University of Central Florida
Event Queue:
SIO Logon SIO
Interrupt() Interrupt_Handler()
Scheduler() Dispatcher()
Obj4:SIO_Service
EIO
P1:SIO 23PRNT 100SIO 32DISK 300WIO 0REQ [0,1]END 17
WIO
Event Flow
University of Central Florida
Event Queue:
Logon SIOWIO
Interrupt() Interrupt_Handler()
Scheduler() Dispatcher()
I/O have not finished
P1:SIO 23PRNT 100SIO 32DISK 300WIO 0REQ [0,1]END 17
Block
P2:SIO 27DISK 3000SIO 15PRNT 100END 30
Obj4:WIO_Service
EIO
PRNT P1
Event Flow
University of Central Florida
Event Queue:
Logon SIO
Interrupt() Interrupt_Handler()
Scheduler() Dispatcher()
EIO
Obj4:EIO_Service
PRNT P1
P1:SIO 23PRNT 100SIO 32DISK 300WIO 0REQ [0,1]END 17
Ready
P2:SIO 27DISK 3000SIO 15PRNT 100END 30
Ready
Active
WIO
Event Flow
University of Central Florida
Event Queue:
SIO WIO
Interrupt() Interrupt_Handler()
Scheduler() Dispatcher()
Logon
Printer LogoffScript: Editor
P3:SIO 10DISK 1000WIO 0REQ [0,1]END 37
P1:SIO 23PRNT 100SIO 32DISK 300WIO 0REQ [0,1]END 17
Ready queue:
P2
P3
PGMEND
Event Flow
University of Central Florida
Event Queue:
SIO WIO
Interrupt() Interrupt_Handler()
Scheduler() Dispatcher()
PGMEND
Obj3: End_Service
P1:SIO 23PRNT 100SIO 32DISK 300WIO 0REQ [0,3]END 17
Editor Editor LogoffScript:
Obj3: Next_pgm P4:SIO 18PRNT 200SIO 5PRNT 200WIO 19REQ [0,1]END 13
Ready Queue P2 P3 P4
Device List
University of Central Florida
DSK2
DSK1
PRNT
R1 R5
R3
R7
R6
SIO(R5) SIO(R7) EIO(R1)
Deadline
Deadline is Arp 4 (Friday) midnight
Late assignments are accepted five days after the due date with a penalty of 20 % off. After five days, assignments will not be accepted. The grade for those assignments will be zero.
University of Central Florida