Sabtu, 13 November 2010

SISTEM INPUT DAN OUTPUT PADA KOMPUTER

Sistem I/O
  • Perangkat Keras I/O
  • Aplikasi Antarmuka I/O
  • Kernel I/O Subsystem
  • Mengubah I/O Request Menjadi Operasi Perangkat Keras
  • Streams
  • Performance
Perangkat Keras I/O
  • Banyaknya jenis perangkat keras I/O
  • Konsep Umum :
  1. Port
  2. Bus (Daisy chain atau shared direct access)
  3. Controller (host adapter)
  • Perangkat kontrol instruksi I/O
  • Perangkat-perangkat tersebut memiliki alamat, digunakan untuk:
  1. Instruksi I/O langsung
  2. Memory-mapped I/O
Jenis Perangkat Keras
  • Perangkat penyimpan data
  • Perangkat penghubung
  • Perangkat antarmuka dengan user
Konsep Umum
  • 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
I/O Port Register
  • Register Status
  • Register Control
  • Register Data-in
  • Register Data-out
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
Direct Memory Access (DMA)
  • Generasi komputer yang sangat tua
  1. Controller membaca dari perangkat
  2. Sistem Operasi meminta controller membaca data
  • Generasi komputer yang tua
  1. Controller membaca dari perangkat
  2. Controller meng-interrupt OS
  3. Sistem Operasi menyalin data ke memori
  • Generasi DMA
  1. Controller membaca dari perangkat
  2. Controller menyalin data ke memori
  3. Controller meng-interrupt OS
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:
  1. Character-stream atau block
  2. Sequential atau random-access
  3. Synchronous atau asynchronous
  4. Sharable atau dedicatedàSpeed atau operation
  5. Read-write, read only, write only
Perangkat Block dan Character
  • Perangkat block:
  1. Meliputi berbagai disk drive
  2. Perintah baca, tulis, pencarian data
  3. Dimungkinkan untuk mengakses berkas secara memorymapped
  • Perangkat character:
  1. Contoh: keyboard, mouse
  2. Perintah menulis, mengambil
  3. 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:
  1. Waktu saat ini
  2. Lama sebuah proses
  3. 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
  1. Lebih mudah dimengerti
  2. Tidak cukup untuk beberapa hal
  • Non-blocking : diimplementasikan lewat multi-threading
  • Asynchronous : proses berjalan selama I/O dieksekusi
Kernel I/O Subsystem
  • Scheduling :
  1. Permohonan I/O dilakukan berdasarkan antrian perangkat
  2. Beberapa sistem operasi berusaha untuk seadil mungkin
  • Buffering : menyimpan data di memori selama proses transfer antar perangkat
  1. Solusi perbedaan kecepatan dari perangkat yang ada
  2. Solusi perbedaan ukuran transfer perangkat
Caching
  • Cache : area memori yang cepat, yang berisikan kopian-kopian data.
  • Beda BUFFER dan CACHE :
  1. Buffer dapat menyimpan satu-satunya copy dari sebuah item data yang ada.
  2. Cache hanya menyimpan sebuah salinan dari data di tempat lain pada storage sehingga lebih cepat diakses.
  • Peningkatan performa I/O, terutama untuk:
  1. berkas yang digunakan secara bersama oleh beberapa aplikasi,
  2. berkas yang sedang di baca/tulis secara berulang-ulang.
Spooling (1)
  • Spool : buffer yang menyimpan output device
  1. Tidak dapat menerima interleaved data stream.
  • device memenuhi 1 permintaan, tapi aplikasi bisa minta bersamaan.
  • Sistem operasi meng-intercept semua output ke device. Masing-masing output aplikasi di-spooled ke berkas disk yang berbeda.
  • Setiap Sistem Operasi menyediakan control interface yang :
  1. Membuat users dan administrator sistem menampilkan antrian,
  2. Menyingkirkan pekerjaan yang tidak diinginkan.
  3. dll.
Device Reservation
  • Menyediakan akses eksklusif bagi sebuah device.
  • System Call untuk alokasi dan dealokasi device.
  • Punya parameter untuk membuka system call yang mendeklarasikan tipe akses yang diijinkan untuk thread-thread konkruen yang lain.
  • Perlu waspada terhadap Dead Lock.
Error Handling
  • Sistem Operasi dengan pelindung memori dapat bertahan dari berbagai jenis error dari perangkat keras dan aplikasi.
  • Sistem Operasi sulit memperbaiki kesalahan permanen bila terjadi pada komponen penting,.
  • Umumnya akan me-return sebuah error number atau kode ketika permintaan I/O gagal.
  • Log system error menyimpan laporan masalah yang ada.
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 (1)
  • 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
I/O Stream (2)
  • 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 end





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 (1)
  • 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)
Meningkatkan Kinerja I/O (2)
  • 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

Mengimplementasikan I/O

  • I/O seharusnya diimplementasikan dalam pada waktu application level
  • Ketika algoritma pada application-level sudah menunjukkan kegunaannya, implementasikan kembali dalam kernel
  • Kinerja tertinggi bisa didapatkan dari implementasi spesial ke perangkat keras, baik dalam device atau dalam controller



sumber: http://kambing.ui.ac.id/bebas/v06/Kuliah/SistemOperasi/BUKU/bahan/bahan-bab7.html (13 november 2010)

Label

  • p (1)
Powered By Blogger

Cari Blog Ini