I
System BUS
System
bus atau bus sistem, dalam arsitektur komputer merujuk pada bus yang digunakan oleh
sistem komputer untuk menghubungkan semua komponennya dalam menjalankan
tugasnya. Sebuah bus adalah sebutan untuk jalur di mana data dapat mengalir
dalam komputer. Jalur-jalur ini digunakan untuk komunikasi dan dapat dibuat
antara dua elemen atau lebih. Data atau program yang tersimpan dalam memori
dapat diakses dan dieksekusi oleh CPU melalui perantara sistem bus.
Sebuah komputer
memiliki beberapa bus, agar dapat berjalan. Banyaknya bus yang terdapat dalam
sistem, tergantung dari arsitektur sistem komputer yang digunakan.
Bus disusun secara hierarkis, karena setiap bus yang memiliki
kecepatan rendah akan dihubungkan dengan bus yang memiliki kecepatan tinggi.
Setiap perangkat di dalam sistem juga dihubungkan ke salah satu bus yang ada.
Sedangkan jenis-jenis bus itu sendiri juga dikelompokkan
berdasarkan masingmasing kriteria, tapi disini akan di jelaskan Jenis Bus
berdasarkan fungsinya. Langsung saja berikut jenis-jenis Bus Berdasarkan Fungsi
:
- Data Bus :
>Berfungsi
untuk mentransfer data, membawa data dari dan ke perangkat atau peripheral
>Terdiri
atas beberapa jalur penghantar, 8, 16, 32 bahkan 64 bahkan lebih jalur parallel
>Data
ditransmisikan dalam dua arah, yaitu dari CPU atau mikroprosesor ke unit memori
atau modul I/O dan sebaliknya.
>Semakin
lebar bus maka semakin besar data yang dapat ditransfer sekali waktu.
- Control Bus:
>Berfungsi
untuk mensinkronkan proses penerimaan dan pengiriman data.
>Untuk
mengatur memori atau port agar siap ditulis atau dibaca.
>Sinyal
Kontrol: RD, WR, IO/M
>Sinyal
Read dan write : untuk mengakses data ke dan dari perangkat
- Address Bus:
>Membawa
informasi untuk mengetahui lokasi suatu perangkat atau peripheral
>Untuk
memilih lokasi memori atau port yang akan ditulis atau dibaca
>Untuk
menentukan rute data, bersumber dari mana, tujuannya ke mana.
>Bersifat
searah, cpu memberikan alamat yang bertujuan untuk menentukan periferal mana
yang dituju.
II
Standard Input / Output Interface
- 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.
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.
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:
- 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.
- Application 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:
>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
>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.
>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.
- Kernel I/O subsystems
>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.
>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.
>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.
>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.
>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.
>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.
- I/O Requests to Hardware Operations
>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
– 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
>Ilustrasi lain pada waktu boot
Sistem mula-mula meminta bus piranti keras untuk menentukan device apa yang ada.
Sistem mula-mula meminta bus piranti keras untuk menentukan device apa yang ada.
- 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
- 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.
III
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.
Transfer
DMA dilakukan oleh sirkuit kontrol yang merupakan bagian dari antar muka
perangkat I/O. Istilah ini yang sering banyak kita ketahui adalah sebagai
kontroler DMA. Kontroler DMA melakukan fungsi yang biasanya dilakukan oleh
prosesor pada saat mengakses memori utama (yang sering disebut :RAM). Untuk
setiap word yang ditransfer, kontroler ini menyediakan alamat memori dan semua
sinyal bus yang mengontrol transfer data. Karena harus mentransfer sejumlah
blok data, maka kontroler DMA harus menaikkan alamat memori untuk word yang
berurutan dan mencatat jumlah transfer.
Sekalipun
kontroler DMA dapat mentransfer data tanpa intervensi dari prosesor, operasinya
tetap berada dibawah kontrol program yang dieksekusi oleh prosesor. Untuk
menginisiasi transfer suatu blok word, prosesor mengirim alamat awal, jumlah
word dalam blok, dan arah transfer. Pada saat seluruh blok telah ditransfer,
kontroler tersebut memberitahu prosesor dengan memunculkan sinyal interupt.
Pada saat transfer DMA terjadi, program yang meminta transfer tersebut berhenti
bekerja dan prosesor dapat digunakan untuk mengeksekusi program lain. Setelah
transfer DMA selesai, prosesor dapat kembali ke program yang meminta transfer
tersebut.
Operasi
I/O selalu dilakukan oleh OS sebagai respon terhadap request dari program
aplikasi. OS juga bertanggung jawab untuk menunda eksekusi satu program dan
memulai eksekusi program lain. Sehingga, untuk operasi I/O yang melibatkan DMA,
OS menetapkan program yang meminta transfer tsb pada keadaan blocked,
menginisiasi operasi DMA, dan memulai eksekusi program lain. Pada saat transfer
selesai, kontroler DMA memberitahu prosesor dengan mengirim interupt request.
Sebagai responnya, OS menetapkan program yang ditunda ke keadaan runnable
sehingga dapat dipilih oleh scheduler untuk melanjutkan eksekusi.
https://id.wikipedia.org/wiki/Bus_sistem
https://ubay16.wordpress.com/2013/12/27/sistem-inputoutput-io/
http://margono.staff.uns.ac.id/2009/04/08/direct-memory-access-dma/
http://nifan10.blogspot.co.id/2013/04/pengertian-bus-dan-jenis-jenis-bus.html
https://id.wikipedia.org/wiki/Bus_sistem
https://ubay16.wordpress.com/2013/12/27/sistem-inputoutput-io/
http://margono.staff.uns.ac.id/2009/04/08/direct-memory-access-dma/
http://nifan10.blogspot.co.id/2013/04/pengertian-bus-dan-jenis-jenis-bus.html