Perangkat Keras I/O
1. Gambarkan diagram dari Interrupt Driven I/O
Cycle.
Jawab :
2. Sebutkan langkah-langkah dari transfer DMA!
Jawab :
• Prosesor menyiapkan DMA transfer dengan menyedia
kan data-data dari perangkat, operasi yang akan ditampilkan, alamat memori yang
menjadi sumber dan tujuan data, dan banyaknya byte yang ditransfer.
• Pengendali DMA memulai operasi (menyiapkan bus,
menyediakan alamat, menulis dan membaca data), sampai seluruh blok sudah di
transfer.
• Pengendali DMA meng-interupsi prosesor, dimana
selanjutnya akan ditentukan tindakan berikutnya.
3. Apakah perbedaan dari polling dan interupsi?
Jawab :
Polling adalah prosesor tidak terus menerus
menanyakan status dari peripheral tapi peripheral yang akan memberitahukan
statusnya sekarang (menginterupsi prosesor). Dengan metode interrupt, sementara
menunggu peripheral menyelesaikan tugasnya, prosesor dapat melakukan instruksi-instruksi
lain. Jika peripheral memberikan sinyal interupsi pada prosesor , maka prosesor
akan menyelesaikan instruksi yang sedang dikerjakannya sekarang, kemudian
menyimpan semua state pada instruksi yang sedang dikerjakannya saat ini,
kemudian mengekskusi suatu rutin yang dinamakan interrupt service routine (ISR)
atau interrupt handler, anda sebagai programmer embedded system yang akan
membuat ISR ini. Saat ISR selesai, maka prosesor kembali ke state sebelum
interupsi. Kelebihan interrupt adalah interrupt lebih menghemat resource
dibandingkan polling, tapi kekurangannya adalah interrupt memiliki jeda waktu
(overhead) yang lebih lama dibanding polling.
4. Apa hubungan arsitektur kernel yang
di-thread dengan implementasi interupsi?
Jawab :
Perangkat dapat menghasilkan interrupt signal.
Setiap signal interrupt mempunyai hubungan dengan program kernel yang disebut
dengan interrupt handler
Interface Aplikasi I/O
1. Kenapa dibutuhkan interface pada aplikasi
I/O?
Jawab :
Ketika suatu aplikasi ingin membuka data yang ada
dalam suatu disk, sebenarnya aplikasi tersebut harus dapat membedakan jenis
disk apa yang akan diaksesnya. Untuk mempermudah pengaksesan, sistem operasi
melakukan standarisasi cara pengaksesan pada peralatan I/O. Pendekatan inilah
yang dinamakan interface aplikasi I/O.Interface aplikasi I/O melibatkan
abstraksi, enkapsulasi, dan software layering. Abstraksi dilakukan dengan
membagi-bagi detail peralatan-peralatan I/O ke dalam kelas-kelas yang lebih
umum.
2. Apa tujuan adanya device driver? Berikan
contoh keuntungan yang kita dapatkan dengan adanya hal ini!
Jawab :
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.
Kernel I/O Subsystem
1. Apakah yang dimaksud dengan proses pooling?
(jelaskan dengan jelas)
Jawab :
Busy-waiting/ polling adalah ketika host mengalami
looping yaitu membaca status register secara terus-menerus sampai status busy
di-clear. Pada dasarnya polling dapat dikatakan efisien. Akan tetapi polling
menjadi tidak efisien ketika setelah berulang-ulang melakukan looping, hanya
menemukan sedikit device yang siap untuk men-service, karena CPU processing yang
tersisa belum selesai.
2. Mengapa diperlukan proses pooling?
Jawab :
Untuk mengatasi device yang tidak dapat
me-multiplex permintaan I/O dari beberapa aplikasi.
3. Apakah yang dimaksud dengan buffer?
Jawab :
Buffer adalah area memori yang menyimpan data
ketika mereka sedang dipindahkan antara dua device atau antara device dan
aplikasi.
4. Jelaskan dengan singkat mengenai I/O
Scheduling!
Jawab :
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. Ini adalah contoh sederhana untuk
menggambarkan definisi di atas. Jika sebuah arm disk terletak di dekat
permulaan disk, dan ada tiga aplikasi yang memblokir panggilan untuk membaca
untuk disk tersebut. Aplikasi 1 meminta sebuah blok dekat akhir disk, aplikasi
2 meminta blok yang dekat dengan awal, dan aplikasi 3 meminta bagian tengah
dari disk. Sistem operasi dapat mengurangi jarak yang harus ditempuh oleh arm
disk dengan melayani aplikasi tersebut dengan urutan 2, 3, 1. Pengaturan urutan
pekerjaan kembali dengan cara ini merupakan inti dari I/O scheduling. Sistem
operasi mengembangkan implementasi scheduling dengan menetapkan antrian
permintaan untuk tiap device. Ketika sebuah aplikasi meminta sebuah blocking
sistem I/O, permintaan tersebut dimasukkan ke dalam antrian untuk device
tersebut. Scheduler I/O mengatur urutan antrian untuk meningkatkan efisiensi
dari sistem dan waktu respon rata-rata yang harus dialami oleh aplikasi. Sistem
operasi juga mencoba untuk bertindak secara adil, seperti tidak ada aplikasi
yang menerima service yang buruk, atau dapat seperti memberi prioritas service
untuk permintaan penting yang ditunda. Contohnya, pemintaan dari subsistem
mungkin akan mendapatkan prioritas lebih tinggi daripada permintaan dari
aplikasi. Beberapa algoritma scheduling untuk disk I/O akan dijelaskan ada
bagian Disk Scheduling.
Penanganan ermintaan I /O
1. Apakah kegunaan dari Streams pada Sistem V
UNIX?
Jawab :
Stream dapat digunakan untuk interproses dan
komunikasi jaringan. Faktanya, di Sistem V, mekanisme soket diimplementasikan
dengan stream.
2. Jelaskan lifecycle dari permintaan pembacaan
blok!
Jawab :
• Sebuah proses mengeluarkan sebuah blocking read
system call ke sebuah file deskriptor dari berkas yang telah dibuka sebelumnya.
• Kode system-call di kernel mengecek parameter
untuk kebenaran. Dalam kasus input, jika data telah siap di buffer cache, data
akan dikembalikan ke proses dan permintaan I/O diselesaikan.
• Jika data tidak berada dalam buffer cache,
sebuah physical I/O akan bekerja, sehingga proses akan dikeluarkan dari antrian
jalan (run queue) dan diletakkan di antrian tunggu (wait queue) untuk alat, dan
permintaan I/O pun dijadwalkan. Pada akhirnya, subsistem I/O mengirimkan
permintaan ke device driver. Bergantung pada sistem operasi, permintaan
dikirimkan melalui call subrutin atau melalui pesan in-kernel.
• Device driver mengalokasikan ruang buffer pada
kernel untuk menerima data, dan menjadwalkan I/O. Pada akhirnya, driver
mengirim perintah ke device controller dengan menulis ke register device
control.
• Device controller mengoperasikan piranti keras
device untuk melakukan transfer data.
• Driver dapat menerima status dan data, atau
dapat menyiapkan transfer DMA ke memori kernel. Kita mengasumsikan bahwa
transfer diatur oleh sebuah DMA controller, yang meggunakan interupsi ketika
transfer selesai.
• Interrupt handler yang sesuai menerima interupsi
melalui tabel vektor-interupsi, menyimpan sejumlah data yang dibutuhkan,
menandai device driver, dan kembali dari interupsi.
• Device driver menerima tanda, menganalisa
permintaan I/O mana yang telah diselesaikan, menganalisa status permintaan, dan
menandai subsistem I/O kernel yang permintaannya telah terselesaikan.
• Kernel mentransfer data atau mengembalikan kode
ke ruang alamat dari proses permintaan, dan memindahkan proses dari antrian
tunggu kembali ke antrian siap.
• Proses tidak diblok ketika dipindahkan ke
antrian siap. Ketika penjadwal (scheduler) mengembalikan proses ke CPU, proses
meneruskan eksekusi pada penyelesaian dari system call.
Performa I/O
1. Gambarkan bagan mengenai komunikasi antar
komputer
Jawab :
2. Bagaimana cara meningkatkan efisiensi
performa I/O
Jawab :
• 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.
3. Jelaskan mengenai implementasi dari fungsi
I/O
Jawab :
Pada dasarnya kita mengimplementasikan algoritma
I/O pada level aplikasi. Hal ini dikarenakan kode aplikasi sangat fleksible,
dan bugs aplikasi tidak mudah menyebabkan sebuah sistem crash. Lebih lanjut,
dengan mengembangkan kode pada level aplikasi, kita akan menghindari kebutuhan
untuk reboot atau reload device driver setiap kali kita mengubah kode.
Implementasi pada level aplikasi juga bisa sangat tidak efisien. Tetapi, karena
overhead dari alih konteks dan karena aplikasi tidak bisa mengambil keuntungan
dari struktur data kernel internal dan fungsionalitas dari kernel (misalnya,
efisiensi dari kernel messaging, threading dan locking.
Pada saat algoritma pada level aplikasi telah
membuktikan keuntungannya, kita mungkin akan mengimplementasikannya di kernel.
Langkah ini bisa meningkatkan kinerja tetapi perkembangannya dari kerja jadi
lebih menantang, karena besarnya kernel dari sistem operasi, dan kompleksnya
sistem sebuah perangkat lunak. Lebih lanjut , kita harus men-debug keseluruhan
dari implementasi in-kernel untuk menghindari korupsi sebuah data dan sistem
crash.
Kita mungkin akan mendapatkan kinerja yang optimal
dengan menggunakan implementasi yang special pada perangkat keras, selain dari
device atau controller. Kerugian dari implementasi perangkat keras termasuk
kesukaran dan biaya yang ditanggung dalam membuat kemajuan yang lebih baik
dalam mengurangi bugs, perkembangan waktu yang maju dan fleksibilitas yang
meningkat. Contohnya, RAID controller pada perangkat keras mungkin tidak akan
menyediakan sebuah efek pada kernel untuk mempengaruhi urutan atau lokasi dari
individual block reads dan write, meski pun kernel tersebut mempunyai informasi
yang spesial mengenai workload yang dapat mengaktifkan kernel untuk
meningkatkan kinerja dari I/O.
Struktur Disk
1. Sebutkan bagian-bagian dari disk
Jawab :
Disk menyediakan penyimpanan sekunder bagi sistem
komputer modern. Magnetic tape sebelumnya digunakan sebagai media penyimpanan
sekunder, tetapi waktu aksesnya lebih lambat dari disk. Oleh karena itu,
sekarang tape digunakan terutama untuk backup, untuk penyimpanan informasi yang
tidak sering, sebagai media untuk mentransfer infromasi dari satu sistem ke
sistem yang lain, dan untuk menyimpan sejumlah data yang terlalu besar untuk
sistem disk.
Disk drive modern dialamatkan sebagai suatu array
satu dimensi yang besar dari blok lojik, dimana blok lojik merupakan unit
terkecil dari transfer. Ukuran dari blok lojik biasanya adalah 512 bytes, walau
pun sejumlah disk dapat diformat di level rendah (low level formatted) untuk
memilih sebuah ukuran blok lojik yang berbeda, misalnya 1024 bytes.
Array satu dimensi dari blok lojik dipetakan ke
bagian dari disk secara sekuensial. Sektor 0 adalah sektor pertama dari trek
pertama di silinder paling luar (outermost cylinder).
2. Apa keuntungan penggunaan pemetaan pada
disk?
Jawab :
Dengan menggunakan pemetaan, kita dapat minimal
dalam teori mengubah sebuah nomor blok logikal ke sebuah alamat disk yang
bergaya lama (old-style disk address) yang terdiri atas sebuah nomor silinder,
sebuah nomor trek di silinder tersebut, dan sebuah nomor sektor di trek
tersebut.
Penjadualan Disk
1. Buatlah dengan pemikiran Anda sendiri,
strategi penjadualan disk yang tepat dan efisien menurut Anda
Jawab :Menurut saya strategi penjadualan disk yang
tepat dan efesien adalah Penjadualan SSTF, karena lebih umum dan memiliki
prilaku yang lazim.
2. Menurut Anda, diantara algoritma-algoritma
penjadualan disk diatas manakah yang paling cepat, manakah yang paling efisien
(hemat/tidak mahal), dan manakah yang paling lambat dan tidak efisien?
Jelaskan!
Jawab :
SSTF lebih umum dan memiliki prilaku yang lazim
kita temui. SCAN dan C-SCAN memperlihatkan kemampuan yang lebih baik bagi
sistem yang menempatkan beban pekerjaan yang berat kepada disk, karena
algoritma tersebut memiliki masalah starvation yang paling sedikit. Untuk
antrian permintaan tertentu, mungkin saja kita dapat mendefinisikan urutan
akses dan pengambilan data dari disk yang optimal, tapi proses komputasi
membutuhkan penjadualan optimal yang tidak kita dapatkan pada SSTF atau SCAN.
Dengan algoritma penjadualan yang mana pun,
kinerja sistem sangat tergantung pada jumlah dan tipe permintaan. Sebagai
contoh, misalnya kita hanya memiliki satu permintaan, maka semua algoritma
penjadualan akan dipaksa bertindak sama, karena algoritma-algoritma tersebut
hanya punya satu pilihan dari mana menggerakkan disk head: semuanya berprilaku
seperti algoritma penjadualan FCFS.
Perlu diperhatikan pula bahwa pelayanan permintaan
disk dapat dipengaruhi pula oleh metode alokasi file. Sebuah program yang
membaca alokasi file secara terus menerus mungkin akan membuat beberapa
permintaan yang berdekatan pada disk, menyebabkan pergerakan head menjadi
terbatas. File yang memiliki link atau indeks, dilain pihak, mungkin juga
memasukkan blok-blok yang tersebar luas pada disk, menyebabkan pergerakan head
yang sangat besar.
Lokasi blok-blok indeks dan directory juga tidak
kalah penting. Karena file harus dibuka sebelum digunakan, proses pembukaan
file membutuhkan pencarian pada struktur directory, dengan demikian directory
akan sering diakses. Kita anggap catatan directory berada pada awal silinder,
sedangkan data file berada pada silinder terakhir. Pada kasus ini, disk head
harus bergerak melewati sepanjang lebar disk. Membuat tempat penyimpanan
sementara dari blok-blok indeks dan directory ke dalam memori dapat membantu mengurangi
pergerakan disk arm, khususnya untuk permintaan membaca disk.
Karena kerumitan inilah, maka algoritma
penjadualan disk harus ditulis dalam modul terpisah dari sistem operasi, jadi
dapat saling mengganti dengan algoritma lain jika diperlukan. Baik SSTF mau pun
LOOK keduanya merupakan pilihan yang paling masuk akal sebagai algoritma yang
paling dasar.
No Response to "jawaban V-class Bab 2"
Posting Komentar