0% menganggap dokumen ini bermanfaat (0 suara)
37 tayangan10 halaman

9 Manajemen Memory

Dokumen ini membahas manajemen memori dalam komputer, yang mencakup hirarki memori, kebutuhan manajemen, proteksi perangkat keras, pengikatan alamat, alokasi memori, swapping, pemetaan memori, dan pemartisian memori. Manajemen memori bertujuan untuk meningkatkan efisiensi CPU dan melindungi proses dari interferensi satu sama lain. Berbagai teknik seperti fixed dan dynamic partitioning digunakan untuk mengelola ruang memori secara efektif.

Diunggah oleh

yolandarefia10
Hak Cipta
© © All Rights Reserved
Kami menangani hak cipta konten dengan serius. Jika Anda merasa konten ini milik Anda, ajukan klaim di sini.
Format Tersedia
Unduh sebagai PDF, TXT atau baca online di Scribd
0% menganggap dokumen ini bermanfaat (0 suara)
37 tayangan10 halaman

9 Manajemen Memory

Dokumen ini membahas manajemen memori dalam komputer, yang mencakup hirarki memori, kebutuhan manajemen, proteksi perangkat keras, pengikatan alamat, alokasi memori, swapping, pemetaan memori, dan pemartisian memori. Manajemen memori bertujuan untuk meningkatkan efisiensi CPU dan melindungi proses dari interferensi satu sama lain. Berbagai teknik seperti fixed dan dynamic partitioning digunakan untuk mengelola ruang memori secara efektif.

Diunggah oleh

yolandarefia10
Hak Cipta
© © All Rights Reserved
Kami menangani hak cipta konten dengan serius. Jika Anda merasa konten ini milik Anda, ajukan klaim di sini.
Format Tersedia
Unduh sebagai PDF, TXT atau baca online di Scribd

MANAJEMEN MEMORY

Memori merupakan bagian dari komputer yang berfungsi sebagai tempat penyimpanan
informasi yang harus diatur dan dijaga sebaik-baiknya. Sebagian besar komputer memiliki
hirarki memori yang terdiri atas tiga level, yaitu:
 Register di CPU, berada di level teratas. Informasi yang berada di register dapat diakses
dalam satu clock cycle CPU.
 Primary Memory (executable memory), berada di level tengah. Contohnya, RAM. Primary
Memory diukur dengan satu byte dalam satu waktu, secara relatif dapat diakses dengan
cepat, dan bersifat volatile (informasi bisa hilang ketika komputer dimatikan). CPU
mengakses memori ini dengan instruksi single load dan store dalam beberapa clock cycle.
 Secondary Memory, berada di level bawah. Contohnya, disk atau tape. Secondary Memory
diukur sebagai kumpulan dari bytes (block of bytes), waktu aksesnya lambat, dan bersifat
non-volatile (informasi tetap tersimpan ketika komputer dimatikan). Memori ini diterapkan
di storage device, jadi akses meliputi aksi oleh driver dan physical device.

Gambar 1. Hirarki Memory

Bagian dari sistem operasi yang mengatur hirarki memori disebut dengan memory
manager. Di era multiprogramming ini, memory manager digunakan untuk mencegah satu
proses dari penulisan dan pembacaan oleh proses lain yang dilokasikan di primary memory,
mengatur swapping antara memori utama dan disk ketika memori utama terlalu kecil untuk
memegang semua proses.

Tujuan dari manajemen ini adalah untuk:


• Meningkatkan utilitas CPU
• Data dan instruksi dapat diakses dengan cepat oleh CPU
• Efisiensi dalam pemakaian memori yang terbatas
• Transfer dari/ke memori utama ke/dari CPU dapat lebih efisien

1. Kebutuhan Manajemen Memori


Memori utama perlu dikelola untuk memenuhi lima kebutuhan berikut:
- relocation

Page 1 of 10
- protection
- sharing
- logical organization
- physical organization

Saat program pengguna dating, ia tidak akan langsung dijalankan, ia diantrikan di disk.
Ketika tiba gilirannya dijalankan, ia akan dibawa ke memori utama. Ketika ia menunggu
aktivitas I/O, ia akan di-block, dibawa kembali ke disk. Ketika aktivitas I/O selesai dan ia siap
dijalankan lagi, maka tidak harus ia ditempatkan di memori utama di tempat semula. Ada
kebutuhan untuk menempatkan di tempat lain. Hal ini disebut relocation.
Setiap process yang berada di memori utama harus aman dari interferensi process lain,
sengaja atau tidak sengaja. Hal ini disebut protection. Juga, program pengguna tidak boleh
mengakses bagian memori untuk sistem operasi. Dan sebaiknya proteksi ini dilakukan oleh
hardware, bukan software sistem operasi.
Meskipun ada tuntutan proteksi, namun tidak menutup kemungkinan bagi process-
process untuk berbagi memori utama, lokasi yang sama diakses oleh semua. Hal ini disebut
sharing.
Meski penyimpanan di memori utama, juga di memori sekunder, dilakukan secara linier,
urutan byte atau word, namun ada kebutuhan bagi program untuk (dibuat dan) disimpan dalam
bentuk modul-modul. Fisik boleh linier, tetapi lojik modular. Hal ini yang disebut logical
organization.
Tugas mengantrikan program pengguna di memori sekunder, atau mengambilnya ke
memori utama adalah tugas sistem operasi. Disimpan di lokasi disk yang mana, modul mana
yang diaktifkan dulu yang mana yang berikutnya merupakan kebutuhan phyisical organization.

2. Proteksi Perangkat Keras


Pada saat suatu proses sedang berjalan, ada keadaan dimana processor berhenti. Hal ini
menandakan tidak adanya lagi data yang diproses oleh processor. Oleh karena itu, processor
pastinya akan mencari data ke dalam memori. Pengaksesan data tersebut memerlukan banyak
clock cycle. Situasi ini tidak bisa ditoleransi sehingga membutuhkan perbaikan dalam kecepatan
pengaksesan antara CPU dan memori utama. Tidak hanya peduli tentang kecepatan tersebut,
tetapi juga memastikan operasi yang benar untuk melindungi pengaksesan sistem operasi dari
proses lainnya, dan melindungi proses yang satu dari pengaksesan proses lainnya pula.
Perlindungan atau proteksi ini disediakan oleh perangkat keras.
Kita harus memastikan bahwa masing-masing proses memiliki ruang memori yang
terpisah. Caranya dengan menentukan jarak alamat yang dilegalkan dimana proses bisa
mengakses dan memastikan bahwa proses tersebut hanya bisa mengakses pada alamat tersebut.
Proteksi di atas dilakukan oleh perangkat keras. Perangkat keras menyediakan dua
register, yaitu base register dan limit register. Base register memegang alamat fisik terkecil yang
dilegalkan, sedangkan limit register menentukan ukuran dari jarak alamat tersebut. Contohnya
jika base register memegang 300040 dan limit register 120900, maka program bisa mengakses
secara legal di semua alamat dari 300040 sampai 420940.

Page 2 of 10
Gambar 2. Base dan Limit Register

Fungsi dari proteksi ini untuk mencegah user program dari kesengajaan memodifikasi
kode/struktur data baik di sistem operasi atau user lainnya. Jika proteksi gagal, semua hal yang
dilakukan oleh program executing di user mode untuk mengakses memori sistem operasi atau
memori user lainnya akan terperangkap di sistem operasi dan bisa menyebabkan kesalahan yang
fatal, yaitu addressing error.

Gambar 3. Proteksi Perangkat Keras Dengan Base Dan Limit Register

3. Pengikatan Alamat (Address Binding)


Pengertian address binding adalah sebuah prosedur untuk menetapkan alamat fisik yang
akan digunakan oleh program yang terdapat di dalam memori utama. Address binding yang
dilakukan terhadap suatu program dapat dilakukan di 3 tahap yang berbeda, yaitu:
• Compilation time. Pada tahap ini sebuah program pada awalnya akan menghasilkan alamat
berupa simbol-simbol, kemudian simbol-simbol ini akan langsung diubah menjadi alamat
absolute atau alamat fisik yang bersifat statik. Bila suatu saat terjadi pergeseran alamat dari
program tersebut maka untuk mengembalikan ke alamat yang seharusnya dapat dilakukan
kompilasi ulang. Contoh : file bertipe .com yang merupakan hasil dari kompilasi program

Page 3 of 10
• Load time. Pada tahap ini awalnya program menghasilkan alamat berupa simbol-simbol yang
sifatnya acak (relative address), kemudian akan dilakukan penghitungan ulang agar program
tersebut ditempatkan pada alamat yang dapat dialokasikan ulang (relocateble address).
Singkatnya binding terjadi pada waktu program telah selesai di- load. Contoh: File bertipe
.exe.
• Execution time. Alamat bersifat relatif, binding akan dilakukan pada saat run time. Pada saat
run time dibutuhkan bantuan hardware yaitu MMU (Memory Management Unit).

4. Ruang Alamat Fisik Dan Logika


Alamat yang dihasilkan oleh CPU berupa alamat logika, sedangkan yang masuk ke dalam
memori adalah alamat fisik. Pada compile time dan load time, alamat fisik dan logika identik.
Sebaliknya, perbedaan alamat fisik dan logika terjadi pada execution time.
Kumpulan semua alamat logika yang dihasilkan oleh program adalah ruang alamat
logika/ruang alamat virtual. Kumpulan semua alamat fisik yang berkorespondensi dengan alamat
logika disebut ruang alamat fisik.
Pada saat program berada di CPU, program tersebut memiliki alamat logika, kemudian
oleh MMU dipetakan menjadi alamat fisik yang akan disimpan di dalam memori.
Ilustrasinya sebagai berikut, nilai pada register ini akan ditambah dengan setiap alamat
yang dibuat oleh user process yang kemudian dikirim ke memori. Contohnya register relokasi
berada di 14000, alamat logika di 346, maka langsung dipetakan menjadi alamat fisik di 14346.

Gambar 4. Relokasi Dinamis Dengan Menggunakan Relocation Register

5. Alokasi Memory
Bagian dari sistem yang bertugas untuk mengatur memori disebut memory manager.
Memory manager mengatur bagian mana dari memori yang harus digunakan dan mana yang
tidak pada suatu waktu, selain itu memory manager juga mengalokasikan memori untuk proses-
proses yang membutuhkannya serta men-dealokasikannya kembali saat proses-proses tersebut
tidak lagi membutuhkannya. Masalahnya adalah bagaimana jika memori tidak lagi cukup untuk
menampung semua proses yang akan dieksekusi? Solusi untuk masalah ini adalah dengan teknik
pemindahan proses dari memori ke dalam disk dan kembali memindahkannya ke memori pada
saat hendak dieksekusi lagi atau yang lebih dikenal dengan istilah swapping.

6. Swapping
Sebuah proses harus berada di memori sebelum dieksekusi. Proses swapping menukarkan
sebuah proses keluar dari memori untuk sementara waktu ke sebuah penyimpanan sementara
dengan sebuah proses lain yang sedang membutuhkan sejumlah alokasi memori untuk
dieksekusi. Tempat penyimpanan sementara ini biasanya berupa sebuah fast disk dengan
kapasitas yang dapat menampung semua salinan dari semua gambaran memori serta
menyediakan akses langsung ke gambaran tersebut. Jika eksekusi proses yang dikeluarkan tadi
Page 4 of 10
akan dilanjutkan beberapa saat kemudian, maka ia akan dibawa kembali ke memori dari tempat
penyimpanan sementara tadi. Bagaimana sistem mengetahui proses mana saja yang akan
dieksekusi? Hal ini dapat dilakukan dengan ready queue. Ready queue berisikan semua proses
yang terletak baik di penyimpanan sementara maupun memori yang siap untuk dieksekusi.
Ketika penjadwal CPU akan mengeksekusi sebuah proses, ia lalu memeriksa apakah proses
bersangkutan sudah ada di memori ataukah masih berada dalam penyimpanan sementara.

Gambar 5. Proses Swapping

Sebuah contoh untuk menggambarkan teknik swapping ini adalah sebagai berikut:
Algoritma Round-Robin yang digunakan pada multiprogramming environment menggunakan
waktu kuantum (satuan waktu CPU) dalam pengeksekusian proses-prosesnya. Ketika waktu
kuantum berakhir, memory manager akan mengeluarkan (swap out) proses yang telah selesai
menjalani waktu kuantumnya pada suatu saat serta memasukkan (swap in) proses lain ke dalam
memori yang telah bebas tersebut. Pada saat yang bersamaan penjadwal CPU akan
mengalokasikan waktu untuk proses lain dalam memori. Hal yang menjadi perhatian adalah,
waktu kuantum harus cukup lama sehingga waktu penggunaan CPU dapat lebih optimal jika
dibandingkan dengan proses penukaran yang terjadi antara memori dan disk.
Teknik swapping roll out, roll in menggunakan algoritma berbasis prioritas dimana
ketika proses dengan prioritas lebih tinggi tiba maka memory manager akan mengeluarkan
proses dengan prioritas yang lebih rendah serta me-load proses dengan prioritas yang lebih tinggi
tersebut. Saat proses dengan prioritas yang lebih tinggi telah selesai dieksekusi maka proses yang
memiliki prioritas lebih rendah dapat dimasukkan kembali ke dalam memori dan kembali
dieksekusi.
Sebagian besar waktu swapping adalah waktu transfer. Sebagai contoh kita lihat ilustrasi
berikut ini: sebuah proses pengguna memiliki ukuran 5 MB, sedangkan tempat penyimpanan
sementara yang berupa harddisk memiliki kecepatan transfer data sebesar 20 MB per detiknya.
Maka waktu yang dibutuhkan untuk mentransfer proses sebesar 5 MB tersebut dari atau ke
dalam memori adalah sebesar 5000 KB / 20000 KBps = 250 ms
Perhitungan di atas belum termasuk waktu latensi, sehingga jika kita asumsikan waktu
latensi sebesar 2 ms maka waktu swap adalah sebesar 252 ms. Oleh karena terdapat dua kejadian
dimana satu adalah proses pengeluaran sebuah proses dan satu lagi adalah proses pemasukan
proses ke dalam memori, maka total waktu swap menjadi 252 + 252 = 504 ms.

Page 5 of 10
Agar teknik swapping dapat lebih efisien, sebaiknya proses-proses yang di- swap
hanyalah proses-proses yang benar-benar dibutuhkan sehingga dapat mengurangi waktu swap.
Oleh karena itulah, sistem harus selalu mengetahui perubahan apapun yang terjadi pada
pemenuhan kebutuhan terhadap memori. Disinilah sebuah proses memerlukan fungsi system call,
yaitu untuk memberitahukan sistem operasi kapan ia meminta memori dan kapan membebaskan
ruang memori tersebut.
Jika kita hendak melakukan swap, ada beberapa hal yang harus diperhatikan. Kita harus
menghindari menukar proses dengan M/K yang ditunda (asumsinya operasi M/K tersebut juga
sedang mengantri di antrian karena peralatan M/Knya sedang sibuk). Contohnya seperti ini, jika
proses P1dikeluarkan dari memori dan kita hendak memasukkan proses P2, maka operasi M/K
yang juga berada di antrian akan mengambil jatah ruang memori yang dibebaskan P1 tersebut.
Masalah ini dapat diatasi jika kita tidak melakukan swap dengan operasi M/K yang ditunda.
Selain itu, pengeksekusian operasi M/K hendaknya dilakukan pada buffer sistem operasi.

7. Pemetaan Memory
Pemetaan memori (memory mapping) membutuhkan sebuah register relokasi. Register
relokasi merupakan base register yang ditambahkan ke dalam tiap alamat proses pengguna pada
saat dikirimkan ke memori. Pada pemetaan memori ini terdapat limit register yang terdiri dari
rentang nilai alamat logika . Dengan adanya limit register dan register relokasi, tiap alamat logis
haruslah lebih kecil dari limit register. Proses pemetaan dilakukan oleh MMU (Memory
Management Unit) dengan menjumlahkan nilai register relokasi ke alamat logis. Alamat yang
telah dipetakan ini lalu dikirim ke memori. Pada gambar dibawah ini kita dapat melihat bahwa
sebuah proses yang memiliki base register 30004 dan limit register 12090 akan dipetakan ke
memori fisik dengan alamat awalnya sesuai dengan base register (30004) dan berakhir pada
alamat (30004 + 12090 = 42094).

Gambar 6. Base dan Limit Register

Ketika penjadwal CPU memilih suatu proses untuk dieksekusi, ia akan memasukkan
register relokasi dan juga limit register -nya. Register relokasi memungkinkan sistem operasi
untuk merubah ukuran partisinya pada memori secara dinamis. Contohnya, kode dan buffer yang

Page 6 of 10
dialokasikan untuk driver peralatan pada sistem operasi dapat dihapus dari memori jika peralatan
tersebut jarang digunakan. Kode semacam ini disebut kode sistem operasi yang transient, oleh
karena kode ini dapat "datang dan pergi" dari memori tergantung kapan ia dibutuhkan. Sehingga
penggunaan kode transient ini dapat merubah ukuran sistem operasi selama eksekusi program
berlangsung.

8. Pemartisian Memori
Prinsip manajemen memori adalah bagaimana menyimpan banyak program dalam
memori utama. Hampir semua sistem multiprogramming modern menggunakan teknik virtual
memory. Namun sebelum membahasnya, perlu diketahui teknik yang lebih sederhana : fixed
partitioning dan dynamic partitioning.

a. Fixed Partitioning
Pada fixed partitioning, memori utama (selain yang digunakan untuk sistem operasi)
dibagi dalam ukuran yang sudah disediakan, mungkin sama, mungkin berbeda. Untuk memori
utama berukuran 64 M, ukuran partisi mungkin sama: 8 x 8M, 1 bagian untuk sistem operasi, 7
bagian yang lain untuk program pengguna. Ukuran partisi mungkin bervariasi : 8 M untuk sistem
operasi, dan 2 M, 4 M, 6 M, 8 M, 8 M, 12 M dan 16 M untuk program pengguna. Program
pengguna harus lebih kecil atau sama dengan ukuran partisi itu.
Bagaimana jika ukuran program lebih besar daripada ukuran memori yang disediakan?
Program harus dipecah-pecah ke dalam modul berukuran tidak lebih besar dari ukuran partisi.
Modul yang dibutuhkan akan dibawa ke partisi terkait dan menghapus (overlay) apapun yang
ada di partisi itu.
Bagaimana jika ukuran program terlalu kecil? Ya, itulah lemahnya. Borosnya ruang
partisi yang tak terpakai akibat ukuran program terlalu kecil ini disebut internal fragmentation.
Dan masalah ini diselesaikan dengan membuat ukuran partisi yang bervariasi.
Bagaimana menempatkan program dalam partisi fix yang ukurannya bervariasi? Pilihlah
ukuran partisi terkecil yang sanggup menampung program. Untuk antrian programnya ada
pilihan: dibuatkan antrian sebanyak partisi, atau antrian tunggal untuk semua partisi.

b. Dynamic Partitioning
Dalam dynamic partitioning, jumlah partisi dan ukurannya bervariasi. Program diberi
ruang memori utama sebanyak yang ia butuhkan. Misalkan ukuran memori utama 64 M, dengan
8 M dipakai untuk sistem operasi. Tiga program P1, P2, P3 masing-masing berukuran 20 M, 14
M dan 18 M. Kemudian P2 habis jatah waktunya, dan masuk P4 dengan ukuran 8 M. Kemudian
P1 selesai, dan P2 harus dijalankan lagi. Bagaimana perjalanan keadaan memori?
Awal-awalnya bagus, namun makin lama akan makin banyak lubang kecil dalam memori. Jika
kasus lubang pada fix partition disebut internal fragmentation, pada dynamic partition disebut
external fragmentation, fragmentasi terjadi karena pengaruh luar.
Bagaimana mengatasi masalah banyaknya lubang ini? Salah satu cara adalah compaction,
program-program di bawah lubang digeser ke atas agar berhimpitan dengan program
sebelumnya, sedemikian hingga hanya ada satu lubang, di lokasi paling bawah.
Apakah tidak butuh waktu untuk menggeser program-program di bawah lubang? Ya, butuh
waktu. Cara lain diusulkan agar penempatan program dapat dilakukan dengan cepat : biarkan
lubang apa adanya, buatlah daftar lubang, alamat dan ukurannya. Jika ada program baru masuk,
ada pilihan:

Page 7 of 10
- carilah lubang dengan ukuran terkecil terdekat dengan ukuran program baru, cara ini
disebut best fit.
- carilah lubang pertama di antrian (pencarian dari awal antrian) yang mampu menampung
program baru, cara ini disebut first fit.
- carilah lubang pertama di antrian (pencarian dari posisi cursor saat ini) yang mampu
menampung program baru, cara ini disebut next fit.

Buddy System
Mirip partisi dinamis, ukuran partisi tidak mengikuti ukuran program, pada sistem ini
ukuran partisi merupakan bilangan power of 2 terdekat dengan ukuran program. Semula ukuran
memori 1Mbyte. Process A meminta 100Kb. Ukuran power of 2 terdekat dengan 100K adalah
128K. Memori 1Mb akan dipecah menjadi 512K + 512K, 512K pertama dipecah menjadi 256K
+ 256K, 256K pertama dipecah menjadi 128K + 128K. Process A diberi memori berukuran
128K pertama. Process B berukuran 240K diberi memori berukuran 256K. Ketika sebuah
process sudah melepaskan memori, akan diperiksa apakah memori yang dibebaskan berdekatan
dengan tetangganya untuk digabung, untuk mendapatkan ukuran yang lebih besar lagi.

9. Paging
Untuk mengatasi fragmentasi internal atau fragmentasi eksternal ada usaha memori
utama dipartisi ke dalam sejumlah besar potongan berukuran kecil yang sama, program juga
dipotong-potong dalam ukuran yang sama, disebut pages. Page-page ini kemudian di-load ke
potongan memori utama tadi, yang disebut frame. Disini, fragmentasi hanya akan terjadi pada
frame terakhir.
Terapan konsep ini ditunjukkan pada Gambar 7. Program A terdiri dari 4 page masuk,
program B 3 page masuk, program C 4 page masuk. Program B kemudian keluar, meninggalkan
3 page bebas. Ada sisa 4 page di bawah. Jika program D 5 page akan masuk, apakah akan
ditahan dulu? Tidak. Sistem mendaftar frame-frame yang bebas. Sistem juga mengelola page
table, tabel frame-frame yang dipakai page program, lihat contoh di Gambar 8. Jika A, hal itu
dimungkinkan terjadi. jumlah frame bebas cukup untuk menampung page program baru, maka
akan diberikan. Program D disimpan di frame 4,5,6,11 dan 12.
Agar paging berjalan nyaman, ukuran page dan frame sebaiknya menggunakan bilangan
power of 2. Dengan menggunakan bilangan ini relative address dan logical address akan sama.
Sebuah lokasi di memori fisik akan ditunjukkan dengan dua nomor : nomor frame dan nomor
offset. Misal alamat relatif 1502 menggunakan 16 bit : 0000010111011110, ukuran page 1K =
1024 byte. Untuk page 1024 butuh 10 bit untuk alamat offset, ada sisa 6 bit (dari 16 bit) untuk
nomor page. (Suatu program diharapkan punya page tidak lebih dari 26 = 64 page). Jadi, alamat
relatif 0000010111011110, nomor page-nya 000001 (decimal 1), nomor offsetnya 0111011110
(decimal 478).
Kemudian misalnya page ini akan ditempatkan di memori fisik di alamat frame 6 (000110),
maka konversi cukup dilakukan pada nomor page ke nomor frame, nomor offset keduanya sama.
Menggunakan ukuran page sebagai bilangan power of 2 punya dua keuntungan. Pertama, skema
alamat lojik jelas bagi programmer, assembler dan linker. Alamat lojik setara identik dengan
alamat relatif. Kedua, relatif masalah mudah untuk mengimplementasikan fungsi penterjemahan
alamat dinamis ke dalam hardware.

Page 8 of 10
No Memori Memori Memori
Frame
0 A.0 A.0
1 A.1 A.1
2 A.2 A.2
3 A.3 A.3
4 B.0
5 B.1
6 B.2
7
8
9
10
11
12
13
14
A masuk B masuk

No Memori Memori Memori


Frame
0 A.0 A.0 A.0
1 A.1 A.1 A.1
2 A.2 A.2 A.2
3 A.3 A.3 A.3
4 B.0 D.0
5 B.1 D.1
6 B.2 D.2
7 C.0 C.0 C.0
8 C.1 C.1 C.1
9 C.2 C.2 C.2
10 C.3 C.3 C.3
11 D.3
12 D.4
13
14
C masuk B keluar D masuk

Gambar 7. Pengisian page process ke frame memori

Page 9 of 10
0 0 0 - 0 7 0 4
1 1 1 - 1 8 1 5
2 2 2 - 2 9 2 6
3 3 3 10 3 11
4 12
Table Table Table Table
Page Page Page Page
Proses A Proses B Proses C Proses D

0 0
1 1
2 2
3 3
Daftar
frame
bebas

Gambar 8. Tabel page setiap process terkait Gambar 7.

10. Segmentasi
Selain dengan paging, program dapat dipecah ke dalam sejumlah segment, dengan ukuran
tidak harus sama. Hanya memang ada panjang segment maksimum. Sebuah lokasi akan
diidentifikasi dengan dua nomor : nomor segment dan nomor offset.
Konsep segmentasi ini mirip dengan dynamic partitioning. Bedanya, di segmentasi ini sebuah
program boleh menempati lebih dari satu partisi, dan tidak harus berdampingan. Fragmentasi
internal tidak ada, namun fragmentasi eksternal mungkin terjadi.
Programmer biasanya tahu segment untuk program atau segment untuk data yang
disediakan sistem. Program dan data sendiri dapat dipecah ke dalam beberapa segment. Hanya,
programmer tidak dapat menggunakan lokasi melebihi batas maksimum ukuran segment.
Sistem akan mengelola segment table untuk setiap process dan daftar lokasi bebas di
memori utama. Setiap isian tabel ini akan berisi alamat awal dan panjang segment untuk
memproteksi lokasi memori dari pengguna lain. Saat akan dieksekusi, alamat di tabel segment
ini akan di-load ke register khusus.

Page 10 of 10

Anda mungkin juga menyukai