Jumat, 15 Maret 2019

5.4 MANAJEMEN MEMORI PADA SISTEM MULTIPROGRAMMING

Berbeda dengan sistem monoprogramming, manajemen pada sistem multiprogramming memiliki karakteristik sebagai berikut:


  1. Terdapat sejumlah proses yang menempati memori utama pada setiap saat.
  2. Image proses dari program dapat dimuat seluruhnya atau sebagian saja ke memori utama.
  3. Alokasi memori utama ke proses dapat berurutan ataupun tidak berurutan.
  4. Dimungkinkan seluruh atau sebagian image proses berpindah lokasi memori utama selama eksekusinya.
  5. Dimungkinkan suatu lokasi memori utama diakses bersama oleh sejumlah proses atau disebut dengan memory sharing.


Berdasarkan cara pengalokasian memori utamanya, manajemen memori pada sistem multiprogramming dapat dikategorikan seperti yang ditunjukkan oleh Tabel 5.1

alokasi = penyediaan tempat.

Tabel 5.1 Berbagai pengotegorian alokasi memori

Dari tabel tersebut terlihat bahwa alokasi memori pada sistem multi- programming terbagi atas dua kelompok besar yaitu alokasi berurut (contiguous) dan alokasi tidak berurut (non-contiquous). Alokasi berurut masih dapat dikelompokkan lagi menjadi alokasi berurut dengan partisi statis, partisi dinamis, dan sistem buddy. Pengalokasian berurut umumnya menggunakan pengalamatan (memori) relatif sehingga pada saat alokasi image proses ke memori utama, alamat awal alokasi dicatat pada register relokasi, yang akan digunakan untuk translasi alamat.


.Untuk pengalokasian tak berurut dapat dibedakan atas sistem paging, sistem segmentation, ataupun kombinasi dari keduanya atau hybrid. Pengalamatan memori yang digunakan untuk alokasi tak berurut umumnya adalah pengalamatan logika. Setiap potongan image proses yang dialokasikan dicatat pada suatu tabel proses yang akan digunakan untuk translasi alamat.


alokasi


Perbedaan antara alokasi berurut dan tak berurut dijelaskan pada Gambar 5.7. Alokasi berurut (a) berarti seluruh potongan image proses dari program harus diletakkan pada bagian yang berurut di memori fisik dan tidak ada potongan yang tersebar ke lokasi yang berjauhan. Sebaliknya. alokasi tak berurut (b) mengijinkan potongan image proses dari program dialokasikan pada bagian yang berjauhan di memori fisik.


Berikut ini akan dibahas secara lebih rinci mengenai pengalokasian dengan partisi statis, partisi dinamis, sistem buddy, sistem paging, dan sistem segmentation.



Gambar 5.7 Alokasi berurut dan tak berurut


5.4.1 PENGALOKASIAN BERURUT DENGAN PARTISI STATIS


Pengalokasian memori utama secara berurut dengan partisi statis memi- liki karakteristik sebagai berikut:


Ciri 1. Memori dibagi menjadi partisi-partisi dengan ukuran yang tetap.


2. Satu proses hanya menggunakan satu partisi. Jika proses sudah selesai, partisi tersebut dapat digunakan oleh proses lain.


3. Membutuhkan pengelolaan informasi mengenai partisi-partisi yang kosong yang siap untuk dialokasikan.


Model alokasi berurut dengan partisi statis dapat dikategorikan berdasar- kan ukuran partisi, yaitu: dikelompokkan


1. Partisi statis berukuran sama. Yaitu ukuran tiap partisi adalah sama besarnya.


2. Partisi statis berukuran tidak sama Yaitu ukuran tiap partisi berbeda-beda.


144


Sistem Operasi


Pemartisian statis dengan ukuran yang sama memiliki kelemahan seperti yang ditunjukian oleh Gambar 5.8.


OS


Proses B


Partisi-1 256 Kbyte


kosong


Partisi-2 256 Kbyte


AREA USER


Proses C


Partisi-3 256 Kbyte


Sisa (tak terpakai)


Partisi-4 256 Kbyte


kosong


Fragmentasi internal

Gambar 5.8 Alokasi berurut dengan partisi statis berukuran sama


Kelemahan pertama adalah proses yang ukurannya lebih besar dari ukuran partisi tidak dapat dialokasikan. Hal ini dapat diatasi mengguna- kan mekanisme overlay, yaitu dibentuk semacam sliding windows di dalam partisi, di mana bagian lain program yang tidak dialokasi dapat secara bergantian menempati area sliding windows ini sesuai dengan kelangsungan eksekusi kode instruksi program tersebut. Namun ini membuat eksekusi program menjadi kompleks dan hal ini perlu dihindari untuk perancangan sistem operasi yang baik.


Kelemahan lainnya adalah jika ukuran proses lebih kecil dibandingkan ukuran partisi yang dialokasikan maka akan terjadi fragmentasi internal seperti proses C pada gambar, yaitu terjadi sisa ruang di dalam partisi yang tidak dapat digunakan oleh proses lainnya. Atau dengan kata lain terjadi pemborosan ruang memori utama.


Kelemahan dari sistem pemartisian statis dengan ukuran sama dapat di- minimalkan dengan model pemartisian statis dengan ukuran berbeda. Pemartisian yang demikian mengantisipasi beragamnya ukuran iamge proses. Proses berukuran kecil diusahakan dialokasi ke partisi yang kecil,


Manajemen Memori


145


sedangkan proses yang berukuran besar diusahakan dialokasikan ke partisi yang besar sehingga fragmentasi internal dapat ditekan seminimal mungkin.


Pada pemartisian statis dengan ukuran berbeda, pengalokasian memori dapat dilakukan dengan 2 jenis strategi seperti yang ditunjukkan pada Gambar 5.9, yaitu:


1. Satu antrian untuk tiap partisi Seperti yang terlihat pada Gambar 5.9 (a), tiap proses dialokasikan pada partisi dengan ukuran terkecil yang dapat memuat iange proses. Jika partisi tersebut ternyata sudah ditempati oleh proses lain maka proses baru tersebut akan dimasukan ke dalam antrian untuk partisi tersebut. Kelemahan model yang demikian adalah dapat terjadi suatu partisi memiliki antrian yang panjang, sedangkan partisi lain sedang kosong, sehingga utilitas memori utama tidak optimal.


2. Satu antrian untuk seluruh partisi Model strategi ini ditunjukkan Gambar 5.9 (b), yaitu semua proses dimasukkan dalam satu antrian yang sama. Suatu algoritma penjad- walan melakukan pemilihan partisi yang dialokasikan ke proses dalam antrian. Proses dialokasikan ke partisi terkecil yang sedang kosong yang dapat memuat proses tersebut. Kelemahan strategi ini adalah dapat terjadi suatu proses yang berukuran kecil terpaksa dialokasikan ke partisi tersisa yang berukuran besar, sehingga terjadi fragmentasi internal yang cukup besar. Namun hal ini dapat diatasi jika dimung- kinkan untuk melakukan relokasi memori sehingga pada saat partisi besar dibutuhkan, proses berukuran kecil yang menempati partisi tersebut dapat dipindahkan ke partisi yang berukuran lebih kecil. Namun relokasi memori merupakan suatu operasi yang mahal.


Gambar 5.9 Alokasi berurut dengan partisi statis berukuran berbeda dengan (a) satu antrian per partisi (b) satu antrian untuk semua partisi


5.4.2 PENGALOKASIAN BERURUT DENGAN PARTISI DINAMIS

Pengalokasian memori berurut dengan partisi dinamis memiliki beberapa karakteristik, antara lain:


1. Pada kondisi awal, memori utama tidak dibagi-bagi menjadi partisi- partisi.


2. Pemartisian dilakukan pada saat image proses akan disalinkan ke memori utama.


3. Ukuran partisi yang dialokasikan akan disesuaikan dengan ukuran image proses.


4. Partisi akan dibebaskan jika program sudah selesai.


5. Membutuhkan pengelolaan informasi mengenai area memori utama yang masih kosong dan dapat dialokasikan ke proses.


Keuntungan dari pemartisian secara dinamis ini adalah tidak terjadinya fragmentasi internal karena partisi memori dialokasikan sesuai dengan ukuran image proses.


Pengalokasian dilakukan dengan mencari hole, yaitu suatu fragmen memori utama yang masih kosong, yang cukup besar untuk menampung ukuran image proses. Setelah terjadi alokasi maka hole bersangkutan akan menjadi lebih kecil. Hole sisa tersebut kadang kala terlalu kecil untuk


Manajemen Memori


147


dapat dialokasikan lagi ke proses lainnya sehingga tidak dapat digunakan lagi. Kejadian seperti ini disebut dengan fragmentasi eksternal seperti ditunjukkan pada Gambar 5.10.


Gambar 5.10 Ilustrasi terjadinya fragmentasi eksternal


Gambar 5.10 (a) Menyatakan keadaan awal dari memori utama yang be- lum dialokasikan pada sembarang proses pengguna. Bagian awal memori utama ditempati oleh kode instruksi sistem operasi, sedangkan sisanya dapat dialokasikan ke proses aplikasi pengguna. Selanjutnya Gambar 5.10 (b) (c) (d) berturut-turut menggambarkan alokasi dinamis dari image proses 1, proses 2, dan proses 3.


Pada Gambar 5.10 (e) digambarkan proses 2 telah selesai dan image prosesnya dipindahkan atau didealokasikan dari memori utama sehingga terbentuk suatu hole kosong sebesar ukuran image proses 2. Kemudian pada Gambar 5.10 (f), image proses 4 dialokasikan pada hole kosong yang ditinggalkan oleh proses 2 dan akibatnya terjadinya suatu fragmentasi eksternal antara partisi proses 4 dan proses 3. Gambar 5.10 (g) dan (f) menggambarkan dealokasi dari proses 1 yang diikuti dengan alokasi proses 5 yang menempati hole kosong yang ditinggalkan oleh proses 1 yang juga menghasilkan suatu fragmentasi eksternal.


dealokasi = proses mengambil lokasi

Salah satu cara untuk mengatasi fragmentasi eksternal adalah melakukan memory compaction. Caranya adalah dengan menggeser image proses- proses yang ada di memori sehingga hole terkumpul di satu tempat saja. Namun cara ini membutuhkan beban komputasi yang berat dan sistem harus mendukung relokasi dinamis, yang berarti addres binding-nya haruslah terjadi pada waktu eksekusi.


Gambar 5.11 menjelaskan berbagai kemungkinan mekanisme memory compaction pada suatu kasus alokasi memori beserta beban komputasi yang dibutuhkannya. Gambar 5.11(a) menggambarkan alokasi memori utama sebelum terjadi memori compaction di mana terdapat hole-hole kosong sebesar 400, 300, dan 200 byte. Gambar 5.11(b) mendeskripsikan mekanisme memory compaction dengan menggeser semua proses sesuai urutan alamatnya sehingga terkumpul hole kosong tunggal sebesar 900 byte di bagian akhir memori utama. Pada model memory compaction ini diperlukan pergeseran total sebesar 600 byte.


Gambar 5.11(c) mendeskripsikan memory compaction dengan menggeser image proses 4 ke hole kosong antara partisi proses 2 dan proses 3 yang membutuhkan pergeseran total sebanyak 400 byte. Pada Gambar 5.11(d) image proses 3 ke geser ke hole kosong bagian akhir memori, yang berarti terjadi pergeseran sebesar 200 byte serta menghasilkan suatu hole kosong sebesar 900 byte di bagian tengah memori utama. Dari contoh-contoh di atas terlihat bahwa pemilihan algoritma yang tepat dalam memory compaction akan mengurangi beban komputasi yang dibutuhkan.


Gambar 5.11 Perbandingan kinerja beberapa cara memori compaction

Manajemen Memori


149


Selain terjadinya fragmentasi eksternal, kelemahan dari pemartisian di- namis adalah operasi alokasi dan dealokasi menjadi lebih rumit dibandingkan pemartisian statis. Untuk proses alokasi dan dealokasi, diperlukan pengelolaan informasi area memori yang masih kosong Contoh metode pengelolaan memori kosong antara lain menggunakan peta bit (bitmap) dan linked list.


Pada metode peta bit, digunakan suatu area memori khusus untuk mencatat seluruh area kosong pada memori utama. Pencatatan kosong tidaknya suatu alamat memori dinyatakan dengan nilai bit 0 atau 1, di mana nilai O menyatakan alamat memori tersebut masih kosong, sedang- kan nilai 1 menyatakan alamat memori tersebut sudah ditempati oleh proses. Misalnya jika kapasitas memori utama adalah 8 kbyte, dengan asumsi 1 alamat berisi data 1 byte maka diperlukan area memori sebesar Ik byte untuk pencatatan memori kosong.


Pada metode linked-list, informasi mengenai hole kosong berikutnya dicatat pada hole kosong sebelumnya. Informasi mengenai besarnya ukuran hole yang kosong serta pointer atau referensi ke hole kosong berikutnya diletakkan di awal dari suatu hole yang kosong. Pada metode linked-list ini tidak diperlukan area memori khusus untuk mencatat informasi memori kosong, karena informasi tersebut dicatat pada area memori yang kosong itu sendiri sehingga menghemat kapasitas memori utama.


Selain pengelolaan informasi memori kosong, pemartisian dinamis harus menentukan algoritma yang digunakan untuk menentukan hole mana yang akan dialokasikan ke suatu proses. Pertimbangan mengenai hole mana yang akan dialokasikan merupakan trade-off antara usaha memak- simalkan utilitas memori utama dan usaha meningkatkan kecepatan alokasi serta dealokasi memori utama. Beberapa algoritma alokasi pada pemartisian dinamis antara lain:


1. Best-fit


Algoritma best-fit mencari blok memori kosong paling kecil yang dapat menampung image proses. Algoritma ini memerlukan waktu yang lama karena harus melihat seluruh blok memori utama, tetapi fragmentasi eksternal dapat ditekan sekecil mungkin.



150


Sistem Operasi


2. First-fit


Algoritma first-fit mencari memori kosong dari alamat awal memori utama sampai menemukan blok yang dapat menampung image proses. Algoritma ini sederhana dan cepat.


3. Next-fit


Algoritma next-fit hampir sama dengan algoritma first-fit. Perbeda- annya algoritma next-fit tidak memulai pencarian dari alamat awal memori utama namun dari lokasi alokasi terakhir.


4. Worst-fit


Algoritma worst-fit mencari di seluruh memori utama untuk mene- mukan hole yang paling besar. Tujuannya adalah hole sisa yang tercipta setelah alokasi masih cukup besar untuk dialokasikan ke proses lainnya.


5.4.3 PENGALOKASIAN BERURUT DENGAN SISTEM BUDDY


Pengalokasian berurut lainnya adalah sistem buddy, yang melakukan pemartisian secara dinamis. Hal yang khusus pada sistem buddy adalah partisi yang terbentuk senantiasa berukuran sebesar bilangan pangkat 2 seperti 2,4,8,16,......256k. Alokasi memori pada sistem buddy adalah sebagai berikut:


1. Menentukan ukuran partisi Jika suatu proses baru akan di-load maka akan ditentukan ukuran partisi yang akan dibuat ataupun digunakan untuk menampung image proses. Ukuran partisi tersebut adalah bilangan pangkat 2 terkecil yang dapat memuat proses tersebut. Misalnya ukuran image proses adalah 12 kb maka ukuran partisi yang akan digunakan adalah yang berukuran sebesar 16 kb.


2. Pengalokasian


Operasi selanjutnya adalah mencari hole yang besarnya seukuran dengan perhitungan di atas. Jika ternyata tidak ada maka sistem buddy akan mencari hole yang berukuran sedikit lebih besar dan kemudian memecahnya secara bertahap sehingga didapatkan hole dengan ukuran yang ditentukan di atas. Pemecahan hole tetap


Manajemen Memori


151


mengikuti aturan ukuran bilangan pangkat 2. Misalnya untuk kasus image proses berukuran 12 kb, dan hole yang paling kecil adalah 64 kb maka pertama hole tersebut dipecah menjadi 2 partisi 32 kb. selanjutnya partisi 32 kb yang pertama dipecah lagi menjadi 2 partisi 16 kb. Partisi 16 kb pertama itulah yang kemudian dialokasikan untuk image proses berukuran 12 kb tersebut.


Kekurangan sistem buddy adalah fragmentasi internal tetap terjadi. Sedangkan kelebihannya adalah dealokasi proses dapat dilakukan dengan cepat, karena ukuran dan posisi partisi senantiasa dapat ditentukan dengan cepat dengan aturan pemangkatan bilangan 2.


• Gambar 5.12 menjelaskan contoh proses alokasi dan dealokasi pada sistem buddy. Setiap baris menunjukkan peta alokasi memori pada suatu waktu. Misalnya ukuran memori utama adalah sebesar 1 M byte. Ketika belum ada proses pengguna yang dialokasikan maka seluruh bagian memori masih kosong dan tersedia.


Kemudian image proses A sebesar 90 kbyte hendak dialokasi ke memori utama. Maka akan terjadi pemecahan partisi sebanyak 3 kali (1 M byte menjadi 2 bagian sebesar 512 k, 512 k menjadi 2 bagian sebesar 256 k, 256 k menjadi 128 k) untuk mendapatkan partisi berukuran kelipatan 2 terkecil yang dapat menampung image proses A.


Kemudian terjadi alokasi image proses B yang berukuran sebesar 50 k. Partisi terkecil yang tersedia adalah partisi di samping partisi proses A yang berukuran sebesar 128 k. Karena proses B hanya berukuran 50 k maka partisi tersebut dipecah lagi menjadi 2 bagian sebesar 64 k. kemudian image proses B dialokasikan pada bagian pertama dari pecahan tersebut.


Kemudian terjadi alokasi proses C yang berukuran 74 k. Partisi-partisi yang tersedia berukuran 64k, 256k, dan 512k. Partisi yang dikehendaki harusnya berukuran 128k (yaitu ukuran kelipatan 2 terkecil yang dapat menampung partisi) sehingga yang dilakukan adalah memecah partisi 256k menjadi 2 bagian 128k. Kemudian image proses C dialokasikan pada bagian pertama dari pecahan tersebut yang berukuran 128k. Berikutnya terjadi dealokasi proses A, yang dapat dilakukan dengan cepat.


152


Sistem Operasi


Kemudian terjadi alokasi D yang berukuran sebesar 35 kb, yang dialokasikan ke partisi berukuran 64 kb di antara partisi proses B dan C Berturut-turut kemudian terjadi dealokasi proses B, D, dan C. Pada saat terjadi dealokasi, partisi kosong yang berdampingan akan disatukan kembali, sehingga pada akhirnya seluruh memori menjadi suatu partisi tunggal kembali.

Gambar 5.12 Illustrasi proses alokasi pada sistem buddy


5.4.4 PENGALOKASIAN TAK BERURUT DENGAN SISTEM PAGING


Berbeda dengan model pengalokasian berurut, pada model pengalokasian tak-berurut, bagian-bagian dari image proses dapat diletakkan secara terpisah di memori utama. Model alokasi tak berurut yang akan dibahas di sini adalah sistem paging. Model alokasi ini memiliki karakteristik berikut:


1. Sistem paging memerlukan pengalamatan logika khusus yang mem- bagi suatu ruang alamat logika proses menjadi bagian-bagian yang berukuran sama yang disebut dengan page.


2. Pada sistem paging, memori fisik dipartisi secara statis yang disebut dengan frame page atau disebut frame saja, yang berukuran sama dengan page pada ruang alamat logika.


Manajemen Memori


153


3. Sistem paging memakai pengalokasian memori tak berurut. Jadi suatu image proses dapat menempati lebih dari satu frame yang letaknya tidak harus berurutan.


4. Sistem paging membutuhkan pengelolaan informasi mengenai seluruh frame-frame yang masih kosong dan tersedia untuk dialokasikan.


5. Pada sistem paging tidak terjadi fragmentasi-eksternal, sedangkan fragmentasi-internal hanya terjadi pada sejumlah frame tertentu saja.

Gambar 5.13 Contoh alokasi pada sistem paging


154


Sistem Operasi


• Gambar 5.13 menjelaskan contoh alokasi dengan sistem paging. Gambar (a) menunjukkan keadaan awal dari memori fisik yang dipartisi menjadi frame-frame yang berukuran sama. Image proses A yang berukuran sebesar 4 page dialokasikan dan menempati 4 frame secara berurutan seperti diperlihatkan pada Gambar (b). Kemudian proses B yang berukuran sebesar 3 page dialokasi pada bagian memori selanjutnya seperti pada Gambar c, demikian pula proses C yang berukuran sebesar 4 page (lihat Gambar d).


Selanjutnya terjadi dealokasi proses B yang meninggalkan 3 frame kosong, yaitu frame 4, 5, dan 6 seperti ditunukkan Gambar e. Setelah itu terjadi alokasi proses D yang berukuran sebesar 5 page. Tiga page pertama dari proses D dialokasikan ke frame yang ditinggalkan oleh proses B, sedangkan 2 page lainnya dialokasikan di frame lain, yaitu frame 11 dan 12.


Alokasi Memori pada Sistem Paging


Berikutnya akan dibahas lebih rinci proses terjadinya alokasi memori pada sistem paging. Konsep alokasinya adalah sebagai berikut:


1. Memori utama dibagi menjadi frame-frame kecil berukuran sama. Tiap frame memiliki nomor frame sebagai referensi.


2. Ruang alamat logika proses dibagi menjadi page-page seukuran frame. Image proses aplikasi menempati sebagian ruang alamat logika proses. Image proses umumnya lebih kecil dari ruang alamat logika proses. Misalnya ruang alamat logika adalah 4 G, sedangkan image proses berukuran 20 M bytes saja. Page page ini juga diberi nomor sebagai referensi.


3. Pada saat proses di-load, page-page image proses diletakkan atau dialokasikan pada frame-frame yang masih kosong. Alokasi ini dicatat pada suatu tabel halaman (page table), yang memetakan asosiasi page dan frame yang dialokasi.


4. Page table umumnya berisi nomor frame-frame yang telah di alokasikan untuk image proses. Indeks dari page table dapat digunakan sebagai referensi nomor page yang dialokasikan. Page table


Manajemen Memori


155


digunakan untuk translasi alamat logika ke alamat fisik pada saat kode instruksi program dieksekusi.


Gambar 5.14 Alokasi memori pada sistem paging


• Mekanisme alokasi memori pada sistem paging dijelaskan pada Gambar 5.14. Gambar 5.14(a) menunjukkan keadaan awal dari memori utama dan informasi sistem mengenai frame-frame kosong sebelum terjadi alokasi proses baru. Sementara Gambar 5.14(b) menunjukkan keadaan akhir memori utama dan informasi sistem mengenai frame-frame kosong setelah terjadi alokasi ke prose baru. Sebelum terjadi alokasi, sistem operasi memiliki informasi mengenai frame-frame yang masih kosong. yaitu frame 14.13,18,20,15, sedangkan image proses baru berukuran 4 page. Page-page dari image proses baru, yaitu page 1, 2, 3 dan 4, kemudian dialokasikan secara berturut-turut ke frame nomor 14,13,18.20. Relasi pemetaan ini dicatat di page table prose baru bersangkutan, disertai dengan pengubahan informasi frame yang kosong, di mana sekarang hanya frame 15 yang masih kosong.


Address Binding pada Sistem Paging


Address binding pada sistem paging terjadi pada saat eksekusi (execution time). Alamat referensi pada kode instruksi program adalah alamat pada ruang logika proses sehingga pada saat eksekusi, alamat referensi tersebut haruslah ditranslasi ke alamat fisik memori utama yang sesungguhnya,

Gambar 5.15 Ilustrasi translasi pada sistem paging


Gambar 5.15 menunjukkan contoh translasi alamat pada sistem paging Diasumsikan sistem memori komputer menggunakan pengalamatan 16 bit, 6 bit pertama untuk menunjukkan nomor page, 10 bit terakhir untuk menunjukkan nilai offset, yaitu alamat relatif dalam suatu page. Dengan kata lain, tiap puge berukuran 10 bit atau 1024 alamat. Misalnya dalam program terdapat kode instruksi jump (1502) Alamat 1502 dalam kode program adalah alamat logika proses sehingga jika instruksi ini dieksekusi di prosesor maka alamat 1502 harus ditranslasi terlebih dahulu.


Proses translasi bergantung pada alokasi page-page image proses ke frame memori utama. Misalnya dalam kasus ini image proses terdiri atas 2 page vaitu PO dan Pl. di mana PO dialokasikan ke frame FS dan Pl dialokasikan ke frame F6. Pemetaan ini dicatat dalam page table proses dan akan dijadikan acuan pada saat translasi alamat. Untuk melakukan translasi alamat 1502 maka alamat ini harus dipecah menjadi nomor page dan offset terlebih dahulu:


Manajemen Memori


157


= alamat logika div ukuran page


Nomor Page


div = dibagi


mod = sisa hasil bagi


Offset


= 1502 div 1024 = 1 P1 = alamat logika mod ukuran page = 1502 mod 1024 = 478 otaunkuran (nb: 1024 adalah ukuran page/frame)


Kemudian lakukan translasi page ke proses, sehingga didapat translasi P1 pada frame F6. frame menggunakan page table F6, dengan kata lain P1 berada


Maka perhitungan alamat fisiknya adalah:


Alamat


fisik = nomor frame x ukuran frame + offset = 6 x 1024 +478 = 6622


Proteksi Memori pada Sistem Paging


Mekanisme lain yang didukung dalam sistem paging adalah proteksi me- mori. Mekanisme proteksi berfungsi menghindari pengaksesan memori secara ilegal, misalnya pengaksesan bagian memori yang ditempati proses lain atau kode instruksi sistem operasi. Pada sistem paging, proteksi terhadap frame memori dilakukan dengan cara menambahkan bit proteksi untuk tiap entri page table seperti yang diperlihatkan Gambar 5.16.


Misalnya ada bit pada entri page table yang mengontrol apakah frame yang diacu bersifat read only atau read-write. Ada pula bit valid atau invalid yang menyatakan apakah alamat logika yang dituju masih berada dalam ruang lingkup alamat logika proses bersangkutan.


Gambar 5.16 Proteksi memori pada sistem paging


Memory Sharing pada Sistem Paging


Sistem paging mendukung pula mekanisme bagi pakai memori utama atau memory sharing. Mekanisme sharing penting untuk menghemat peng- gunaan kapasitas memori. Pada sistem paging, jika ada 2 atau lebih proses memiliki bagian kode instruksi atau data yang sama maka bagian tersebut dapat digunakan bersama dan cukup diletakkan sekali di frame memori. Masing-masing proses mengacu ke frame yang sama pada page table-nya.


Mekanisme sharing pada sistem paging dijelaskan pada Gambar 5.17. Misalnya pada suatu sistem time sharing, di mana terdapat 3 user lewat proses P1, P2, P3 mengeksekusi sebuah text editor yang kode programnya sama dan terbagi atas page ed1, ed2, ed3, sedangkan bagian data untuk tiap proses adalah berbeda, yaitu datal, data2, data3.


Maka pada saat terjadi alokasi memori, hanya proses yang pertama yaitu P1 yang benar-benar mengalokasi ed1, ed2, dan ed3 ke frame memori. Pada saat P2 dan P3 dialokasikan, proses-proses ini hanya mencatat referensi frame ed1, ed2, ed3 yang sudah ada di memori, di page-table- nya masing-masing tanpa harus melakukan alokasi memori yang sesungguhnya. Jadi P2 dan P3 hanya butuh mengalokasi frame baru untuk page datanya masing-masing, yaitu data2 dan data3.


Gambar 5.17 Memory sharing pada sistem paging


5.4.5 PENGALOKASIAN TAK BERURUT DENGAN SISTEM SEGMENTATION


Selain sistem paging, model pengalokasian tak berurut lainnya adalah sistem segmentation. Berbeda dengan sistem paging yang menganut pemartisian secara statis maka sistem segmentation memakai sistem pemartisian secara dinamis. Jadi memori utama tidak dipartisi dari awal, tetapi dipartisi pada saat terjadi alokasi memori utama ke proses baru. Pengalokasian dengan sistem segmentation memiliki karakteristik sebagai berikut:


1. Sistem segmentation memerlukan pengalamatan logika khusus yang memecah image proses suatu program menjadi bagian-bagian yang disebut dengan segmen. Pembagian segmen umumnya mengikuti konstruksi segmen program oleh compiler, di mana tiap segmen merupakan unit logika dari program seperti main program, stack, sub routine, symbol table.


2. Pemartisian memori utama terjadi secara dinamis pada saat alokasi. Ukuran partisi disesuaikan dengan besarnya segmen program yang hendak dialokasikan.


3. Sistem segmentation menggunakan pengalokasian memori tak berurut sehingga segmen-segmen image proses dari program dapat menempati bagian memori utama yang letaknya terpisah satu sama lain.


4. Segmentation membutuhkan pengelolaan informasi mengenai seluruh area kosong atau hole yang tersebar di memori utama.


5. Pada sistem segmentation tidak terjadi fragmentasi internal, tetapi fragmentasi eksternal tetap terjadi.


Alokasi Memori pada Sistem Segmentation


Konsep alokasi memori sistem segmentation adalah sebagai berikut:


1. Image proses dibagi menjadi beberapa segmen yang ukurannya tidak harus sama.


2. Pada saat image proses dialokasikan ke memori utama, segmen- segmen image proses ditempatkan pada bagian memori yang masih kosong dan informasi alokasi dicatat pada segment table dari proses tersebut.


3. Segment table berisi rekaman nilai limit, yang berisi panjang segmen dan nilai base, yang berisi alamat awal bagian memori utama yang dialokasikan ke segmen. Indeks rekaman pada segment table menunjukkan nomor segmen yang dialokasikan.


Mekanisme alokasi memori sistem segmentation dicontohkan pada Gambar 5.18. Misalnya image proses suatu program aplikasi dapat dibagi menjadi segmen 0 (subroutine), segmen 1 (fungsi-fungsi dalam program), segmen 2 (program utama), segmen 4 (area stack), dan segmen 5 (area tabel simbol). sognen tatele


Pada saat image proses dialokasikan ke memori utama, segmen 0 dialokasikan pada alamat fisik 1400-2400 maka untuk rekaman segmen 0 yang dicatatkan adalah nilai base 1400 dan nilai limit adalah 1000, yaitu ukuran segmen. Segmen 1 menempati lokasi 6300-6700 sehingga yang dicatat pada rekaman segment table untuk segmen 1 adalah nilai base 6300 dan nilai limit 400. Pencatatan rekaman pada segment table untuk segmen lainnya mengikuti cara yang sama.



Gambar 5.18 Alokasi memori pada sistem poging S Segmentation


Address Binding pada Sistem Segmentation


Seperti halnya sistem paging, pada sistem segmentation, alamat logika pada kode instruksi program juga perlu ditranslasi pada saat dieksekusi. Gambar 5.19 memberikan ilustrasi translasi alamat pada sistem segmentation.


Gambar 5.19 Translasi alamat pada sistem segmentasi



Misalnya sistem memori komputer menggunakan alamat 16 bit sehingga maksimal kapasitas memori utama adalah 64 kbyte. Bit alamat logika dapat dipecah atas nomor segmen dan alamat offset. Misalnya, nomor segmen menggunakan 4 bit atas alamat logika, yang berarti terdapat maksimal 24-16 segmen. Offset menggunakan 12 bit, yang berarti ukuran maksimum suatu segmen adalah 2124 kbyte. Misalnya dalam program terdapat intruksi jump[4848]. Pada saat eksekusi, berapakah alamat fisik hasil translasi dari referensi alamat logika 4848 pada instruksi jump tersebut?


Jika direpresentasikan dalam bentuk biner, alamat logika 4848 adalah 0001001011110000, yang berarti nomor segmennya adalah 1 (0001) dan alamat offsetnya adalah 752 (001011110000). Dari tabel segmen proses terlihat bahwa segmen 1 dialokasikan pada memori fisik pada alamat awal 8224 sehingga pada saat dieksekusi alamat 4848 akan ditranslasi menjadi 82247528976.


Proteksi Memori pada Sistem Segmentation


Sistem segmentation juga mendukung mekanisme proteksi memori uta- ma. Pada sistem segmentation, proteksi pengaksesan memori utama dapat dilakukan secara perangkat keras yang akan membandingkan nomor offset dari alamat logika yang diakses dengan nilai limit segmen bersang- kutan yang tercatat pada tabel segmen (lihat Gambar 5.20). Jika nilai offset (d) dari alamat logika lebih besar dari nilai limit di rekaman tabel segmennya berarti terjadi usaha pengaksesan lokasi diluar area segmen program itu sendiri. Hal demikian akan memicu terjadinya suatu trap untuk memberitahu terjadinya kesalahan pengalamatan (addressing error) kepada sistem operasi.

Gambar 5.20 Proteksi memori pada sistem segmentation


Memory Sharing pada Sistem Segmentation


Pada sistem segmentation, sharing segmen antara 2 atau lebih proses dapat dilakukan dengan mencatat lokasi alokasi segmen tersebut ke tabel segmen masing-masing proses seperti yang ditunjukan dalam Gambar 5.21

Gambar 5.21 Memory sharing pada sistem segmentation

Terlihat ada 2 proses, yaitu P1 dan P2 yang menjalankan program editor teks yang serupa. Secara logika masing-masing proses terdiri atas 2 segmen, yaitu segmen untuk kode program editor (segmen 0) dan segmen untuk data (segmen 1). Isi dari segmen kode program editor adalah sama untuk kedua proses tersebut sehingga ruang memori utama dapat dihemat jika segmen ini digunakan bersama. Misalnya proses P1 yang terlebih dahulu dialokasikan, di mana segmen 0 yang berkuran 25266 dialokasikan ke alamat 43062-66348 dan segmen 1 yang berukuran 4425 dialokasikan ke alamat 66346-72773.


Untuk melakukan sharing maka ketika proses P2 hendak dialokasikan, segmen 0 proses P2 tidak perlu dialokasikan ke memori utama. Yang perlu dilakukan hanyalah mencatat rekaman di tabel segmen untuk segmen 0 proses 2 agar mereferensi ke lokasi memori segmen 0 dari proses 1. Sedangkan segmen 1 proses 2, yaitu segmen data, tetap butuh dialokasi tersendiri ke memori utama, yaitu ke lokasi 90003-96553. Yang perlu diperhatikan adalah proses P1 dan P2 memiliki rekaman tabel segmen yang sama untuk segmen yang digunakan bersama, segmen 0.



Tidak ada komentar:

Posting Komentar