Anda di halaman 1dari 12

Mendeteksi Deadlock dan Memulihkan Deadlock

Metode ini mengunakan pendekatan dengan teknik untuk menentukan apakahdeadlocksedang


terjadi serta proses-proses dan sumber daya yang terlibat dalam deadlock tersebut. Setelah
kondisi deadlock dapat dideteksi, maka langkah pemulihan dari kondisi deadlock dapat segera
dilakukan. Langkah pemulihan tersebut adalah dengan memperoleh sumber daya yang
diperlukan oleh proses-proses yang membutuhkannya. Beberapa cara digunakan untuk
mendapatkan sumber daya yang diperlukan, yaitu dengan terminasi proses danpre-
emption(mundur) suatu proses. Metode ini banyak digunakan pada
komputermainframeberukuran besar.

Terminasi Proses
Metode ini akan menghapus proses-proses yang terlibat pada kondisi deadlock dengan mengacu
pada beberapa syarat. Beberapa syarat yang termasuk dalam metode ini adalah, sebagai berikut:

1. Menghapus semua proses yang terlibat dalam kondisideadlock(solusi ini terlalu mahal).
2. Menghapus satu persatu proses yang terlibat, sampai kondisideadlockdapat diatasi
(memakan banyak waktu).
3. Menghapus proses berdasarkan prioritas, waktu eksekusi, waktu untuk selesai, dan
kedalaman dari rollback.

Resources Preemption
Metode ini lebih menekankan kepada bagaimana menghambat suatu proses dan sumber daya,
agar tidak terjebak pada unsafe condition. Beberapa langkahnya, yaitu:

1. Pilih salah satu - proses dan sumber daya yang akan di-preempt.
2. Rollbackkesafe stateyang sebelumnya telah terjadi.
3. Mencegah suatu proses agar tidak terjebak padastarvationkarena metode ini.

http://busanaonline2012.blogspot.com/2012/02/mendeteksi-deadlock-dan-memulihkan.html?
m=1
Pengertian, Tujuan, Dan Fungsi Virtual
Memory

07 November, 2017 Erlangga 6789 Kali

Pengertian Virtual Memory

Virtual Memory adalah suatu teknik yang memisahkan antara memori logis dan memori
fisiknya. Memori logis merupakan kumpulan keseluruhan halaman dari suatu program. Tanpa
memori virtual, memori logis akan langsung dibawa ke memori fisik (memori utama). Disinilah
memori virtual melakukan pemisahan dengan menaruh memori logis ke secondary storage (disk
sekunder) dan hanya membawa halaman yang diperlukan ke memori utama (memori fisik).

Virtual memory juga bisa dikatakan sebagai Memori Tambahan yang menjadi fitur setiap
masing masing Sistem Operasi, misalnya Linux terdapat Swap. Memori virtual ini, digunakan
Sistem Operasi ketika Komputer sedang menjalankan sebuah Program aplikasi yang
kapasitasnya melebih Memori yang tersedia. Teknik memori virtual akan memudahkan
pekerjaan seorang programmer ketika besar data dan programnya melampaui kapasitas memori
utama. Sebuah multiprogramming dapat mengimplementasikan teknik memori virtual sehingga
sistem multiprogramming menjadi lebih efisien. Contohnya: 10 program dengan ukuran 2 MB
dapat berjalan di memori berkapasitas 4 MB. Tiap program dialokasikan 256 Kbyte dan bagian-
bagian proses (swap in) masuk ke dalam memori fisik begitu diperlukan dan akan keluar (swap
out) jika sedang tidak diperlukan.

Tujuan Virtual Memory

Virtual Memory digunakan dengan membuat suatu file khusus yang disebut swapfile. Virtual
memory digunakan pada saat sistem operasi kehabisan memori, dimana sistem operasi akan
memindahkan data yang paling terakhir diakses kedalam swapfile di hardisk. Hal ini yang
mengsongkan/membebaskan bebrapa ruang kosong pada memori untuk aplikasi yang akan
digunakan selanjutnya. Sistem operasi akan melakukan hal ini secara terus menerus ketika data
baru diisi pada RAM.

Pada saat data yang tersimpan di swapfile diperlukan, data tersebut ditukar (swap) dengan data
yang paling terakhir dipakai di dalam memory (RAM). Hal ini mengakibatkan swapfile bersifat
seperti RAM, walaupun program tidak dapat secara langsung dijalankan dari swapfile. Satu hal
yang perlu dicatat bahwa karena sistem operasi tidak dapat secara langsung menjalankan
program dari swapfile, bebrapa program mungkin tidak akan berjalan walau dengan swapfile
yang besar jika kita hanya memiliki RAM yang kecil.

Fungsi Virtual Memory

 Menangani kelebihan “beban” RAM


 Berperan sebagai RAM cadangan, tapi tidak menggantikan fungsi RAM
 Menyimpan data dari RAM, tapi tidak meneruskannya ke processor
 Data yang disimpan pada virtual memory (paging file) bersifat sementara 

http://www.mampirlah.com/teknik-informatika/pengertian-tujuan-dan-fungsi-virtual-memory.html
KEUNTUNGAN VIRTUAL MEMORY

Keuntungan

> Berkurangnya I/O yang dibutuhkan (lalu lintas I/O menjadi rendah). Misal,
untuk program butuh membaca dari disk dan memasukkan dalam memory
setiap kali diakses.

 > Berkurangnya memori yang dibutuhkan (space menjadi lebih leluasa). Contoh,
untuk program 10 MB tidak seluruh bagian dimasukkan dalam memori. Pesan-
pesan error hanya dimasukkan jika terjadi error.

 > Meningkatnya respon, sebagai konsekuensi dari menurunnya beban I/O dan
memori.

 > Bertambahnya jumlah user yang dapat dilayani. Ruang memori yang masih
tersedia luas memungkinkan komputer untuk menerima lebih banyak
permintaan dari user.

http://rizkyfajar17.blogspot.com/2012/01/keuntungan-virtual-memory.html?m=1
Implementasi Virtual Memori

Memori virtual biasanya diimplementasikan menggunakan demand paging atau demand


segmentation juga digunakan. Tetapi algoritma segment-replacement lebih kompleks daripada
algoritma page-replacement karena segmen mempunyai ukuran
yang bervariasi.

https://fairuzelsaid.wordpress.com/tag/implementasi-memori-virtual/
Penanganan Page Fault

Prosedur untuk menangani page fault adalah sebagai berikut:

 CPU mengambil (load) instruksi dari memori untuk dijalankan. Pengambilan instruksi
dilakukan dari halaman pada memori dengan mengakses tabel halaman. Ternyata pada
tabel halaman bit ter-set tidak valid atau invalid (i).

 Interupsi page fault terjadi sehingga interupsi tersebut menyebabkan perangkat keras
melakukan trap yaitu menjebak proses tersebut ke dalam sistem operasi.

 Jika referensi alamat yang diberikan ke sistem operasi ilegal atau dengan kata lain
halaman yang ingin diakses tidak ada (tidak berada di disk), maka proses akan
dihentikan. Namun jika referensi alamatnya adalah legal maka halaman yang diinginkan
akan diambil dari disk.

 Halaman yang diinginkan akan dibawa dari disk ke memori utama (memori fisik).

 Tabel halaman akan diatur ulang lagi sesuai dengan kondisi yang baru. Jika tidak terdapat
ruang kosong (free frame) di memori utama (fisik) untuk menaruh halaman yang baru
maka dilakukan penggantian halaman dengan memilih salah satu halaman pada memori
utama untuk digantikan dengan halaman yang baru tersebut. Penggantian halaman
dilakukan dengan menggunakan algoritma tertentu. Jika halaman yang digantikan
tersebut sudah dimodifikasi oleh proses maka halaman tersebut harus ditulis kembali ke
disk.

 Setelah halaman yang diinginkan sudah dibawa ke memori utama (fisik) maka proses
dapat diulang kembali. Dengan demikian proses sudah bisa mengakses halaman karena
halaman telah diletakkan ke memori utama (fisik).

Perlu diingat bahwa status (register, condition code, counter insruksi) dari proses yang
diinterupsi ketika terjadi page fault akan disimpan sehingga proses dapat diulang kembali di
tempat dan status yang sama, kecuali jika halaman yang diinginkan sekarang telah berada di
memori dan dapat diakses.

Pada berbagai kasus yang terjadi, ada tiga komponen yang akan dihadapi pada saat melayani
page fault:

 Melayani interupsi page fault

 Membaca halaman

 Mengulang kembali proses

http://openstorage.gunadarma.ac.id/linux/docs/v06/Kuliah/SistemOperasi/BUKU/SistemOperasi-
4.X-2/ch05s03.html
Demand Paging

Demand Paging atau permintaan pemberian halaman adalah salah satu implementasi dari
memori virtual yang paling umum digunakan. Sistem Demand Paging pada prinsipnya hampir
sama dengan sistem permintaan halaman yang menggunakan swapping, hanya saja pada sistem
demand paging, halaman tidak akan dibawa ke dalam memori fisik sampai ia benar-benar
diperlukan. Oleh sebab itu dibutuhkan bantuan perangkat keras untuk mengetahui lokasi dari
halaman saat ia diperlukan. Daripada melakukan swapping, keseluruhan proses ke dalam memori
utama, digunakanlah yang disebut lazy swapper yaitu tidak pernah menukar sebuah halaman ke
dalam memori utama kecuali halaman tersebut diperlukan. Keuntungan yang diperoleh dengan
menggunakan demand paging sama dengan keuntungan pada memori virtual di atas.

Saat melakukan pengecekan pada halaman yang dibutuhkan oleh suatu proses, terdapat tiga
kemungkinan kasus yang dapat terjadi, yaitu:

 Halaman ada dan sudah langsung berada di memori utama - statusnya adalah valid ("v"
atau "1")

 Halaman ada tetapi belum berada di memori utama atau dengan kata lain halaman masih
berada di disk sekunder - statusnya adalah tidak valid/invalid ("i" atau "0")

 Halaman benar - benar tidak ada, baik di memori utama maupun di disk sekunder
(invalid reference) - statusnya adalah tidak valid/invalid ("i" atau "0")

Ketika kasus kedua dan ketiga terjadi, maka proses dinyatakan mengalami kesalahan halaman
(page fault). Selanjutnya proses tersebut akan dijebak ke dalam sistem operasi oleh perangkat
keras.

Skema Bit Valid - Tidak Valid

Dalam menentukan halaman mana yang ada di dalam memori utama dan halaman mana yang
tidak ada di dalam memori utama, diperlukan suatu konsep, yaitu skema bit valid - tidak valid.
Kondisi valid berarti bahwa halaman yang dibutuhkan itu legal dan berada di dalam memori
utama (kasus pertama). Sementara tidak valid/invalid adalah kondisi dimana halaman tidak ada
di memori utama namun ada di disk sekunder (kasus kedua) atau halaman memang benar-benar
tidak ada baik di memori utama maupun disk sekunder (kasus ketiga).

Pengaturan bit dilakukan sebagai berikut:

 Bit = 1 berarti halaman berada di memori utama


 Bit = 0 berarti halaman tidak berada di memori utama

Apabila ternyata hasil dari mengartikan alamat melalui page table menghasilkan bit halaman
yang bernilai 0, maka akan menyebabkan terjadinya page fault .

Page fault adalah interupsi yang terjadi ketika halaman yang diminta/dibutuhkan oleh suatu
proses tidak berada di memori utama. Proses yang sedang berjalan akan mengakses page table
(tabel halaman) untuk mendapatkan referensi halaman yang diinginkan. Page fault dapat
diketahui/dideteksi dari penggunaan skema bit valid-tidak valid ini. Bagian inilah yang
menandakan terjadinya suatu permintaan pemberian halaman .

Jika suatu proses mencoba untuk mengakses suatu halaman dengan bit yang di-set tidak valid
maka page fault akan terjadi. Proses akan dihentikan sementara halaman yang
diminta/dibutuhkan dicari didalam disk.

Gambar 5.2. Tabel Halaman dengan Skema Bit Valid - Tidak valid

http://openstorage.gunadarma.ac.id/linux/docs/v06/Kuliah/SistemOperasi/BUKU/SistemOperasi-
4.X-2/ch05s02.html
Permasalahan Design Pada Sistem Paging

1. Masalah utama pada system paging:

          Working set model


          Kebijaksanaan penggantian local vs global
          Frekuensi page fault
          Ukuran page
          Working set model

Prinsip Lokalitas

Terdapat 2 jenis jenis lokalitas:

1. Lokalitas berdasarkan waktu (temporal locality), proses cenderung terkonsentrasi acuannya ke


satu intercal waktu eksekusi yang dekat.  Observasi berikut mendukung prinsip, antara lain :
Looping, Subrutin, stack dan variable-variabel yang digunakan untuk iterasi dan penjumlahan
total.
2. Lokalitas berdasarkan ruang (spatial locality), proses cenderung terkonsentrasi acuannya ke satu
kelompok data yang berdekatan. Observasi berikut mendukung prinsip ini, antara lain: traversal
pada array, eksekusi kode yang sekuen, kecenderungan pemrogram menempatan variable yang
terkait saling berdekatan.

Prinsip lokalitas diperoleh dari observasi bukan dari kajian teoritis. Menunjukkan kecenderungan
prilaku lingkungan system bukan tepat eksak.

Konsekuensi prinsip lokalitas adalah program dapat berjalan secara efisien saat satu subset page
berkecenderungan tinggi saling mengacu terdapat di memory.

Thrashing: peristiwa page fault yang sangat berlebihan.

Salah satu cara menghindari thrashing adalah dengan menyediakan sebanyak mungkin bingkai
sesuai dengan kebutuhan proses. Untuk mengetahui berapa bingkai yang dibutuhkan adalah
dengan strategi working set. Strategi ini dimulai dengan melihat berapa banyak bingkai yang
digunakan oleh suatu proses. Working set model mengatakan bahwa sistem hanya akan berjalan
secara efisien jika proses diberikan bingkai yang cukup, jika bingkai tidak cukup untuk
menampung semua proses maka suatu proses akan ditunda, dan memberikan halamannya untuk
proses yang lain.
Working set model merupakan model lokalitas dari eksekusi proses. Model ini menggunakan
parameter (delta) untuk definisi working set window. Kumpulan dari halaman dengan halaman
yang dituju yang paling sering muncul disebut working set.

Berdasarkan hal ini terdapat dua teknik untuk memuatkan page, yaitu:

 Prepaging, teknik memuatkan page-page lebih dulu sbelum proses berjalan.


 Demand paging, teknik yang segera memuatkan page begitu page dibutuhkan.

Keakuratan Working set tergantung pada pemilihan :

1. jika terlalu kecil tidak akan mewakilkan seluruh lokalitas.


2. jika terlalu besar menyebabkan overlap.
3. jika tidak terbatas working set adalah kumpulan halaman sepanjang eksekusi program.

Jika total permintaan > total bingkai, maka akan terjadi thrashing. Jika ini terjadi maka proses
yang sedang berjalan akan diblok.

https://bedagres.wordpress.com/2012/07/06/permasalahan-design-pada-sistem-paging/
Permasalahan Lain yang berhubungan dengan Demand Paging

Sebagaimana dilihat di atas, bahwa ternyata penanganan page fault menimbulkan masalah-
masalah baru pada proses restart instruction yang berhubungan dengan arsitektur komputer.

Masalah yang terjadi, antara lain mencakup: 1. Bagaimana mengulang instruksi yang memiliki
beberapa lokasi yang berbeda?

2. Bagaimana pengalamatan dengan menggunakan special-addresing mode, termasuk


autoincrement dan autodecrement mode?

3. Bagaimana jika instruksi yang dieksekusi panjang (contoh: block move)?

Masalah pertama dapat diatasi dengan dua cara yang berbeda.

a). komputasi microcode dan berusaha untuk mengakses kedua ujung dari blok, agar tidak ada
modifikasi page yang sempat terjadi.

b). memanfaatkan register sementara (temporary register ) untuk menyimpan nilai yang sempat
tertimpa/ termodifikasi oleh nilai lain.

Masalah kedua diatasi dengan menciptakan suatu special-status register baru yang berfungsi
menyimpan nomor register dan banyak perubahan yang terjadi sepanjang eksekusi instruksi.

Sedangkan masalah ketiga diatasi dengan mengeset bit FPD (first phase done) sehingga restart
instruction tidak akan dimulai dari awal program, melainkan dari tempat program terakhir
dieksekusi.

Persyaratan Perangkat Keras

Pemberian nomor halaman melibatkan dukungan perangkat keras, sehingga ada persyaratan
perangkat keras yang harus dipenuhi. Perangkat-perangkat keras tersebut sama dengan yang
digunakan untuk paging dan swapping, yaitu:

* Page-table, menandai bit valid-tidak valid.

* Secondary memory, tempat menyimpan page yang tidak ada di memori utama.

http://iim6.tripod.com/ibam-os-html/x3478.html

Anda mungkin juga menyukai