Manajemen Memory II

Jan 17, 2015
Posted by Unknown
Selamat Malam Gan
malam ini saya akan melanjutkan materi berikutnya yaitu:

MANAJEMEN MEMORI II
dibawah berikut bagian dari materi Manejemn Memori II
  1. Paging
  2. Segmentasi
  3. Virtual Memory
nah saya akan membahas tahap 1 yaitu Paging.apa kalian tahu apa itu paging?
  • Suatu metode yang memungkinkan suatu alamat memori fisik yang tersedia dapat tersusun tidak berurutan.
  • Paging merupakan solusi untuk masalah fragmentasi eksternal dimana ruang alamat logika tidak berurutan yang mengijinkan sebuah proses dialokasikan pada memori fisik yang terakhir tersedia.
  • Paging adalah bentuk manajemen memori yang biasa digunakan pada beberapa OS.
adapun Konsep Paging :
  1. Memori virtual dibagi menjadi blok-blok yang ukurannya tetap yang dinamakan page (ukurannya adalah pangkat 2, diantara 512 bytes dan 8192 bytes, tergantung arsitektur).
  2. Memori fisik dibagi juga menjadi blok-blok yang ukurannya tetap yang dinamakan frame.
  3. Lalu kita membuat suatu page table yang akan menterjemahkan memori virtual menjadi memori fisik.
contoh ilustrrasi Konsep Paging

Pages
Alamat yang dihasilkan oleh CPU(memori logis) akan dibagi menjadi 2 yaitu nomor page (p) dan page offset(d):
  1. Nomor page akan menjadi indeks dari page table yang mengandung alamat dasar dari setiap alamat di memori fisik.
  2. Page offset akan digabung dengan alamat dasar untuk mendefinisikan alamat fisik yang akan di kirim ke unit memori.

Frames
  1. Pada alamat memori fisis akan dibagi menjadi nomor frame (f) yang nantinya akan dicocokan pada page table.
  2. Setiap alamat yang dihasilkan oleh CPU akan dicocokan nomor page-nya pada page table lalu akan dicari frame mana yang sesuai dengan nomor page tersebut.
Keuntungan dan Kerugian Paging
  • Jika kita membuat ukuran dari masing-masing pages menjadi besar:
  1. Keuntungannya akses memori akan relatif lebih cepat.
  2. Kerugiannya kemungkinan terjadinya fragmentasi internal yang sangat besar.
  • Jika kita membuat ukuran dari masing-masing pages menjadi kecil:
  1. Kerugiannya akses memori akan relatif lebih lambat.
  2. Keuntungannya kemungkinan terjadinya fragmentasi internal akan menjadi lebih kecil.

Struktur Paging

Perangkat Keras Paging
  • Dikenal dengan Unit Manajemen Memori (MMU).
  • Jika CPU ingin mengakses memori, CPU mengirim alamat memorinya ke MMU yang akan menerjemahkannya ke alamat lain sebelum mengirim kembali ke unit memori.
  1. Alamat yang dihasilkan oleh CPU disebut alamat logis.
  2. Alamat yang didapat setelah melalui MMU disebut alamat fisik.
Page Table
  • Sebuah rangkaian array dari masukan-masukan (entries) yang mempunyai indeks berupa nomor page (p).
  • Setiap masukan terdiri dari flags (contohnya bit valid) dan nomor frame.
  • Alamat fisik dibentuk dengan menggabungkan nomor frame dengan offset.

Skema Page dua tingkat
Page table secara Multilevel

Inverted Page Table
  1. Satu masukan untuk setiap page dari memori.
  2. Masukan terdiri dari page di alamat logis yang disimpan di lokasi memori nyata, dengan informasi tentang proses yang dimiliki oleh page tersebut.
  3. Mengurangi memori yang dibutuhkan untuk menyimpan setiap tabel page, tetapi mengurangi waktu yang dibutuhkan untuk mencari tabel saat page mengalami kerusakan.
  4. Menggunakan hash table untuk membatasi mencari satu atau beberapa masukan tabel page.
contoh ilustrasi Inverted Page Table

Shared Page Table
Berbagi Kode
  • Dibutuhkan suatu kode read-only yang dibagi antara proses.
  • Kode yang dibagi harus berada di lokasi yang sama di alamat logis
Kode dan Data Privat
  • Setiap proses menyimpan kode dan datanya.
  • page untuk kode dan data tertutup bisa berada dimana saja dalam ruang di alamat logis.
Contoh Page Table

Nah sekarang memasukin tahap ke 2 yaitu: Segmentasi.apa kalian tahu apa itu Segementasi?
  • Salah satu cara untuk mengatur memori dengan menggunakan segmen.
  • Program dibagi menjadi beberapa segmen.
  • Segmen → kumpulan logical unit.
Arsitektur Segmentasi
  • Alamat logika terdiri dari dua bagian yaitu nomor segmen (s) dan offset (d) yang dituliskan dengan <nomor segmen, offset
  • Pemetaan alamat logika ke alamat fisik menggunakan tabel segmen (segment table), terdiri dari:
  • Segmen basis (base) berisi alamat fisik awal
  • Segmen limit merupakan panjang segmen
Sifat Segmentasi
  1. Ukuran tiap segmen tidak harus sama.
  2. Dapat diletakan di mana saja (di main memory, setelah program dimasukkan ke memori).
  3. Tabel Segmen → menentukan lokasi segmen.
  4. Saling berbagi.
  5. Adanya proteksi.
  6. Alokasi yang dinamis.
Contoh Implementasi Segmentasi
Masalah Segmentasi
  • Segmen dapat membesar.
  • Muncul fragmentasi luar, bila ada proses yang besar.
Perbedaan Segmentasi & Paging
  • Kelebihan paging:
  1. Tidak ada fragmentasi luar.
  2. Alokasi-nya cepat.
  • Kelebihan segmentasi:
  1. Saling berbagi.
  2. Proteksi.
Sekarang memasukin tahap terakhir yaitu :Virtual Memory.apa kalian tahu apa Virtual Memory?
  • Memori virtual merupakan suatu teknik yang memisahkan antara memori logis dan memori fisiknya.
  • Menyembunyikan aspek-aspek fisik memori dari user.
  1. Memori adalah lokasi alamat virtual berupa byte yang tidak terbatas.
  2. Hanya beberapa bagian dari memori virtual yang berada di memori logis.
Prinsip Virtual Memory
Konsep memori virtual yang dikemukakan Fotheringham pada tahun 1961 pada sistem komputer Atlas di Universitas Manchester, Inggris:
“ Kecepatan maksimum eksekusi proses di memori virtual dapat sama, tetapi tidak pernah melampaui kecepatan eksekusi proses yang sama di sistem tanpa menggunakan memori virtual.”

Keuntungan Memori Virtual
  1. Lalu lintas I/O menjadi rendah.
  2. Berkurangnya memori yang dibutuhkan.
  3. Meningkatnya respon.
  4. Bertambahnya jumlah user yang dapat dilayani.
  5. Memori virtual melebihi daya tampung dari memori utama yang tersedia.
Implementasi Virtual Memory
Multiprograming
Memori virtual dapat dilakukan dengan cara:
  • Demand paging
  • Demand segmentation
Demand paging
  1. Permintaan pemberian page
  2. Permintaan pemberian page menggunakan swapping.
  3. Page pada permintaan pemberian page hanya di-swap ke memori jika benar-benar diperlukan.
Keuntungan:
  1. Sedikit I/O yang dibutuhkan
  2. Sedikit Memory yang dibutuhkan
  3. Response yang lebih cepat
  4. Lebih banyak melayani user
Nah sampai disini saja gan
1 materi dihabiskan dalam 8 post
dan materi dari mata kuliah yang lain akan di post jika ada waktu

Manajemen Memory I

Jan 14, 2015
Posted by Unknown
Selamat Malam Gan
Malam ini saya akan melanjutkan materi berikutnya yaitu :

MANAJEMEN MEMORY I
dibawah berikut ada bagian dari materi Manajemen Memory I.
  1. Hirarki Memory
  2. Manajemen Memory
  3. Teknik Manajemen Memory
Nah sekarang  memasuki tahap 1 yaitu Hirarki Memory. 
Contoh ilustrasi Hirarki Memory

Sesuai gambar di atas ada 3 macam yaitu :
Cache Memory adalah memory yang bertugas membantu tugas primary memory dalam memecah-mecah data yang akan diproses dan yang belum diproses, dengan tujuan mempermudah kinerja processor (karena data dibagi-bagi / dipotong-potong dulu sebelum diproses).
  1. Biasa ada dalam processor, mother board maupun peralatan mikrokontroller lain (VGA, Hard disk, Sound, dsb).
  2. Berukuran kecil, antara Kilo Bytes (KB) sampai dengan MB (Mega Bytes).
Main Memory adalah memory utama dari sebuah komputer, biasa berbentuk RAM (disebut juga sebagai memory dinamis).

  1. Fungsi utamanya adalah menyimpan sementara data yang akan diproses oleh processor dan data yang telah diproses oleh processor untuk selanjutnya diteruskan ke media input/output yang lain VGA (ditampilkan), Sound (mengeluarkan suara), Hard Disk (menyimpan data/save), maupun media input/output lainnya.
  2. Besarannya adalah MB (Mega Byte) hingga GB (Giga Byte).
Secondary Memory adalah memory pembantu dari sebuah komputer, biasa berbentuk Harddisk / ROM (Read Only Memory), disebut juga sebagai memory statis (pasif).
  1. Fungsi utamanya adalah menyerupai RAM tapi perbedaannya memory jenis ini bisa menyimpan data dalam waktu yang lama.
  2. Dan juga memory jenis ini (hard disk) biasa dipakai sebagai MEMORY BANTUAN, yaitu memori tambahan untuk membantu tugas RAM.
  3. Misalnya ada data yang harus diproses sebesar 550 MB, sementara RAM kita hanya 512 MB, dan ini pastinya memerlukan bantuan dari Hard disk sebesar 38 MB untuk membantu tugas RAM sebagai Primary memory.
  4. Hal ini biasa dilakukan oleh OS dan menyimpannya dalam sebuah file yang berjenis swap (swap file / .swp).
Selanjutnya memasuki tahap ke 2 yaitu Manajemen Memory.

fungsi-fungsi Manejemen Memory:
  1. Manajemen memori dilakukan dengan cara membagi-bagi memori untuk mengakomodasi banyak proses
  2. Manajemen memori dilakukan untuk menjamin agar setiap proses yang ready dapat segera memanfaatkan processor time.
Beberapa fungsi lainnya:
  1. Mengelola informasi memori yang dipakai & tidak dipakai.
  2. Mengalokasikan memori ke proses yang memerlukan.
  3. Men-dealokasikan memori dari proses yang telah selesai.
  4. Mengelola swapping antara memori utama & disk.
Terdapat 5 requirement manajemen memori:
  1. Relocation
  2. Protection
  3. Sharing
  4. Logical organization
  5. Physical organization
Relocation
Prosesor dan sistem operasi harus dapat mentranslasikan memori referensi ke alamat fisik (physical address) yang mengalokasikan program dalam memori utama.
Mengapa penting dalam manajemen memori ?
  1. Jika suatu program di-load ke memori, maka alamat lokasi memori (alamat absolut atau alamat fisik) yang akan ditempati harus ditentukan
  2. Alamat absolut suatu program dapat berubah-ubah sebagai akibat:
  3. Swapping
  4. Compaction
Jenis-jenis alamat data:
  1. Alamat Logical adalah alamat suatu word relatif terhadap titik referensi tertentu dan harus dilakukan translasi terhadap alamat fisik.
  2. Alamat Relatif adalah alamat yang menunjukkan lokasi relatif terhadap alamat awal suatu program, terdiri dari:
Alamat instruksi dalam pencabangan
Alamat instruksi call
Alamat data
  • Alamat Fisik (mutlak/absolut) adalah alamat sebenarnya dari suatu memori

Jenis-jenis alamat data:
Mekanisme Relokasi:

  1. Alamat base register ditambahkan dengan alamat relatif sehingga diperoleh alamat absolut.
Protection
Suatu proses tidak boleh mengakses lokasi memori proses yang lain tanpa ijin

  1. Lokasi program di memori tidak tentu karena alamat mutlak pada saat compile tidak dapat diketahui.
  2. Penanganan proteksi memori diserahkan kepada prosesor (secara hardware), bukan bagian sistem operasi (software)
Sharing

  1. Harus dimungkinkan suatu lokasi memori dapat diakses oleh lebih dari satu proses (secara legal)
  2. Beberapa proses yang memerlukan data yang sama, maka tidak perlu setiap proses mengcopy data dari disk ke memori, cukup sebuah copy saja
Logical organization
  1. Main memory dikelompokkan secara linier atau berdimensi satu yang berupa ruang alamat yang terdiri dari deretan byte atau word.
  2. Sebagian besar program dibuat dalam bentuk modul → penempatan di memori tidak linier → diperlukan pengaturan secara logik
  3. Kelebihan program dalam bentuk modul:
  1. Modul dapat ditulis dan di-compile secara terpisah
  2. Setiap modul dapat diberi tingkatan proteksi berbeda-beda (readonly, execute only).
  3. Module dapat di-share oleh beberapa proses.
  4. Requierement Management Memory Cont.
Physical organization
  1. Memory dikelompokkan menjadi memori utama dan memori sekunder.
  2. Diperlukan metode yang mengatur aliran data dari memori utama ke memori sekunder dan sebaliknya.
  3. Pengaturan tersebut dilakukan oleh sistem operasi, bukan programmer, karena:
  • Programmer tidak tahu berapa ruang memori yang tersedia pada saat program dijalankan.
  • Bila ruang memori yang tersedia tidak cukup untuk menampung program dan data → sistem dapat melakukan overlay.
  • Overlay adalah menempatkan beberapa bagian modul/program pada area memori yang sama secara bergantian.

Nah sekarang memasuki Tahap terakhir yaitu: Teknik Manajemen Memory.
Adapun macam-macam teknik Manajemen Memory yaitu;
- Partisi
1.Partisi tetap (fixed)
  • Partisi berukuran sama
  • Ukuran partisi berbeda-beda
2.Partisi dinamis
Paging sederhana
- Segmentasi sederhana
- Virtual-memory
  • Virtual-memory paging
  • Virtual-memory segmentation
1.Partisi tetap 
  • Sebelum digunakan memori terlebih dahulu dipartisi (ukuran partisi tidak berubah)
Model ukuran partisi:
1. Partisi berukuran sama:
  • Setiap proses yang ukurannya lebih kecil atau sama dengan ukuran partisi dapat menempati partisi tersebut.
  • Jika semua partisi telah terisi, maka sistem operasi akan melakukan swap terhadap proses yang sudah tidak aktif.
  • Dimungkinkan adanya program yang ukurannya lebih besar daripada ukuran partisi yang tersedia → programmer harus merancang program dengan overlay.
  • Penggunaan memori sangat tidak efisien, misal bila ukuran partisi adalah 8 MB, maka program berukuran 2 MB akan menyisakan ruang memori sebesar 6 MB.
2. Partisi berukuran tidak sama:                                  
  • Lebih baik daripada partisi berukuran sama: 
  • Penggunaan memori lebih efisien
  • Tidak perlu overlay
Jenis partisi tetap:
  • Equal-size
  • Unequal-size

Algoritma penempatan (placement)

Partisi berukuran sama
  • Algoritmanya sederhana, partisi yang mana saja asalkan kosong boleh ditempati, karena ukurannya sama
Partisi berukuran berbeda
  • Setiap proses ditempatkan pada partisi yang menyisakan ruang bebas terkecil
Terdapat 2 model antrian:                                                       

  1. Satu antrian – satu partisi                    
  2. Satu antrian – banyak partisi
Satu partisi - satu antrian

  1. Setiap proses antri pada partisi yang berukuran sedikit lebih besar atau sama dengan ukuran proses
  2. Kelebihannya dapat meminimalisir ruang memori yang terbuang.
  3. Kekurangannya diperlukan penjadualan antrian, ada kemungkinan efisiensi secara keseluruhan tidak optimal
  • Misal pada model partisi di slide hal 10 tidak ada proses yang berukuran di antara 12 – 16 MB → partisi 16 MB tidak akan pernah digunakan
Banyak partisi - satu antrian

  1. Setiap proses dapat menempati di sembarang partisi yang sedang tidak digunakan
  2. Dipilih partisi yang menyisakan ruang memori terkecil
  3. Bila seluruh partisi telah diisi → dilakukan swapping
  4. Kelebihannya mudah diimplementasikan, overhead sistem operasi hanya sedikit
  5. Kekurangannya jumlah maksimum proses yang aktif adalah tetap dan terbatas (bergantung jumlah partisi)dan tidak efisien dalam penggunaan memori akibat terjadi fragmentasi internal
  • Fragmentasi internal: sisa ruang memori yang terjadi jika ukuran proses lebih kecil daripada partisi yang digunakan
2. Partisi dinamis (dynamic)
  1. Jumlah dan ukuran partisi tidak tetap (variabel)
  2. Ukuran partisi sama dengan ukuran proses yang akan menempatinya untuk pertama kali atau sesudah pemadatan (compaction) → tidak terjadi fragmentasi internal
  3. Dapat terjadi fragmentasi eksternal:
  • Fragmentasi eksternal: sisa ruang memori yang terjadi jika ukuran proses lebih kecil daripada ruang memori yang disediakan (dibebaskan)
  • Solusi: dilakukan compaction sehingga sisa-sisa ruang memori terkumpul menjadi satu sisa ruang → memori menjadi besar
Partisi dinamis (dynamic)
Contoh:
a.Tersedia 64 MB memori, 8 MB untuk sistem operasi
b.Proses 1 aktif dan membutuhkan 20 MB
c.Proses 2 aktif dan memerlukan 14 MB
d.Proses 3 aktif dan memerlukan 18 MB, sisa memori tinggal 4 MB
e.Proses 2 selesai
f.Proses 4 aktif dan memerlukan 8 MB ditempatkan à di ruang memori bekas proses 2 → terjadi fragmentasi eksternal sebesar 6 MB
g.Proses 1 telah selesai → tersedia ruang bebas sebesar 20 MB

h.Proses 2 aktif lagi dan titempatkan pada lokasi bekas proses 1 → terjadi fragmentasi eksternal sebesar 6 MB

Algoritma yang digunakan
- Best-fit
  1. Memilih blok memori yang paling sedikit menyisakan ruang memori
  2. Biasanya performansi secara keseluruhan adalah yang paling jelek:
  • Proses pencarian lebih lama dan membebani prosesor
  • Sisa memori berukuran kecil-kecil lebih cepat terbentuk → Compaction harus lebih sering dilakukan daripada algoritma yang lain
First-fit

  1. Pencarian blok memori kosong dimulai dari awal
  2. Blok memori yang dipilih adalah blok memori yang pertama kali ditemukan dan ukurannya sesuai
  3. Merupakan algoritma yang paling baik:
  • Paling cepat
  • Paling sederhana
  • Pencarian akan melewati sejumlah proses yang terletak pada bagian ujung awal memori sebelum menemukan blok memori yang bebas

Next-fit
  1. Pencarian blok memori kosong dimulai dari lokasi placement terakhir
  2. Lebih jelek dibanding First-fit, karena:
  3. Blok memori yang ditemukan sering berada pada ujung akhir memori yang merupakan blok memori berukuran paling besar:
  • Blok memori yang besar akan lebih cepat terpartisi menjadi blok memori yang lebih kecil
  • Compaction untuk memperoleh blok memori berukuran besar pada ujung akhir memori harus lebih sering dilakukan daripada First-fit.   
Partisi dinamis (dynamic)
Contoh penggunaan algoritma
Ukuran proses baru = 16 MB
Memori sisa:
Best-fit = 2 MB
First-fit = 6 MB
Next-fit = 20 MB

Kelebihan:
  1. Tidak terjadi fragmentasi internal
  2. Penggunaan memori lebih efisien
  3. Jumlah proses aktif lebih fleksibel (tidak tetap.
 Kekurangan:
  1. Implementasinya lebih susah
  2. Dapat terjadi fragmentasi eksternal
  3. Terjadi overhead penggunaan prosesor:
  • Untuk compaction
  • Untuk menjalankan algoritma

Nah cukup sampai disini aja gan
materi berikutnya akan dilanjutkan di next post

Deadlock & Starvation

Jan 13, 2015
Posted by Unknown
Selamat malam Gan

post ini akan melanjuti dari post siang tadi dan materi sekarang yaitu :

DEADLOCK & STARVATION
dibawah berikut bagian-bagian dari materi Deadlock & Starvation
  1. Definisi Deadlock
  2. Penyebab Deadlock
  3. Penanggulangan Deadlock
  4. Algoritma-Algoritma
  5. Starvation
sekarang saya akan membahas tahap 1 yaitu Definisi Deadlock, apa kalian tahu apa itu Deadlock?
Deadlock dalam arti sebenarnya adalah kebuntuan.
Kebuntuan yang dimaksud dalam sistem operasi adalah kebuntuan proses.
Jadi Deadlock ialah suatu kondisi dimana proses tidak berjalan lagi atau pun tidak ada komunikasi lagi antar proses.

dan ini definisi Deadlock menurut masing-masing tertentu:
  • Deadlock: sekumpulan proses yg menunggu event yang hanya bisa dimunculkan oleh salah satu dari proses anggotaTidak ada proses yang bisa berlanjut, melepaskan resources, atau diaktifkan kembali.Berawal dari situasi supply resources lebih kecil daripada demand.
  • Deadlock adalah keadaan dimana dua program memegang kontrol terhadap sumber daya yang dibutuhkan oleh program yang lain.Tidak ada yang dapat melanjutkan proses masing-masing sampai program yang lain memberikan sumber dayanya, tetapi tidak ada yang mengalah.
Ilustrasi Pada Deadlock
contohnya pada penyebrangan jalan 

contoh pada persimpangan jalan

nah sekarang membahas tahap ke 2 yaitu : Penyebab Deadlock
Penyebab Deadlock
Kondisi mutual exclusion
  • Hanya ada satu proses yang menggunakan suatu sumber daya.
  • Proses lain yang juga ingin menggunakannya harus menunggu hingga sumber daya tersebut dilepaskan oleh proses yang telah selesai  menggunakannya.
Kondisi hold and wait
Suatu proses yang memiliki minimal satu buah sumber daya melakukan request lagi terhadap  sumber daya. Tetapi, sumber daya yang dimintanya sedang dimiliki oleh proses yang lain.
Kondisi non-preemptive.
  • Sebuah sumber daya hanya dapat dilepaskan oleh proses yang memilikinya secara sukarela setelah ia selesai menggunakannya.
Kondisi circular wait.
  • Kondisi seperti rantai, yaitu sebuah proses membutuhkan sumber daya yang dipegang proses berikutnya.
selanjutnya membahas tahap ke 3 yaitu : Penanggulangan Deadlock.

dibawah berikut ada macam macam Penanggulangan Deadlock
  • Mengabaikan masalah Deadlock.
  • Mendeteksi dan memperbaiki.
  • Penghindaran yang terus menerus dan pengalokasian yang baik dengan Deadlock avoidance.
  • Pencegahan yang secara struktur Deadlock prevention.

1 Mengabaikan Masalah Deadlock
Metode ini lebih dikenal dengan Algoritma Ostrich.
  • Algoritma ini membutuhkan informasi tentang sumber daya mana yang akan diminta suatu proses dan berapa lama akan digunakan.
  • Dengan informasi tersebut dapat diputuskan apakah suatu proses harus menunggu atau tidak.
  • Untuk menghadapi Deadlock menurut algoritma ini adalah dengan berpura-pura bahwa tidak ada masalah apa pun.
2 Mendeteksi & Memperbaiki
Algoritma ini akan mendeteksi sistem mana yang terlibat di dalamnya.
  • Setelah diketahui sistem mana saja yang terlibat maka diadakan proses untuk memperbaiki dan menjadikan sistem berjalan kembali.
Hal-hal yang terjadi dalam mendeteksi adanya Deadlock adalah:
  • Permintaan sumber daya dikabulkan selama memungkinkan.
  • Sistem operasi memeriksa adakah kondisi circular wait secara periodik.
  • Pemeriksaan adanya deadlock dapat dilakukan setiap ada sumber daya yang hendak digunakan oleh sebuah proses.
  • Memeriksa dengan algoritma tertentu.
Ada beberapa jalan untuk kembali dari Deadlock, yaitu:
  • Lewat Preemption.
  • Lewat Melacak Kembali.
  • Lewat membunuh proses yang  menyebabkan Deadlock.
Lewat Preemption
  • Dengan cara untuk sementara waktu menjauhkan sumber daya dari pemakainya, dan memberikannya pada proses yang lain.
  • Ide untuk memberi pada proses lain tanpa diketahui oleh pemilik dari sumber daya tersebut tergantung dari sifat sumber daya itu sendiri.
  • Perbaikan dengan cara ini sangat sulit atau dapat dikatakan tidak mungkin.
  • Setelah melakukan preemption, maka dilakukan pengkondisian proses tersebut dalam kondisi aman dan proses dilakukan lagi dalam kondisi tersebut.
Lewat Melacak Kembali
  • Setelah melakukan beberapa langkah preemption, maka proses utama yang diambil sumber dayanya akan berhenti dan tidak dapat melanjutkan kegiatannya.
  • Oleh karena itu dibutuhkan langkah untuk kembali pada keadaan aman dimana proses masih berjalan dan memulai proses lagi dari situ.
  • Untuk beberapa sistem mencoba dengan cara mengadakan pengecekan beberapa kali secara periodic dan menandai tempat terakhir kali menulis ke disk, sehingga saat terjadi Deadlock dapat mulai dari tempat terakhir penandaannya berada.
Lewat membunuh proses yang  menyebabkan Deadlock
  • Cara yang paling umum ialah membunuh semua proses yang mengalami Deadlock.
  • Cara ini paling umum dilakukan dan dilakukan oleh hampir semua sistem operasi.
Kriteria seleksi korban ialah:
  • Yang paling jarang memakai prosesor.
  • Yang paling sedikit hasil programnya.
  • Yang paling banyak memakai sumber daya sampai saat ini.
  • Yang alokasi sumber daya totalnya tersedikit.
  • Yang memiliki prioritas terkecil.
3 Menghindari Deadlock
Ada 2 cara menghindari deadlock:
  • Jangan memulai proses apa pun jika proses tersebut akan membawa kita pada kondisi Deadlock, sehingga tidak mungkin terjadi Deadlock karena ketika akan menuju Deadlock sudah dicegah.
  • Jangan memberi kesempatan pada suatu proses untuk meminta sumber daya lagi jika penambahan ini akan membawa kita pada suatu keadaan Deadlock.
4 Pencegahan Deadlock
Mutual Exclusion
  • Kondisi sumber daya yang tidak dapat dibagi (non-sharable). Jadi, pencegahan kondisi yang pertama ini sulit karena memang sifat dasar dari sumber daya yang tidak dapat dibagi.
Hold and Wait
  • Sistem perlu memastikan bahwa setiap kali proses meminta sumber daya, ia tidak sedang memiliki sumber daya lain. Atau bisa dengan proses meminta dan mendapatkan sumber daya yang dimilikinya sebelum melakukan eksekusi, sehingga tidak perlu menunggu.
Non Preemption.
  • Bila ada proses yang sedang memiliki sumber daya dan ingin mendapatkan sumber daya tambahan, namun tidak bisa langsung dialokasikan, maka akan preempted.
  • Sumber daya yg dimiliki proses tadi akan diberikan proses lain yg membutuhkan & sedang menunggu.
  • Proses akan mengulang kembali eksekusinya setelah semua sumber daya yang dibutuhkan didapatkan.
Circular Wait
  1. Kondisi 'lingkaran setan' ini dapat 'diputus' dengan jalan menentukan total kebutuhan terhadap semua tipe sumber daya yang ada.
  2. Selain itu, digunakan pula mekanisme enumerasi terhadap tipe-tipe sumber daya yang ada.
  3. Setiap proses yang akan meminta sumber daya harus meminta sumber daya dengan urutan yang menaik.Misalkan sumber daya printer memiliki nomor 1,CD-ROM memiliki nomor 3.
  • Proses boleh melakukan permintaan terhadap printer dan kemudian CD-ROM, namun tidak boleh sebaliknya.
Selanjutnya masuk ke tahap 4 yaitu : Algoritma-Algoritma

Algoritma Bankir
Menurut Dijkstra (1965) algoritma penjadwalan dapat menghindari Deadlock dan algoritma penjadwalan itu lebih dikenal dengan sebutan algoritma bankir.
  • Algoritma ini dapat digambarkan sebagai seorang banker yang berurusan dengan kelompok orang yang meminta pinjaman.
  • Jadi kepada siapa dia dapat memberikan pinjamannya.
  • Dan setiap pelanggan memberikan batas pinjaman maksimum kepada setiap peminjam dana.
Algoritma Bankir
Secara umum algoritma bankir dapat dibagi menjadi empat struktur data:
1.Tersedia.
  • Jumlah sumber daya/dana yang tersedia.
2.Maksimum.
  • Jumlah sumber daya maksimum yang diminta oleh setiap proses.
3.Alokasi.
  • Jumlah sumber daya yang dibutuhkan oleh setiap proses.
4.Kebutuhan.
  • Maksimum-alokasi, sisa sumber daya yang dibutuhkan oleh proses setelah dikurangi dengan yang dialokasikan.
Algoritma Bankir
  • Deadlock akan terjadi apabila terdapat seorang peminjam yang belum mengembalikan uangnya dan ingin meminjam kembali, padahal uang yang belum dikembalikan tadi dibutuhkan oleh peminjam lain yang juga belum mengembalikan uang pinjamannya.
Selanjutnya tahap terakhir yaitu : Starvation.apa kalian tahu apa Starvation?
Starvation adalah sebuah kondisi dimana ada satu atau lebih proses yang tidak pernah dieksekusi karena tidak pernah mendapat jatah sumber daya.

Ilustrasi Starvation
Terdapat tiga proses, yaitu P1, P2 dan P3.
  • P1, P2 dan P3 memerlukan pengaksesan sumber daya R secara periodik.
Skenario berikut terjadi :
  • P1 sedang diberi sumber daya R sedangkan P2 dan P3 di-blocked menunggu sumber daya R.
  • Ketika P1 keluar dari critical section, maka P2 dan P3 diijinkan mengakses R.
  • Asumsi P3 diberi hak akses, kemudian setelah selesai, hak akses kembali diberikan ke P1 yang saat itu kembali membutuhkan sumber daya R.
  • Jika pemberian hak akses bergantian terus-menerus antara P1 dan P3, maka P2 tidak pernah memperoleh pengaksesan sumber daya R.
  • Dalam kondisi ini memang tidak terjadi deadlock, hanya saja P2 mengalami starvation (tidak ada kesempatan untuk dilayani).

nah sampai disini saja gan
materi selanjutnya akan di post berikutnya
Welcome to My Blog

Pages

Total Pageviews

- Copyright © Science Krisna -Robotic Notes- Powered by Blogger - Designed by Johanes Djogan -