Anda di halaman 1dari 22

MK : Sistem Operasi

Materi : Manajemen Device


Pertemuan :X
Dosen : Lilis Anggraini, S.Kom., M.Kom

MANAJEMEN DEVICE
SISTEM OPERASI

1. Latar Belakang
• Termasuk tugas sistem operasi antara lain :
- Mengambil data masukan piranti input untuk diproses lebih lanjut oleh prosessor
- Memeriksa status piranti I/O. misal:printer
- Mengelola perangkat keras dan perangkat lunak dari sistem I/O
- Memberikan perintah ke perangkat I/O, menangkap interupsi dan menangani error
Menyediakan antar muka antara perangkat dengan keseluruhan perangkat
• Umumnya perlu operasi I/O bila suatu aplikasi dijalankan

2. Tugas utama komponen manajemen device


adalah mengelola beragam device ataupun peranti I/O yang berbeda karakteristiknya
dapat digunakan dengan baik oleh proses-proses, antara lain :
• Penjadwalan peranti I/O
• Buffering
• Reservasi device
• Penanganan kesalahan pengaksesan peranti I/O, dan lain-lain

3. Organisasi sistem I/O


Dapat ditinjau dari segi:
A. Organisasi fisik / perangkat keras
B. Organisasi perangkat lunak
Gambar Organisasi Sistem I/O
A. Organisasi fisik / perangkat keras
1. Organisasi Perangkat Keras
Sistem I/O pada sistem komputer dapat ditinjau dari segi organisasi fisik atau perangkat
keras maupun dari segi organisasi perangkat lunaknya. Secara fisik, organisasi sistem I/O
dibedakan menjadi:
• Piranti I/O (Device)
• Device Controller (Adapter)
• Bus I/O

Piranti I/O (Device)


Piranti-piranti I/O yang terkoneksi ke komputer memiliki karakterisitk khas sesuai dengan
fungsi dan teknologi yang digunakannya. Piranti I/O dapat berupa komponen elektris maupun
mekanik. Contoh piranti I/O seperti monitor, keyboard, mouse, printer, scanner dan lain-lain.
Organisasi Perangkat Keras Piranti I/O
➢ Karakteristik Pembeda
• Modus Transfer Data
• Metode Akses
• Jadwal Transfer
• Sharing
• Kecepatan Akses
• Modus Operasi
➢ Berdasarkan fungsionalistas:
• Piranti antarmuka pengguna
Interaksi langsung dengan pengguna.
Contoh: keyboard,mouse, monitor, printer
• Piranti transmisi
Mentransmisikan data ke perangkat komunikasi lainnya.
Contoh: NIC dan modem
• Piranti penyimpanan data
Untuk penyimpanan data
Contoh: hardisk, CD-ROM, flashdisk
Device Controller (Adapter)
Supaya piranti-piranti I/O dapat dikontrol dan berkomunikasi dengan sistem komputer,
maka harus ada device controller yang berfungsi sebagai antarmuka antara piranti I/O dengan
sistem internal komputer. Device controller ini merupakan sirkuit digital yang berfungsi
mengontrol kerja komponen mekanik ataupun elektris lainnya dari piranti I/O.

Organisasi Perangkat Keras Device Controller


• Sebagai pengendali digital atas piranti I/O
• Bertanggung jawab atas komunikasi data antara piranti I/O dengan sistem internal
komputer
• Dapat berupa kartu rangkaian digital atau chipset yang biasanya terletak di mainboard
• Graphics controller, SCSI controller, serial & paralel port controller, dll

Bus I/O
Bus I/O terdiri atas bus data, alamat dan kontrol yang berfungsi menghubungkan device
controller dengan elemen internal komputer seperti processor dan memory. Selain itu terdapat
juga bus I/O lanjutan atau ekspansi seperti bus parallel, serial, PS2 yang digunakan untuk
berkomunikasi dengan piranti I/O yang bersifat mudah dipindah-pindahkan dan umumnya
terletak di luar kotak komputer.

Organisasi Perangkat Keras Bus I/O


• Terdiri atas bus data, alamat dan kontrol
• Berfungsi menghubungkan device controller dengan elemen internal komputer seperti
memori dan prosesor.
• Terdapat juga bus I/O lanjutan atau ekspansi yang bersifat mudah dipindah-pindah
(movable) dan umumnya terletak diluar kotak komputer. Contoh: bus parallel, serial,
PS2.

2. Klasifikasi Perangkat I/O


Perangkat masukan/keluaran merupakan komponen yang paling bnyak jenisnya dan
dapat di kelompokan dengan beragam kriteria. antara lain:
1. Berdasarkan sasaran komunikasi
2. Berdasarkan sifat aliran datanya.

1. Berdasarkan Sasaran Komunikasi


• Peralatan yang terbaca oleh manusia (Human Readable Machine), yaitu, peralatan
yang cocok untuk komunikasi dengan user. Contohnya, Video Display Terminal (VDT)
yang terdiri dari layar, keyboard, dan mouse.
• Peralatan yang terbaca oleh mesin (Machine Readable Machine), yaitu peralatan
yang cocok untuk komunikasi dengan peralatan elektronik. Contohnya disk dan tape,
sensor, controller.
• Perangkat untuk Komunikasi, yaitu, peralatan yang cocok untuk komunikasi dengan
peralatan-peralatan jarak jauh. Contohnya modem.
Terdapat perbedaan-perbedaan besar antar kelas peralatan tersebut. diantaranya
mengenai:
• Data rate
• Aplikasi
• Kompleksitas pengendalian
• Unit yang ditransfer
• Representasi data
• Kondisi-kondisi kesalahan
Perbedaan tersebut membuat peralatan I/O perlu adanya suatu pendekatan yang seragam
dan konsisten baik dari segi OS maupun Prosessing.
2. Berdasarkan Sifat Aliran Datanya
a. Perangkat berorientasi blok (block-oriented devices)
Peralatan untuk menyimpan maupun menukarkan informasi sebagai blok –
blok berukuran tetap. Tiap blok mempunyai alamat tersendiri. Ukuran blok dapat
beragam, mulai dari 128byte sampai 1024 byte, tergantung peralatannya.
Ciri utama perangkat ini adalah memungkinkan membaca atau menulis blok–
blok secara independen, yaitu dapat membaca atau menulis sembarang blok tanpa
harus melewati blok- blok lain. Contohnya : disk, tape, CD ROM, Optical disk.

b. Perangkat berorientasi aliran karakter (character-oriented devices)


Peralatan mentransfer dari dan ke peralatan berupa aliran karakter.
Contohnya : terminals, line printer, punch card, network interfaces, pita kertas,
mouse.
Perangkat yang tidak termasuk katagori di atas yaitu : clock, memory mapped screen,
sensor, mouse, dan sebagainya.

3. Pengalamatan Piranti I/O


Untuk mengakses piranti I/O, yaitu membaca dan menulis data ke piranti I/O, maka
setiap piranti I/O butuh diberi alamat khusus. Sesungguhnya yang diberi alamat adalah
register-register pada device controllernya. Ada dua macam metode untuk memberi alamat
pada piranti I/O:
a. Direct-Mapped I/O Adressing
Pada skema pengalamatan ini, piranti I/O memiliki ruang alamat yang terpisah dari
alamat memory.
b. Memory-Mapped I/O Addressing
Pada skema pengalamatan ini, piranti I/O memiliki alamat yang merupakan bagian
dari ruang alamat memory secara global.
4. Skema Perangkat I/O

B. Organisasi perangkat lunak

SUBSTANSI :Secara umum organisasi perangkat lunak sistem I/O terdiri atas lapisan:
1. Lapisan Interrupt Handler, menangani terjadinya interupsi à dialihkan ke interupt
handler
2. Lapisan device driver, mengimplementasikan operasi dari masing-masing device
controller
3. Lapisan subsistem I/O atau kernel I/O, menyediakan antarmuka atau fungsi I/O bagi
SO atau aplikasi
4. Lapisan pustaka I/O aplikasi, mengimplementasikan pustaka pengaksesan I/O atau API
(Application Programming Interface) bagi aplikasi untuk melakukan operasi I/O

Tujuan dibuatnya perancangan manajemen perangkat lunak I/O adalah untuk hal-hal sebagai
berikut:
➢ Penamaan yang seragam (uniform naming). Nama berkas atau peralatan adalah string
atau integer, tidak tergantung pada peralatan sama sekali.
➢ Penanganan kesalahan (error handling). Umumnya penanganan kesalahan ditangani
sedekat mungkin dengan perangkat keras.
➢ Transfer sinkron vs asinkron Kebanyakan fisik I/O adalah asinkron. Pemroses mulai
transfer dan mengabaikannya untuk melakukan kerja lain sampai interupsi tiba.
Programprogram pemakai sangat lebih mudah ditulis jika operasi-operasi I/O
berorientasi blok. Setelah perintah read, program kemudian secara otomatis ditunda
sampai data tersedia di buffer.
➢ Shareable vs dedicated Beberapa peralatan dapat dipakai bersama seperti disk, tapi ada
juga peralatan yang harus hanya satu pemakai yang dibolehkan memakainya pada satu
saat. Contohnya peralatan yang harus dedicated misalnya printer.

INTERRUPT HANDLER
Interupsi adalah suatu peristiwa yang menyebabkan eksekusi satu program ditunda dan
program lain yang dieksekusi. 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 mulai menjalankan rutin
interrupt.
a. Mekanisme Dasar Interupsi
Ketika CPU mendeteksi bahwa sebuah controller telah mengirimkan sebuah sinyal ke
interrupt request line (membangkitkan sebuah interupsi), CPU kemudian menjawab interupsi
tersebut (juga disebut menangkap interupsi) dengan menyimpan beberapa informasi
mengenai state terkini CPU, contohnya nilai instruksi pointer, dan memanggil interrupt
handler agar handler tersebut dapat melayani controller atau alat yang mengirim interupsi
tersebut.

b. Fitur Tambahan pada Komputer Modern


Pada arsitektur komputer modern, tiga fitur disediakan oleh CPU dan interrupt
controller (pada perangkat keras) untuk dapat menangani interrupsi dengan lebih bagus.
Fitur-fitur ini antara lain adalah kemampuan menghambat sebuah proses interrupt handling
selama prosesi berada dalam critical state, efisiensi penanganan interupsi sehingga tidak perlu
dilakukan polling untuk mencari device yang mengirimkan interupsi, dan fitur yang ketiga
adalah adanya sebuah konsep multilevel interupsi sedemikian rupa sehingga terdapat
prioritas dalam penanganan interupsi (diimplementasikan dengan interrupt priority level
system).
c. Jenis-Jenis Interupsi
Dilihat dari cara kerja prosesor, tidak semua interupsi itu sama pentingnya bagi proses
yang sedang dilaksanakan oleh kerja prosesor tsb. 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:
1. Software, yaitu interrupt yang disebabkan oleh software, sering disebut dengan system
call.
2. Hardware, Terjadi karena adanya akse pada perangkat keras, seperti penekanan tombol
keyboard atau menggerakkan mouse.

d. Interrupt Request Line


Pada peranti keras CPU terdapat kabel yang disebut interrupt request line, kebanyakan
CPU memiliki dua macam interrupt request line, yaitu nonmaskable interrupt dan maskable
interrupt. Maskable interrupt dapat dimatikan/ dihentikan oleh CPU sebelum pengeksekusian
deretan critical instruction (critical instruction sequence) yang tidak boleh diinterupsi.
Biasanya, interrupt jenis ini digunakan oleh device controller untuk meminta pelayanan CPU.

e. Interrupt Vector dan Interrupt Chaining


Sebuah mekanisme interupsi akan menerima alamat interrupt handling routine yang
spesifik dari sebuah set, pada kebanyakan arsitektur komputer yang ada sekarang ini, alamat
ini biasanya berupa sekumpulan bilangan yang menyatakan offset pada sebuah tabel (biasa
disebut interrupt vector). Tabel ini menyimpan alamat-alamat interrupt handler spesifik di
dalam memori. Keuntungan dari pemakaian vektor adalah untuk mengurangi kebutuhan akan
sebuah interrupt handler yang harus mencari semua kemungkinan sumber interupsi untuk
menemukan pengirim interupsi. Akan tetapi, interrupt vector memiliki hambatan karena pada
kenyataannya, komputer yang ada memiliki device (dan interrupt handler) yang lebih banyak
dibandingkan dengan jumlah alamat pada interrupt vector. Karena itulah, digunakanlah teknik
interrupt chaining dimana setiap elemen dari interrupt vector menunjuk/ merujuk pada
elemen pertama dari sebuah daftar interrupt handler. Dengan teknik ini, overhead yang
dihasilkan oleh besarnya ukuran tabel dan inefisiensi dari penggunaan sebuah interrupt
handler (fitur pada CPU yang telah disebutkan sebelumnya) dapat dikurangi, sehingga
keduanya menjadi kurang lebih seimbang.

f. Penyebab Interupsi
Interupsi dapat disebabkan berbagai hal, antara lain exception, page fault, interupsi
yang dikirimkan oleh device controllers, dan system call Exception adalah suatu kondisi
dimana terjadi sesuatu/ dari sebuah operasi didapat hasil tertentu yang dianggap khusus
sehingga harus mendapat perhatian lebih, contoh nya pembagian dengan 0 (nol),
pengaksesan alamat memori yang restricted atau bahkan tidak valid, dan lain-lain. System call
adalah sebuah fungsi pada aplikasi (perangkat lunak) yang dapat mengeksekusikan instruksi
khusus berupa software interrupt atau trap.

g. Kegunaan interupsi
1. 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.
2. Debuggin. Penggunaan penting lain dari interupsi adalah sebagai penolong dalam
debugging program. Debugging merupakan sebuah metode yang dilakukan oleh para
pemrogram untuk mencari dan mengurangi bug , atau kerusakan di dalam sebuah
perangkat keras sehingga perangkat tersebut bekerja sesuai dengan harapan.
3. Komunikasi Antarprogram. Perintah interupsi perangkat lunak digunakan oleh sistem
operasi untuk berkomunikasi dengan dan mengontrol eksekusi program lain.

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 :
1. Menerjemahkan perintah-perintah abstrak menjadi perintah-perintah konkret.
2. Begitu telah dapat ditentukan perintah-perintah yang harus diberikan ke pengendali,
device driver mulai menulis ke register-register pengendali peralatan.
3. Setelah operasi selesai dilakukan peralatan, device driver memeriksa kesalahan-kesalahan
yang terjadi.
4. Jika semua berjalan baik, device driver melewatkan data ke perangkat lunak device
independent.
5. Device melaporkan informasi status sebagai pelaporan kesalahan ke pemanggil.

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

INTERFACE 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. Dengan adanya kelas-kelas yang umum ini, maka akan lebih mudah untuk
membuat fungsi-fungsi standar (interface) untuk mengaksesnya. Lalu kemudian adanya
device driver pada masing-masing peralatan I/O, berfungsi untuk enkapsulasi perbedaan-
perbedaan yang ada dari masing-masing anggota kelas-kelas yang umum tadi. Device driver
mengenkapsulasi tiap -tiap peralatan I/O ke dalam masing-masing 1 kelas yang umum tadi
(interface standar).
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. Karena subsistem I/O independen
dari hardware maka hal ini akan sangat menguntungkan dari segi pengembangan hardware.
Tidak perlu menunggu vendor sistem operasi untuk mengeluarkan support code untuk
hardware-hardware baru yang akan dikeluarkan oleh vendor hardware.
KERNEL I/O SUBSYSTEM
Kernel menyediakan banyak service yang berhubungan dengan I/O. Pada bagian ini, kita
akan mendeskripsikan beberapa service yang disediakan oleh kernel I/O subsystem, dan kita
akan membahas bagaimana caranya membuat infrastruktur hardware dan device-driver.
Service yang akan kita bahas adalah I/O scheduling, buffering, caching, spooling, reservasi
device, error handling.

a. 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.
Satu cara untuk meningkatkan efisiensi I/O subsistem dari sebuah komputer adalah dengan
mengatur operasi I/O. Cara lain adalah dengan menggunakan tempat penyimpanan pada
memori utama atau pada disk, melalui teknik yang disebut buffering, caching, dan spooling.

b. Buffering
Buffer adalah area memori yang menyimpan data ketika mereka sedang dipindahkan
antara dua device atau antara device dan aplikasi. Sedangkan Buffering merupakan proses
melembutkan lonjakan-lonjakan kebutuhan pengaksesan masukan/keluaran. Buffering
meningkatkan efisien sistem operasi dan kinerja proses.
Buffering ada 2 macam:
1. Single buffering
Single buffering merupakan teknik paling sederhana. Ketika proses memberi perintah
untuk perangkat masukan/keluaran, sistem operasi menyediakan buffer memori utama
milik sistem operasi untuk operasi.
2. Double buffering.
Peningkatan dapat dibuat dengan dua buffer sistem.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.
c. Caching
Sebuah cache adalah daerah memori yang cepat yang berisikan data kopian. Akses ke
sebuah kopian yang di-cached lebih efisien daripada akses ke data asli. Sebagai contoh,
instruksi-instruksi dari proses yang sedang dijalankan disimpan ke dalam disk, dan ter-cached
di dalam memori physical, dan kemudian dicopy lagi ke dalam cache secondary and primary
dari CPU. Perbedaan antara sebuah buffer dan ache adalah buffer dapat menyimpan satu-
satunya informasi datanya sedangkan sebuah cache secara definisi hanya menyimpan sebuah
data dari sebuah tempat untuk dapat diakses lebih cepat.
Caching dan buffering adalah dua fungsi yang berbeda, tetapi terkadang sebuah daerah
memori dapat digunakan untuk keduanya. sebagai contoh, untuk menghemat copy semantics
dan membuat scheduling I/O menjadi efisien, sistem operasi menggunakan buffer pada
memori utama untuk menyimpan data.
Buffer ini juga digunakan sebagai cache, untuk meningkatkan efisiensi I/O untuk file yang
digunakan secara bersama-sama oleh beberapa aplikasi, atau yang sedang dibaca dan ditulis
secara berulang-ulang. Ketika kernel menerima sebuah permintaan file I/O, kernel tersebut
mengakses buffer cacheuntuk melihat apakah daerah memori tersebut sudah tersedia dalam
memori utama. Jika iya, sebuah physical disk I/O dapat dihindari atau tidak dipakai. penulisan
disk juga terakumulasi ke dalam buffer cache selama beberapa detik, jadi transfer yang besar
akan dikumpulkan untuk mengefisiensikan schedule penulisan. Cara ini akan menunda
penulisan untuk meningkatkan efisiensi I/O akan dibahas pada bagian Remote File Access.

d. Spooling dan Reservasi Device


Sebuah spool adalah sebuah buffer yang menyimpan output untuk sebuah device,
seperti printer, yang tidak dapat menerima interleaved data streams. Walau pun printer
hanya dapat melayani satu pekerjaan pada waktu yang sama, beberapa aplikasi dapat
meminta printer untuk mencetak, tanpa harus mendapatkan hasil output mereka tercetak
secara bercampur.
Sistem operasi akan menyelesaikan masalah ini dengan meng-intercept semua output
kepada printer. Tiap output aplikasi sudah di-spooled ke disk file yang berbeda. Ketika sebuah
aplikasi selesai mengeprint, sistem spooling akan melanjutkan ke antrian berikutnya.
Di dalam beberapa sistem operasi, spooling ditangani oleh sebuah sistem proses
daemon. Pada sistem operasi yang lain, sistem ini ditangani oleh in-kernel thread. Pada kedua
kasus, sistem operasi menyediakan interfacekontrol yang membuat users and system
administrator dapat menampilkan antrian tersebut, untuk mengenyahkan antrian-antrian
yang tidak diinginkan sebelum mulai di-print.
Untuk beberapa device, seperti drive tapedan printer tidak dapat me-multiplex permintaan
I/O dari beberapa aplikasi. Spooling merupakan salah satu cara untuk mengatasi masalah ini.
Cara lain adalah dengan membagi koordinasi untuk multiple concurrent ini.
Beberapa sistem operasi menyediakan dukungan untuk akses device secara eksklusif, dengan
mengalokasikan proses ke device idle dan membuang device yang sudah tidak diperlukan lagi.
Sistem operasi lainnya memaksakan limit suatu file untuk menangani device ini. Banyak
sistem operasi menyediakan fungsi yang membuat proses untuk menangani koordinat
exclusive akses diantara mereka sendiri.

e. Error Handling
Sebuah sistem operasi yang menggunakan protected memory dapat menjaga banyak
kemungkinan error akibat hardware mau pun aplikasi. Devices dan transfer I/O dapat gagal
dalam banyak cara, bisa karena alasan transient, seperti overloaded pada network, mau pun
alasan permanen yang seperti kerusakan yang terjadi pada disk controller. Sistem operasi
seringkali dapat mengkompensasikan untuk kesalahan transient. Seperti, sebuah kesalahan
baca pada disk akan mengakibatkan pembacaan ulang kembali dan sebuah kesalahan
pengiriman pada network akan mengakibatkan pengiriman ulang apabila protokolnya
diketahui. Akan tetapi untuk kesalahan permanent, sistem operasi pada umumnya tidak akan
bisa mengembalikan situasi seperti semula.

f. Kernel Data Structure


Kernel membutuhkan informasi state tentang penggunakan komponen I/O. Kernel
menggunakan banyak struktur yang mirip untuk melacak koneksi jaringan, komunikasi
karakter-device, dan aktivitas I/O lainnya.
UNIX menyediakan akses sistem file untuk beberapa entiti, seperti file user, raw devices,
dan alamat tempat proses. Walau pun tiap entiti ini didukung sebuah operasi baca, semantics-
nya berbeda untuk tiap entiti. Seperti untuk membaca file user, kernel perlu memeriksa
buffer cache sebelum memutuskan apakah akan melaksanakan I/O disk. Untuk membaca
sebuah raw disk, kernel perlu untuk memastikan bahwa ukuran permintaan adalah kelipatan
dari ukuran sektor disk, dan masih terdapat di dalam batas sektor. Untuk memproses citra,
cukup perlu untuk mengkopi data ke dalam memori. UNIX mengkapsulasikan perbedaan-
perbedaan ini di dalam struktur yang uniform dengan menggunakan teknik object oriented.
Beberapa sistem operasi bahkan menggunakan metode object oriented secara lebih extensif.
Sebagai contoh, Windows NT menggunakan implementasi message-passing untuk I/O. Sebuah
permintaan I/O akan dikonversikan ke sebuah pesan yang dikirim melalui kernel kepada I/O
manager dan kemudian ke device driver, yang masing-masing bisa mengubah isi pesan. Untuk
output, isi message adalah data yang akan ditulis. Untuk input, message berisikan buffer
untuk menerima data. Pendekatan message-passing ini dapat menambah overhead, dengan
perbandingan dengan teknik prosedural yang men-share struktur data, tetapi akan
mensederhanakan struktur dan design dari sistem I/O tersebut dan menambah fleksibilitas.
Kesimpulannya, subsistem I/O mengkoordinasi kumpulan-kumpulan service yang
banyak sekali, yang tersedia dari aplikasi mau pun bagian lain dari kernel. Subsistem I/O
mengawasi:
• Manajemen nama untuk file dan device.
• Kontrol akses untuk file dan device.
• Kontrol operasi, contoh: model yang tidak dapat dikenali.
• Alokasi tempat sistem file.\
• Alokasi device.
• Buffering, caching, spooling.
• I/O scheduling
• Mengawasi status device, error handling, dan kesalahan dalam recovery.
• Konfigurasi dan utilisasi driver device.
SUMBER REFERENSI

http://blog.unnes.ac.id/atikaisma/2016/02/19/organisasi-perangkat-lunak/
https://bundet.com/d/1586-pengenalan-organisasi-sistem-io
https://id.wikipedia.org/wiki/I/O
https://id.wikipedia.org/wiki/Unit_Pemroses_Sentral

Anda mungkin juga menyukai