MANAJEMEN MEMORI SISTEM OPERASI
Manajemen Memori
Memori adalah pusat dari operasi pada sistem komputer modern, berfungsi sebagai
tempat penyimpanan informasi yang harus diatur dan dijaga sebaik-baiknya.
Memori adalah array besar dari word atau byte, yang disebut alamat. CPU
mengambil instruksi dari memory berdasarkan nilai dari program counter.
Sedangkan manajemen memori adalah suatu kegiatan untuk mengelola memori komputer. Proses ini menyediakan cara mengalokasikan memori untuk proses atas permintaan mereka, membebaskan untuk digunakan kembali ketika tidak lagi diperlukan serta menjaga alokasi ruang memori bagi proses. Pengelolaan memori utama sangat penting untuk sistem komputer, penting untuk memproses dan fasilitas masukan/keluaran secara efisien, sehingga memori dapat menampung sebanyak mungkin proses dan sebagai upaya agar pemogram atau proses tidak dibatasi kapasitas memori fisik di sistem komputer.
Sedangkan manajemen memori adalah suatu kegiatan untuk mengelola memori komputer. Proses ini menyediakan cara mengalokasikan memori untuk proses atas permintaan mereka, membebaskan untuk digunakan kembali ketika tidak lagi diperlukan serta menjaga alokasi ruang memori bagi proses. Pengelolaan memori utama sangat penting untuk sistem komputer, penting untuk memproses dan fasilitas masukan/keluaran secara efisien, sehingga memori dapat menampung sebanyak mungkin proses dan sebagai upaya agar pemogram atau proses tidak dibatasi kapasitas memori fisik di sistem komputer.
a. Jenis Memori
• Memori Kerja
- ROM/PROM/EPROM/EEPROM
- RAM
- Cache memory
• Memori Dukung
- Floppy
- Harddisk
- CD
b. Fungsi manajemen memori :
Manajemen memori merupakan salah satu bagian terpenting dalam sistem operasi. Memori perlu dikelola sebaik-baiknya agar :
1. Utilitas CPU meningkat.
2. Data dan instruksi dapat diakses dengan cepat oleh CPU.
3. Tercapai efisiensi dalam pemakaian memori yang terbatas.
4. Transfer data dari/ke memori utama ke/dari CPU dapat lebih efisien.
5. Mengelola informasi yang dipakai dan tidak dipakai.
6. Mengalokasikan memori ke proses yang memerlukan.
7. Mendealokasikan memori dari proses telah selesai.
8. Mengelola swapping atau paging antara memori utama dan disk.
1. Isi Memori
Instruksi eksekusi yang umum, contohnya, pertama mengambil instruksi dari memori. Instruksi dikodekan dan mungkin mengambil operand dari memory. Setelah instruksi dieksekusi pada operand, hasilnya ada yang dikirim kembali ke memory. Sebagai catatan, unit memory hanya merupakan deretan alamat memory; tanpa tahu bagaimana membangkitkan (instruction counter, indexing, indirection, literal address dan lainnya) atau untuk apa (instruksi atau data). Oleh karena itu, kita dapat mengabaikan bagaimana alamat memori dibangkitkan oleh program, yang lebih menarik bagaimana deretan alamat memori dibangkitkan oleh program yang sedang berjalan.
a. Pengikatan Alamat (Address Binding)
Pengikatan alamat adalah cara instruksi dan data (yang berada di disk sebagai file yang dapat dieksekusi) dipetakan ke alamat memori. Sebagian besar sistem memperbolehkan sebuah proses user (user process) untuk meletakkan di sembarang tempat dari memori fisik. Sehingga, meskipun alamat dari komputer dimulai pada 00000, alamat pertama dari proses user tidak perlu harus dimulai 00000. Instruksi pengikatan instruksi dan data ke alamat memori dapat dilakukan pada saat :
o Compile time
Jika lokasi memori diketahui sejak awal, kode absolut dapat dibangkitkan, apabila terjadi perubahan alamat awal harus dilakukan kompilasi ulang.
o Load time
Harus membangkitkan kode relokasi jika lokasi memori tidak diketahui pada saat waktu kompilasi.
o Execution time
Pengikatan ditunda sampai waktu eksekusi jika proses dapat dipindahkan selama eksekusi dari satu segmen memori ke segmen memori lain.
b. Dinamic Loading
Untuk memperoleh utilitas ruang memori, dapat menggunakan dynamic loading. Dengan dynamic loading, sebuah rutin tidak disimpan di memori sampai dipanggil. Semua rutin disimpan pada disk dalam format relocatable load. Mekanisme dari dynamic loading adalah program utama di-load dahulu dan dieksekusi. Bila suatu routine perlu memanggil routine lain, routine yang dipanggil lebih dahulu diperiksa apakah rutin yang dipanggil sudah di-load. Jika tidak, relocatable linking loader dipanggil untuk me-load rutin yg diminta ke memori dan meng-ubah tabel alamat.
Keuntungan dari dynamic loading adalah rutin yang tidak digunakan tidak pernah di-load. Skema ini lebih berguna untuk kode dalam jumlah besar diperlukan untuk menangani kasus-kasus yang jarang terjadi seperti error routine. Dinamic loading tidak memerlukan dukungan khusus dari sistem operasi.
c. Dinamic Linking
Sebagian besar sistem operasi hanya men-support static linking, dimana sistem library language diperlakukan seperti obyek modul yang lain dan dikombinasikan dengan loader ke dalam binary program image. Dinamic linking biasanya digunakan dengan sistem library, seperti language subroutine library. Tanpa fasilitas ini, semua program pada sistem perlu mempunyai copy dari library language di dalam executable image. Bagaimanapun, tidak seperti dynamic loading, dynamic linking membutuhkan beberapa dukungan dari sistem operasi
d. Overlay
Sebuah proses dapat lebih besar daripada jumlah memori yang dialokasikan untuk proses, teknik overlay biasanya digunakan untuk kasus ini. Teknik Overlay biasanya digunakan untuk memungkinkan sebuah proses mempunyai jumlah yang lebih besar dari memori fisik daripada alokasi memori yang diperuntukkan. Overlay tidak membutuhkan dukungan khusus dari sistem operasi. User dapat mengimplementasikannya secara lengkap menggunakan struktur file sederhana, membaca dari file ke memori dan meloncat ke memori dan mengeksekusi instruksi read yang lebih baru.
Sebagian besar sistem operasi hanya men-support static linking, dimana sistem library language diperlakukan seperti obyek modul yang lain dan dikombinasikan dengan loader ke dalam binary program image. Dinamic linking biasanya digunakan dengan sistem library, seperti language subroutine library. Tanpa fasilitas ini, semua program pada sistem perlu mempunyai copy dari library language di dalam executable image. Bagaimanapun, tidak seperti dynamic loading, dynamic linking membutuhkan beberapa dukungan dari sistem operasi
d. Overlay
Sebuah proses dapat lebih besar daripada jumlah memori yang dialokasikan untuk proses, teknik overlay biasanya digunakan untuk kasus ini. Teknik Overlay biasanya digunakan untuk memungkinkan sebuah proses mempunyai jumlah yang lebih besar dari memori fisik daripada alokasi memori yang diperuntukkan. Overlay tidak membutuhkan dukungan khusus dari sistem operasi. User dapat mengimplementasikannya secara lengkap menggunakan struktur file sederhana, membaca dari file ke memori dan meloncat ke memori dan mengeksekusi instruksi read yang lebih baru.
2. Ruang Alamat Logika Dan Ruang Alamat Fisik
Alamat yang dibangkitkan oleh CPU disebut alamat logika (logical address) dimana alamat terlihat sebagai uni memory yang disebut alamat fisik (physical address). Tujuan utama manajemen memori adalah konsep meletakkan ruang alamat logika ke ruang alamat fisik. Hasil skema waktu kompilasi dan waktu pengikatan alamat pada alamat logika dan alamat memori adalah sama. Tetapi hasil skema waktu pengikatan alamat waktu eksekusi berbeda. dalam hal ini, alamat logika disebut dengan alamat maya (virtual address). Himpunan dari semua alamat logika yang dibangkitkan oleh program disebut dengan ruang alamat logika (logical address space); himpunan dari semua alamat fisik yang berhubungan dengan alamat logika disebut dengan ruang alamat fisik (physical address space). Memory Manajement Unit (MMU) adalah perangkat keras yang memetakan alamat virtual ke alamat fisik. Pada skema MMU, nilai register relokasi ditambahkan ke setiap alamat yang dibangkitkan oleh proses user pada waktu dikirim ke memori.
3. Berdasarkan keadaan Swapping
Swapping merupakan pemindahan proses dari memori utama ke disk dan kembali lagi. Sebuah proses harus berada di memori untuk dieksekusi. Proses juga dapat ditukar (swap) sementara keluar memori ke backing store dan kemudian dibawa kembali ke memori untuk melanjutkan eksekusi. Backing store berupa disk besar dengan kecepatan tinggi yang cukup untuk meletakkan copy dari semua memory image untuk semua user, sistem juga harus menyediakan akses langsung ke memory image tersebut.
4. Berdasarkan keadaan Alokasi Berurutan
Memori utama biasanya dibagi ke dalam dua partisi yaitu untuk
o Sistem operasi biasanya diletakkan pada alamat memori rendah dengan vektor interupsi
o Proses user yang diletakkan pada alamat memori tinggi.
Alokasi proses user pada memori berupa single partition allocation atau multiple partition allocation.
a. Single Partition Allocation
Pada single partition allocation diasumsikan sistem operasi ditempatkan di memori rendah dan proses user dieksekusi di memori tinggi. Kode dan data sistem operasi harus diproteksi dari perubahan tak terduga oleh user proses.
b. Multiple Partition Allocation
Pada multiple partition allocation, mengijinkan memori user dialokasikan untuk proses yang berbeda yang berada di antrian input (input queue) yang menunggu dibawa ke memori. Terdapat dua skema yaitu partisi tetap (fixed partition) dimana memori dibagi dalam sejumlah partisi tetap dan setiap partisi berisi tepat satu proses. Jumlah partisi terbatas pada tingkat multiprogramming. Digunakan oleh IBM OS/360 yang disebut Multiprogramming with a Fixed number of Task (MFT). Skema yang kedua adalah partisi dinamis (variable partition) merupakan MFT yang digeneralisasi yang disebut Multiprogramming with a Variable number of Tasks (MVT).
c. Fragmentasi
Fragmentasi Eksternal terjadi pada situasi dimana terdapat cukup ruang memori total untuk memenuhi permintaan, tetapi tidak dapat langsung dialokasikan karena tidak berurutan. Fragmentasi eksternal dilakukan pada algoritma alokasi dinamis, terutama strategi first-fit dan best-fit. Fragmentasi Internal terjadi pada situasi dimana memori yang dialokasikan lebih besar dari pada memori yang diminta tetapi untuk satu partisi tertentu hanya berukuran kecil sehingga tidak digunakan.
5. Paging
a. Konsep Dasar Paging
Paging merupakan kemungkinan solusi untuk permasalahan fragmentasi eksternal dimana ruang alamat logika tidak berurutan; mengijinkan sebuah proses dialokasikan pada memori fisik yang terakhir tersedia. Memori fisik dibagi ke dalam blok-blok ukuran tetap yang disebut frame.
b. Implementasi Sistem Paging
Setiap sistem operasi mempunyai metode sendiri untuk menyimpan tabel page. Beberapa sistem operasi mengalokasikan sebuah tabel page untuk setiap proses. Pointer ke tabel page disimpan dengan nilai register lainnya dari PCB. Pada dasarnya terdapat 3 metode yang berbeda untuk implementasi tabel page :
• Tabel page diimplementasikan sebagai kumpulan dari “dedicated” register.Register berupa rangkaian logika berkecepatan sangat tinggi untuk efisiensi translasi alamat paging.
• Tabel page disimpan pada main memori dan menggunakan page table base registe” (PTBR) untuk menunjuk ke tabel page yang disimpan di main memori. Penggunakan memori untuk mengimplementasikan tabel page akan memungkinkan tabel page sangat besar (sekitar 1 juta entry).
• Menggunakan perangkat keras cache yang khusus, kecil dan cepat yang disebut associative register atau translation look-aside buffers (TLBs). Merupakan solusi standar untuk permasalahan penggunaan memori untuk implementasi tabel page.
c. Proteksi
Pada model page, proteksi memori menggunakan bit proteksi yang diasosiasikan untuk setiap frame. Biasanya bit proteksi disimpan pada tabel page. Satu bit mendifinisikan satu page untuk “read and write” atau “read-only”. Setiap acuan ke memori melalui tabel page untuk menemukan nomor frame yang benar. Level proteksi yang lebih baik dapat dicapai dengan menambah jumlah bit yang digunakan.
d. Multilevel Paging
Model multilevel paging digunakan pada sistem yang mempunyai ruang alamat logika yang sangat besar yaitu antara 232 s/d 264. Pada sistem ini, tabel page akan menjadi sangat besar. Misalnya untuk sistem dengan ruang alamat logika 32 bit dan ukuran page 4K byte, maka tabel page berisi 1 juta entry (232 / 212). Solusinya yaitu dengan melakukan partisi tabel ke beberapa beberapa bagian yang lebih kecil.
e. Shared Page
Pada skema paging, dimungkinkan untuk sharing kode umum. Bentuk ini penting terutama pada lingkungan time sharing. Satu copy read-only dibagi ke beberapa proses (misalnya editor teks, compiler dan sistem window). Kode yang dibagi harus berada pada lokasi ruang alamat logika yang sama untuk semua proses.
6. Segmentasi
Segmentasi adalah skema manajemen memori yang memungkinkan user untuk melihat memori tersebut. Ruang alamat logika adalah kumpulan segmen. Setiap segmen mempunyai nama dan panjang. Spesifikasi alamat berupa nama segmen dan offset. Segment diberi nomor dan disebut dengan nomor segmen (bukan nama segmen) atau segment number. Segmen dibentuk secara otomatis oleh compiler.
a. Konsep Dasar Segmentasi
Konsep segmentasi adalah user atau programmer tidak memikirkan sejumlah rutin program yang dipetakan ke main memori sebagai array linier dalam byte tetapi memori dilihat sebagai kumpulan segmen dengan ukuran berbeda-beda, tidak perlu berurutan diantara segment tersebut. Sebuah program adalah kumpulan segmen. Suatu segmen adalah unit logika seperti program utama, prosedur, fungsi, metode, obyek, variabel lokal, variabel global, blok umum, stack, tabel simbol, array dan lain-lain
.
b. Arsitektur Segmentasi
Alamat logika terdiri dari dua bagian yaitu nomor segmen (s) dan offset (d) yang dituliskan dengan .
Pemetaan alamat logika ke alamat fisik menggunakan tabel segmen (segment table), terdiri dari :
o Segmen basis (base) berisi alamat fisik awal
o Segmen limit merupakan panjang segmen Seperti tabel page, tabel segmen dapat berupa register atau memori berkecepatan tinggi.
o Segment-table base register (STBR) digunakan untuk menyimpan alamat yang menunjuk ke segment table.
o Segment-table length register (STLR) digunakan untuk menyimpan nilai jumlah segmen yang digunakan program.
o Untuk alamat logika (s, d), pertama diperiksa apakah segment number s legal (s < STLR), kemudian tambahkan segment number ke STBR, alamat hasil (STBR + s) ke memori dari segment table.
c. Proteksi dan Sharing
Proteksi bit dapat diletakkan pada tabel segmen. Segmen instruksi dapat diproteksi sebagai segmen read-only atau execute only, segmen data dapat diproteksi sebagai segmen read-write. Pemetaan pada perangkat keras memory akan memeriksa bit proteksi untuk mencegah akses yang illegal.
MANAJEMEN MEMORI
Menejemen memori di bagi menjadi 2 yaitu :
- a. Menejemen memori statis
Dengan pemartisian statis, jumlah, lokasi dan ukuran proses
dimemori tidak beragam sepanjang waktu secara tetap.
- Menejemen memori dinamis
Dengan pemartisian dinamis, jumlah, lokasi dan ukuran proses
memori dapat beragam sepanjang waktu secara dinamis.
- 1. Manajemen memori berdaasar alokasi memori:
- a. Alokasi memori berturutan
Alokasi memori secara berturutan adalah tiap proses menempati
satu blok tunggal memori yang berturutan
Keunggulan :
- Sederhana
- Tak terbentuk lubang lubang memori bersebaran
- Proses dapat dieksekusi lebih cepat
Kelemahan:
- Dapat memboroskan memori
- Tidak dapat memuatkan proses jika tidak ada satu blok memori yang mencukupi
- b. Alokasi memori tak berturutan
Program dibagi menjadi beberapa blok atau segmen. Blokblok program
ditempatkan di memori dalam potonganpotongan tanpa perlu saling
berdekatan.Teknik ini biasa digunakan pada system memori maya sebagai alokasi
pagepage dilakukan secara global.
Keunggulan:
- Sistem dapat memanfaatkan memori utama secara lebih efisien
- System operasi masih mampu memuatkan proses bila jumlah total lubanglubang memori cukup untuk memuat proses yang akan dieksekusi
Kelemahan:
- Pengendalian lebih rumit dan sulit
- Kemungkinan terjadi banyak lubang memori yang tak terpakai bersebaran
- 2. Manajemen memori berdasarkan keberadaan
- a. Manajemen memori dengan swapping
Manajemen memori dengan pemindahan citra proses antara memori
utama dengan disk selama eksekusi.
- b. Manajemen memori tanpa swapping
Manajemen memori tanpa pemindahan citra proses antara memori
utama dengan disk selama eksekusi
- 3. Manajemen memori tanpa swapping
Terdiri dari :
- a. Monoprogramming
Monoprogramming sderhana tanpa swapping merupakan manajemen
memori sederhana. Sistem computer hanya mengijinkan satu program pemakai
berjalan pada satu waktu. Semua sumber daya sepenuhnya dikuasai proses yang
sedang berjalan.
Ciriciri:
- Hanya satu proses pada satu saat
- Hanya satu proses menggunakan semua memori
- Pemakai memuatkan program ke seluruh memori dari disk/tape
- Program mengambil alih kendali seluruh mesin
Karena hanya terdapat satu proses dan menguasai seluruh sistem
maka alokasi memori dilakukan secara berturutan
Embedded system
Teknik monoprogramming masih dipakai untuk sistem kecil yaitu
system tempelan (Embedded sitem) yang terdapat pada system lain. Sistem
tempelan menggunakan mikroprosessor kecil. Sistem ini biasanya mengendalikn
suatu alat sehingga bersifat intelejen(intelejentdevice) dalam menyediakan satu
fungsi spesifik.
Proteksi pada monoprogramming sederhana
Pada monoprogramming pemakai memiliki kendali penuh
terhadapmemori utama.Memori terbagi menjadi 3 bagian , yaitu
- Bagian rutin system operasi
- Bagian program pemakai
- Bagian yang tidak digunakan
Masalah proteksi di monoprogramming adalah cara untuk
melindungi
rutin system operasi dari penghancuran program pemakai. Program
pemakai dapat tersesat sehingga memanipulasi atau menempati ruang
memori rutin system operasi. Aktivitas ini dapat merusak system operasi.
Proteksi diimplementasikan dengan menggunakan satu register batas di
processor. Setiap kali program pemakai mengacu alamat memori
dibandingkan dengan register batas untuk memastikan proses tidak
pemakai tidak merusak system operasi, yaitu tidak melewati nilai register
batas.
rutin system operasi dari penghancuran program pemakai. Program
pemakai dapat tersesat sehingga memanipulasi atau menempati ruang
memori rutin system operasi. Aktivitas ini dapat merusak system operasi.
Proteksi diimplementasikan dengan menggunakan satu register batas di
processor. Setiap kali program pemakai mengacu alamat memori
dibandingkan dengan register batas untuk memastikan proses tidak
pemakai tidak merusak system operasi, yaitu tidak melewati nilai register
batas.
Register batas berisi alamat memori tertinggi yang dipakai
system operasi.Jika program pemakai mencoba memasuki system operasi, instruksi
diintersepsi dan job diakhiri dan diberi pesan kesalahan.
- b. Multiprogramming dengan pemartisian statis
Alasan penggunaan multiprogramming:
- Mempermudah programmer
- Agar dapat memberikan layanan interaktif ke beberpapa orang secara simultan.
- Efisiensi penggunaan sumber daya
- Eksekusi lebih mudah jika proses besar dipecah menjadi beberapa proses kecil
- Dapat mengerjakan sejumlah job secara simultan
Strategi penempatan program ke paritisi
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.
Relokasi. Adalah masalah penempatan proses sesuai alamat fisik
sehubungan alamat partisi memori dimana proses ditempatkan. Proses dapat
ditempatkan pada partisi-partisi berbeda menurut keadaan sistem saat itu.
Pengalamatan fisik secara absolut untuk proses tidak dapat dilakukan.
Proteksi pada Multiprogramming
Masalah proteksi pada banyak partisi dengan banyak proses di
satu system secara bersamaan dikhawatirkan proses menggunakan atau modifikas
idaerah yang dikuasai proses lain.Pada komputer IBM 360 membagi memori menjadi
blok-blok,tiap blok ditambah 4 bit kode proteksi. Proses juga mempunyai PSW
(programstatus Word) yang antar lain berisi status proteksi. Status proteksi berisi
4bit yang merupakan kunci dalam pengasesan memori.Proses hanya diijinkan
mengakses blok blok memori yang berkode proteksi sama dengan kode proteksi yang
dimiliki PSW proses.Solusi lain adalah dengan base register dan limit register.
Base register diisi alamat awal partisi dan limit register diisi panjang
partisi. Setiap alamat yang dihasilkan secara otomatis ditambah dengan nilai
base register.Instruksi yang mengacu pada alamat yang melebihi limit register
akan menimbulkan trap yang memberi tahu system operasi bahwa telah terjadi
pelanggaran akses memori.
Fragmentasi pada pemartisian statis
- Fragmentasi internal, yaitu proses tidak mengisi penuh partisi yangtelah ditetapkan untuk proses
- Fragmentasi eksternal, partisi dapat tidak digunakan karena ukuranpartisi lebih kecil dibandingkan ukuran proses yang menunggu diantrian, sehingga tidak digunakan.
- 4. Menejemen memori pada multi programming
Multiprogramming dengan swapping.
Pada sistem batch, organisasi memori dengan pemartisian tetap
telah efektif. Selama jumlah proses yang terseduan dapat membuat pemroses
sibuk, tak ada alasaan menggunakanan teknik lebih rumit. Pada sistem
timesharing, situasinya berbeda, umumnya terdapat lebih banyak proses dibanding
memori yang tersedia untuk memuat seluruh proses. Dengan demikian perlu
menyimpan proses-proses yang tidak termuat ke disk. Untuk menjalankan
proses-proses yang akan dieksekusi, proseproses itu harus telah masuk memori
utama. Pemindahan proses dari memori utama ke disk dan sebaliknya di
sebut swapping. Dengan swapping, multiprogramming pada sistem time sharing dapt
ditingkatkan kinerjanya yaitu dengan memindah proses-proses blocked ke disk dan
hanya memasukkkan proses-proses ready ke memori utama. Beragam masalah harus
diatasi multiprogramming dengan swapping, antara lain :
a. Pemartisian secara dinamis.
b. Strategi pencatatan pemakaian memori.
c. Algoritma penempatan proses ke memori.
d. Strategi penempatan ruang swap pada disk.
Multiprogramming dengan pemartisian dinamis
Pemartisian statis tidak menarik karena terlalu banyak
diboroskan proses-proses yang lebih kecil dibanding partisi yang ditempatinya.
Dengan pemartisian dinamis maka jumlah, lokasi dan ukuran proses di memori
dapat beragam sepanjang waktu secara dinamis. Proses yang akan masuk ke memori
segera dibuatkan paritisi untuknya sesuai kebutuhannya. Teknik ini meningkatkan
utilitasi memori.
Kelemahan pemartisian dinamis adalah :
a. Dapat terjadi lubang-lubang kecil memori di antara
partisi-partisi yang dipakai.
b. Merumitkan alokasi dan dealokasi memori.
5. Pencatatan pemakain memori
Memori yang tersedia harus dikelola, dilakukan dengan
pencatatan pemakaian
memori. Terdapat dua cara utama pencatatan pemakaian memori,
yaitu :
1. Pencatatan
memakai peta bit.
Memori dibagi menjadi unit-unit alokasi,berkorespondensi
dengan tiap unit
alokasi adalah satu bit pada bit map.
* Nilai 0 pada peta bit berarti unit itu masih bebas.
* Nilai 1 berarti unit digunakan.
Masalah pada peta bit adalah penetapan mengenai ukuran unit
alokasi
memori, yaitu :
* Unit lokasi memori berukuran kecil berarti membesarkan
ukuran peta bit.
* Unit alokasi memori n berukuran besar berarti peta bit kecil
tapi memori
banyak disiakan pada unit terakhir jika ukuran proses bukan
kelipatan unit
alokasi.
Keunggulan :
* Dealokasi dapat dilakukan secara mudah, hanya tinggal menset
bit yang
berkorespondensi dengan unit yang telah tidak digunakan dengan
0.
Kelemahan :
* Harus dilakukan penghitungan blok lubang memori saat unit
memori bebas.
* Memerlukan ukutan bit map besar untuk memori yang besar.
2. Pencatatan
memakai senarai berkait.
Sistem operasi mengelola senarai berkait (linked list) untuk
segmen-segmen memori yang telah dialokasikan dan bebas. Segmen memori
menyatakan memori untuk proses atau memori yang bebas (lubang). Senarai
segmen diurutkan sesuai alamat blok.
Keunggulan :
* Tidak harus dilakukan perhitungan blok lubang memori karena
sudah
tercatat di node.
* Memori yang diperlukan relatif lebih kecil.
Kelemahan :
* Dealokasi sulit dilakukan karena terjadi berbagai operasi
penggabungan
node-nude di senarai.
6. Penggunaan memori
§ Pencocokan ukuran informasi ke
penggalan memori kerja di sebut sebagai fit
§ Bagian dari memori kerja yang tidak
terpakai dan letaknya tersebar di banyak wilayah memori kerja disebut sebagai
fragmen.
§ Peristiwa terjadinya fragmen disebut
fragmentasi.
7. Pencocokan(fit) dan fragmentasi
Beberapa jenis strategi pencocokan antara lain :
1. Cocok pertama /
First fit algorithm
Pencocokan terjadi menurut antrian informasi, informasi yang
terdepan dicocokkan terlebih dahulu dan menurut urutan penggalan, penggalan
yang terdepan dicocokkan terlebih dahulu. Contoh : Antrian informasi
setiap ukuran.
2. Cocok
pertama berdaur / Cyclical first fit
Pencocokan tidak harus dimulai dari urutan penggalan memori
pertama.Contoh : informasi 2K telah menempati penggalan 4 K, pencocokan cocok
pertama berdaur bagi informasi 1K tidak lagi mencoba penggalan 4K tetapi 3K dan
karena penggalan memori ini dapat menampung informasi tersebut, maka pada cocok
pertama berdaur informasi 1K menempati memori 3K.
3. Cocok
terbaik / best fit
Mencari penggalan memori yang dapat menampung informasi yang
paling pas / tidak ada memori di penggalan yang tersisa / sisanya yang paling
kecil.Contohnya informasi pertama 2K mencari penggalan informasi yang terpas
yaitu pada penggalan memori 2K juga / tidak ada sisa.
4. Cocok
terburuk / worst fit
Kebalikan dari cocok terbaik yaitu akan menempati penggalan
yang ukurannya terbesar sehingga banyak ruang memori pada penggalan itu yang
tidak terpakai.Contohnya informasi 2K akan menempati penggalan berukuran 6K
sisa yang tidak terpakai = 4K.
8. Fragmentasi
Fragmentasi yaitu penyiaan/pemborosan memori akan terjadi pada
setiap organisasi penyimpanan.
Fragmentasi pada pemartisian tetap terjadi adalah :
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.
Untuk sistem-sistem tanpa swapping (pemindahan lokasi proses),
maka fragmentasi-fragmentasi tidak dapat dikurangi. Pada sistem-sistem dengan
swapping, sistem lebih intelijen karena dapat melakukan beberapa altenatif
mengatasi fragmentasi eksternal.
9. Sistem Buddy
Sistem buddy adalah algoritma pengelolaan memori yang
memanfaatkan kelebihan penggunaan bilangan biner dalam pegalamatan memori.
Karakteristik bilangan biner digunakan untuk mempercepat penggabungan
lubang-lubang berdekatan ketika proses terakhir atau dikeluarkan.Manajer memori
mengelola senarai blok-blok bebas berukuran 1, 2, 4, 8, 16 byte dan seterusnya
sampai kapasita memori. Pada komputer dengan 1 Mbyte memori maka dapat terdapat
21 senarai yaitu dari 1 byte sampai 1 Mbyte.
Keunggulan :
· Sistem buddy mempunyai
keunggulan dibanding algoritma-algoritma yang mengurutkan blok-blok
berdasarkan ukuran. Ketika blok berukuran 2k dibebaskan, maka manajer memori
hanya mencari pada senarai lubang 2k untuk memeriksa apakah dapat dilakukan
penggabungan. Pada algoritma-algoritma lain yang memungkinkan blok-blok memori
dipecah dalam sembarang ukuran, seluruh senarai harus dicari.
·
Dealokasi pada
sistem buddy dapat dilakukan dengan cepat.
Kelemahan :
· Utilisasi memori pada sistem buddy sangat tidak efisien.Masalah ini muncul dari
dari kenyataan bahwa semua permintaan dibulatkan ke 2k terdekat yang dapat
memuat. Proses berukuran 35 kb harus dialokasikandi 64 kb, terdapat 29 kb yang
disiakan. Overhead ini disebut fragmentasi internal karena memori yang disiakan
adalah internal terhadap segmen-segmenyang dialokasikan.
10. Alokasi ruang swap pada disk
Strategi dan algoritma yang dibahas adalah untuk mencatat
memori utama. Ketika proses akan dimasukkan ke memori utama (swap-in), sistem
dapat menemukan ruang untuk proses-proses itu.
Terdapat dua strategi utama penempatan proses yang dikeluarkan
dari memori utama (swap-out) ke disk, yaitu :
· Ruang disk tempat swap dialokasikan begitu diperlukan.
Ketika proses harus dikeluarkan dari memori utama, ruang disk
segera dialokasikan sesuai ukuran proses. Untuk itu diperlukan algoritma untuk
mengelola ruang disk seperti untuk mengelola memori utama. Ketika proses
dimasukkan kembali ke memori utama segera ruang disk untuk swap didealokasikan.
· Ruang disk tempat swap dialokasikan lebih dulu.
Saat proses diciptakan, ruang swap pada disk dialokasikan. Ketika
proses harus dikeluarkan dari memori utama, proses selalu ditempatkan ke ruang
yang telah dialokasikan, bukan ke tempat-tempat berbeda setiap kali terjadi
swap-out. Ketika proses berakhir, ruang swap pada disk didealokasikan.
0 komentar:
Posting Komentar