Sistem komputer (computer system), terdiri dari perangkat keras (hardware) dan perangkat lunak (software). Perangkat keras dan perangkat lunak harus bekerja bersama-sama membentuk suatu sistem, yaitu sistem komputer. Perangkat keras (H/W), sebagai sub sistem komputer juga mempunyai komponen, yaitu :
- Komponen alat masukan (input device)
- Komponen alat pemroses (processing device)
- komponen alat keluaran (output device)
- Komponen alat simpanan luar (storage)
Dalam komputasi, input / output, atau I / O. Input sinyal atau data diterima oleh sistem, dan output adalah sinyal atau data yang dikirim dari itu. Istilah ini juga dapat digunakan sebagai bagian dari suatu tindakan, untuk "melakukan I / O" adalah untuk melakukan operasi input atau output. Perangkat I / O yang digunakan oleh seseorang (atau sistem lain) untuk berkomunikasi dengan komputer., Contohnya : keyboard atau mouse dapat menjadi perangkat input untuk komputer, sementara monitor dan printer dianggap perangkat output untuk komputer. Perangkat untuk komunikasi antar komputer, seperti modem dan kartu jaringan, biasanya melayani untuk kedua input dan output.
I / O tergantung pada perspektif mengubah sinyal-sinyal bahwa pengguna manusia bisa melihat atau membaca. Untuk pengguna proses membaca atau melihat representasi ini adalah menerima masukan. Interaksi antara komputer dan manusia dipelajari dalam bidang yang disebut interaksi manusia-komputer. CPU dan memori utama dianggap sebagai otak dari komputer, dan dari sudut pandang adanya transfer informasi dari atau ke kombinasi itu, misalnya untuk atau dari disk drive, dianggap I / O. CPU dan sirkuit pendukungnya menyediakan memori-mapping I / O yang digunakan dalam pemrograman komputer tingkat rendah dalam pelaksanaan driver perangkat. Sebuah I / O merupakan salah satu algoritma yang dirancang untuk mengeksploitasi lokalitas dan melakukan efisien bila berada pada penyimpanan data sekunder, seperti disk drive.
I / O Interface diperlukan setiap kali I / O device didorong oleh prosesor. Antarmuka harus memiliki logika yang diperlukan untuk menafsirkan perangkat alamat yang dihasilkan oleh prosesor. Handshaking harus dilaksanakan oleh antarmuka menggunakan perintah yang sesuai seperti (Sibuk, SIAP, WAIT), dan prosesor dapat berkomunikasi dengan I / O device melalui antarmuka. Khusus I / O monad, yang memungkinkan program untuk hanya menguraikan I / O, dan tindakan yang dilakukan diluar program. Hal ini penting karena I / O fungsi akan memperkenalkan efek samping untuk setiap bahasa pemrograman, tapi sekarang pemrograman fungsional murni praktis. Berikut alamat yang dapat disimpan dalam register. Instruksi akan memiliki register yang memiliki alamat tersebut. Jadi untuk mengambil data, instruksi harus mendaftar didekode sesuai dipilih. Isi register akan diperlakukan sebagai alamat menggunakan alamat lokasi memori yang sesuai dipilih dan data dibaca / ditulis. Port-mapping I / O biasanya memerlukan penggunaan instruksi yang secara khusus dirancang untuk melakukan I / O operasi.
Pengelolaan I/O :
• Tugas utama komputer adalah: Pemrosesan CPU, pemrosesan I/O
• Peran OS dalam pengelolaan I/O: Mengelola dan mengontrol operasi I/O serta
perangkat I/O
• Fungsi pengelolaan I/O : Hardware : port, bus, device controller, software
I/O adalah modul device driver
Perangkat I/O: Kategori :
• Perangkat block: disk drives
– Perintah: read, write, seek
– Akses I/O mentah atau file-system
– Memungkinkan akses file memory-mapped
• Perangkat karakter: keyboards, mouse, serial ports
Perangkat I/O: Kategori :
• Perangkat jaringan:
– Cukup berbeda dengan perangkat blok dan karakter sehingga memiliki antarmuka sendiri
– Unix dan Windows/NT memiliki antarmuka socket
• Memisahkan protokol jaringan dari operasi jaringan
• Meliputi fungsionalitas select
Perangkat I/O: Kategori :
• Clock dan timer:
– Menyediakan informasi current time, elapsed time, timer
– waktu interval programmable digunakan untuk timing, periodic interrupts
– ioctl (pada UNIX) mencakup aspek I/O seperti clock dan timer
Perangkat I/O: Komponen :
• Port: titik koneksi untuk komunikasi perangkat I/O dgn komputer
• Bus: jalur yang digunakan bersama oleh satu/lebih perangkat
Perangkat I/O: Komponen :
• Controller:
– Tugas controller:
• Mengkonversi aliran bit serial ke blok byte
• Melakukan koreksi kesalahan jika diperlukan
• Membuat data dapat diakses oleh memori utama
– Jenis controller:
• Serial-port controller
• SCSI controller
• Built-in controller (mis. disk controller)
Perangkat I/O: Alamat
• Perangkat memiliki alamat, yang digunakan oleh:
– Instruksi Direct I/O
• perangkat memiliki alamat khusus yg terpisah dari alamat memori
• Akses terhadap perangkat I/O menggunakan alamat perangkat tsb
– Memory-mapped I/O
• Perangkat memiliki alamat lojik pada memori utama
• instruksi load/store dapat digunakan untuk mengakses register perangkat �� efisiensi tipe instruksi pada prosesor
Teknik I/O
• Polling
• Interrupt
• Direct Memory Access (DMA)
Teknik I/O: Polling
• Device driver melakukan query status perangkat:
– command-ready
– busy
– error
• Siklus busy-wait menunggu selesainya I/O oleh perangkat
Teknik I/O: Interrupt
• Perangkat I/O mentrigger interrupt CPU menandakan selesainya operasi I/O
• Interrupt handler menerima interrupt
• Maskable dilakukan untuk mengabaikan atau menunda beberapa interrupt
• Interrupt vector untuk mengarahkan interrupt kehandler yang sesuai
– Sesuai prioritas
– Beberapa interrupt tidak dapat di-mask
• Mekanisme interrupt juga digunakan untuk Eksepsi
Teknik I/O: DMA
• DMA controller mem-bypass CPU untuk melakukan transfer data antara perangkat I/O dan memori secara langsung
• Digunakan untuk menghindari sibuknya CPU melakukan perpindahan data ukuran Besar
Software I/O: Issue
• Device independence
– Program dapat mengakses perangkat I/O apapun
– Tanpa perlu menspesifikasikan perangkat terlebih dahulu (floppy, hard drive, or CD-ROM)
• Penamaan yang seragam : nama file/perangkat berupa string atau integer, tidak tergantung pada mesin
Software I/O : Issue
• Transfer synchronous vs asynchronous
– Transfer blocked vs interrupt-driven
• Perangkat dapat digunakan bersama vs eksklusif
– disks dapat digunakan bersama
– tape drive tidak dapat digunakan bersama
• Spooling – menyimpan output untuk perangkat
– Jika perangkat hanya bisa melayani satu permintaan pada satu saat
Software I/O : Issue
• Buffering
– Mengatasi perbedaan kecepatan perangkat
– Mengatasi perbedaan ukuran pengiriman antar perangkat
– Menjaga “copy semantics”
• Caching - fast memory utk menyimpan salinan data
– Hanya berupa salinan, meningkatkan performansi
Software I/O: Penanganan Error
• Kegagalan yang mungkin terjadi pada operasi I/O:
– Pembacaan disk
– Penulisan
– Perangkat tidak dapat diakses
• OS dapat memulihkan dari kegagalan tsb
• Biasanya mengembalikan error# jika terjadi kegagalan I/O
• Log system error menyimpan laporan masalah yang terjadi
Software I/O: Interrupt Handler
• Interrupt handlers sebaiknya disembunyikan
– Menyebabkan driver yang memulai operasi I/O diblok sampai interrupt memberi tahu bahwa operasi telah selesai
• Prosedur interrupt melakukan tugasnya,
– Kemudian melakukan unblock driver yang Memulainya
Software I/O: Interrupt Handler
• Langkah-langkah yang harus dilakukan oleh software setelah interrupt selesai:
1. Simpan isi register yg belum disimpan oleh interrupt hardware
2. Membangun konteks utk ISR (interrupt service routine)
3. Membangun stack untuk ISR
4. Ack interrupt controller, enable-kan kembali interrupts
5. Salin register dari tempat asalnya
6. Jalankan ISR
7. Set up konteks MMU untuk proses berikutnya yang akan dijalankan
8. Load register dari proses baru
9. Mulai menjalankan proses baru
Software I/O: Device Independent
• Fungsi:
– Antarmuka yang seragam untuk berbagai device drivers
– Buffering
– Error reporting
– Pengalokasian dan pelepasan perangkat, menyediakan ukuran blok yang bersifat deviceindependent
Performansi
• I/O merupakan faktor yang sangat
berpengaruh terhadap performansi sistem
– Memerlukan CPU untuk mengeksekusi software
I/O (mis. interrupt handle, device driver, dll)
– Melakukan context switch karena adanya
interrupt
– Context switches due to interrupts, penyalinan data
Performansi
• Untuk meningkatkan performansi:
– Mengurangi banyaknya context switch
– Mengurangi penyalinan data
– Mengurangi interrupt dengan melakukan transfer data skala besar, controller cerdas,
atau polling
– Menggunakan DMA
– Menyeimbangkan performansi CPU, memori, bus, dan I/O untuk memperoleh throughput
Referensi :
· http://en.wikipedia.org/wiki/Input/output
· http://ilmukomputer.org/2008/06/01/input-output-io/
· http://docs.google.com/viewer?a=v&q=cache:yBtuVmX3iJcJ:rahmiati.stmik-amik-riau.ac.id/upload/Manajemen%2520IO.pdf+pengelola+input+output&hl=id&gl=id&pid=bl&srcid=ADGEEShCBrP-RYooz1DNsMC-i0tawYkTcUoOz4Ng57t3EuIqvmEI5ia04iGLgjGk_hbHf-XF1xrFlHNZ7o53lAifVpshiwePwIco0y4rlN5umy4kcacy-mv9frs9b6vLCN8yjUbY9uo3&sig=AHIEtbSr2hBlKTIGJwBNyHsw4zN4XCWkpg
0 comments:
Posting Komentar