1) Gambarkan diagram dari Interrupt Driven I/O Cycle.
2) sebutkan langkah-langkah dari transfer DMA
Tiga langkah dalam 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 ditentu kan tindakan berikutnya.
3) Apakah perbedaan dari pooling 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 r utin 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?
- Interface atau antarmuka adalah Penghubung antara dua sistem atau alat media penghubung antara satu subsistem dengan subsistem lainnya. Melalui penghubung ini memungkinkan sumber daya mengalir dari satu subsistem ke subsistem yang lainnya. Keluaran (output) dari suatu subsistem akan menjadi masukan (input) untuk subsistem lainnya dengan melalui penghubung. Dengan penghubung satu subsistem dapat terintegrasi dengan subsistem yang lainn ya membentuk satu kesatuan.
2. Apa tujuan adanya device driver? Berikan contoh keuntu
ngan yang kita dapatkan dengan adanya hal ini
- Device-driver layer menyembunyikan perbedaan diantara I/O controllers dari kernel
- Keuntungan Dengan adanya device driver maka memungkinkan OS untuk mengendalikan suatu hardware (misalnya sound card, scanner)
Kernel IO subsystem
1. Apakah yang dimaksud dengan proses pooling? (jelaskan dengan jelas)
- 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 mengetahui manakah device yang siap untuk berproses yang digunakan untuk CPU pro cessing
3. Apakah yang dimaksud dengan buffer?
- menyimpan data di memori ketika transfer antar device
4. Jelaskan dengan singkat mengenai I/O Scheduling!
- proses permintaan I/O yang dipesan melalui urutan device
Penanganan Permintaan I/O
1. Apakah k
egunaan dari Streams pada Sistem V UNIX?
- Meneydiakan suatu saluran full duplex antara proses dan device
2. Jelaskan lifecycle dari permintaan p
embacaan blok!
2. 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.
3. 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.
4. 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.
5. Device controller mengoperasikan piranti keras device untuk melakukan transfer data.
6. Driver dapat menerima statu
s 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.
7. Interrupt handler yang sesuai menerima interupsi melalui tabel vektor-interupsi, menyimpan sejumlah data yang dibutuhkan, menandai device driver, dan kembali dari interupsi.
8. 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.
9. Kernel mentransfer data at
au mengembalikan kode ke ruang alamat dari proses permintaan, dan memindahkan proses dari antrian tunggu kembali ke antrian siap.
10. 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
1. Menurunkan jumlah alih konteks.
2. Mengurangi jumlah pengkopian data ke memori ketika sedang dikirimkan antara device dan aplikasi.
3. Mengurangi frekuensi interupsi, dengan menggunakan ukuran transfer yang besar, smart controller, dan polling.
4. Meningkatkan concurrency dengan controller atau channel yang mendukung DMA.
5. Memindahkan kegiatan processing ke perangkat keras, sehingga operasi kepada device controller dapat berlangsung bersamaan dengan CPU.
6. Menyeimbangkan antara kinerja CPU, memory subsystem, bus, dan I/O.
3. Jelaskan mengenai implementasi dari fungsi I/O ?
- 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
- Platter : tempat penyimpanan data
- Spindle : tempat meletakkan platter
- Head : membaca data pada permukaan pelat dan merekam informasi ke dalamnya
- Logic board : papan pengoperasian pada hardisk, dimana pada logic Board terdapat Bios Hardisk sehingga hardisk pada saat dihubungkan ke Mother Board secara otomatis mengenal hardisk tersebut, seperti Maxtor, Seagete dll
- Actual Axis : poros untuk menjadi pegangan atau sebagai tangan robot agar Head dapat membaca sctor dari hardisk.
- Ribbon Cable : Ribbon cable adalah penghubung antara Head dengan Logic Board, dimana setiap dokumen atau data yang di baca oleh Head akan di kirim ke Logic Board untuk selanjutnya di kirim ke Mother Board agar Processor dapat memproses data tersebut sesuai dengan input yang di terima.
- IDE Conector : kabel penghubung antara hardisk dengan matherboard untuk mengirim atau menerima data.
Sekarang ini hardisk rata-rata sudah menggunakan system SATA sehingga tidak memerlukan kabel Pita (Cable IDE)
- Setting Jumper : Setiap hardis memiliki setting jumper, fungsinya untuk menentukan kedudukan hardisk tersebut.
Bila pada komputer kita dipasang 2 buah hardisk, maka dengan menyeting Setting Jumper kita bisa menentukan mana hardisk Primer dan mana Hardisk Sekunder yang biasanya disebut Master dan Slave.
Master adalah hardisk utama tempat system di instal, sedangkan Slave adalah hardisk ke dua biasanya dibutuhkan untuk tempat penyimpanan dokumen dan data. Bila Jumper settingnya tidak di set, maka hardisk tersebut tidak akan bekerja.
- Power Conector : Adalah sumber arus yang langsung dari power supply
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.