Senin, 16 Januari 2012

Jawaban Sistem Penyimpanan (V-class SO)

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.

Managemen Disk
1. Bagaimana cara disk SCSI me-recovery blok yang rusak? Jelaskan selengkap mungkin?
Jawaban:
Untuk disk yang lebih kompleks seperti disk SCSI, bad blocks diatasi dengan sector sparing atau forwarding, yaitu controller dapat mengganti sektor yang rusak dengan sebuah sektor yang terpisah. Alternatif lainnya adalah mengganti sektor tersebut dengan cara sector slipping. Mengganti blok yang rusak bukan sepenuhnya merupakan proses yang otomatis, karena data-data yang tersimpan sebelum nya akan terhapus.

Penanganan Swap-Space
1. Bagaimana penanganan swap space pada disk?
Jawaban:
Penanganan (management) swap-space (tempat pertukaran; tetapi karena istilah swap-space sudah umum dipakai, maka untuk seterusnya kita tetap memakai istilah swap-space) adalah salah satu dari low-level task pada sebuah sistem operasi. Memori Virtual menggunakan disk space sebagai perpanjangan (atau space tambahan) dari memori utama. Karena kecepatan akses disk lebih lambat daripada kecepatan akses memori, menggunakan swap-space akan mengurangi performa sistem secara signifikan. Tujuan utama dari perancangan dan implementasi swap-space adalah untuk menghasilkan kinerja memori virtual yang optimal. Dalam sub-bab ini, kita akan membicarakan bagaimana swap-space digunakan, dimana letak swap-space pada disk, dan bagaimana penanganan swap-space.
2. Bagaimana pengelolaan swap space pada disk?
Jawaban:
Untuk mengilustrasikan metode-metode yang digunakan untuk mengelola swap-space, kita sekarang akan mengikuti evolusi dari swapping dan paging pada GNU/ Linux. GNU/ Linux memulai dengan implementasi swapping yang menyalin seluruh proses antara daerah disk yang contiguous (tidak terputus) dan memori. UNIX berevolusi menjadi kombinasi dari swapping dan paging dengan tersedianya hardware untuk paging.
Dalam 4.3BSD, swap-space dialokasikan untuk proses ketika sebuah proses dimulai. Tempat yang cukup disediakan untuk menampung program, yang juga dikenal sebagai halaman-halaman teks (text pages) atau segmen teks, dan segmen data dari proses itu. Alokasi dini tempat yang dibutuhkan dengan cara seperti ini umumnya mencegah sebuah proses untuk kehabisan swap-space selagi proses itu dikerjakan. Ketika proses mulai, teks di dalamnya di-page dari file system. Halaman-halaman (pages) ini akan ditaruh di swap bila perlu, dan dibaca kembali dari sana, jadi sistem file akan diakses sekali untuk setiap text page. Halaman-halaman dari segmen data dibaca dari sistem file, atau dibuat (bila belum sebelumnya), dan ditaruh di swap space dan di-page kembali bila perlu. Satu contoh optimisasi (sebagai contoh, ketika dua pengguna menggunakan editor yang sama) adalah proses-proses dengan text page yang identik membagi halaman-halaman (pages) ini, baik di memori mau pun di swap-space.
Dua peta swap untuk setiap proses digunakan oleh kernel untuk melacak penggunaan swap-space. Segmen teks besarnya tetap, maka swap space yang dialokasikan sebesar 512K setiap potong (chunks), kecuali untuk potongan terakhir, yang menyimpan sisa halaman-halaman (pages) tadi, dengan kenaikan (increments) sebesar 1K.
Peta swap dari Segmen data lebih rumit, karena segmen data bisa mem besar setiap saat. Petanya sendiri besarnya tetap, tapi menyimpan a lamat-alamat swap untuk blok-blok yang besarnya bervariasi. Misalkan ada index I, dengan besar maksimun 2 megabytes. Data struktur ini ditunjukkan oleh gambar 13.8. (Besar minimum dan maksi mum blok bervariasi, dan bisa diubah ketika me-reboot sistem.) Ketika sebuah proses mencoba untuk memperbesar segmen datanya melebihi blok yang dialokasikan di tempat swap, sistem operasi mengalokasikan blok lain lagi, dua kali besarnya yang pertama. Skema ini menyebab kan proses-proses yang kecil menggunakan blok-blok kecil. Ini juga meminimalisir fragmentasi. Blok-blok dari proses yang besar bisa di temukan dengan cepat, dan peta swap tetap kecil.
Pada Solaris 1 (SunOS 4), para pembuatnya membuat perubahan pada me tode standar UNIX untuk meningkatkan efisiensi dan untuk mencermin kan perubahan teknologi. Ketika sebuah proses berjalan, halaman-hala man (pages) dari segmen teks dibawa kembali dari sistem berkas, diak ses di memori utama, dan dibuang bila diputuskan untuk di-pageout. A kan lebih efisien untuk membaca ulang sebuah halaman (page) dari sis tem berkas daripada menaruhnya di swap-space dan membacanya ulang dari sana. Lebih banyak lagi perubahan pada Solaris 2. Perubahan terbesar ada lah Solaris 2 mengalokasikan swap-space hanya ketika sebuah halaman (page) dipaksa keluar dari memori, daripada ketika halaman (page) da ri memori virtual pertama kali dibuat. Perubahan ini memberikan per forma yang lebih baik pada komputer-komputer modern, yang sudah mem punyai memori lebih banyak daripada komputer-komputer dengan sistem yang sudah lama, dan lebih jarang melakukan paging.

Reabilitas Disk
1. Terangkan bagaimana RAID dapat meningkatkan reabilitas dari disk?
Jawaban:
Teknologinya disebut RAID (Redudant Arrays of inexpensive Disk) : sebuah array disk dimana dalam sebuah media penyimpanan terdapat informasi redudan tentang data yang disimpan di sisa media tersebut.
Kelebihan RAID:
• Meningkatkan kinerja I/O,
• Meningkatkan reabilitas media penyimpanan
Ada 2 bentuk fault tolerance:
a. Disk mirroring (RAID 1) : meliputi penulisan data secara simultan kedua media penyimpanan yang secara fisik terpisah.
b. Disk stripping dengan Parity (RAID 5) : data ditulis dalam strip-strip lewat satu array disk yang didalam strip-strip tersebut terdapat informasi parity yang dapat digunakan untuk meregenerasi data apabila salah satu disk device dalam strip set mengalami kegagalan.
Salah satu cara yang digunakan pada RAID adalah dengan mirroring atau shadowing, yaitu dengan membuat duplikasi dari tiap-tiap disk. Pada cara ini, berarti diperlukan media penyimpanan yang dua kali lebih besar daripada ukuran data sebenarnya. Akan tetapi, dengan cara ini pengaksesan disk yang dilakukan untuk membaca dapat ditingkatkan dua kali lipat. Hal ini dikarenakan setengah dari permintaan membaca dapat dikirim ke masing-masing disk. Cara lain yang digunakan pada RAID adalah block interleaved parity. Pada cara ini, digunakan sebagian kecil dari disk untuk penyimpanan parity block. Sebagai contoh, dimisalkan terdapat 10 disk pada array. Karenanya setiap 9 data block yang disimpan pada array, 1 parity block juga akan disimpan. Bila terjadi kerusakan pada salah satu block pada disk maka dengan adanya informasi pada parity block ini, ditambah dengan data block lainnya, diharapkan kerusakan pada disk tersebut dapat ditanggulangi, sehingga tidak ada data yang hilang. Penggunaan parity block ini juga akan menurunkan kinerja sama seperti halnya pada mirroring. Pada parity block ini, tiap kali subblock data ditulis, akan terjadi perhitungan dan penulisan ulang pada parity block.

2. Adakah batas waktu hidup suatu disk? Jika ada, berapa lama? Jika tidak, kenapa?
Jawaban:
Ada, Disk memiliki resiko untuk mengalami kerusakan. Kerusakan ini dapat berakibat turunnya performa atau pun hilangnya data. Meski pun terdapat backup data, tetap saja ada kemungkinan data yang hilang karena adanya perubahan setelah terakhir kali data di-backup. Karenanya reliabilitas dari suatu disk harus dapat terus ditingkatkan.
Usia dari optical disc bergantung pada banyak faktor, beberapa dapat dikendalikan oleh pemakai, beberapa yang lainnya tidak.
Faktor-faktor yang dapat mempengaruhi usia disc termasuk berikut ini:
• Tipe,
• Kualitas pabrikasi,
• Kondisi disc sebelum perekaman,
• Kualitas dari perekaman disc,
• Perlakuan dan perawatan, dan
• Kondisi lingkungan.
Berikut adalah beberapa macam penyebab terjadinya hilangnya data:
a. Ketidaksengajaan dalam menghapus.
Bisa saja pengguna secara tidak sengaja menghapus suatu berkas, hal ini dapat dicegah seminimal mungkin dengan cara melakukan backup data secara reguler.
b. Hilangnya tenaga listrik
Hilangnya tenaga listrik dapat mengakibatkan adanya corrupt data.
i. Blok rusak pada disk.
Rusaknya blok pada disk dapat saja disebabkan dari umur disk tersebut. Seiring dengan waktu, banyaknya blok pada disk yang rusak dapat terus terakumulasi. Blok yang rusak pada disk, tidak akan dapat dibaca.
ii. Rusaknya Disk.
Bisa saja karena suatu kejadian disk rusak total. Sebagai contoh, dapat saja disk jatuh atau pun ditendang ketika sedang dibawa.
iii. System Corrupt.
Ketika komputer sedang dijalankan, bisa saja terjadi OS error, program error, dan lain sebagainya. Hal ini tentu saja dapat menyebabkan hilangnya data.

Implementasi Stable-Storage
1. Sebutkan kemungkinan-kemungkinan dari disk write?
Jawaban:
Sebuah disk write menyebabkan satu dari tiga kemungkinan:
a. Successful completion.
Data disimpan dengan benar di dalam disk.
b. Partial failure.
Kegagalan terjadi di tengah-tengah transfer, menyebabkan hanya bebe rapa sektor yang diisi dengan data yang baru, dan sektor yang diisi ketika terjadi kegagalan menjadi rusak.
c. Total failure.
Kegagalan terjadi sebelum disk write dimulai, jadi data yang sebe lumnya ada pada disk masih tetap ada.

2. Bagaimanakah suatu operasi output dieksekusi?
Jawaban:
Sebuah operasi output dieksekusi seperti berikut:
a. Tulis informasinya ke blok physical yang pertama.
b. Ketika penulisan pertama berhasil, tulis informasi yang sama ke blok physical yang kedua.
c. Operasi dikatakan berhasil hanya jika penulisan kedua berhasil.

Tertiary-Storage Structure
1. Sebutkan kelebihan tertiary storage structure?
Jawaban:
• Biaya produksi lebih murah,
• Menggunakan removable media, dan
• Data yang disimpan bersifat permanen.

2. Apakah kegunaan EOT pada tapes? Jelaskan cara kerjanya?
Jawaban:
Kapasitas blok ditentukan pada saat blok ditulis. Apabila terdapat area yang rusak pada saat blok ditulis, maka area yang rusak itu tidak dipakai dan penulisan blok dilanjutkan setelah daerah yang rusak tersebut. Tape drive “append-only” devices, maksudnya adalah apabila kita meng-update blok yang ada di tengah berarti kita akan menghapus semua data sebelumnya pada blok tersebut. Oleh karena itu, meng-update blok tidak diperbolehkan.Untuk mencegah hal tadi digunakan tanda EOT (end-of-tape). Tanda EOT ditaruh setelah sebuah blok ditulis. Drive menolak ke lokasi sebelum tanda EOT, tetapi drive tidak menolak ke lokasi tanda EOT kemudian drive mulai menulis data. Setelah selesai menulis data, tanda EOT ditaruh setelah blok yang baru ditulis tadi.

3. Jelaskan tugas sistem operasi terhadap tertiary-storage structure?
Jawaban:
Tugas terpenting dari sistem operasi dalam hubungannya dengan tertiary-storage structure adalah digunakan untuk menampilkan abstraksi mesin virtual dari aplikasi, menampilkan apa yang ada dalam tertiary-storage structure.

Disk memiliki resiko untuk mengalami kerusakan. Kerusakan ini dapat berakibat turunnya performa atau pun hilangnya data. Meski pun terdapat backup data, tetap saja ada kemungkinan data yang hilang karena adanya perubahan setelah terakhir kali data di-backup. Karenanya reliabilitas dari suatu disk harus dapat terus ditingkatkan.

1.Gambarkan diagram dari Interrupt Driven I/O Cycle.

Jawab









2. 2. sebutkan langkah-langkah dari transfer DMA.

Jawab : * Prosesor menyiapkan DMA transfer dengan menyedia kan data-data dari device, operasi yang akan ditampilkan, alamat memori yang menjadi sumber dan tujuan data, dan banyaknya byte yang di transfer.

· DMA controller memulai operasi (menyiapkan bus, menyediakan alamat, menulis dan membaca data), sampai seluruh blok sudah di transfer.

· DMA controller meng-interupsi prosesor, dimana selanjutnya akan ditentukan tindakan berikutnya.

3. 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. 4. 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 handl
e

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.

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.

Minggu, 15 Januari 2012

Jawaban Sistem I/O (V-class SO)

1.. 1..Gambarkan diagram dari Interrupt Driven I/O Cycle.

Jawab










2. 2.sebutkan langkah-langkah dari transfer DMA.

Jawab : * Prosesor menyiapkan DMA transfer dengan menyedia kan data-data dari device, operasi yang akan ditampilkan, alamat memori yang menjadi sumber dan tujuan data, dan banyaknya byte yang di transfer.

· DMA controller memulai operasi (menyiapkan bus, menyediakan alamat, menulis dan membaca data), sampai seluruh blok sudah di transfer.

· DMA controller meng-interupsi prosesor, dimana selanjutnya akan ditentukan tindakan berikutnya.

3. 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. 4. 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 handl
e

in 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.

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.

Jawaban Sistem File (V-class SO)

1. Sebutkan macam-macam atribut pada berkas

Jawab: - Name : Informasi yang di simpan untuk keperluan identifikasi form oleh pengguna.

- Type : dibutuhkan sistem untuk mendukung tipe yang berbeda.

- Location : Pointer ke lokasi fil pada device.

- Size : Ukuran file yang sedang digunakan.

- Protection : kontrol terhadap pengguna yang sedang melakukan baca, tulis & eksekusi.

- Time,Date & user identification: proteksi data untuk pengamanan dan monitoring pengguna.

2. Operasi apa sajakah yang dapat diterapkan pada sebuah berkas?

Jawab : - Create file

- Write File

- Read File

- Reposition dalam File

- Delete File

- Truncate File

3. Sebutkan informasi yang terkait dengan pembukaan berkas!

Jawab : - Penunjuk Berkas: Pada sistem yang tidak mengikutkan batas berkas sebagai bagian dari system call baca dan tulis, sistem tersebut harus mengikuti posisi dimana terakhir proses baca dan tulis sebagai penunjuk. Penunjuk ini unik untuk setiap operasi pada berkas, maka dari itu harus disimpan terpisah dari atribut berkas yang ada pada disk.

- Penghitung berkas yang terbuka: Setelah berkas ditutup, sistem harus mengosongkan kembali tabel berkas yang dibuka yang digunakan oleh berkas tadi atau tempat di tabel akan habis. Karena mungkin ada beberapa proses yang membuka berkas secara bersamaan dan sistem harus menunggu sampai berkas tersebut ditutup sebelum mengosongkan tempatnya di tabel.

- Lokasi berkas pada disk: Kebanyakan operasi pada berkas memerlukan sistem untuk mengubah data yang ada pada berkas. Informasi mengenai lokasi berkas pada disk disimpan di memori agar menghindari banyak pembacaan pada disk untuk setiap operasi

4. Sebutkan dan jelaskan metode alokasi pada sistem berkas!

Jawab : - Sequential Access : akses dilakukan dengan 1 arah pembacaan/penulisan jika ingin mundur maka perlu dilakukan rewind.

- Direct Access : akses dilakukan bisa pada posisi mana saja dalam file.

- Metode Lain : abstraksi lebih tinggi dari direct access, index file &relative file.

5. Sebutkan dan jelaskan operasi pada direktori?

Jawab : - Mencari berkas, kita dapat menemukan sebuah berkas didalam sebuah struktur direktori. Karena berkas-berkas memiliki nama simbolik dan nama yang sama dapat mengindikasikan keterkaitan antara setiap berkas-berkas tersebut, mungkin kita berkeinginan untuk dapat menemukan seluruh berkas yang nama-nama berkas membentuk pola khusus.

- Membuat berkas, kita dapat membuat berkas baru dan menambahkan berkas tersebut kedalam direktori.

- Menghapus berkas, apabila berkas sudah tidak diperlukan lagi, kita dapat menghapus berkas tersebut dari direktori.

- Menampilkan isi direktori, kita dapat menampilkan seluruh berkas dalam direktori, dan kandungan isi direktori untuk setiap berkas dalam daftar tersebut.

- Mengganti nama berkas, karena nama berkas merepresentasikan isi dari berkas kepada user, maka user dapat merubah nama berkas ketika isi atau penggunaan berkas berubah. Perubahan nama dapat merubah posisi berkas dalam direktori.

- Melintasi sistem berkas, ini sangat berguna untuk mengakses direktori dan berkas didalam struktur direktori.

6. Sebutkan dan Jelaskan tentang tipe akses pada berkas?

Jawab : - Read: Membaca dari berkas

- Write: Menulis berkas

- Execute: Meload berkas kedalam memori untuk dieksekusi.

- Append: Menambahkan informasi kedalam berkas di akhir berkas.

- Delete: Menghapus berkas.

- List: Mendaftar properti dari sebuah berkas.

- Rename: Mengganti nama sebuah berkas.

- Copy: Menduplikasikan sebuah berkas.

- Edit: Mengedit sebuah berkas.

7. Sebutkan dan jelaskan bagaimana cara mengatur free space?

Jawab : - Berkas disimpam dalam satuan perblok.

- Blok disk

· Besarnya blok tetap : 512bytes-8kbytes

· Blok size terlalu besar: space yang terbuang (i.e besarnya bekas rata-rat di UNIX : 1Kbytes)

- Free bloks:

· Bagaiman melacak block yang tidak di gunakan?

Ø Linked list dari nomor blok yang bebas.

Ø Bit-map

Blok yang bebas di wakili oleh bit 1, blok yang digunakan oleh bit 0.

8. Bagaimanakah implementasi dari sebuah direktori dalam disk..??

Jawab : - Disk quota(multi-user)

- Kehandalan :

· Manajemen bad block

· Backup

· Konsistensi:

Ø Blok: membandingkan list blok digunakan dan yang bebas.

Ø Direktori/file : membandingkan entry di rektori dan i-node/ awal blok.

Ø File system check

- Unjuk Kerja :

· Cache :

Ø Write-through cache (MS-DOS)

Ø Write-back/delay cache (UNIX)

9. Sebutkan keunggulan dari sistem berkas dalam UNIX dengan sistem berkas pada WINDOWS?

Jawab : - sistem berkas UNIX lebih hebat dan mudah diatur daripada Windows.

- sistem Windows ingin memudahkan pengguna maka sistem mereka mengubah nama menjadi nama yang lebih mudah bagi para pengguna.

- sistem berkas UNIX dengan Windows adalah UNIX tidak menggunakan drive letter seperti C:, D: dalam Windows. Tetapi semua partisi dan drive ekstra di mount didalam sub- direktori di bawah direktori root. Jadi pengguna tidak harus bingung di drive letter mana suatu berkas berada sehingga seluruh sistem seperti satu sistem berkas yang berurutan dari direktori root menurun secara hierarki

10.10. Bagaimanakah langkah-langkah dalam proses back-up?

Jawab : - Hari 1: Salin ke tempat penyimpanan back up semua berkas dari disk, disebut

sebuah full backup.

- Hari 2: Salin ke tempat penyimpanan lain semua berkas yang berubah sejak hari 1,

disebut incremental backup.

- Hari 3: Salin ke tempat peyimpanan lain semua berkas yang berubah sejak hari 2.

- Hari N: salin ke tempat penyimpanan lain semua berkas yang berubah sejak hari N-

1, lalu kembali ke hari 1.