Unit Input/Output (I/O) adalah bagian dari mikroprosesor yang digunakan oleh mikroprosesor itu untuk berhubungan dengan dunia luar. Unit input adalah unit luar yang digunakan untuk memasukan data dari luar kedalam mikroprosesor ini, contohnya data yang berasal dari keyboard dan mouse. sedangkan unit output biasanya untuk menampilkan data contohnya monitor, printer, dll.
Sistem I/O terdiri dari:
a. Perangkat Keras I/O
b. Aplikasi Antarmuka I/O
c. Kernel I/O
d. Mengubah I/O Request menjadi operasi perangkat keras
e. Streams
f. Performance
a. Perangkat Keras I/O
Konsep Umum :
> Port
> Bus (Daisy chain atau shared direct access)
> Controller (host adapter)
Perangkat kontrol instruksi I/O
Perangkat-perangkat tersebut memiliki alamat, digunakan untuk:
> Instruksi I/O langsung
> Memory-mapped I/O
Jenis Perangkat Keras
> Perangkat penyimpan data
> Perangkat penghubung
> Perangkat antarmuka dengan user
Suatu perangkat berhubungan dengan sistem komputer dengan cara mengirim sinyal melalui suatu kabel atau bahkan melalui udara Perangkat tersebut berkomunikasi dengan mesin melalui port, Struktur komputer yang umum dipakai adalah Daisy Chain.
DIAGRAM BLOK ARSITEKTUR KOMPUTER
POLLING
> Host terus membaca busy-bit secara berulang-ulang sampai bit tersebut clear
> Host set write-bit di command-register dan menulis satu byte di data-out register
> Host set bit command-ready
> Ketika controller mengetahui kalau bit command-ready di-set, dia men-set busy bit
> Controller membaca command-register dan melihat perintah tulis. Dia membaca
data-out register untuk mendapatkan bytenya, dan melakukan operasi I/O
> Controller menghapus bit command-ready, membersihkan bit error di status register
yang menandakan operasi I/O berhasil,dan menghapus busy-bit yang menandakan kalau
operasi sudah selesai.
Interrupt
> Jalur interrupt dihasilkan oleh perangkat I/O
> Interrupt Handler menerima interrupt tersebut
> Mekanisme interrupt juga digunakan untuk penanganan exception
Interrupt-Driven I/O Cycle
Direct Memory Access (DMA)
> Generasi komputer yang sangat tua
@ Controller membaca dari perangkat
@ Sistem Operasi meminta controller membaca data
> Generasi komputer yang tua
@ Controller membaca dari perangkat
@ Controller meng-interrupt OS
@ Sistem Operasi menyalin data ke memori
> Generasi DMA
@ Controller membaca dari perangkat
@ Controller menyalin data ke memori
@ Controller meng-interrupt OS
DMA Transfer
Aplikasi Antar-Muka I/O
> Sifat-sifat perangkat komputer diabstraksi oleh I/O system call berbentuk
kelas-kelas umum.
> Lapisan driver perangkat menyembunyikan perbedaanperbedaan I/O controller dari
kernel.
> Ragam device dari beberapa sisi:
> Character-stream atau block
> Sequential atau random-access
> Synchronous atau asynchronous
> Sharable atau dedicated
> Speed atau operation
> Read-write, read only, write only
Perangkat Block dan Character
> Perangkat block:
Ø Meliputi berbagai disk drive
Ø Perintah baca, tulis, pencarian data
Ø Dimungkinkan untuk mengakses berkas secara memorymapped
> Perangkat character:
Ø Contoh: keyboard, mouse
Ø Perintah menulis, mengambil
Ø Dapat dibuat library pengakses data per-baris
Perangkat Jaringan
> Interface berbeda dari baca, tulis disk, disebut interface socket.
> Socket: penghubung komputer dengan jaringan.
> Local socket dihubungkan dengan remote socket.
> Komunikasi antar komputer dilakukan melalui socket.
Clock dan Timer
> Fungsi clock dan timer pada hardware:
Ø Waktu saat ini
Ø Lama sebuah proses
ØTrigger proses pada suatu waktu
> Programmable interval timer : hardware pengukur waktu dan trigger.
> Sistem operasi mampu menangani time request lebih banyak dari jumlah hardware timer
Blocking dan Non-blocking I/O
> Blocking : proses dihentikan sementara
Ø Lebih mudah dimengerti
Ø Tidak cukup untuk beberapa hal
> Non-blocking : diimplementasikan lewat multi-threading
> Asynchronous : proses berjalan selama I/O dieksekusi
Kernel I/O Subsystem
> Scheduling :
* Permohonan I/O dilakukan berdasarkan antrian perangkat
* Beberapa sistem operasi berusaha untuk seadil mungkin
> Buffering : menyimpan data di memori selama proses transfer antar perangkat
* Solusi perbedaan kecepatan dari perangkat yang ada
* Solusi perbedaan ukuran transfer perangkat
Struktur Data Kernel
> Kernel menyimpan informasi penggunaan komponen I/O, termasuk tabel open-file
koneksi networking, informasi karakter device.
> Struktur data yang rumit dapat digunakan untuk memeriksa buffer, alokasi memori,
dan menentukan batasan sektor/blok.
> Beberapa sistem operasi menggunakan tehnik object oriented untuk mengkapsulasikan
perbedaan-perbedaan semantik yang ada.
Transformasi I/O Menjadi Operasi H/W
Proses:
> Blocking read system call diberikan pada pendeskripsi data dari data yang sudah
terbuka sebelumnya.
> Kode di kernel memeriksa parameter. Dalam proses input, jika data sudah ada di
buffer, data dikembalikan ke proses dan permintaan I/O selesai.
Contoh: membaca data dari disk untuk di proses.
> Menentukan device yang mengandung data,
> Menerjemahkan nama ke perwakilan device
> Secara fisik memindahkan data dari disk ke buffer
> Mempersiapkan data untuk proses permintaan I/O
> Mengembalikan kontrol ke proses
I/O Stream
> I/O stream adalah suatu mekanisme pengiriman data secara bertahap dan terus
menerus melalui suatu aliran data (dua arah)
> Biasa digunakan dalam network protocol
> Asynchronous
> Menggunakan message passing dalam men-transfer data
> Untuk memasukkan ke dalam stream digunakan ioctl system call
> Untuk menuliskan data ke device digunakan write / putmsg system call
> Untuk membaca data dari device digunakan read / getmsg system call
> User process: berhubungan langsung dengan stream head
> Ada beberapa modul dengan write dan read queue
> Device berhubungan langsung dengan driver
Kinerja I/O
> Pembuat CPU melaksanakan kode device-driver
> Memberitahukan ke-tidak efisien-an pada mekanisme penanganan interrupt dalam kernel
> Me-load memory bus sewaktu menyalin data yang dilakukan di controller dan physical
memory
Meningkatkan Kinerja I/O
> Memperkecil jumlah context switch
> Memperkecil jumlah penyalinan data yang dilakukan sewaktu pengoperan data antara
device dan aplikasi
> Memperkecil jumlah interrupt dengan menggunakan transfer secara besar-besaran,
smart controllers dan polling (jika busywaiting bisa diminimalisir)
> Menambah konkurensi dengan menggunakan DMA controllers atau channels yang telah
diketahui untuk meng-offload pennyalin sederhana dari CPU
> Memindahkan proses-proses primitif ke perangkat keras, untuk membuat operasinya
dalam device controllers konkuren dengan CPU dan operasi Bus
> Menyeimbangkan CPU, memory subsystem, bus, dan I/O performance, karena kelebihan
di salah satu area akan membuat keterlambatan pada yang lain.
Tidak ada komentar:
Posting Komentar