Tujuan Pembelajaran

1
Memahami arsitektur sistem I/O

Komponen dan mekanisme transfer data antara CPU dan perangkat I/O

2
Menguasai konsep interupsi

Jenis-jenis interupsi dan mekanisme handling-nya

3
Implementasi DMA

Direct Memory Access untuk transfer data efisien

4
Simulasi sistem I/O

Praktikum dengan simulator interupsi dan I/O handling

Teori: Sistem I/O

Arsitektur Sistem I/O

Sistem I/O menghubungkan CPU dengan perangkat eksternal melalui mekanisme yang terkoordinasi.

Diagram Sistem I/O

CPU
Processor
Memory
Main Memory
I/O Controller
Device Interface
Peripheral
I/O Devices
Bus System: Data Bus, Address Bus, Control Bus

Jenis-jenis Interupsi

🔄

Hardware Interrupt

Dibangkitkan oleh perangkat keras eksternal (keyboard, mouse, disk)

Software Interrupt

Dibangkitkan oleh program (system calls, exceptions)

🚨

Exception

Kesalahan proses (division by zero, page fault)

Timer Interrupt

Dibangkitkan oleh timer untuk multitasking

Interrupt Handling Process

  1. Interrupt Occurs - Perangkat mengirim sinyal interupsi
  2. Finish Current Instruction - CPU menyelesaikan instruksi saat ini
  3. Save Context - Menyimpan state program yang sedang berjalan
  4. Identify Interrupt - Mengidentifikasi sumber interupsi
  5. Execute ISR - Menjalankan Interrupt Service Routine
  6. Restore Context - Mengembalikan state program sebelumnya
  7. Resume Execution - Melanjutkan eksekusi program

Simulator Interupsi

CPU & Interrupt Simulator

CPU STATUS
Program Counter
0x0040
Instruction Reg
MOV A, B
Status
RUNNING
Int Mask
0xFF
Interrupt Queue:
No interrupts pending
Current Operation: Ready to simulate...

Interrupt Vector Table

0x00: Divide Error Handler
0x04: Keyboard Interrupt
0x08: Timer Interrupt
0x0C: Disk I/O Handler
0x10: Network Handler

Metode Transfer I/O

Perbandingan berbagai teknik transfer data antara CPU dan perangkat I/O:

Programmed I/O
Low Efficiency

CPU terkontrol penuh terhadap transfer data. CPU menunggu sampai I/O operation selesai.

  • Simple implementation
  • High CPU utilization
  • Suitable for slow devices
Interrupt-Driven I/O
Medium Efficiency

CPU bebas bekerja selama I/O operation, kemudian diinterupsi ketika selesai.

  • Better CPU utilization
  • Overhead interrupt handling
  • Good for medium-speed devices
DMA
High Efficiency

Direct Memory Access - transfer data langsung antara device dan memory tanpa CPU.

  • Highest efficiency
  • Complex implementation
  • Ideal for high-speed devices

Direct Memory Access (DMA)

Mekanisme transfer data langsung antara perangkat I/O dan memory tanpa melibatkan CPU.

I/O Device
Disk/Network
→ DMA Transfer →
Memory
RAM

DMA Operation Steps:

  1. Request: Device meminta DMA transfer
  2. Acknowledge: DMA controller mengakui request
  3. Address Setup: DMA controller setup memory address
  4. Transfer: Data ditransfer langsung ke memory
  5. Completion: DMA menginterupsi CPU ketika selesai

Keuntungan DMA:

Latihan Praktikum

Exercise 1: Interrupt Handling

Gunakan simulator untuk:

  • Generate 3 interrupts dengan priority berbeda
  • Perhatikan urutan processing berdasarkan priority
  • Analisis perubahan Program Counter dan Status Register

Exercise 2: I/O Method Analysis

Bandingkan tiga metode I/O untuk scenario berikut:

  • Transfer file 1MB dari disk ke memory
  • Keyboard input setiap 100ms
  • Network packet reception

Exercise 3: DMA Configuration

Rancang DMA setup untuk:

  • Video card memory transfer
  • Network interface card
  • Audio device buffer

Exercise 4: Interrupt Priority

Analisis skenario interrupt conflict:

  • Timer interrupt vs Disk I/O interrupt
  • Network packet vs Keyboard input
  • Error handling vs Normal operation