Penjadwalan Prosesor
Penjadwalan Prosesor
- Hallo sobat blogger hari ini saya akan share artikel yang berhubungan
dengan sistem operasi windows, dalam artikel ini saya akan menjelaskan
materi tentang Penjadwalan Prosesor dari Pengertian Penjadwalan,
Strategi Penjadwalan, Aplikasi Task Schelduler untuk penjadwalan sampai
Algoritma Penjadwalan. Ok langsung saja yuk kita simak artikel ini samai
akhir :)
Penjadwalan merupakan kumpulan kebijaksanaan dan
mekanisme di sistem operasi yang berkaitan dengan urutan kerja yang dilakukan
sistem komputer. Penjadwalan bertugas memutuskan proses yang harus berjalan,
kapan dan selama berapa lama proses berjalan.
Kriteria yang digunakan untuk mengukur kualitas penjadwalan proses :
- Fairness
atau pelayanan yang adil untuk semua pekerjaan
- Throughput
atau memaksimumkan throughput. Throughput
adalah jumlah pekerjaan yang dapat diselesaikan dalam satu unit waktu.
- Efficiency
atau memaksimumkan pemakaian prosesor.
- Respone
time atau meminimalkan respone time
- Meminimalkan
Turn arround time. Turn arround time adalah waktu yang
dihabiskan dari saat program atau job mulai masuk ke system sampai proses
diselesaikan sistem.
Jangka penjadwalan adalah merupakan interval atau range waktu
dimana sistem operasi melalukan. Jangka penjadwalan proses dibedakan menjadi
tiga:
- Penjadwalan
jangka pendek atau short term scheduling / low level
scheduling, yaitu mengurus masuknya antrian siap ke prosesor serta antrian
siap ke alat peripheral I/O, yang mengurus prioritas dan preempsi.
- Penjadwalan
jangka medium atau medium term scheduling / intermediate
level scheduling, yaitu mengurus terhadap proses yang dikeluarkan dari
prosesor yang belum rampung dikerjakan dan melanjutkan pekerjaan proses
tersebut di prosesor.
- Penjadwalan
jangka panjang atau long term scheduling / high level
scheduling, yaitu mengurus masuknya pekerjaan baru berupa penentuan
pekerjaan baru mana yang boleh diterima dan tugas disini diubah menjadi
proses.
MANAJEMEN
MEMORI SISTEM OPERASI
Manajemen
Memori
Memori adalah pusat dari operasi pada sistem komputer modern, berfungsi sebagai
tempat penyimpanan informasi yang harus diatur dan dijaga sebaik-baiknya.
Memori adalah array besar dari word atau byte, yang disebut alamat. CPU
mengambil instruksi dari memory berdasarkan nilai dari program counter.
Sedangkan manajemen memori adalah suatu kegiatan untuk mengelola memori
komputer. Proses ini menyediakan cara mengalokasikan memori untuk proses atas
permintaan mereka, membebaskan untuk digunakan kembali ketika tidak lagi
diperlukan serta menjaga alokasi ruang memori bagi proses. Pengelolaan memori
utama sangat penting untuk sistem komputer, penting untuk memproses dan
fasilitas masukan/keluaran secara efisien, sehingga memori dapat menampung
sebanyak mungkin proses dan sebagai upaya agar pemogram atau proses tidak
dibatasi kapasitas memori fisik di sistem komputer.
a. Jenis Memori
• Memori Kerja
- ROM/PROM/EPROM/EEPROM
- RAM
- Cache memory
• Memori Dukung
- Floppy
- Harddisk
- CD
b. Fungsi manajemen memori :
Manajemen memori merupakan salah satu bagian terpenting dalam sistem operasi.
Memori perlu dikelola sebaik-baiknya agar :
1. Utilitas CPU meningkat.
2. Data dan instruksi dapat diakses dengan cepat oleh CPU.
3. Tercapai efisiensi dalam pemakaian memori yang terbatas.
4. Transfer data dari/ke memori utama ke/dari CPU dapat lebih efisien.
5. Mengelola informasi yang dipakai dan tidak dipakai.
6. Mengalokasikan memori ke proses yang memerlukan.
7. Mendealokasikan memori dari proses telah selesai.
8. Mengelola swapping atau paging antara memori utama dan disk.
1. Isi Memori
Instruksi eksekusi yang umum, contohnya, pertama mengambil instruksi dari
memori. Instruksi dikodekan dan mungkin mengambil operand dari memory. Setelah
instruksi dieksekusi pada operand, hasilnya ada yang dikirim kembali ke memory.
Sebagai catatan, unit memory hanya merupakan deretan alamat memory; tanpa tahu
bagaimana membangkitkan (instruction counter, indexing, indirection, literal
address dan lainnya) atau untuk apa (instruksi atau data). Oleh karena itu,
kita dapat mengabaikan bagaimana alamat memori dibangkitkan oleh program, yang
lebih menarik bagaimana deretan alamat memori dibangkitkan oleh program yang
sedang berjalan.
a. Pengikatan Alamat (Address Binding)
Pengikatan alamat adalah cara instruksi dan data (yang berada di disk sebagai
file yang dapat dieksekusi) dipetakan ke alamat memori. Sebagian besar sistem
memperbolehkan sebuah proses user (user process) untuk meletakkan di sembarang
tempat dari memori fisik. Sehingga, meskipun alamat dari komputer dimulai pada
00000, alamat pertama dari proses user tidak perlu harus dimulai 00000.
Instruksi pengikatan instruksi dan data ke alamat memori dapat dilakukan pada
saat :
o Compile time
Jika lokasi memori diketahui sejak awal, kode absolut dapat dibangkitkan,
apabila terjadi perubahan alamat awal harus dilakukan kompilasi ulang.
o Load time
Harus membangkitkan kode relokasi jika lokasi memori tidak diketahui pada saat
waktu kompilasi.
o Execution time
Pengikatan ditunda sampai waktu eksekusi jika proses dapat dipindahkan selama
eksekusi dari satu segmen memori ke segmen memori lain.
b. Dinamic Loading
Untuk memperoleh utilitas ruang memori, dapat menggunakan dynamic loading.
Dengan dynamic loading, sebuah rutin tidak disimpan di memori sampai dipanggil.
Semua rutin disimpan pada disk dalam format relocatable load. Mekanisme dari
dynamic loading adalah program utama di-load dahulu dan dieksekusi. Bila suatu
routine perlu memanggil routine lain, routine yang dipanggil lebih dahulu
diperiksa apakah rutin yang dipanggil sudah di-load. Jika tidak, relocatable
linking loader dipanggil untuk me-load rutin yg diminta ke memori dan meng-ubah
tabel alamat.
Keuntungan dari dynamic loading adalah rutin yang tidak digunakan tidak pernah
di-load. Skema ini lebih berguna untuk kode dalam jumlah besar diperlukan untuk
menangani kasus-kasus yang jarang terjadi seperti error routine. Dinamic
loading tidak memerlukan dukungan khusus dari sistem operasi.
c. Dinamic
Linking
Sebagian besar sistem operasi hanya men-support static linking, dimana sistem
library language diperlakukan seperti obyek modul yang lain dan dikombinasikan
dengan loader ke dalam binary program image. Dinamic linking biasanya digunakan
dengan sistem library, seperti language subroutine library. Tanpa fasilitas
ini, semua program pada sistem perlu mempunyai copy dari library language di
dalam executable image. Bagaimanapun, tidak seperti dynamic loading, dynamic linking
membutuhkan beberapa dukungan dari sistem operasi
d. Overlay
Sebuah proses dapat lebih besar daripada jumlah memori yang dialokasikan untuk
proses, teknik overlay biasanya digunakan untuk kasus ini. Teknik Overlay
biasanya digunakan untuk memungkinkan sebuah proses mempunyai jumlah yang lebih
besar dari memori fisik daripada alokasi memori yang diperuntukkan. Overlay
tidak membutuhkan dukungan khusus dari sistem operasi. User dapat
mengimplementasikannya secara lengkap menggunakan struktur file sederhana,
membaca dari file ke memori dan meloncat ke memori dan mengeksekusi instruksi
read yang lebih baru.
2. Ruang Alamat Logika Dan Ruang Alamat Fisik
Alamat yang
dibangkitkan oleh CPU disebut alamat logika (logical address) dimana alamat
terlihat sebagai uni memory yang disebut alamat fisik (physical address).
Tujuan utama manajemen memori adalah konsep meletakkan ruang alamat logika ke
ruang alamat fisik. Hasil skema waktu kompilasi dan waktu pengikatan alamat
pada alamat logika dan alamat memori adalah sama. Tetapi hasil skema waktu
pengikatan alamat waktu eksekusi berbeda. dalam hal ini, alamat logika disebut
dengan alamat maya (virtual address). Himpunan dari semua alamat logika yang
dibangkitkan oleh program disebut dengan ruang alamat logika (logical address
space); himpunan dari semua alamat fisik yang berhubungan dengan alamat logika
disebut dengan ruang alamat fisik (physical address space). Memory Manajement
Unit (MMU) adalah perangkat keras yang memetakan alamat virtual ke alamat
fisik. Pada skema MMU, nilai register relokasi ditambahkan ke setiap alamat
yang dibangkitkan oleh proses user pada waktu dikirim ke memori.
3. Swapping
Swapping merupakan pemindahan proses dari memori utama ke disk dan kembali
lagi. Sebuah proses harus berada di memori untuk dieksekusi. Proses juga dapat
ditukar (swap) sementara keluar memori ke backing store dan kemudian dibawa
kembali ke memori untuk melanjutkan eksekusi. Backing store berupa disk besar
dengan kecepatan tinggi yang cukup untuk meletakkan copy dari semua memory
image untuk semua user, sistem juga harus menyediakan akses langsung ke memory
image tersebut.
4. Alokasi
Berurutan
Memori utama biasanya dibagi ke dalam dua partisi yaitu untuk
o Sistem operasi biasanya diletakkan pada alamat memori rendah dengan vektor
interupsi
o Proses user yang diletakkan pada alamat memori tinggi.
Alokasi proses user pada memori berupa single partition allocation atau
multiple partition allocation.
a. Single Partition Allocation
Pada single partition allocation diasumsikan sistem operasi ditempatkan di
memori rendah dan proses user dieksekusi di memori tinggi. Kode dan data sistem
operasi harus diproteksi dari perubahan tak terduga oleh user proses.
b. Multiple Partition Allocation
Pada multiple partition allocation, mengijinkan memori user dialokasikan untuk
proses yang berbeda yang berada di antrian input (input queue) yang menunggu
dibawa ke memori. Terdapat dua skema yaitu partisi tetap (fixed partition)
dimana memori dibagi dalam sejumlah partisi tetap dan setiap partisi berisi
tepat satu proses. Jumlah partisi terbatas pada tingkat multiprogramming.
Digunakan oleh IBM OS/360 yang disebut Multiprogramming with a Fixed number of
Task (MFT). Skema yang kedua adalah partisi dinamis (variable partition)
merupakan MFT yang digeneralisasi yang disebut Multiprogramming with a Variable
number of Tasks (MVT).
c. Fragmentasi
Fragmentasi Eksternal terjadi pada situasi dimana terdapat cukup ruang memori
total untuk memenuhi permintaan, tetapi tidak dapat langsung dialokasikan karena
tidak berurutan. Fragmentasi eksternal dilakukan pada algoritma alokasi
dinamis, terutama strategi first-fit dan best-fit. Fragmentasi Internal terjadi
pada situasi dimana memori yang dialokasikan lebih besar dari pada memori yang
diminta tetapi untuk satu partisi tertentu hanya berukuran kecil sehingga tidak
digunakan.
5. Paging
a. Konsep Dasar Paging
Paging merupakan kemungkinan solusi untuk permasalahan fragmentasi eksternal
dimana ruang alamat logika tidak berurutan; mengijinkan sebuah proses dialokasikan
pada memori fisik yang terakhir tersedia. Memori fisik dibagi ke dalam
blok-blok ukuran tetap yang disebut frame.
b. Implementasi Sistem Paging
Setiap sistem operasi mempunyai metode sendiri untuk menyimpan tabel page.
Beberapa sistem operasi mengalokasikan sebuah tabel page untuk setiap proses.
Pointer ke tabel page disimpan dengan nilai register lainnya dari PCB. Pada
dasarnya terdapat 3 metode yang berbeda untuk implementasi tabel page :
• Tabel page diimplementasikan sebagai kumpulan dari “dedicated” register.
Register berupa rangkaian logika berkecepatan sangat tinggi untuk efisiensi
translasi alamat paging.
• Tabel page disimpan pada main memori dan menggunakan page table base registe”
(PTBR) untuk menunjuk ke tabel page yang disimpan di main memori. Penggunakan
memori untuk mengimplementasikan tabel page akan memungkinkan tabel page sangat
besar (sekitar 1 juta entry).
• Menggunakan perangkat keras cache yang khusus, kecil dan cepat yang disebut
associative register atau translation look-aside buffers (TLBs). Merupakan
solusi standar untuk permasalahan penggunaan memori untuk implementasi tabel
page.
c. Proteksi
Pada model page, proteksi memori menggunakan bit proteksi yang diasosiasikan
untuk setiap frame. Biasanya bit proteksi disimpan pada tabel page. Satu bit
mendifinisikan satu page untuk “read and write” atau “read-only”. Setiap acuan
ke memori melalui tabel page untuk menemukan nomor frame yang benar. Level
proteksi yang lebih baik dapat dicapai dengan menambah jumlah bit yang
digunakan.
d. Multilevel Paging
Model multilevel paging digunakan pada sistem yang mempunyai ruang alamat
logika yang sangat besar yaitu antara 232 s/d 264. Pada sistem ini, tabel page
akan menjadi sangat besar. Misalnya untuk sistem dengan ruang alamat logika 32
bit dan ukuran page 4K byte, maka tabel page berisi 1 juta entry (232 / 212).
Solusinya yaitu dengan melakukan partisi tabel ke beberapa beberapa bagian yang
lebih kecil.
e. Shared Page
Pada skema paging, dimungkinkan untuk sharing kode umum. Bentuk ini penting
terutama pada lingkungan time sharing. Satu copy read-only dibagi ke beberapa
proses (misalnya editor teks, compiler dan sistem window). Kode yang dibagi
harus berada pada lokasi ruang alamat logika yang sama untuk semua proses.
6. Segmentasi
Segmentasi
adalah skema manajemen memori yang memungkinkan user untuk melihat memori
tersebut. Ruang alamat logika adalah kumpulan segmen. Setiap segmen mempunyai
nama dan panjang. Spesifikasi alamat berupa nama segmen dan offset. Segment
diberi nomor dan disebut dengan nomor segmen (bukan nama segmen) atau segment
number. Segmen dibentuk secara otomatis oleh compiler.
a. Konsep Dasar Segmentasi
Konsep segmentasi adalah user atau programmer tidak memikirkan sejumlah rutin
program yang dipetakan ke main memori sebagai array linier dalam byte tetapi
memori dilihat sebagai kumpulan segmen dengan ukuran berbeda-beda, tidak perlu
berurutan diantara segment tersebut. Sebuah program adalah kumpulan segmen.
Suatu segmen adalah unit logika seperti program utama, prosedur, fungsi,
metode, obyek, variabel lokal, variabel global, blok umum, stack, tabel simbol,
array dan lain-lain
.
b. Arsitektur Segmentasi
Alamat logika terdiri dari dua bagian yaitu nomor segmen (s) dan offset (d)
yang dituliskan dengan .
Pemetaan alamat logika ke alamat fisik menggunakan tabel segmen (segment
table), terdiri dari :
o Segmen basis (base) berisi alamat fisik awal
o Segmen limit merupakan panjang segmen Seperti tabel page, tabel segmen dapat
berupa register atau memori berkecepatan tinggi.
o Segment-table base register (STBR) digunakan untuk menyimpan alamat yang
menunjuk ke segment table.
o Segment-table length register (STLR) digunakan untuk menyimpan nilai jumlah
segmen yang digunakan program.
o Untuk alamat logika (s, d), pertama diperiksa apakah segment number s legal
(s < STLR), kemudian tambahkan segment number ke STBR, alamat hasil (STBR +
s) ke memori dari segment table.
c. Proteksi dan Sharing
Proteksi bit dapat diletakkan pada tabel segmen. Segmen instruksi dapat
diproteksi sebagai segmen read-only atau execute only, segmen data dapat
diproteksi sebagai segmen read-write. Pemetaan pada perangkat keras memory akan
memeriksa bit proteksi untuk mencegah akses yang illegal.
MANAJEMEN I/O
Sering disebut device manager. Menyediakan “device driver” yang umum
sehingga operasi I/O dapat seragam (membuka, membaca, menulis, menutup).
Contoh: pengguna menggunakan operasi yang sama untuk membaca file pada
hard-disk, CD-ROM dan floppy disk.
Komponen Sistem Operasi untuk sistem I/O :
Buffer : menampung sementara data dari/ke perangkat I/O.
- Spooling
: 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.
Beberapa fungsi manajemen input/ouput (I/O) :
-
- Mengirim
perintah ke perangkat I/O agar menyediakan layanan.
- Menangani
interupsi perangkat I/O.
- Menangani
kesalahan perangkat I/O.
- Menyediakan
interface ke pemakai.
Klasifikasi
perangkat I/O
Perangkat I/O dapat dikelompokkan berdasarkan :
a. Sifat aliran datanya,
yang terbagi atas :
1 Perangkat berorientasi blok.
Yaitu menyimpan, menerima, dan mengirim informasi sebagai blok-blok berukuran
tetap yang berukuran 128 sampai 1024 byte dan memiliki alamat tersendiri,
sehingga memungkinkan membaca atau menulis blok-blok secara independen, yaitu
dapat membaca atau menulis sembarang blok tanpa harus melewati blok-blok lain.
Contoh : disk,tape,CD ROM, optical disk.
2 Perangkat berorientasi
aliran karakter.
Yaitu perangkat yang menerima, dan mengirimkan aliran karakter tanpa membentuk
suatu struktur blok. Contoh : terminal, line printer, pita kertas, kartu-kartu
berlubang, interface jaringan, mouse.
b. Sasaran komunikasi,
yang terbagi atas :
1 Perangkat yang terbaca oleh
manusia.
Perangkat yang digunakan untuk berkomunikasi dengan manusia.Contoh : VDT (video
display terminal) : monitor, keyboard, mouse.
2 Perangkat yang terbaca oleh
mesin.
Perangkat yang digunakan untuk berkomunikasi dengan perangkat elektronik.Contoh
: Disk dan tape, sensor, controller.
3 Perangkat komunikasi.
Perangkat yang digunakan untuk komunikasi dengan perangkat jarak jauh.Contoh :
Modem.
Faktor-faktor yang membedakan antar perangkat :
o Kecepatan transmisi data (data rate).
o Jenis aplikasi yang digunakan.
o Tingkat kerumitan dalam pengendalian.
o Besarnya unit yang ditransfer.
o Representasi atau perwujudan data.
o Kondisi-kondisi kesalahan.Teknik pemograman perangkat I/O
- c.
Terdapat 3 teknik pemrograman, yaitu :
- I/O
terprogram atau polling system.
Ketika perangkat I/O menangani permintaan, perangkat men-set bit status
di register status perangkat. Perangkat tidak memberitahu ke pemroses saat
tugas telah selesai dilakukan sehingga pemroses harus selalu memeriksa register
tersebut secara periodik dan melakukan tindakan berdasar status yang dibaca.
Software pengendali perangkat (driver) dipemroses harus mentransfer data
ke/dari pengendali. Driver mengeksekusi perintah yang berkomunikasi dengan
pengendali (adapter) di perangkat dan menunggui sampai operasi yang dilakukan
perangkat selesai.Driver berisi kumpulan instruksi :
1 Pengendalian.
Berfungsi mengaktifkan perangkat eksternal dan memberitahu yang perlu
dilakukan. Contoh : unit tape magnetik diinstruksikan untuk kembali ke posisi
awal, bergerak ke record berikut, dan sebagainya.
2 Pengujian.
Berfungsi memeriksa status perangkat keras berkaitan dengan perangkat I/O.
3 Pembacaan/penulisan
Berfungsi membaca/menulis untuk transfer data antara register pemroses dan
perangkat eksternal.Masalah utama I/O terprogram adalah pemroses diboroskan
untuk menunggu dan menjagai operasi I/O. Diperlukan teknik lain untuk
meningkatkan efisiensi pemroses.
b. I/O dikendalikan interupsi.
Teknik I/O dituntun interupsi mempunyai mekanisme kerja sebagai berikut :
o Pemroses memberi instruksi ke perangkat I/O kemudian
melanjutkan melakukan pekerjaan lainnya.
o Perangkat I/O akan menginterupsi meminta layanan saat perangkat
telah siap bertukar data dengan pemroses.
o Saat menerima interupsi perangkat keras (yang memberitahukan
bahwa perangkat siap melakukan transfer), pemroses segera
mengeksekusi transfer data.
Keunggulan :
o Pemroses tidak disibukkan menunggui dan menjaga perangkat I/O
untuk memeriksa status perangkat.
Kelemahan :
o Rate transfer I/O dibatasi kecepatan menguji dan melayani
operasi perangkat.
o Pemroses terikat ketat dalam mengelola transfer I/O. Sejumlah
intruksi harus dieksekusi untuk tiap transfer I/O.
c. Dengan DMA (direct memory
access).
DMA berfungsi membebaskan pemroses menunggui transfer data yang dilakukan
perangkat I/O. Saat pemroses ingin membaca atau menulis data, pemroses
memerintahkan DMA controller dengan mengirim informasi berikut :
o Perintah penulisan/pembacaan.
o Alamat perangkat I/O.
o Awal lokasi memori yang ditulis/dibaca.
o Jumlah word (byte) yang ditulis/dibaca.
Setelah mengirim informasi-informasi itu ke DMA controller, pemroses dapat
melanjutkan kerja lain. Pemroses mendelegasikan operasi I/O ke DMA. DMA
mentransfer seluruh data yang diminta ke/dari memori secara langsung tanpa
melewati pemroses. Ketika transfer data selesai, DMA mengirim sinyal interupsi
ke pemroses. Sehingga pemroses hanya dilibatkan pada awal dan akhir transfer
data. Operasi transfer antara perangkat dan memori utama dilakukan sepenuhnya
oleh DMA lepas dari pemroses dan hanya melakukan interupsi bila operasi telah
selesai.
Keunggulan :
o Penghematan waktu pemroses.
o Peningkatan kinerja I/O.
Evolusi fungsi perangkat I/O
Sistem komputer mengalami peningkatan kompleksitas dan kecanggihan komponen-komponennya,
yang sangat tampak pada fungsi-fungsi I/O sebagai berikut :
a. Pemroses mengendalikan perangkat
I/O secara langsung.
Masih digunakan sampai saat ini untuk perangkat sederhana yang dikendalikan
mikroprosessor sehingga menjadi perangkat berintelijen (inteligent device).
b. Pemroses dilengkapi
pengendali I/O (I/O controller).
Pemroses menggunakan I/O terpogram tanpa interupsi, sehingga tak perlu
memperhatikan rincian-rincian spesifik antarmuka perangkat.
c. Perangkat dilengkapi fasilitas
interupsi.
Pemroses tidak perlu menghabiskan waktu menunggu selesainya operasi I/O,
sehingga meningkatkan efisiensi pemroses.
d. I/O controller mengendalikan
memori secara langsung lewat DMA.
Pengendali dapat memindahkan blok data ke/dari memori tanpa melibatkan pemroses
kecuali diawal dan akhir transfer.
e. Pengendali I/O menjadi pemroses
terpisah.
Pemroses pusat mengendalikan.memerintahkan pemroses khusus I/O untuk
mengeksekusi program I/O di memori utama. Pemroses I/O mengambil dan
mengeksekusi intruksi-intruksi ini tanpa intervensi pemroses pusat.
Dimungkinkan pemroses pusat menspesifikasikan barisan aktivitas I/O dan hanya
diinterupsi ketika seluruh barisan intruksi diselesaikan.
f. Pengendali I/O mempunyai
memori lokal sendiri.
Perangkat I/O dapat dikendalikan dengan keterlibatan pemroses pusat yang
minimum.
Arsitektur ini untuk pengendalian komunikasi dengan terminal-terminal
interaktif. Pemroses I/O mengambil alih kebanyakan tugas yang melibatkan
pengendalian terminal.
Evolusi bertujuan meminimalkan keterlibatan pemroses pusat, sehingga pemroses
tidak disibukkan dengan tugas I/O dan dapat meningkatkan kinerja sistem.
Prinsip manajemen perangkat I/O
Terdapat dua sasaran perancangan I/O, yaitu :
a. Efisiensi.
Aspek penting karena operasi I/O sering menimbulkan bottleneck.
b. Generalitas (device
independence).
Manajemen perangkat I/O selain berkaitan dengan simplisitas dan bebas
kesalahan, juga menangani perangkat secara seragam baik dari cara proses memandang
maupun cara sistem operasi mengelola perangkat dan operasi I/O.
Software diorganisasikan berlapis. Lapisan bawah berurusan menyembunyikan
kerumitanperangkat keras untuk lapisan-lapisan lebih atas. Lapisan lebih atas
berurusanmemberi antar muka yang bagus, bersih, nyaman dan seragam ke pemakai.
Masalah-masalah manajemen I/O adalah :
a. Penamaan yang seragam (uniform
naming).
Nama berkas atau perangkat adalah string atau integer, tidak bergantung pada
perangkat sama sekali.
b. Penanganan kesalahan (error
handling).
Umumnya penanganan kesalahan ditangani sedekat mungkin dengan perangkat keras.
c. Transfer sinkron vs asinkron.
Kebanyakan I/O adalah asinkron. Pemroses mulai transfer dan mengabaikan untuk
melakukan kerja lain sampai interupsi tiba. Program pemakai sangat lebih mudah
ditulis jika operasi I/O berorientasi blok. Setelah perintah read, program
kemudian ditunda secara otomatis sampai data tersedia di buffer.
d. Sharable vs dedicated.
Beberapa perangk dapat dipakai bersama seperti disk, tapi ada juga perangkat
yang hanya satu pemakai yang dibolehkan memakai pada satu saat. Contoh :
printer.
Hirarki manajemen perangkat I/O
Hirarki manajemen perangkat I/O :
a. Interrupt handler.
Interupsi harus disembunyikan agar tidak terlihat rutin berikutnya. Device
driver di blocked saat perintah I/O diberikan dan menunggu interupsi. Ketika
interupsi terjadi, prosedur penanganan interupsi bekerja agar device driver
keluar dari state blocked.
b. Device drivers.
Semua kode bergantung perangkat ditempatkan di device driver. Tiap device
driver menangani satu tipe (kelas) perangkat dan bertugas menerima permintaan
abstrak perangkat lunak device independent diatasnya dan melakukan layanan
permintaan.
Mekanisme kerja device driver :
o Menerjemahkan perintah
abstrak menjadi perintah konkret.
o Setelah ditentukan perintah
yang harus diberikan ke pengendali, device driver mulai menulis ke
register-register pengendali perangkat.
o Setelah operasi selesai
dilakukan perangkat, device driver memeriksa status kesalahan yang
terjadi.
o Jika berjalan baik, device
driver melewatkan data ke perangkat lunak device independent.
o Kemudian device driver
melaporkan status operasinya ke pemanggil.
c. Perangkat lunak device
independent.
Bertujuan membentuk fungsi-fungsi I/O yang berlaku untuk semua
perangkat dan memberi antarmuka seragam ke perangkat lunak tingkat
pemakai. Fungsi-fungsi lain yang dilakukan :
o Sebagai interface seragam
untuk seluruh device driver.
o Penamaan perangkat.
o Proteksi perangkat.
o Memberi ukuran blok
perangkat agar bersifat device independent.
o Melakukan buffering.
o Alokasi penyimpanan pada
block devices.
o Alokasi dan pelepasan
dedicated devices.
o Pelaporan kesalahan.
d. Perangkat lunak level pemakai.
Kebanyakan perangkat lunak I/O terdapat di sistem operasi. Satu bagian kecil
berisi pustaka-pustaka yang dikaitkan pada program pemakai dan berjalan diluar
kernel. System calls I/O umumnya dibuat sebagai prosedur-prosedur pustaka.
Kumpulan prosedur pustaka I/O merupakan bagian sistem I/O. Tidak semua
perangkat lunak I/O level pemakai berupa prosedur- prosedur pustaka. Kategori
penting adalah sistem spooling. Spooling adalah cara khusus berurusan dengan
perangkat I/O yang harus didedikasikan pada sistem multiprogramming.
Buffering I/O
Buffering adalah melembutkan lonjakan-lonjakan kebutuhan pengaksesan I/O,
sehingga meningkatkan efisiensi dan kinerja sistem operasi.Terdapat beragam
cara buffering, antar lain :
a. 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 masukan 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 akan segera diperlukan. Untuk
banyak tipe komputasi, asumsi ini berlaku. Hanya di akhir pemrosesan maka blok
yang dibaca tidak diperlukan.
Keunggulan :
Pendekatan in umumnya meningkatkan kecepatan dibanding tanpa buffering. Proses
pemakai dapat memproses blok data sementara blok berikutnya sedang dibaca.
Sistem operasi dapat menswap keluar proses karena operasi masukan berada di
memori sistem bukan memori proses pemakai.
Kelemahan :
o Merumitkan sistem operasi
karena harus mencatat pemberian buffer-buffer sistem ke proses pemakai.
o Logika swapping juga
dipengaruhi. Jika operasi I/O melibatkan disk
untuk swapping, maka membuat antrian penulisan ke disk yang sama yang digunakan
untuk swap out proses. Untuk menswap proses dan melepas memori utama tidak
dapat dimulai sampai operasi I/O selesai, dimana waktu swapping ke disk tidak
bagus untuk dilaksanaka Buffering keluaran serupa buffering masukan. Ketika
data transmisi, data lebih dulu dikopi dari ruang pemakai ke buffer sistem. Proses
pengirim menjadi bebas untuk melanjutkan eksekusi berikutnya atau di swap ke
disk jika perlu.Untuk perangkat berorientasi aliran karakter.
Single buffering dapat diterapkan dengan dua mode, yaitu :
o Mode line at a time.
Cocok untuk terminal mode gulung (scroll terminal atau dumb terminal). Masukan
pemakai adalah satu baris per waktu dengan enter menandai akhir baris. Keluaran
terminal juga serupa, yaitu satu baris per waktu.
Contoh mode ini adalah printer.Buffer digunakan untuk menyimpan satu baris
tunggal. Proses pemakai ditunda selama masukan, menunggu kedatangan satu
baris seluruhnya. Untuk keluaran, proses pemakai menempatkan satu baris
keluaran pada buffer dan melanjutkan pemrosesan. Proses tidak perlu suspend
kecuali bila baris kedua dikirim sebelum buffer dikosongkan.
o Mode byte at a time.
Operasi ini cocok untuk terminal mode form, dimana tiap ketikan adalah penting
dan untuk peripheral lain seperti sensor dan pengendali.
b. 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. Untuk berorientasi aliran karakter,
double buffering mempunyai 2 mode alternatif, yaitu :
o Mode line at a time.
Proses pemakai tidak perlu ditunda untuk I/O kecuali proses secepatnya mengosongkan
buffer ganda.
o Mode byte at a time.
Buffer ganda tidak memberi keunggulan berarti atas buffer tunggal. Double
buffering mengikuti model producer-consumer.
- Circular
buffering.
Seharusnya melembutkan aliran data antara
perangkat I/O dan proses. 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 diacu sebagai circulat
buffer. Tiap bufferindividu adalah satu unit di circular buffer.
editor : Ivan Ariansyah sI'Ipan
Sumber : - http://mata-cyber.blogspot.co.id/2014/11/penjadwalan-prosesor-strategi-dan-algoritma
- http://tugasso.blog.com/menejemen-memori/
- http://tugasso.blog.com/manajemen-io/