Selasa, 10 Januari 2012

sistem Operasi

    Sistem Operasi
          Deadlock
          Apakah deadlock itu ?
Proses disebut deadlock jika
          Suatu proses menunggu kejadian yang tidak pernah terjadi.
          Dimana dua proses atau lebih tidak dapat meneruskan eksekusinya karena kondisi tertentu yang terpenuhi.
          Semua deadlock yang terjadi disebabkan persaingan memperoleh sumber daya eksklusif oleh dua proses atau lebih.
          Contoh deadlock
          Proses A meminta printer dan langsung dapat dipenuhi
          Proses B meminta tape drive dan langsung dapat dipenuhi
          Proses A meminta tape drive tapi harus  menunggu proses B melepas hak pakainya.
          Proses B meminta printer tapi harus menunggu proses A melepas hak pakainya.
          Penyebab deadlock (1)
Ada 4 kondisi penyebab terjadinya deadlock
          Kondisi Mutual exclusion – hanya satu proses yang menggunakan sumber daya pada suatu saat.
          Kondisi hold and wait – proses sedang menggengam suatu sumber daya dan menunggu sumber daya yang lain.
          Kondisi non preemtion – sumber daya yang sedang digunakan suatu proses tidak dapat diambil alih secara paksa oleh proses lain.
          Penyebab deadlock (2)
          Kondisi circular wait – lingkaran mata rantai yang terdiri dari dua proses atau lebih, dimana masing – masing proses menunggu sumber daya yang digenggam oleh proses berikutnya pada mata rantai itu.
          Jenis sumber daya
Ada dua jenis sumber daya yaitu,
          Sumber daya preemtable yaitu sumber daya yang dapat disela penggunaanya oleh suatu proses. Contohnya memori
          Sumber daya non preemtable yaitu sumber daya yg tidak dapat disela penggunaannya oleh suatu proses. Contohnya printer
          Urutan menggunakan sumber daya
          Berikut ini adalah urutan langkah – langkah untuk menggunakan sumber daya,
1.       Proses harus meminta sumber daya tersebut, jika sumber daya tidak tersedia maka proses harus menunggu dulu sampai tersedia.
2.       Jika sumber daya telah tersedia maka proses  menggunakan sumber daya tersebut
3.       Jika sudah selesai menggunakan sumber daya tersebut maka proses harus membebaskan sumber daya tersebut
          Pemodelan deadlock
          Untuk menjelaskan fenomena deadlock agar lebih mudah dipahami para pakar sistem operasi menggunakan 2 bagan yaitu
1.       Join progress graph yaitu graph yang digunakan untuk menjelaskan perjalanan suatu deadlock
2.       Resource allocation graph yaitu graph yang digunakan untuk menjelaskan hubungan antara proses dengan resource
          Join progress graph
          Perjalanan proses dari keadaan normal sampai keadaan deadlock dapat digam-barkan oleh suatu bagan  yg disebut join progress graph.
          Gambar berikut menunjukan join progress graph untuk 2 proses A dan B.
          Sumbu horisontal menunjukan instruksi yang dieksekusi oleh proses A.
          Sumbu vertikal menunjukan instruksi yang dieksekusi oleh proses B.
          Join progress graph
          Dari normal menjadi deadlock (1)
          Setiap titik pada graph menunjukkan status gabungan antara kedua proses.
          Dimulai dari titik P menunjukkan tidak ada proses yang mengeksekusi suatu instruksi.
          Penjadwal memilih proses A dijalankan terlebih dahulu sampai waktu di titik Q. kemudian
          Penjadwal memilih proses B untuk dijalankan sampai waktu di titik R. kemudian
          Dari normal menjadi deadlock (2)
          Penjadwal memilih proses A untuk dijalankan sampai waktu di titik S. kemudian
          Penjadwal memilih proses B untuk dijalankan sampai waktu dititik t. pada saat inilah kedua proses berada di daerah tidak aman.
          Pada saat itu proses A membutuhkan plotter dan proses B membutuhkan printer dimana keduanya tidak tersedia
          Resource allocation graph
          Deadlock dapat juga digambarkan menggunakan bagan resource allocation graph (RAG).
          Graph ini terdiri dari himpunan titik V (verteks) dan himpunan sisi (edge) E.
          Himpunan V terdiri dari 2 jenis yaitu
1.       P = {P1,P2,…,Pn}  yang mewakili proses 
2.       R = {R1,R2,…,Rn} yang mewakili resource.
          Edge menghubungkan proses P dengan resource R secara langsung dan biasa disebut request edge.
          Contoh Resource allocation graph
a)      Proses A menggunakan sumber daya R
b)      Proses B meminta sumber daya S
c)       Proses C dan D berada dalam keadaan deadlock karena saling menunggu sumber daya T dan U.
          RAG tanpa deadlock
          Resource allocation graph diatas menunjukkan penggunaan sumber daya oleh proses tanpa menyebabkan deadlock karena tidak ada siklus.
          RAG dengan deadlock
          Resource allocation graph disamping ini menunjukkan penggunaan sumber daya o/ proses yg menyebabkan terjadinya deadlock karena terdapat siklus
          Contoh aktivitas membentuk deadlock
          Contoh aktivitas menghindari deadlock
          Metode menangani deadlock
  1. Metode tutup mata, dipakai pada sistem operasi yang deadlocknya jarang terjadi seperti DOS dan UNIX.
  2. Metode pencegahan dan menghindar dimana sistem dipastikan tidak pernah memasuki keadaan deadlock
  3. Metode deteksi dan pemulihan dimana sistem dibebaskan untuk dapat memasuki status deadlock, jika terjadi deadlock maka akan terdeteksi kemudian dilakukan langkah pemulihan.
          Algoritma ostrich
          Adalah algoritma yang menganggap tidak terjadi apa – apa jika terjadi deadlock.
          Para pakar sistem operasi dapat menerima algoritma ini jika
        Deadlock sangat jarang terjadi
        Biaya pencegahannya tinggi
          UNIX dan Windows menggunakan pendekatan ini dengan asumsi penggunanya dapat menoleransi terjadinya deadlock
          Metode pencegahan
          Metode ini dilakukan dgn cara memeriksa kembali cara alokasi sumber daya agar paling sedikit satu dari kondisi penyebab deadlock tidak akan terjadi.
          Keempat kondisi tersebut adalah
        Mutual exclusion
        Hold and wait
        No preemtion
        Circular wait
          Mencegah kondisi deadlock (1)
          Meniadakan mutual exclusion
        Cara ini hanya diperlukan untuk sumber daya yang non sharable dan tidak diperlukan untuk sumber daya yang sharable
          Meniadakan hold and wait
        Dengan kata lain kondisinya menjadi hold and release artinya,
        Jika suatu proses  meminta  sumber daya maka harus dijamin proses tersebut melepas sumber daya yang digenggamnya.
        Mencegah kondisi deadlock (2)
          Meniadakan non-preemtion
                Saat suatu proses yang sedang memegang sumber daya meminta sumber daya lain dan tidak dapat segera dipenuhi maka semua sumber daya yang sekarang dipegang harus dilepas dahulu dan proses tersebut menunggu.
          Meniadakan Circular wait
                Jika terjadi kondisi ini maka alokasi sumber daya harus ditata ulang.
          Metode menghindar deadlock (1)
Salah satu cara u/ menghindari deadlock a/
          Memiliki informasi tambahan yg berhubungan dengan sumber daya yang diminta.
          Memeriksa status alokasi sumber daya untuk memastikan tidak terjadi kondisi circular wait.
          Status alokasi sumber daya didefinisikan sebagai jumlah sumber daya yang
        tersedia,
        dipakai
        dibutuhkan
          Metode menghindar deadlock (2)
          Setiap akan memenuhi permintaan sumber daya dilakukan analisa keadaan terlebih dahulu yang didasarkan pada :
        Sumber daya yang tersedia
        Sumber daya yang digunakan
        Sumber daya yang akan diperlukan
        Sumber daya yang akan dibebaskan
          Status aman (1)
          Tindakan alokasi sumber daya untuk suatu proses dilakukan jika status sistem dijamin aman.
          Suatu status dikatakan aman jika sistem dapat mengalokasikan sumber daya ke setiap proses yang memerlukan (sampai pada maksimumnya) dgn urutan tertentu.
          Suatu status dikatakan aman jika terdapat barisan aman dari semua proses.
          Status aman (2)
          Barisan proses <P1, P2, …, Pn> aman jika, sumber daya yang masih diperlukan oleh Pi dapat dipenuhi dari sumber daya yang bebas dan sumber daya yang akan selesai dipakai oleh semua Pj dimana j < i.
          Jika tidak bisa dipenuhi maka Pi      menunggu sampai semua Pj selesai.
          Jika Pi selesai maka Pi+1 bisa dipenuhi kebutuhan sumber dayanya.
          Contoh kasus 1 : status aman
          Suatu sistem komputer memiliki sumber daya setipe sebanyak 10 unit.
          Proses A membutuhkan sumber daya maksimum sebanyak 10 unit. Saat ini menggenggam 2.
          Proses B membutuhkan sumber daya maksimum sebanyak 3 unit. Saat ini menggenggam 1.
          Proses C membutuhkan sumber daya maksimum sebanyak 7 unit. Saat ini menggenggam 3.
          Contoh kasus 1 : status aman
Kasus diatas dapat dijabarkan dalam tabel berikut ini :
          Langkah 1 : status aman
          Langkah 2 : status aman
          Langkah 3 : status aman
          Contoh kasus 2 : Status tidak aman
Tabel dibawah ini menunjukan status aman
          Langkah 1 : status tidak aman
          Contoh kasus 3 : status aman
a)      Proses A, B, C menggenggam 3, 2, 2 resource sedangkan maksimum resource yang dibutuhkan 9, 4, 7, adapun resource yang bebas adalah 3
b)      Kemudian 2 resource yang bebas dialokasikan ke proses B hingga proses B selesai.
c)       Ketika proses B selesai maka jumlah resource yang bebas menjadi 5
d)      Kemudian 5 resource bebas tersebut dialokasikan ke proses C hingga proses C selesai.
e)      Sehingga kondisi terakhir adalah menyelesaikan proses A yang kebutuhan sumber dayanya dapat dipenuhi.
          Contoh kasus 4 : status tidak aman
          Contoh kasus 5 :
menentukan persediaan dan status
          Suatu sistem komputer memiliki 12 disk-drive dan 3 proses yaitu P0, P1, P2.
          Proses P0 membutuhkan 10 diskdrive, proses P1 membutuhkan 4 diskdrive, dan proses P2 membutuhkan 9 diskdrive.
          Saat t1 P0 membutuhkan 3 diskdrive, P1 membutuhkan 2 diskdrive, P2 membutuhkan 1 diskdrive
          Saat t2 P0 membutuhkan 5 diskdrive, P1 membutuhkan 2 diskdrive, P2 membutuhkan 2 diskdrive
          Saat t3 P0 membutuhkan 5 diskdrive, P1 membutuhkan 2 diskdrive, P2 membutuhkan 3 diskdrive
          Tentukan persediaan sumber daya  dan status sistem !
          Jawaban kasus 5 :
menentukan persediaan dan status
          Ruang keadaan
          Jika sistem berada dalam status aman maka tidak akan terjadi deadlock.
          Jika sistem berada dalam status tidak aman maka ada peluang terjadi deadlock,
          Metode menghindari deadlock memastikan bahwa sistem tidak memasuki status tidak aman.
          Algoritma banker (1)
          Algoritma ini diusulkan pertama kali oleh Djikstra.
          Disebut algoritma banker karena memodelkan seorang bankir yang memutuskan permohonan kredit para nasabahnya.
          Dalam hal ini bankir mewakili sistem operasi, nasabah mewakili proses, sedangkan kredit mewakili sumber daya.
          Pada algoritma ini kondisi mutual exclusion, hold and wait dan no preemtion diijinkan.
          Algoritma banker (2)
a)      Pada tabel ini terdapat empat nasabah yg mengajukan kredit yg nilainya pd kolom Max.
b)      Bankir menerima permohonan tsb dgn alokasi  secukupnya shg resource yg tersedia cukup utk memenuhi kebutuhan max salah satu proses.
c)       Jika alokasi kreditnya seperti pada keadaan ini maka situasi menjadi tidak aman.
          Algoritma banker
Jadi tugas utama algoritma banker adalah
  1. Memutuskan menerima atau menolak permintaan sumber daya.
  2. Mengalokasikan sumber daya yang ada sehingga status tetap dalam keadaan aman
          Algoritma banker untuk banyak sumber daya
          Algoritma banker dapat digeneralisasi untuk untuk menangani banyak sumber daya.
          Tabel sebelah kiri menjelaskan berapa banyak sumber daya yg dialokasikan.
          Tabel sebelah kanan menjelaskan berapa banyak sumber daya yg dibutuhkan.
          Tiga vektor paling kanan menjelaskan sumber daya yang ada (E), sumber daya yang digunakan (P), sumber daya yang ada (A).
          Algoritma banker untuk banyak sumber daya
          Tabel diatas dapat ditulis dalam bentuk matriks seperti berikut ini.
          Matriks  sebelah kiri menjelaskan berapa banyak sumber daya yg dialokasikan.
          Matriks sebelah kanan menjelaskan berapa banyak sumber daya yg dibutuhkan.
          Algoritma banker
          Buatlah urutan proses sedemikian sehingga
          Jika proses pertama memiliki Need kurang dari available
          Maka proses tersebut dapat run sampai selesai
          Kemudian melepas semua alokasi sumber dayanya
          Lakukan hal serupa pd proses selanjutnya.
          Struktur data banker
#define MAXN 10
#define MAXM10
int Available [MAXM]
int Max [MAXN] [MAXM]
int Allocation [MAXN][MAXM]
int Need [MAXN][MAXM]
Perlu diketahui :  (0,3,2,1) < (1,7,3,2)
          Algoritma banker
Available
A  B C
10 5 7       
         
          Algoritma banker
          Kelemahan algoritma banker
  1. Sulit untuk mengetahui seluruh sumber daya yang dibutuhkan proses pada awal eksekusi.
  2. Jumlah proses tidak tetap dan berubah – ubah.
  3. Sumber daya yang tadinya tersedia bisa saja tidak tersedia kembali.
  4. Proses – proses yang dieksekusi haruslah tidak dibatasi oleh kebutuhan sinkronisasi antar proses.
  5. Algoritma ini menghendaki memberikan semua permintaan selama waktu yang berhingga.
          Deteksi deadlock
          Deteksi deadlock adalah teknik untuk menentukan apakah deadlock terjadi dan
          Mengidentifikasi proses – proses dan sumber daya yang terlibat deadlock
          Algoritma yang digunakan adalah mendeteksi adanya circular wait.
          Algoritma ini dijalankan secara periodik.
          Pemulihan deadlock
  1. Menyingkirkan semua proses yang deadlock.
  2. Membackup dan merestart semua proses yg deadlock.
  3. Menyingkirkan proses yang deadlock secara berturut – turut hingga tidak ada deadlock.
  4. Membatalkan alokasi sumber daya secara berturut – turut hingga tidak ada yang deadlock.
          Kriteria proses yang disingkirkan
  1. Memiliki waktu proses yang kecil.
  2. Jumlah keluaran sedikit.
  3. Mempunyai estimasi sisa waktu eksekusi yang besar.
  4. Jumlah total sumber daya terkecil yang telah dialokasikan
  5. Memiliki prioritas terkecil.
          Strategi penanggulangan deadlock terpadu
          Masing – masing teknik memiliki kelebihan dan kekurangan.
          Oleh sebab itu dibutuhkan cara yang berbeda untuk  menangani situasi yang berbeda.
          Silberschatz mengusulkan strategi penanggulangan deadlock terpadu yaitu,
1.       Kelompokan sumber daya ke dalam kelas – kelas sumber daya yang berbeda.
2.       Gunakan strategi pengurutan linier yang telah ditetapkan sebelumnya untuk pencegahan circular wait.
3.       Gunakan algoritma yang paling cocok untuk tiap kelas sumber daya tersebut.

Managemen memory

Kapan memori muncul ?
Pada komputer generasi pertama program dan data dimasukkan ke komputer dengan cara memasang dan mencabut kabel pada plugboard
cara ini oleh pengguna komputer dirasa sangat tidak efisienkarena jika ditengah jalan terjadi kesalahan input harus diulangi lagi dari awal.
Agar proses dapat berjalan dengan efisien maka Von Neuman mengusulkan supaya data dan program tersimpan dengan lokasi yang sama.
Saat itulah muncul perangkat memori yang digunakan untuk menyimpan program dan data
Mengapa memori perlu diatur ?
Meningkat utilitas CPU yang sebesar-besarnya.
Data dan instruksi dapat diakses dengan cepat oleh CPU.
Kapasitas memori utama sangat terbatas, sehingga pemakaiannya harus seefisien mungkin.
Transfer data dari/ke memori utama ke/dari dapat efisien.
Peran manajemen memori
Mengelola informasi memori yang dipakai dan tidak dipakai.
Mengalokasikan memori ke proses yang memerlukan.
Mendealokasikan memori dari proses telah selesai.
Mengelola swapping antara memori utama dan disk.
Syarat mengelola memori (1)
Manajemen memori harus dapat,                                                    Relokasi,                                                                                                      Menempatkan kode program pada alamat fisik memori utama berdasarkan alamat referensinya.                                     Proteksi,                                                                                                              Melindungi sebagian memori utama yang digunakan sistem operasi dari akses user.                                                    Sharing,                                                                                                        sejumlah proses mengakses bagian memori utama yang sama.                                
Syarat mengelola memori (1)
Organisasi logik
Program dapat  ditulis dalam bentuk modul
modul modul dapat ditulis dan dicompile secara independen
masing-masing modul mendapat perlindungan yang berbeda (read only, execute only)        
Organisasi fisik                                                                                                                                                                                                        
Binding
Binding adalah proses penempatan suatu kode program ke lokasi memori tertentu.
Binding dapat terjadi saat
Compile time waktu yang dibutuhkan prosesor untuk mengubah source program menjadi modul objek.
Load time waktu yang dibutuhkan prosesor untuk memuat modul objek kedalam memori.
Execution time waktu yang dibutuhkan prosesor untuk menjalankan program.
Alamat logika dan alamat fisik
Alamat logika adalah alamat yang dihasilkan oleh CPU
alamat fisik adalah alamat yang ada di memori utama.
Pada saat compile time dan load time alamat logika dan alamat fisik menunjukkan nilai yang sama.
Pada saat execution time alamat logika dan alamat fisik menunjukkan nilai yang berbeda.
Pada saat inilah alamat logika sering disebut sebagai alamat virtual.
Ruang alamat
Kumpulan alamat logika yang dihasilkan oleh program disebut dengan ruang alamat logika.
Kumpulan alamat fisik yang berhubungan dengan alamat logika disebut dengan ruang alamat fisik.
Pemetaan dari ruang alamat logika ke ruang alamat fisik dilakukan memory managemet unit (MMU) pada saat run time.
Hirarki memori
Secara hirarkis pengelolaan memori dapat disusun seperti piramida berikut,
Ketentuan hirarki memori
Hirarki memori ini semakin ke bawah maka:
Biaya per bit semakin rendah
kapasitas penyimpanan semakin besar
waktu akses semakin besar
frekuensi pengaksesan memori oleh prosesor semakin berkurang.
Starategi manajemen memori
Starategi manajemen memori adalah cara untuk mendapatkan kemungkinan terbaik dari penggunaan sumber daya memori.
Startegi ini terdiri dari tiga kategori yaitu,
Strategi fetch
Strategi penempatan
Strategi penggantian
Strategi fetch
Strategi fetch adalah strategi untuk menentukan kapan bagian program atau data berikutnya ditransfer ke memori utama atau hardisk.
Terdapat dua tipe strategi fetch yaitu,
Strategi demand fetch
Strategi anticipatory fetch
Strategi demand fetch
Strategi fetch yang sudah kuno adalah demand fetch yaitu menempatkan bagian program berikutnya saat bagian program tersebut dirujuk oleh program yang sedang berjalan.
Strategi ini dapat menurunkan kinerja proses karena ketika bagian program berikutnya dibutuhkan maka proses harus menunggu dulu program tersebut dimuat
Strategi anticipatory fetch
Strategi fetch yang sekarang digunakan adalah anticipatory fetch yaitu,
Membuat perkiraan bagian mana dari program berikutnya yang perlu ditempatkan kemudian
membuat langkah antisipasi sehingga ketika bagian program berikutnya dibutuhkan sudah terdapat di memori.
Starategi penempatan
Strategi penempatan adalah strategi untuk memutuskan dimana program berikutnya ditempatkan di memori utama.
Ada tiga tipe strategi penempatan yaitu,
strategi penempatan first fit
strategi penempatan best fit
strategi penempatan worst fit
Strategi penggantian
Startegi penggantian adalah strategi untuk memutuskan
Bagian program atau data mana sudah tidak dibutuhkan sehingga
Bagian program atau data tersebut dapat dihapus di memori utama
Ruang memori tersebut dapat disiapkan untuk program berikutnya yang akan datang
Pengalokasikan memori secara berurutan
Pengalokasikan memori secara berurutan banyak ditemui pada komputer-komputer lama.
Suatu program akan menempati satu blok lokasi memori
jika hanya satu blok program yang menempati memori maka disebut monoprogram.
Jika lebih dari satu program yang menempati memori maka disebut multiprogram.
Monoprogram
Monoprogram adalah skema manajemen memori yang paling sederhana karena
Hanya mengijinkan satu program/proses yang berjalan pada suatu saat.
Semua sumber daya dikuasi oleh proses yang sedang berjalan.
Berikut ini adalah gambar tiga cara alokasi memori monoprogram  
Tiga cara alokasi monoprogram (1)
(a) sistem operasi diletakkan alamat bawah RAM sedangkan user program dialamat atasnya. model seperti ini digunakan pada komputer mainframe lama
Tiga cara alokasi monoprogram (2)
Sistem adalah operasi diletakkan di ROM, sedangkan user program di RAM. Model seperti ini digunakan pada komputer palmtop dan embeded system.
Sistem operasi diletakkan di RAM alamat bawah, user program dialamat diatasnya dan device driver diletakkan di ROM dalam bentuk ROM BIOS. Model seperti ini digunakan oleh sistem operasi DOS. 
Ciri monoprogram
Manajemen memori monoprogram memiliki ciri sebagai berikut,
 Hanya satu proses pada suatau saat
Hanya satu proses yang menggunakan semua memori
hanya satu proses mengendalikan seluruh sistem
pemakaian memuat program ke memori dari disk atau tape
Proteksi pada monoprogram (1)
Jika sistem operasi diletakkan pada lokasi memori yang rendah sedangkan user program diletakkan pada lokasi memori yang tinggi maka perlu adanya proteksi terhadap memori.
Proteksi ini dilakukan dengan menggunakan bas register dan limit register.
Nilai register tersebut dapat diubah secara dinamis.
Berikut ini adalah gambar cara memproteksi alokasi memori monoprogram.
Proteksi pada monoprogram (2)
Embeded System
Teknik monoprogram masih dipakai untuk sistem yang ditanam (embeded system).
Embeded system adalah sistem untuk mengendalikan suatu alat sehingga menjadi pintar.
Biasanya sistem ini menyediakan satu fungsi spesifik.
Karena hanya satu fungsi maka hanya membutuhkan satu mikroprosesor dengan memori yang kecil (1- 64 kb).
Contoh embeded system
Embeded system di mobil antara lain untuk,
Pengendalian pengapian
Pengendalian pengeluaran bahan bakar
pengendalian pengeraman
pengendalian suspensi
pengendalian kemudi
DLL
Multiprogram dengan partisi statis (2)
Multiprogram dengan partisi statis adalah program-program yang ditempatkan pada partisi statis
partisi statis memori yang dipecah menjadi beberapa bagian dengan ukuran tetap.
Partisi sudah dibuat lebih dulu sebelum proses ada.
Multiprogram dengan partisi statis (2)
Jika proses tersebut selesai maka partisi tersebut akan digunakan oleh proses lain
model ini digunakan oleh komputer IBM dengan sistem operasi OS/360.
Berdasarkan ukuran partisinya maka multiprogram dengan partisi statis dapat dibedakan menjadi,
Partisi statis berukuran sama
Partisi statis berukuran tidak sama
Partisi statis berukuran sama
Proses yang ukurannya kurang atau sama dengan ukuran partisi dimuat pada partisi yang tersedia
jika ukuran program lebih besar daripada ukuran partisi maka program tidak dapat dimuat.
Jika ukran program lebih kecil daripada ukuran partisi maka banyak ruang yang tidak dipakai yang disebut fragmentasi internal
Overlay
Supaya program yang lebih besar dari partisi dapat dimuat maka perlu teknik overlay
overlay adalah membagi program yang besar menjadi bagian-bagian yang lebih kecil sehingga dapat dimuat pada partisi memori.
Bagian program yang ditempat pada partisi adalah bagian yang sedang running
sedangkan bagian lainnya diletakkan dalam memori sekunder.
Partisi statis berukuran tidak sama
Untuk menyelesaikan persoalan pada partisi statis berukuran sama maka dibuatlah partisi statis berukuran tidak sama.
Proses dimuat pada partisi yang ukurannya sama atau mendekati ukuran partisi.
Dengan cara ini fragmentasi internal tetap ada hanya jauh berkurang.
Ada 2 cara pengalokasian memori pada model ini yaitu.
Cara pengalokasian partisi
Ada dua cara pengalokasian memori pada partisi statis yaitu,
Satu antrian untuk tiap partisi
Satu antrian untuk seluruh partisi
Seperti dijelaskan pada gambar berikut,
Satu antrian untuk tiap partisi
Cara ini memiliki antrian sebanyak partisi yang ada
proses ditempatkan pada partisi yang ukurannya paling kecil yang dapat memuatnya
keuntungan teknik ini dapat meminimalkan pemborosan memori
kekurangan teknik ini dapat terjadi antrian yang panjang pada satu partisi sedangkan partisi lainnya kosong.
Satu antrian untuk seluruh partisi
Cara ini hanya memiliki satu antrian untuk semua partisi
proses ditempatkan pada partisi yang ukurannya paling kecil yang dapat memuatnya.
Keuntungan teknik ini adalah operasi yang dilakukan manajer memori lebih sedikit sehingga lebih efisien
kelemahan teknik ini adalah suatu ketika proses ditempatkan pada partisi yang ukurannya jauh lebih besar daripada ukuran proses.
Permasalahan Pada partisi statis
Berdasarkan penjelasan diatas partisi statis memiliki dua permasalahan yaitu
Fragmentasi internal
ukuran partisi lebih besar dan ukuran proses sehingga menimbulkan lubang-lubang kecil pada partisi.
Pelanggaran partisi
bisa jadi suatu proses pada suatu partisi akan masuk kepartisi tetangganya sehingga mengganggu jalannya proses lain.
Multiprogram dengan partisi dinamis
Mutiprogram dengan partisi dinamis adalah program-program yang ditempat pada partisi yang dinamis.
Partisi dinamis adalah memori yang dipecah denga ukuran yang selalu berubah.
Partisi baru dibuat setelah proses ada dan besar partisi sesuai denga ukuran proses.
Kelemahan partisi ini adalah,
munculnya lubang-lubang kecil yang saling berjauhan yang disebut fragmentasi eksternal
menyulitkan dalam melakukan alokasi dan dealokasi.
Efek partisi dinamis
Efek partisi dinamis
Fragmentasi
Fragmentasi adalah sebagian atau seluruh ruang partisi kosong karena bagian lainnya digunakan oleh suatu proses.
Karena satu partisi untuk satu proses maka sebagian ruang partisi yang kosong itu tidak dapat digunakan oleh proses lain.
Hal ini menyebabkan pemborosan pemakaian memori.
Ada dua jenis fragmentasi yaitu,                       
fragmentasi internal yaitu ruang kosong pada sebagian partisi.
Fragmentasi eksternal yaitu ruang kosong pad seluruh partisi
kompaksi
Salah satu cara untuk menghilangkan fargmentasi eksternal adalah dengan melakukan kompaksi.
Kompaksi adalah menempatkan ulang proses-proses yang ada di memori sehingga posisi lubang dapat berdekatan.
Untuk melakukan kompaksi proses yang ada harus diswapping terlebih dahulu.
Gambar berikut menjelaskan memori sebelum dikompaksi dan setelah dikompaksi.
Gambar hasil kompaksi
Swapping
penyimpangan dan dipanggil lagi ke memori jika akan melanjutkan eksekusi.
Contoh swapping dapat dilihat pada gambar berikut Swapping adalah mengalihkan sementara proses yang ada di memori ke suatu tempat. ini
Algoritma alokasi memori
Alokasi proses harus mencari blok memori yang ukurannya cocok dengan ukuran proses.
Ada lima algoritma untuk mengalokasikan proses pada partisi dinamis yaitu, Algoritma first fit
Algoritma next fit
Algoritma best fit
Algoritma worst fit
Algoritma quick fit
Sistem buddy
Sistem buddy adalah algoritma untuk mengelola alamat memori utama dengan memanfaatkan kelebihan bilangan biner.
Karakteristik bilangan biner digunakan untuk mempercepat penggabungan lubang-lubang yang berdekatan ketika proses berakhir.
Manajer memori mengelola blo memori bebas berukuran 1,2,4,8,16 byte dan seterusnya.
Mekanisme sistem buddy (2)
Misalkan suatu memori utama memiliki satu lubang besar berukuran 1 Mb.
Jika proses A berukuran 90 kb memasuki memori maka permintaan ini akan dialokasikan ke ukuran blok terdekat yaitu 128 kb.
Karena tidak tersedia blok berukuran 128 kb maka blok 1Mb dipecah menjadi dua blok masing-masing 512 kb.
Kemudian satu blok berukuran 512 kb dipecah menjadi dua blok berukuran 256 kb.
Mekanisme sistem buddy
Kemudian satu blok berukuran 256 dipecah menjadi dua blok masing-masing 128 kb.
Jika proses A berukuran 50 kb memasuki memori maka permintaan ini akan dialokasikan ke ukuran blok terdekat yaitu 64 kb.
Karena tidak tersedia blok berukuran 64 kb maka satu blok berukuran 128 kb dipecah menjadi dua blok masing-masing berukuran 64 kb.
Demikian seterusnya seperti yang dijelaskan pada gambar berikut ini.
Gambar sistem buddy
Pencatatan memori
Untuk kepentingan pengelolaan memori maka perlu dilakukan pencatatan memori.
Pencatatan memori bertujuan untuk mengetahui lokasi mana yang masih kosong dan lokasi mana yang sudah dipakai.
Ada dua car pencatatan memori yaitu
Peta bit
Linked bit

Tidak ada komentar:

Posting Komentar