0
Jawaban V-Class Sistem Operasi (Sistem I/O)
Posted by Unknown
on
12/31/2011 07:24:00 PM
in
Tugas
Perangkat Keras I/O
1. Gambarkan diagram dari Interrupt Driven I/O Cycle.
2. Sebutkan langkah-langkah dari transfer DMA!
•
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?
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?
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?
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!
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)
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?
Untuk mengatasi device yang tidak dapat me-multiplex permintaan I/O dari beberapa aplikasi.
3. Apakah yang dimaksud dengan buffer?
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!
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?
Stream
dapat digunakan untuk interproses dan komunikasi jaringan. Faktanya, di
Sistem V, mekanisme soket diimplementasikan dengan stream.
2. Jelaskan lifecycle dari permintaan pembacaan blok!
•
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
2. Bagaimana cara meningkatkan efisiensi performa I/O
• 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
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
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?
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
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!
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.
Sumber : Sumber1
Sumber2
Sumber3
Sumber4
Sumber5
Sumber6
Sumber : Sumber1
Sumber2
Sumber3
Sumber4
Sumber5
Sumber6
Posting Komentar