PENGERTIAN SISTEM OPERASI SEJARA DETAIL
A. PENGERTIAN MANAJEMEN I/O
Pengelolaan perangkat I/O merupakan aspek perancangan sistem operasi yang terluas karena beragamnya peralatan dan begitu banyaknya aplikasi dari peralatan-peralatan itu.
Sistem komputer memiliki tiga komponen utama, yaitu : CPU, memori (primer dan sekunder), dan peralatan masukan/keluaran (I/O devices) seperti printer, monitor, keyboard, mouse, dan modem. Modul I/O merupakan peralatan antarmuka (interface) bagi sistem bus atau switch sentral dan mengontrol satu atau lebih perangkat peripheral. Modul I/O tidak hanya sekedar modul penghubung, tetapi sebuah piranti yang berisi logika dalam melakukan fungsi komunikasi antara peripheral dan bus komputer.B. FUNGSI MANAJEMEN I/O
Ada beberapa alasan mengapa piranti – piranti tidak langsung dihubungkan dengan bus sistem komputer, yaitu :
- Bervariasinya metode operasi piranti peripheral, sehingga tidak praktis apabila sistem komputer herus menangani berbagai macam sisem operasi piranti peripheral tersebut.
- Kecepatan transfer data piranti peripheral umumnya lebih lambat dari pada laju transfer data pada CPU maupun memori.
- Format data dan panjang data pada piranti peripheral seringkali berbeda dengan CPU, sehingga perlu modul untuk menselaraskannya.
- Sebagai piranti antarmuka ke CPU dan memori melalui bus sistem.
- Sebagai piranti antarmuka dengan peralatan peripheral lainnya dengan menggunakan link data tertentu.
- Mengirim perintah ke perangkat I/O agar menyediakan layanan.
- Menangani interupsi peralatan I/O.
- Menangani kesalahan pada peralatan I/O.
- Memberi interface ke pemakai.
C. HIRARKI PENGELOLAAN PERANGKAT I/O
1. Interrupt Handler
Interupsi adalah suatu peristiwa yang menyebabkan eksekusi satu program ditundan dan program lain yang dieksekusi. Interrupt adalah sinyal dari peralatan luar dau permintaan dari program untuk melaksanakan suatu tugas khusus. Jika interrupt terjadi, maka program dihentikan dahulu untuk menjalankan rutin interrupt. Ketika program yang sedang berjalan tadi dihentikan, prosesor menyimpan nilai register yang berisi alamat program ke stack, dan mulei menjalankan rutin interrupt.
Secara garis besar, kita mengenal dua macam interupsi terhadap prosesor, yatu interupsi secara langsung dan interupsi melalui polling. Sekalipun caranya berbeda, akibat dari kedua cara interupsi tersebut sama.
Secara garis besar, kita mengenal dua macam interupsi terhadap prosesor, yatu interupsi secara langsung dan interupsi melalui polling. Sekalipun caranya berbeda, akibat dari kedua cara interupsi tersebut sama.
- Cara interupsi secara langsung: penghentian prosesor untuk suatu proses dapat berasal dari berbagai sumber daya di dalam sistem komputer, karena sumber daya tertentu pada sistem komputer tersebut menginterupsi kerja prosesor. Karena cara terjadinya interupsi adalah secara langsung dari sumber daya, maka kita menamakan cara interupsi ini sebagai interupsi langsung. Banyak interupsi terhadap prosesor di dalam sistem komputer termasuk ke dalam jenis interupsi langsung.
- Cara interupsi polling: selain komputer menunggu sampai diinterupsi oleh sumber daya komputer, kita mengenal pula cara interupsi sebaliknya. Pada cara interupsi ini, prakarsa penghentian kerja prosesor berasal dari prosesor atau melalui prosesor tersebut. Dalam hal ini, secara berkala prosesor akan bertanya (poll) kepada sejumlah sumber daya. Apakah ada di antara mereka yang akan memeerlukan prosesor? Jika ada, maka prosesor akan menghentikan kegiatan semulanya, serta mengalihkan kerjanya ke sumber daya tersebut. Perbedaan antara interupsi langsung dengan interupsi polling terletak pada cara mengemukakan interupsi tersebut.
Jenis-Jenis Interupsi
Dilihat dari cara kerja prosesor, tidak semua interupsi itu sama pentingnya bagi proses yang sedang dilaksanakan oleh kerja prosesor tersebut. Kalau sampai interupsi yang kurang penting ikut menginterupsi kerja prosesor, maka pelaksanaan proses itu akan menjadi lama. Karena itu biasanya SO membagi interupsi ke dalam dua jenis, yaitu:
a. Software, yaitu interrupt yang disebabkan oleh software, sering disebut dengan system call.
b. Hardware, terjadi karena adanya akse pada perangkat keras, seperti penekanan tombol keyboard atau menggerakkan mouse.
Selain untuk mengendalikan pengalihan I/O, beberapa kegunaan interupsi juga antara lain:
- Pemulihan kesalahan
- Komputer menggunakan bermacam-macam teknik untuk memastikan bahwa semua komponen perangkat keras beroperasi semestinya. Jika kesalahan terjadi, perangkat keras kontrol mendeteksi kesalahan dan memberi tahu CPU dengan mengajukan interupsi.
- Debugging
Penggunaan penting lain dari interupsi adalah sebagai penolong dalam debugging program. Debugger menggunakan interupsi untuk menyediakan dua fasilitas penting, yaitu: - Trace
- Break point.
- Komunikasi Antarprogram.
2. Device Driver
Setiap device driver menangani satu tipe peralatan. Device driver bertugas menerima permintaan abstrak perangkat lunak device independent di atasnya dan melakukan layanan sesuai permintaan itu.
Mekanisme kerja device driver:
- Menerjemahkan perintah-perintah abstrak menjadi perintah-perintah konkret.
- Begitu telah dapat ditentukan perintah-perintah yang harus diberikan ke pengendali, device driver mulai menulis ke register-register pengendali peralatan.
- Setelah operasi selesai dilakukan peralatan, device driver memeriksa kesalahan-kesalahan yang terjadi.
- Jika semua berjalan baik, device driver melewatkan data ke perangkat lunak device independent.
- Device melaporkan informasi status sebagai pelaporan kesalahan ke pemanggil.
3. Perangkat Lunak Sistem Operasi Device Independent
Fungsi utama perangkat lunak tingkat ini adalah membentuk fungsi-fungsi I/O yang berlaku untuk semua peralatan dan memberi interface seragam ke perangkat lunak tingkat pemakai.
Fungsi-fungsi yang biasa dilakukan antara lain:
· Interface seragam untuk seluruh driver-driver.
· Penamaan peralatan.
· Proteksi peralatan.
· Memberi ukuran blok peralatan agar bersifat device independent.
· Melakukan buffering.
· Alokasi penyimpanan pada block devices.
· Alokasi pelepasan dedicated devices.
· Pelaporan kesalahan
4. Buffering I/O
Buffering merupakan teknik untuk melembutkan lonjakan-lonjakan kebutuhan pengaksesan I/O secara langsung. Buffering adalah cara untuk meningkatkan efisiensi sistem operasi dan kinerja proses-proses.
Terdapat beragam cara buffering, antara lain:
a. Single Buffering
Teknik ini merupakan buffering paling sederhana. Ketika proses pemakai memberikan perintah I/O, sistem operasi menyediakan buffer bagian memori utama sistem untuk operasi. Untuk peralatan berorientasi blok, transfer masukan dibuat ke buffer sistem.
Ketika transfer selesai, proses memeindahkan blok ke ruang pemakai dan segera meminta blok lain. Teknik ini disebut reading ahead atau anticipated input. Teknik ini dilakukan dengan harapan bahwa blok tersebut akan segera diperlukan. Untuk banyak tipe komputasi, asumsi ini berlaku. Hanya akhir barisan pemrosesan maka blok yang dibaca tidak diperlukan. Pendekatan ini umumnya meningkatkan kecepatan dibanding tanpa buffering.
b. Double Buffering
Peningkatan atas single buffering dapat dibuat dengan mempunyai dua buffer sistem untuk operasi. Proses dapat transfer ke (atau dari) satu buffer sementara sistem operasi mengosongkan (atau mengisi) buffer lain. Double buffering menjamin proses tidak akan menunggu operasi I/O. Peningkatan atas single buffering diperoleh, namun harus dibayar dengan kompleksitas yang meningkat.
D. TEKNIK MANAJEMEN I/O
1. Spooling
Spooling adalah cara khusus berurusan dengan perangkat masukan/keluaran dedicated (dedicated i/o devices) pada sistem multiprogramming. Melakukan penjadwalan pemakaian I/O sistem supaya lebih efisien (antrian dsb.). Menyediakan driver untuk dapat melakukan operasi rinci untuk perangkat keras I/O tertentu. Manajemen perangkat masukan/keluaran merupakan aspek perancangan sistem operasi terluas dan kompleks karena sangat beragamnya perangkat dan aplikasinya.
2. Interrupt – Driven I/O
Teknik interrupt – driven I/O memungkinkan proses tidak membuang – buang waktu. Prosesnya adalah CPU mengeluarkan perintah I/O pada modul I/O, bersamaan perintah I/O dijalankan modul I/O maka CPU akan melakukan eksekusi perintah – perintah lainnya. Apabila modul I/O telah selesai menjalankan instruksi yang diberikan padanya 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. Cara kerja teknik interupsi di sisi modul I/O adalah modul I/O menerima perintah, misal read. Kemudian modul I/O melaksanakan perintah pembacaan dari peripheral dan meletakkan paket data ke register data modul I/O, selanjutnya modul mengeluarkan sinyal interupsi ke CPU melalui saluran kontrol. Kemudian modul menunggu datanya diminta CPU. Saat permintaan terjadi, modul meletakkan data pada bus data dan modul siap menerima perintah selanjutnya. Pengolahan interupsi saat perangkat I/O telah menyelesaikan sebuah operasi I/O adalah sebagai berikut :
- Perangkat I/O akan mengirimkan sinyal interupsi ke CPU.
- CPU menyelesaikan operasi yang sedang dijalankannya kemudian merespon interupsi.
- CPU memeriksa interupsi tersebut, kalau valid maka CPU akan mengirimkan sinyalacknowledgment ke perangkat I/O untuk menghentikan interupsinya. CPU mempersiapkan pengontrolan transfer ke routine interupsi. Hal yang dilakukan adalah menyimpan informasi yang diperlukan untuk melanjutkan operasi yang tadi dijalankan sebelum adanya interupsi. Informasi yang diperlukan berupa : (a). Status prosesor, berisi register yang dipanggil PSW (program status word). (b). Lokasi intruksi berikutnya yang akan dieksekusi. Informasi tersebut kemudian disimpan dalam stack pengontrol sistem.
- Kemudian CPU akan menyimpan PC (program counter) eksekusi sebelum interupsi ke stack pengontrol bersama informasi PSW. Selanjutnya mempersiapkan PC untuk penanganan interupsi.
- Selanjutnya CPU memproses interupsi sempai selesai.
- Apabila pengolahan interupsi selasai, CPU akan memanggil kembali informasi yang telah disimpan pada stack pengontrol untuk meneruskan operasi sebelum interupsi.
3. Direct Memory Access (DMA)
Teknik yang dijelaskan sebelumnya yaitu I/O terprogram dan Interrupt-Driven I/O memiliki kelemahan, yaitu proses yang terjadi pada modul I/O masih melibatkan CPU secara langsung. Hal ini berimplikasi pada :
· Kelajuan transfer I/O yang tergantung pada kecepatan operasi CPU.
· Kerja CPU terganggu karena adanya interupsi secara langsung.
Bertolak dari kelemahan di atas, apalagi untuk menangani transfer data bervolume besar dikembangkan teknik yang lebih baik, dikenal dengan Direct Memory Access(DMA).
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. Untuk itu DMA akan menggunakan bus bila CPU tidak menggunakannya atau DMA memaksa CPU untuk menghentikan sementara penggunaan bus. Teknik terakhir lebih umum digunakan, sering disebut cycle-stealing, karena modul DMA mengambil alih siklus bus.
Penghentian sementara penggunaan bus bukanlah bentuk interupsi, melainkan hanyalah penghentian proses sesaat yang berimplikasi hanya pada kelambatan eksekusi CPU saja.
0 komentar:
Posting Komentar