Senin, 18 Oktober 2010

Manajemen Memory

MANAJEMEN MEMORI

A. Berdasarkan keberadaan swapping :
     1. Manajemen tanpa swapping.
         Manajemen memori tanpa pemindahan citra proses antara memori     
         utama dan disk selama ekseskusi.
     2. Manajemen dengan swapping.
         Manajemen memori dengan pemindahan citra proses antara         
         memori utama dan disk selama ekseskusi.
B. Manajemen Memori Berdasarkan Alokasi Memori
terdapat dua cara menempatkan informasi ke dalam memori kerja

     1. Alokasi Memori Berurutan (contigouos Allocation)
         - Pada alokasi memori berurutan, setiap proses menempati satu blok   
           tunggal lokasi memori yang berurutan.
         - Kelebihan : sederhana, tidak ada rongga memory
           bersebaran, proses berurutan dapat dieksekusi secara cepat.
         - Kekurangan : memori boros, tidak dapat disisip apabila tidak ada
           satu blok memori yang mencukupi.

     2. Alokasi Memori Tak Berurutan (Non Contiguous Allocation)
         - Program / proses ditempatkan pada beberapa sagmen berserakan,   
           tidak perlu saling berdekatan atau berurutan. biasanya digunakan  
           untuk lokasi memori maya sebagai lokasi page-page.
        - Kelebihan : sistem dapat memanfaatkan memori utama secara lebih
           efisien, dan system operasi masih dapat menyisip protes bila   
           jumlah lubang-lubang memori cukup untuk memuat proses yang    
           akan dieksekusi.
         - Kekurangan : memerlukan pengendalian  yang lebih rumit dan     
           memori jadi banyak berserakan tidak terpakai.

Terdapat 2 manajemen memori:

a. manajemen memori statis
Dengan pemartisian statis, jumlah, lokasi, dan ukuran prosesdi memori tidak beragam sepanjang waktu secara tetap.
b. manajemen memori dinamis
Dengan pemartisian dinamis, jumlah, lokasi, dan ukuran proses di memori dapat berseragam sepanjang waktu secara dinamis.

MANAJEMEN MEMORI PEMARTISIAN STATIS

Kondisi tanpa swapping :

a. Monoprogramming.
Merupakan manajemen memori paling sederhana, sistem komputer hanya mengijinkan satu program/pemakai berjalan pada satu waktu. Semua sumber daya sepenuhnya dikuasi proses yang sedang berjalan. 

b. Multiprogramming dengan pemartisian statis
Multiprogramming dapat dilakukan dengan pemartisian statis, yaitu memori dibagi menjadi beberapa sejumlah partisi tetap. Pada partisi-partisi tersebut proses-proses ditempatkan.

*MONOPROGRAMMING :

1. Hanya terdapat satu proses pada satu saat, sehingga proses baru akan     
    menimpa proses lama yang sudah selesai eksekusi.
2. Hanya satu proses mengunakan semua memori.
3. Pemakai memusatkan program keseluruh memori dari disk atau tape.
4. Program mengambil kendali seluruh mesin.


MONOPROGRAMMING :

- Masih dipakai untuk sistem kecil yaitu sistem tempelan (embedded system) yang
   menempel atau terdapat disistem lain.
- Sistem-sistem tempelan menggunakan mikroprosesor kecil, seperti Intel 8051,    
  dan sebagainya.
- Sistem ini biasanya untuk mengendalikan satu alat sehingga menjadi bersifat
   intelejen (intelegent devices) dalam menyediakan satu fungsi spesifik. Karena   
   hanya satu fungsi spesifik, dapat diprogram di mikroprosesor dengan memori   
   kecil (1-64 Kb).


MASALAH PROTEKSI DI MONOPROGRAMMING

Merupakan cara memproteksi rutin sistem operasi dari penghancuran program pemakai. Program pemakai dapat tersesat sehingga memanipulasi atau menempati ruang memori rutin sistem operasi. Aktivitas program pemakai ini dapat merusak sistem operasi. Untuk mengatasinya Sistem operasi harus diproteksi dari modifikasi program pemakai.
Proteksi ini diimplementasikan menggunakan satu register batas (boundary register) dipemroses.Setiap kali 
program pemakai mengacu alamat memori dibandingkan register batas untuk memastikan proses pemakai tidak merusak sistem operasi, yaitu tidak melewati nilai register batas.

MANAJEMEN MEMORI MULTIPROGRAMMING

melibatkan banyak pemakai secara simultan sehingga di memori akan terdapat lebih dari satu proses bersamaan. Oleh karena itu dibutuhkan sistem operasi yang mampu mendukung dua kebutuhan tersebut.

Melakukan dua aktivitas :
1. Proteksi memori dengan isolasi ruang-ruang alamat secara disjoint (terpisah).
2. Pemakaian bersama memori.
Memungkinkan proses-proses bekerja sama mengakses daerah memori bersama. Ketika konsep multiprogramming digunakan, pemakaian CPU dapat ditingkatkan.

MULTIPROGRAMMING pemartisian statis,

Terdapat beberapa alasan :
a. Mempermudah pemogram.
    Pemrogram dapat memecah program menjadi dua proses atau lebih.
b. Agar dapat memberi layanan interaktif ke beberapa orang secara simultan.
    Untuk itu diperlukan kemampuan mempunyai lebih dari satu proses dimemori
    agar memperoleh kinerja yang baik.
c. Efisiensi penggunaan sumber daya.
    Bila pada multiprogramming maka proses tersebut diblocked (hanya DMA     
    yang bekerja) dan proses lain mendapat jatah waktu pemroses, maka DMA
   dapat meningkatkan efisiensi sistem.
d. Eksekusi lebih murah jika proses besar dipecah menjadi beberapa proses kecil.
e. Dapat mengerjakan sejumlah job secara simultan.

PEMARTISIAN STATIS BERDASARKAN UKURAN

Partisi-partisinya terbagi dua :
1. Pemartisian menjadi partisi berukuran sama (ukuran semua partisi    
    memori sama), yaitu:
    Beberapa proses yang ukurannya kurang atau sama dengan ukuran partisi   
   dimasukkan ke sembarang 
    partisi yang tersedia.
    Kelemahan :
- Bila program berukuran lebih besar dibanding partisi yang tersedia, maka   
   tidak dapat dimuatkan, tidak dapat dijalankan. Pemogram harus
   mempersiapkan overlay sehingga hanya bagian program yang benar-  
   benar dieksekusi yang dimasukkan ke memori utama dan saling   
   bergantian. Untuk overlay diperlukan sistem operasi yang mendukung    
   swapping.
- Untuk program yang sangat kecil dibanding ukuran partisi yang
  ditetapkan, maka banyak ruang yang tak dipakai yang diboroskan,     
  disebut fragmentasi internal. Kelemahan ini dapat dikurangi dengan    
   partisi-partisi tetap berukuran berbeda.

2. Pemartisian menjadi partisi-partisi berukuran berbeda, yaitu ukuran semua partisi memori adalah berbeda

Strategi penempatan program ke partisi

DESKRIPSI :
a. Strategi penempatan pada pemartisian menjadi partisi-partisi berukuran sama. Penempatan proses ke memori dilakukan secara mudah karena dapat dipilih sembarang partisi yang kosong.
b. Strategi penempatan pada pemartisian menjadi partisi-partisi berukuran berbeda.

Satu antrian untuk tiap partisi (banyak antrian untuk seluruh partisi).
Proses ditempatkan ke partisi paling kecil yang dapat memuatnya.

Keuntungan :
 teknik ini adalah meminimalkan pemborosan memori.
Kelemahan :
dapat terjadi antrian panjang disuatu partisi sementara antrian partisi-partisi lain kosong.

Satu antrian untuk seluruh partisi.
Proses-proses diantrikan di satu antrian tunggal untuk semua partisi. Proses segera ditempatkan di partisi bebas paling kecil yang dapat memuat.

Keunggulan :
Lebih fleksibel serta implementasi dan operasi lebih minimal karena hanya mengelola satu antrian.
Kelemahan :
Proses dapat ditempatkan di partisi yang banyak diboroskan, yaitu proses kecil ditempatkan di partisi sangat besar.


Fragmentasi pada pemartisian statis

Fragmentasi yaitu :
Penyiaan/pemborosan memori akan terjadi pada setiap organisasi penyimpanan.

Fragmentasi pada pemartisian tetap terdiri dari:
a. Fragmentasi internal.
    Proses tidak mengisi penuh partisi yang telah ditetapkan untuk proses.
b. Fragmentasi ekstenal.
Partisi dapat tidak digunakan karena ukuran partisi lebih kecil dibanding ukuran proses yang menunggu di antrian, sehingga tidak digunakan

Fungsi Manajemen memori:

1. Mengelola informasi memori yang dipakai dan tidak dipakai.
2. Mengalokasikan memori ke proses yang memerlukan.
3. Mendealokasikan memori dari proses yang telah selesai.
4. Mengelola swapping antara memori utama dan disk.

Deskripsi Hirarki memori :

1. Pemakaian memori dua tingkat, menggunakan cache memory yang dapat meningkatkan          kinerja dan utilisasi memori secara dinamik.
2. Chace memory merupakan penyimpan berkecepatan tinggi lebih cepat dibanding memori utama.
3. Chace memory lebih mahal dibanding memori utama, sehingga kapasitas cache relatif kecil. 


Address Binding

- Sebelum eksekusi, program/proses berada di dalam disk, dan pada saat   
  dieksekusi ia perlu berada pada suatu lokasi dalam memori fisik.

- Address binding adalah menempatkan address relatif program/proses ke
  dalam address fisik meori (real memory address). Dapat berlangsung    
  dalam salah satu tahapan :   kompilasi, load atau eksekusi

Tahapan Running Program

1. Tahapan Kompilasi : source program (source code) dikompilasi menjadi   
    object module (object code).
2. Tahapan link & load : object module di-link dengan object module lain    
    menjadi load module (execution code) kemudian di-load ke memori    
    untuk dieksekusi.
3. Tahapan eksekusi : mungkin juga dilakukan dynamic
    linking dengan resident library.

Address Binding Saat Kompilasi

1. Jika lokasi dari proses sudah diketahui sebelumnya maka saat       
    kompilasi address-address instruksi dan data ditentukan dengan alamat
    fisik.
2. Jika terjadi perubahan pada lokasi tersebut maka harus di rekompilasi.


Address Binding Saat Load

1. Code hasil kompilasi masih menunjuk address-address secara relatif,                      
    saat di-load address-address disubstitusi dengan alamat fisik berdasar
    relokasi proses yang diterima.
2. Jika terjadi perubahan relokasi maka code di-load ulang.

Address Binding Saat Eksekusi

1. Binding (ikatan) bisa dilakukan ulang selama proses
     –Hal ini untuk memungkinkan pemindahan proses dari satu lokasi   
       ke lokasi lain selama run.
2. Perlu adanya dukungan hardware untuk pemetaan address
     Contoh : base register dan limit register

4 komentar: