Rabu, 29 Oktober 2014

SISTEM INPUT OUTPUT

I/O Sistem Operasi

I/O System merupakan bagian untuk menangani inputan dan outputan dari DCS. Inputan dan outputan tersebut bisa analog atau digital. Inputan/outputan digital seperti sinyal-sinyal ON/OFF atau Start/Stop. Kebanyakan dari pengukuran proses dan outputan terkontrol merupakan jenis analog.

Pengertian Input

Input adalah semua data dan perintah yang dimasukkan ke dalam memori komputer untuk selanjutnya diproses lebih lanjut oleh prosesor. Sebuah perangkat input adalah komponen piranti keras yang memungkinkan user atau pengguna memasukkan data ke dalam komputer, atau bisa juga disebut sebagai unit luar yang digunakan untuk memasukkan data dari luar ke dalam mikroprosesor.

Pengertian Output

Output adalah data yang telah diproses menjadi bentuk yang dapat digunakan. Artinya komputer memproses data-data yang diinputkan menjadi sebuah informasi. Yang disebut sebagai perangkat output adalah semua komponen piranti keras yang menyampaikan informasi kepada orang-orang yang menggunakannya.


I/O system terdiri dari beberapa bagain penting yaitu:
a.    I/O Hardware
b.    Application I/O Interface
c.    Kernel I/O Subsystem
d.    I/O Requests to Hardware Operations
e.    Streams
f.    Performance

A.I/O Hardware

   Secara umum, I/O Hardware terdapat beberapa jenis seperti device penyimpanan
   (disk,tape),    
   transmission device (network, card, modem), dan human-interface device (screen, keyboard,mouse). Device tersebut dikendalikan oleh instruksi I/O. Alamat-alamat yang dimiliki device akan digunakan oleh direct I/O instruction dan memory-mapped I/O. Beberapa konsep yang umum digunakan ialah port, bus (daisy chain/ shared direct access), dan controller  (host adapter).
· Port adalah koneksi yang digunakan oleh device untuk berkomunikasi dengan mesin.
· Bus adalah koneksi yang menghubungkan beberapa device menggunakan kabel-kabel.
· Controller adalah alat-alat elektronik yang berfungsi untuk mengoperasikan port, bus, dan device.


B.Aplication I/O Interface

   Merupakan suatu mekanisme untuk mempermudah pengaksesan, sehingga sistem operasi melakukan standarisasi cara pengaksesan peralatan I/O. Interface aplikasi I/O melibatkan abstraksi, enkapsulasi, dan software layering. Device driver mengenkapsulasi tiap-tiap peralatan I/O ke dalam masing-masing 1 kelas yang umum (interface standar). Tujuan dari adanya lapisan device driver ini adalah untuk menyembunyikan  perbedaan-perbedaan yang ada pada device controller dari subsistem I/O pada  kernel. Karena hal ini, subsistem I/O dapat bersifat independen dari hardware. Beberapa hal yang berhubungan dengan application I/O Interface adalah:

1.Peralatan Block dan Karakter:
· Perangkat Block termasuk disk drive
· Perintah termasuk baca, tulis dan cari
· Raw I/O atau akses file-sistem
· Pemetaan memori untuk pengaksesan file
· Perangkat karakter termasuk keyboad, mouse dan serial port
· Perintahnya seperti get, put
· Library layered  dalam proses pengeditan

2.Peralatan Jaringan

   Adanya perbedaan pengalamatan dari jaringan I/O, maka sistem operasi memiliki interface I/O yang berbeda dari baca, tulis dan pencarian pada disk. Salah satu yang banyak digunakan pada sistem operasi adalah interface socket. Socket berfungsi untuk menghubungkan komputer ke jaringan. System call pada socket interface dapat memudahkan suatu aplikasi untuk membuat local  socket, dan menghubungkannya ke remote socket.Dengan menghubungkan komputer ke socket, maka komunikasi antar komputer dapat dilakukan.

3.Jam dan Timer

   Jam dan timer pada hardware komputer, memiliki tiga fungsi : 
· memberi informasi waktu saat ini
· memberi informasi lamanya waktu sebuah proses
· sebagai trigger untuk suatu operasi pada suatu waktu. 
  Fungsi ini sering digunakan oleh sistem operasi. Akan tetapi, system call untuk pemanggilan fungsi  ini tidak di-standarisasi antar sistem operasi. Hardware yang mengukur waktu dan melakukan operasi trigger dinamakan programmable interval timer yang dapat di set untuk menunggu waktu tertentu dan kemudian melakukan interupsi.

C.Kernel I/O subsystems

   Kernel menyediakan banyak service yang berhubungan dengan I/O. Pada bagian ini, kita akan mendeskripsikan beberapa service yang disediakan oleh kernel I/O subsystem, dan kita akan membahas bagaimana caranya membuat infrastruktur hardware dan device-driver. Service yang akan kita bahas adalah I/O scheduling, buffering, caching, pooling, reservasi device, error handling.

1. I/O scheduling

   Untuk menjadualkan sebuah set permintaan I/O, kita harus menetukan urutan yang bagus untuk mengeksekusi permintaan tersebut. Scheduling dapat meningkatkan kemampuan sistem secara keseluruhan, dapat membagi device secara rata di antara proses-proses, dan dapat mengurangi waktu tunggu rata-rata untuk menyelesaikan I/O. 

2. Buffering

   Buffer adalah area memori yang menyimpan data ketika mereka sedang dipindahkan antara dua device atau antara device dan aplikasi. Buffering dilakukan untuk tiga buah alasan. Alasan pertama adalah untuk men-cope dengan kesalahan yang terjadi karena perbedaan kecepatan antara produsen dengan konsumen dari sebuah stream data.

3. Caching

   Sebuah cache adalah daerah memori yang cepat yang berisikan data kopian. Akses ke sebuah kopian yang di-cached lebih efisien daripada akses ke data asli. Sebagai contoh, instruksi-instruksi dari proses yang sedang dijalankan disimpan ke dalam disk, dan ter-cached di dalam memori physical, dan kemudian dicopy lagi ke dalam cache secondary and primary dari CPU. Perbedaan antara sebuah buffer dan ache adalah buffer dapat menyimpan satu-satunya informasi datanya sedangkan sebuah cache secara definisi hanya menyimpan sebuah data dari sebuah tempat untuk dapat diakses lebih cepat. Caching dan buffering adalah dua fungsi yang berbeda, tetapi terkadang sebuah daerah memori dapat digunakan untuk keduanya.

4. Spooling dan Reservasi Device
 Sebuah spool adalah sebuah buffer yang menyimpan output untuk sebuah device, seperti printer, yang tidak dapat menerima interleaved data streams. Walau pun printer hanya dapat melayani satu pekerjaan pada waktu yang sama, beberapa aplikasi dapat meminta printer untuk mencetak, tanpa harus mendapatkan hasil output mereka tercetak secara bercampur. Sistem operasi akan menyelesaikan masalah ini dengan meng-intercept semua output kepada printer. Tiap output aplikasi sudah di-spooled ke disk file yang berbeda. Ketika sebuah aplikasi selesai mengeprint, sistem spooling akan melanjutkan ke antrian berikutnya. Di dalam beberapa sistem operasi, spooling ditangani oleh sebuah sistem proses daemon.


5.Error Handling

   Sebuah sistem operasi yang menggunakan protected memory dapat menjaga banyak kemungkinan error akibat hardware mau pun aplikasi. Devices dan transfer I/O dapat gagal dalam banyak cara, bisa karena alasan transient, seperti overloaded pada network, mau pun alasan permanen yang seperti kerusakan yang terjadi pada disk controller. Sistem operasi seringkali dapat mengkompensasikan untuk kesalahan transient. Seperti, sebuah kesalahan baca pada disk akan mengakibatkan pembacaan ulang kembali dan sebuah kesalahan pengiriman pada network akan mengakibatkan pengiriman ulang apabila protokolnya diketahui. Akan tetapi untuk kesalahan permanent, sistem operasi pada umumnya tidak akan bisa mengembalikan situasi seperti semula.

6.Kernel Data Structure

   Kernel membutuhkan informasi state tentang penggunakan komponen I/O. Kernel menggunakan banyak struktur yang mirip untuk melacak koneksi jaringan, komunikasi karakter device, dan aktivitas I/O lainnya. UNIX menyediakan akses sistem file untuk beberapa entiti, seperti file user, raw devices, dan alamat tempat proses. Walau pun tiap entiti ini didukung sebuah operasi baca, semantics-nya berbeda untuk tiap entiti. Seperti untuk membaca file user, kernel perlu memeriksa buffer cache sebelum memutuskan apakah akan melaksanakan I/O disk. Untuk membaca sebuah raw disk, kernel perlu untuk memastikan bahwa ukuran permintaan adalah kelipatan dari ukuran sektor disk, dan masih terdapat di dalam batas sektor. Untuk memproses citra, cukup perlu untuk mengkopi data ke dalam memori. UNIX mengkapsulasikan perbedaan-perbedaan ini di dalam struktur yang uniform dengan menggunakan teknik object oriented.Beberapa sistem operasi bahkan menggunakan metode object oriented secara lebih extensif.


D.I/O Requests to Hardware Operations

   Salah satu contohnya adalah:
a. Ilustrasi membuka sebuah
–  Device mana tempat file yang akan dibuka
–  Menerjemahkan _nama_ ke dalam device yang dimaksud 
–  Membaca secara fisik file yang hendak dibuka 
–  Data sudah siap untuk diakses 
–  Mengembalikan kontrol pada proses 
b.Ilustrasi lain pada waktu boot 
   Sistem mula-mula meminta bus piranti keras untuk menentukan device apa yang ada.

 E.Streams
   I/O stream adalah suatu mekanisme pengiriman data secara bertahap dan terus menerus melalui suatu aliran data (dua arah).Biasa digunakan dalam network protocol dan menggunakan  message passingdalam men-transferdata Stream terdiri atas : 
· sebuah stream head yang merupakan antarmuka dengan user process,
· sebuah driver end yang mengontrol device,
· dan nol atau lebih stream modules 

F.Performance
   Faktor utama dalam performa sistem :  
· Permintaan CPU untuk menjalankan device driver, kode kernel I/O
· Keadaan/state untuk melayani interrupt 
· Copy data
· Network traffic khususnya pada beban kinerja 

Improving Perfomance:
· Menurunkan jumlah alih konteks. 
· Mengurangi jumlah pengkopian data ke memori ketika sedang dikirimkan antara device dan aplikasi. 
· Mengurangi frekuensi interupsi, dengan menggunakan ukuran transfer yang besar, smart controller, dan polling.
· Meningkatkan concurrency dengan controller atau channel yang mendukung DMA. 
· Memindahkan kegiatan processing ke perangkat keras, sehingga operasi kepada device controller dapat berlangsung bersamaan dengan CPU. 
· Menyeimbangkan antara kinerja CPU, memory subsystem, bus, dan I/O.


Definisi Modul Input Output

Modul adalah satuan standar yg bersama - sama dengan yg lain digunakan secara bersama. Input / Output adalah suatu mekanisme pengiriman data secara bertahap dan terus menerus melalui suatu aliran data dari proses ke peranti (begitu pula sebaliknya). Fungsi-fungsi I/O Pada dasarnya adalah mengimplementasikan algoritma I/O pada level aplikasi.
Hal ini dikarenakan kode aplikasi sangat fleksible, dan bugs aplikasi tidak mudah menyebabkan sebuah sistem crash.Port I/O yang berarti gerbang konektor Input/Output pada komputer, seperti pada keyboard,mouse paralel/serial ataupun USB. Menyediakan koneksi untuk piranti eksternal seperti kamera digital, printer dan scanner.Unit Input/Output (I/O) adalah bagian dari sistem mikroprosesor yang digunakan olehmikroprosesor itu untuk berhubungan dengan dunia luar.
Modul I/O Adalah interface atau central switch untuk mengendalikan satu atau lebih peripheral atau perangkat input output.Konektor mekanis berisi fungsi logik untuk komunikasi antara bus dan peripheral.Tidak hanya sekedar modul penghubung, tetapi sebuah piranti yang berisi logika dalam melakukan fungsi komunikasi antara peripheral dan bus computer.
Modul I/O adalah suatu komponen dalam sistem komputer yang bertanggung jawab atas pengontrolan sebuah perangkat luar dan juga bertanggung jawab pula dalam pertukaran data antara perangkat luar tersebut dengan memori utama ataupun dengan register – register CPU.Termasuk Antar muka internal dengan komputer (CPU dan memori utama) dan perangkat eksternalnya untuk menjalankan fungsi – fungsi pengontrolan.Modul I/O memiliki dua buah fungsi utama, yaitu :
· Sebagai piranti antarmuka ke CPU dan memori melalui bus sistem.
· Sebagai piranti antarmuka dengan peralatan peripheral lainnya dengan menggunakan link data tertentu.


Perangkat Eksternal

Salah satu fitur dasar komputer adalah kemampuannya untuk mempertukarkan data dengan perangkat lain. Kemampuan komunikasi ini memungkinkan operator manusia, misalnya, untuk menggunakan keyboard dan layer display untuk mengolah teks dan grafik.
Mesin komputer akan memiliki nilai apabila bisa berinteraksi dengan dunia luar. Lebih dari itu, komputer tidak akan berfungsi apabila tidak dapat berinteraksi dengan dunia luar.
Ambil contoh saja, bagaimana kita bisa menginstruksikan CPU untuk melakukan suatu operasi apabila tidak ada keyboard.
Bagaimana kita melihat hasil kerja sistem komputer bila tidak ada monitor. Keyboard dan monitor tergolong dalam perangkat eksternal komputer. Perangkat eksternal atau lebih umum disebut peripheraltersambung dalam sistem CPU melalui perangat pengendalinya, yaitu modul I/O.
Perangkat eksternal diklasifikasikan menjadi 3 kategori:
• Human Readable, yaitu perangkat yang berhubungan dengan manusia sebagai pengguna komputer.
Contohnya: monitor, keyboard, mouse, printer, joystick, disk drive.
• Machine readable, yaitu perangkat yang berhubungan dengan peralatan. Biasanya berupa modul sensor dan tranduser untuk monitoring dan kontrol suatu peralatan atau sistem.
• Communication , yatu perangkat yang berhubungan dengan komunikasi jarak jauh. Misalnya: NIC dan modem.

Penjelasan Direct Memory Acces (DMA)

Penjelasan Direct Memory Acces (DMA)
Direct memory access (DMA) adalah suatu alat pengendali khusus disediakan untuk memungkinkan transfes blok data langsung antar perangkat eksternal dan memori utama, tanpa intervensi terus menerus dari prosesor (CPU). 
Diperlukan DMA untuk PROGRAMMED I/O dan interrupt driver I/O, DMA menjadi solusi
Masih memerlukan keterlibatan CPU, CPU menjadi sibuk
Transfer rate data terbatas
Digunakan modul khusus(hardware) yang terhubung ke sistem bus

Fungsi modul DMA:
-Dapat menirukan sebagian fungsi processor
-Dapat mengambil alih fungsi prosesor yang berhubungan dengan transfer data


Kapan DMA bekerja?
-Saat prosesor sedang tidak menggunakan bus
-Saat prosesor dipaksa berhenti sesaat (suspend) , siklus "dicuri oleh DMA" adalah cycle stealing


Cara Kerja DMA
1. CPU mengirimkan data data berikut ini ke DMA controller:
 -Perintah read/write
 -Alamat device yang akan diakses
 -Alamat awal blok memori yang akan dibaca/ditulis
 -Jumlah blok data yang akan ditransfer
2. CPU mengeksekusi program lain
3. DMA controller mengirimkan seluruh blok data (per satu word) langsung ke  memori(tanpa melibatkan CPU)
4. DMA controller mengirim interrupt ke CPU jika telah selesai.
Cycle Stealing pada DMA transfer
5. DMA controller mengambil alih bus sebanyak satu siklus
6. DMA mentransfer satu word data
7. Pengambil alihan bus oleh DMA bukan interrupt --> CPU tidak perlu  menyimpan context
8. CPU hanya tertunda (suspend) sesaat sebelum mengakses bis, yaitu sebelum operand atau data diambil atau data ditulis
9. Pengaruh terhadap CPU yaitu memperlambat CPU , tetapi masih lebih baik dari pada CPU terlibat langsung pada transfer data


Konfigurasi pada DMA
1. Konfigurasi I
 -Hanya menggunakan single bus
 -DMA dan modul I/O terpisah
 -Setiap transfer harus mengakses bus 2 kali
2. Konfigurasi II
 -Hanya menggunakan single bus
 -DMA controller dan modul I/O terintegrasi
 -Satu DMA controller dapat mengangani lebih dari 1 modu I/O
 -Setiap transfer hanya perlu mengakses bus satu kali saja
3. Konfigurasi III
-Digunakan bus I/O secara terpisah
-Semua modul I/O cukup dilayani dengan sebuah DMA
 -Setiap transfer hanya perlu mengakses bus satu kali saja

I/O Terprogram

Pada I/O terprogram, data saling dipertukarkan antara CPU dan modul I/O. CPU mengeksekusi program yang memberikan operasi I/O kepada CPU secara langsung, seperti pemindahan data, pengiriman perintah baca maupun tulis, dan monitoring perangkat. Kelemahan teknik ini adalah CPU akan menunggu sampai operasi I/O selesai dilakukan modul I/O sehingga akan membuang waktu, apalagi CPU lebih cepat proses operasinya. Dalam teknik ini, modul I/O tidak dapat melakukan interupsi kepada CPU terhadap proses – proses yang diinteruksikan padanya. Seluruh proses merupakan tanggung jawab CPU sampai operasi lengkap dilaksanakan.

Untuk melaksanakan perintah – perintah I/O, CPU akan mengeluarkan sebuah alamat bagi modul I/O dan perangkat peripheralnya sehingga terspesifikasi secara khusus dan sebuah perintah I/O yang akan dilakukan. Terdapat empat klasifikasi perintah I/O, yaitu:

1. Perintah control.
Perintah ini digunkan untuk mengaktivasi perangkat peripheral dan memberitahukan tugas yang diperintahkan padanya.

2. Perintah test.
Perintah ini digunakan CPU untuk menguji berbagai kondisi status modul I/O dan peripheralnya. CPU perlu mengetahui perangkat peripheralnya dalam keadaan aktif dan siap digunakan, juga untuk mengetahui operasi – operasi I/O yang dijalankan serta mendeteksi kesalahannya.

3. Perintah read.
Perintah pada modul I/O untuk mengambil suatu paket data kemudian menaruh dalam buffer internal. Proses selanjutnya paket data dikirim melalui bus data setelah terjadi sinkronisasi data maupun kecepatan transfernya.

4. Perintah write.
Perintah ini kebalikan dari read. CPU memerintahkan modul I/O untuk mengambil data dari bus data untuk diberikan pada perangkat peripheral tujuan data tersebut.
Dalam teknik I/O terprogram, terdapat dua macam inplementasi perintah I/O yang tertuang dalam instruksi I/O, yaitu: memory-mapped I/O dan isolated I/O. Dalam memory-mapped I/O, terdapat ruang tunggal untuk lokasi memori dan perangkat I/O. CPU memperlakukan register status dan register data modul I/O sebagai lokasi memori dan menggunakan instruksi mesin yang sama untuk mengakses baik memori maupun perangkat I/O. Konskuensinya adalah diperlukan saluran tunggal untuk pembacaan dan saluran tunggal untuk penulisan. Keuntungan memory-mapped I/O adalah efisien dalam pemrograman, namun memakan banyak ruang memori alamat. Dalam teknik isolated I/O, dilakukan pemisahan ruang pengalamatan bagi memori dan ruang pengalamatan bagi I/O. Dengan teknik ini diperlukan bus yang dilengkapi dengan saluran pembacaan dan penulisan memori ditambah saluran perintah output. Keuntungan isolated I/O adalah sedikitnya instruksi I/O.


Saluran I/O Dan Prosesor
Tujuan dari saluran I/O adalah sebagai perantara antara CPU-main memory dengan unit pengontrol penyimpan. CPU berkomunikasi dengan saluran melalui beberapa perintah yang sederhana.
Saluran akan memberi perintah :
Test I/O, untuk menentukan apakah jalur (pathway) yang menuju peralatan sedang sibuk.v
Start I/O, pada peralatan tertentu.v
Halt I/O, pada peralatan tertentu.v
Saluran biasanya berkomunikasi dengan CPU melalui cara interupsi. Interupsi akan terjadi, jika keadaan error terdeteksi, misalnya instruksi CPU yang salah atau jika aktifitas I/O telah diakhiri.
Jika interupsi terjadi, kontrol akan bercabang melalui rutin pengendali interupsi (interrupt-handler routine), dimana kontrol akan menentukan penyebab dari interupsi, melakukan kegiatan yang tepat, kemudian mengembalikan kontrol pada pemanggil (caller).
Jika sebuah program membutuhkan READ dari berkas file, maka yang terjadi adalah ;
1. Program mengeluarkan READ, yang akan menginterupsi I/O
2. Pengontrol I/O membuat sebuah saluran program pada memori utama
3. Saluran program dibaca dan dieksekusi oleh pemanggil saluran
4. Sinyal yang tepat akan ditransmisi ke pemanggil unit control
5. Kemudian sinyal tersebut diterjemahkan oleh unit control dan digunakan untuk mengontrol peralatan operasi untuk membaca data yang diminta
6. Data yang diminta akan mengalir dari peralatan pathway ke file buffer area dalam ruang memori utama
7. Interupsi yang dikeluarkan oleh saluran digunakan untuk meneruskan sinyal pada waktu eksekusi program
8. Kemudian control kembali ke program
Data dibaca ke dalam buffer, dimana buffer merupakan suatu tempat pada memori utama yang disediakan untuk menampung data, bila buffer penuh program akan segera menggunakan data tersebut.

Kesimpulan

Sebuah komputer memiliki 2 perangkat, yaitu inut dan output. Input adalah perangkat yang berfungsi sebagai perangkat untuk memasukan data dari luar ke dalam komputer, sedangkan perangkat output berfungsi sebagai peangkat yang akan menampilkan informasi dari data-data yang telah diolah. Terdapat juga Modul I/O yang berperan penting dalam mekanisme kerja perangkat input output.




Sumber: 
Listi Yohany, 23 Januari 2013, I/O terprogram, http://listiyohany.blogspot.com/2013/01/io-terprogram.html

Reza Akhmad, 14 mei 2012, penjelasan DMA, http://rezaakhmadg.blogspot.com/2012/05/direct-memory-acces-dma.html

Gagah Prawono, 2012, organisasi I/O , http://cybergagah.blogspot.com/2012/07/oraganisasi-io-orkom.html

Febri, 27 april 2013, modul input output, http://polsqu.blogspot.com/2013/04/modul-input-output.html

Ubay, 27 des 2013, sistem input output, http://ubay16.wordpress.com/2013/12/27/sistem-inputoutput-io/ 

1 komentar:

Peraturan dan Regulasi

Pengertian Peraturan dan Regulasi Berikut ini adalah pengertian peraturan dari berbagai sumber: TIM GRASINDO Peraturan merupaka...