MANAJEMEN INPUT OUTPUT DAN DISK
MANAJEMEN INPUT OUTPUT
- Pengertian Manajemen Input Output
Manajemen input output sering disebut sebagai device manager atau penyedia device driver sehingga operasi input output dapat berjalan. Manajemen input output merupakan ruang lingkup atau batasan dalam manajemen perangkat keras input output yaitu bagaimana perangkat keras input output itu dikelola dan diprogram agar dapat berjalan dengan baik. Dalam sistem komputer, manajemen input output sangat diperlukan karena input output adalah sarana user untuk bisa berkomunikasi dengan komputer. Oleh karena itu, dalam setiap sistem operasi selalu terdapat input output manajer. - Fungsi Manajemen Input Output
Manajemen perangkat I/O mempunyai fungsi, antara lain:
• Mengirimkan perintah ke perangkat I/O untuk menyediakan layanan akses.
• Menangani interupsi perangkat I/O.
• Menangani kesalahan pada perangkat I/O.
• Meneyediakan interface ke pemakai.
• Menyediakan driver perangkat yang umum.
• Menyediakan driver perangkat yang khusus. - Teknik Manajemen Input Output
a. Input Output Terprogram
Input output terprogram adalah sebuah metode dimana CPU mengendalikan proses (transaksi) I/O secara keseluruhan dengan menjalankan serangkaian instruksi I/O (sebuah program). Program tersebut memulai, mengarahkan dan memberhentikan operasi-operasi I/O. I/O terprogram merupakan metode yang paling transparan untuk diterapkan dan hanya membutuhkan sejumlah perangkat keras khusus yang relatif sedikit.
I/O terprogram sangatlah penting bagi kinerja komputer, karena berfungsi untuk mengecek kondisi komputer yang sedang di gunakan. Tanpa adanya perintah I/O terprogram tersebut, komputer tidak akan bisa mengendalikan ataupun mengaktifkan perangkat eksternal (seperti mouse, keyboard, dan monitor) dikarenakan tidak adanya arus pertukaran data yang dilakukan oleh bus, dan bus yang tidak membawa data tersebut memerlukan komponen-komponen dan register yang ada di dalam CPU.
Kelemahan teknik ini adalah CPU akan menunggu sampai operasi I/O selesai dilakukan modul I/O sehingga akan membuang waktu, apalagi CPU lebih cepat proses operasinya. Dalam teknik ini, modul I/O tidak dapat melakukan interupsi kepada CPU terhadap proses-proses yang diinteruksikan padanya. Seluruh proses merupakan tanggun jawab CPU sampai operasi lengkap dilaksanakan.
Dalam teknik I/O terprogram, terdapat dua macam implementasi perintah I/O yang tertuang dalam instruksi I/O, yaitu memory mapped I/O dan isolated I/O.
• Dalam teknik memory mapped I/O, terdapat ruang tunggal untuk lokasi memori dan perangkat I/O. CPU memperlakukan register status dan register data pada modul I/O sebagai lokasi memori dan menggunakan instruksi mesin yang sama untuk mengakses baik memori maupun perangkat I/O. konsekuensinya adalah diperlukan saluran tunggal untuk pembacaan dan saluran tunggal untuk penulisan. Keuntungan memory mapped ini adalah efisien dalam pemrograman namun memakan banyak ruang memori alamat.
• Dalam teknik isolated I/O, dilakukan pemisahan ruang pengalamatan bagi memori dan ruang pengalamatan bagi I/O. Dengan teknik ini diperlukan bus yang dilengkapi dengan pembacaan dan penulisan memori ditambah dengan saluran perintah output. Keuntungan isolated I/O adalah sedikitnya instruksi I/O.
b. Input Output Interrupt
Interupsi lebih dari sebuah mekanisme sederhana untuk mengkoordinasi pengalihan I/O. Interupsi memungkinkan proses tidak membuang-buang waktu. Prosesnya adalah CPU mengeluarkan perintah I/O pada modul I/O, bersamaan perintah I/O dijalankan pada modul I/O maka CPU akan melakukan eksekusi perintah-perintah lainnya. Apabila modul I/O telah selesai menjalankan instruksi yang diberikan padanya, modul akan melakukan interupsi pada CPU bahwa tugasnya telah selesai.
Dalam teknik ini kendali perintah masih menjadi tanggung jawab CPU, baik pengambilan perintah dari memori maupun pelaksanaan isi perintah tersebut. Terdapat selangkah kemajuan dari teknik sebelumnya, yaitu CPU melakukan multitasking beberapa perintah sekaligus sehingga tidak ada waktu tunggu bagi CPU.
Ada beberapa tahapan dalam penanganan interupsi: - Controller mengirimkan sinyal interupsi melalui interrupt-request-line
- Sinyal dideteksi oleh prosesor
- Prosesor akan lebih dahulu menyimpan informasi tentang keadaan state-nya (informasi tentang proses yang sedang dikerjakan
- Prosesor mengidentifikasi penyebab interupsi dan mengakses tabel vektor interupsi untuk menentukan interrupt handler
- Transfer kontrol ke interrupt handler
- Setelah interupsi berhasil diatasi, prosesor akan kembali ke keadaan seperti sebelum terjadinya interupsi dan melanjutkan pekerjaan yang tadi sempat tertunda.
c. Direct Memory Acces (DMA)
DMA merupakan suatu pendekatan alternatif yang digunakan sebagai unit pengaturan khusus yang disediakan untuk memungkinkan pengalihan blok data secara langsung antara peralatan eksternal dan memori utama tanpa intervensi terus menerus oleh CPU.
Teknik sebelumnya yaitu I/O terprogram dan I/O interrupt memiliki kelemahan, yaitu proses yang terjadi pada modul I/O masih melibatkan CPU secara langsung, hal ini berdampak pada:
Kelajuan transfer I/O yang tergantung pada kecepatan operasi CPU.
Kerja CPU terganggu karena adanya interupsi secara langsung.
Prinsip kerja DMA adalah CPU akan mendelegasikan kerja I/O kepada DMA, CPU hanya akan terlibat pada awal proses untuk memberikan instruksi lengkap pada DMA dan akhir proses saja. Dengan demikian CPU dapat menjalankan proses lainnya tanpa banyak terganggu dengan interupsi.
Dalam melaksanakan transfer data secara mandiri, DMA memerlukan pengambilalihan kontrol bus dari CPU. Karena itu, DMA akan menggunakan bus bila CPU tidak menggunakannya atau DMA memaksa CPU untuk menghentikan sementara penggunaan bus.
Untuk memulai transfer data secara DMA, driver peralatan akan menulis blok perintah DMA memori yang menunjukkan sumber data, tujuan, dan jumlah byte yang akan di transfer. CPU kemudian akan mengirimkan alamat blok perintah ini pada pengendali DMA. Pengendali DMA akan memproses informasi ini untuk kemudian mengoperasikan bus memori.
Transfer sebanyak 1 byte/word per satuan waktu oleh pengendali DMA disebut sebagai cycle stealing karena pengendali menggunakan bus cycle milik CPU. Dengan cycle stealing penggunaan bus oleh CPU akan tertunda beberapa waktu karena bus digunakan untuk proses DMA. Penghentian sementara penggunaan bus bukanlah bentuk interupsi, melainkan hanyalah penghentian proses sesaat yang berimplikasi hanya pada kelambatan eksekusi CPU saja. - Komponen Manajemen Input Output
a. Buffering
Buffer adalah area memori yang menyimpan data ketika sedang dipindahkan antara dua device atau antara device dan aplikasi. Buffering bertujuan melembutkan lonjakan-lonjakan kebutuhan pengaksesan I/O, sehingga meningkatkan efisiensi dan kinerja sistem operasi. Sebagai contoh, sebuah file sedang diterima melalui modem dan ditujukan ke media penyimpanan di hard disk. Kecepatan modem tersebut kira-kira hanyalah 1/1000 daripada hard disk. Jadi buffer dibuat di dalam memori utama untuk mengumpulkan jumlah byte yang diterima dari modem.
No Buffering
Ketika perangkat memberi perintah untuk perangkat I/O, maka data akan langsung melewati sistem operasi dan langsung dikirim ke proses user. Contohnya seperti saat kita sedang streaming youtube tanpa ada hambatan koneksi.
Single Buffering
Single buffering merupakan teknik paling sederhana. Ketika proses memberi perintah untuk perangkat I/O, sistem operasi menyediakan buffer memori utama sistem untuk operasi. Untuk perangkat berorientasi blok, transfer masukak dibuat ke buffer sistem. Ketika transfer selesai, proses memindahkan blok ke ruang pemakai dan segera meminta blok lain. Teknik ini disebut reading ahead atau anticipated input. Teknik ini dilakukan dengan harapan blok tersebut akan segera diperlukan. Untuk banyak tipe komputasi, asumsi ini berlaku. Hanya di akhir pemrosesan maka blok yang dibaca tidak diperlukan.
Double Buffering
Peningkatan dapat dibuat dengan dua buffer sistem. Dua dari tempat buffer yang ada, hanya satu yang ditetapkan untuk berkas. Proses dapat ditransfer ke/dari satu buffer sementara sistem operasi mengosongkan (atau mengisi) buffer lain. Teknik ini disebut double buffering atau buffer swapping. Double buffering menjamin proses tidak menunggu operasi I/O. Peningkatan ini harus dibayar dengan peningkatan kompleksitas. Proses dapat di transfer ke (atau dari) satu buffer sementara sistem operasi mengosongkan (atau mengisi) buffer lain.
Sebagai contoh, setelah modem mengisi buffer pertama, penulisan ke disk dilakukan. Modem kemudian mulai mengisi buffer kedua sementara buffer pertama ditulis ke disk. Pada saat modem sudah mengisi buffer kedua, penulisan disk dari buffer pertama seharusnya sudah selesai sehingga modem dapat menggunakan kembali buffer pertama ketika buffer kedua melakukan penulisan ke disk.
Circular Buffering
Jika kinerja proses tertentu menjadi fokus kita, maka kita ingin agar operasi I/O mengikuti proses. Double buffering tidak mencukupi jika proses melakukan operasi I/O yang berturutan dengan cepat. Masalah sering dapat dihindari dengan menggunakan lebih dari dua buffer. Ketika lebih dari dua buffer yang digunakan, kumpulan buffer itu sendiri disebut sebagai circular buffer. Tiap buffer individu adalah satu unit di circular buffer.
b. Spooling
Spool adalah sebuah buffer yang berisi keluaran untuk sebuah perangkat. Spooling melakukan penjadwalan pemakaian I/O sistem supaya lebih efisien.
Sebagai contoh, printer tidak memiliki aliran data yang dapat mengalir bersama. Walaupun printer hanya dapat melayani satu pekerjaan pada satu waktu, beberapa aplikasi mungkin ingin mencetak keluaran masing-masing secara bersamaan tanpa harus tercampun. Sistem operasi menyelesaikan masalah ini dengan cara meng-intercept semua keluaran tersebut ke printer. Masing-masing keluaran aplikasi tadi di-spool ke disk berkas yang terpisah. Ketika sebuah aplikasi selesai mencetak keluarannya, sistem spooling akan melanjutkan ke antrian berikutnya. - Perangkat Input Output
a. Software - Device Handler adalah sebuah software kecil yang memberitahu sistem operasi dan software tentang bagaimana menggunakan atau berkomunikasi dengan hardware.
- Interrupt Handler adalah subroutine panggilan balik di firmware mikrokontroler, sistem operasi atau driver perangkat yang eksekusi adalah dipicu oleh penerimaan interrupt.
- Subsistem merupakan komponen atau bagian dari suatu sistem, dapat berupa fisik ataupun abstrak.
- Pustaka Aplikasi mengimplementasikan pustaka pengaksesan I/O atau API (Application Programming Interface) bagi aplikasi untuk melakukan operasi I/O. Memudahkan user karena pengaksesan ke berbagai macam piranti I/O dengan menggunakan operasi yang sama.
b. Hardware - Device Driver adalah istilah teknologi informasi yang mengijinkan sebuah sistem komputer untuk berkomunikasi dengan sebuah perangkat keras.
- BUS I/O terdiri atas bus data, alamat, dan kontrol yang berfungsi menghubungkan device controller dengan elemen internal komputer seperti prosessor dan memori.
- Device Controller, dengan adanya device controller piranti-piranti I/O dapat dikontrol dan berkomunikasi dengan sistem komputer. Device controller berfungsi sebagai antarmuka antara piranti I/O dengan sistem internal komputer.
MANAJEMEN DISK
- Pengertian Manajemen Disk
Disk merupakan piranti I/O yang penting pada sistem komputer dan berfungsi sebagai media penyimpan utama. Disk yang digunakan sebagai penyimpan utama adalah disk cakram magnetis. Sebelum sebuah disk dapat digunakan, disk harus dibagi-bagi dalam beberapa sektor. Sektor-sektor ini yang kemudian akan dibaca oleh pengendali.
Pembentukan sektor-sektor ini disebut low level formatting atau physical formatting. Low level formatting juga akan mengisi disk dengan beberapa struktur data penting seperti header dan trailer. Header dan trailer mempunyai informasi seperti nomor sektor, dan Error Correction Code (ECC). ECC ini berfungsi sebagai correction code karena mempunyai kemampuan untuk mendeteksi bit yang salah, menghitung nilai benar dan kemudian mengubahnya. Ketika proses penulisan, ECC di-update dengan menghitung bit area data. Pada proses pembacaan, ECC dihitung ulang dan dicocokkan dengan nilai ECC yang tersimpan saat penulisan. Jika nilanya berbeda maka dipastikan ada sektor yang terkorup.
Agar dapat menyimpan data, OS harus menyimpan struktur datanya dalam disk tersebut. Proses itu dilakukan dalam dua tahap, yaitu partisi dan logical formatting. Partisi akan membagi disk menjadi beberapa silinder yang dapat diperlakukan secara independen. Logical formatting akan membentuk sistem berkas disertai pemetaan disk. - Struktur Disk
Struktur disk merupakan suatu hal yang penting bagi penyimpanan informasi. Disk secara fisik memiliki struktur 3 dimensi yang terdiri atas silinder, track, dan sektor serta terdiri atas cakram yang tersusun secara vertikal. Kedua sisi atas dan bawah dapat ditulis data, kecuali permukaan cakram paling atas dan paling bawah.
Struktur sisi caktam terdiri atas alur melingkar atau track. Makin ke dalam sisi cakram, alurnya makin kecil.
Setiap track terbagi lebih lanjut atas sector.
Setiap sector terdiri atas sejumlah byte yang sama besarnya.
Pada setiap sisi cakram terdapat head pembaca. Head-head pembaca ini bergerak secara radial secara bersamaan.
Cakram-cakram berputar pada sumbu pusatnya.
Silinder adalah sekumpulan track dengan nomor yang sama pada setiap platter atau bagian melingkar pada disk. Silinder mencakup semua track yang ada pada permukaan platter yang mampun menyimpan data (tanpa memperhatikan apakah sebuah track baik maupun buruk dalam kapasitasnya menyimpan data).
Track secara fisik adalah bagian dari disk yang berupa sebuah lingkaran konsentri yang lingkaran piringan terluar lebih besar dibandingkan dari yang paling dekat dengan titik tengah pada disk
Sektor adalah basic unit dari harddisk yang merupakan sebuah bagian atau sub-divisi dari sebuah track. Biasanya, masing-masing sektor menyimpan data dengan jumlah tertentu, sesuai dengan kesepakatan yang telah dibuat oleh perancang sektor. Pada umumnya, beberapa format ukuran yang digunakan untuk sektor adalah 512 bytes (untuk magnetic disks) dan 2048 bytes (untuk optical disks). - Penjadwalan Disk
• Penjadwalan FCFS
Proses yang pertama kali meminta jatah waktu untuk menggunakan CPU akan dilayani terlebih dahulu.
• Penjadwalan SSTF
Disk request yang memiliki seek distace yang paling dekat dengan posisi head terkini akan dilayani terlebih dahulu sehingga meminimalkan pergerakan head.
• Penjadwalan SCAN
Head bergerak ke satu arah. Jika head sudah mencapai bagian terluar atau terdalam dari cakram, maka arah gerak head dibalik.
• Penjadwalan C-SCAN
Head tidak melakukan pembalikan arah. Misalnya pada saat head bergerak dari arah luar ke dalam, jika head sudah berada di dalam maka arah pergerakan head akan dikembalikan ke luar lagi, kemudian gerak head dilanjutkan lagi.
• Penjadwalan LOOK
Head tidak perlu melakukan perjalanan penuh dari bagian terluar sampai terdalam bila sudah tidak ada disk request lagi. Pergerakan head bisa langsung dilakukan sebelum sampai track terdalam. - Pengalamatan Disk
Disk di alamati secara logika sebagai salah satu dimensi berukuran besar dengan setiap satu blok logika. Satu blok logika merupakan unit terkecil untuk transfer data, baik untuk penulisan ataupun pembacaan. Biasanya satu blok logika adalah satu atau lebih sektor fisik. Ukuran blok ditentukan pada saat dilakukan pengorganisasian atau istilahnya pengformatan disk.
Untuk penomoran alamat logika disk mengikuti aturan sebagai berikut: - Alamat paling awal, yaitu sektor 0 adalah sektor pertama dari track pertama pada silinder yang paling luar.
- Alamat berikutnya mengikuti urutan sektor lainnya pada track pertama tersebut. Setelah itu pindah ke track lainnya pada silinder pertama (terluar) pada sisi cakram lainnya.
- Setelah silinder pertama pada semua sisi cakram lainnya telah dialamati maka alamat berikutnya adalah kembali ke sisi cakram pertama pada track yang letaknya lebih dekat ke titik pusat cakram.
Metode pengalamatan dalam disk (magnetic disk) ada dua yaitu metode silinder dan metode sektor: - Metode Silinder
Pengalamatan berdasarkan nomor silinder, nomor permukaan, dan nomor record. Semua track dari disk pack membentuk suatu silinder. Jadi bila suatu disk pack dengan 200 track per permukaan, maka mempunyai 200 silinder. Bagian nomor permukaan dari pengalamatan record menunjukkan permukaan silinder record yang disimpan. Jika ada 11 piringan maka nomor permukaannya dari 0-19 atai dari 1-20. Pengalamatan dari nomor record menunjukkan dimana record terletak pada track yang ditunjukkan dengan nomor silinder dan nomor permukaan. - Metode Sektor
Setiap track dari pack dibagi kedalam sektor-sektor. Setiap sektor adalah storage area untuk banyaknya karakter yang tetap. Pengalamatan recordnya berdasarkan nomor sektor, nomor track, nomor permukaan. Nomor sektor yang diberikan oleh disk controller menunjukkan track mana yang akan diakses dan pengalamatan record terleta pada track yang mana. - Mekanisme Penanganan Disk Request
Operasi disk merupakan operasi khusus yang hanya dapat dilakukan rutin oleh sistem operasi. Aplikasi atau proses pengguna melakukan operasi disk dengan melakukan system call terhadap sistem operasi. Pemanggilan ini akan menghasilkan suatu disk request. Secara lengkap, mekanisme penangan permintaan operasi disk (disk request) adalah sebagai berikut: - Ketika suatu proses membutuhkan transfer data dari atau ke disk maka proses akan memanggil system call sistem operasi.
- System call akan memicu operasi memblok proses bersangkutan karena operasi I/O disk akan memakan waktu. Disk tequest akan ditangani oleh device drive yang sesuai dengan piranti I/O yang hendak diakses.
- Device drive disk akan memeriksa status disk. Jika disk sedang sibuk maka disk request akan diantrikan pada antrian disk bersangkutan.
- Jika disk tidak sedang digunakan maka disk request tersebut akan dilayani dan alamat disk dikirimkan ke disk controller.
- Pada operasi penulisan (write), data akan disalinkan oleh DMA controller ataupun prosesor dari memori utama ke buffer disk controller untuk selanjutnya disalinkan ke piringan disk. Sementara pada operasi pembacaan (read), data yang dibaca akan disalinkan ke buffer disk controller terlebih dahulu dan selanjutnya disalinkan ke memori utama.
Waktu yang dibutuhkan untuk memproses suatu disk request terdiri atas: - Overhead time, yaitu total waktu yang dihabiskan sistem operasi untuk menangani disk request termasuk mengantrikan disk request.
- Queting time, yaitu waktu yang dihabiskan di antrian disk untuk menunggu disk tersedia untuk digunakan.
- Latency (Random Acces Time), yaitu waktu yang dihabiskan untuk menempatkan head ke lokasi yang hendak diakses. Latency terdiri atas 2 komponen yaitu:
• Seek time, yaitu waktu yang dibutuhkan disk untuk memindahkan head ke silinder yang berisi sektor yang dituju.
• Rotational latency, adalah waktu tambahan yang dibutuhkan untuk menunggu putaran disk sehingga head berada tepat di bawah sektor yang hendak diakses. - Transfer time, yaitu waktu untuk mentrasfer data dari atau ke lokasi disk.
Umumnya waktu penanganan operasi disk di atas dicantumkan pada spesifikasi dari suatu disk. Setiap disk memiliki buffer data, buffer disk controllernya, untuk menampung data yang dibaca dari cakram magnetis sebelum akhirnya disalinkan ke memori utama. - Pengorganisasian Disk
Secara fisik, ruang di disk ibaratnya adalah ruangan tanpa sekat. Untuk memudahkan penyimpanan dan pembacaan data maka ruang penyimpanan ini butuh diorganisasi dalam unit-unit.
Terdapat sejumlah hierarki dan pengorganisasian ruang disk: - Pemformatan fisik (low-level formatting), yaitu membagi disk ke dalam sektor-sektor sehingga disk controller dapat membaca dan menulisnya dengan cara menandai awal setiap sektor dengan header dan akhir setiap sektror dengan trailer.
- Pemartisian, yaitu membagi disk menjadi satu atau lebih partisi dimana masing-masing partisi dapat dipandang secara logika sebagai disk terpisah.
- Pemformatan secara logika, yaitu membangun struktur pengelolaan berkas. Hal ini butuh dilakukan sebelum sembarang data atau berkas dapat disimpan ke suatu partisi disk atau disk logika.
- Alokasi blok booting, yaitu membangun struktur untuk melakukan operasi booting. Jika berkas-berkas sistem operasi disimpan dan dibaca dari disk, maka haruslah dibuat pada bagian awal disk suatu blok yang berisi bootstrap, yaitu program kecil untuk menginisialisasi booting sistem operasi. Bootstrap loader, yaitu program untuk mengaktifkan bootstrap itu sendiri biasanya disimpan di ROM BIOS pada motherboard komputer.
- Manajemen blok atau sector yang rusak (bad sector), yaitu mengelola, mencatat atau mengalihkan bad block, yaitu satu atau lebih sektor yang rusak pada disk. Untuk mengatasi hal ini maka lokasi yang rusak ini harus dicatat agar tidak ditulisi data.