MANAJEMEN MEMORY
Bagian operating sistem yang mengatur memori disebut dengan memory manager. Pemakaian memori (manajemen memori dan organisasi) perlu dilakukan karena hal tersebut sangat mempengaruhi kinerja komputer, sehingga memiliki fungsi dan tugas penting dan kompleks yaitu berkaitan dengan :
Bagian operating sistem yang mengatur memori disebut dengan memory manager. Pemakaian memori (manajemen memori dan organisasi) perlu dilakukan karena hal tersebut sangat mempengaruhi kinerja komputer, sehingga memiliki fungsi dan tugas penting dan kompleks yaitu berkaitan dengan :
a. Memori utama sebagai sumber daya yang harus dialokasikasikan
dan dipakai bersama di antara sejumlah proses yang aktif, sehingga dapat
memanfaatkan pemroses dan fasilitas masukan/keluaran secara efisien, sehingga
memori dapat menampung sebanyak mungkin proses.
b. Upaya
agar pemogram atau proses tidak dibatasi kapasitas memori fisik di sistem
komputer.
1.
Manajemen memori
Sistem
manajemen memori dapat dibagi kedalam dua kelas, yaitu : pemindahan proses (back
and forth) diantara memori utama dengan disk selama eksekusi (swapping and
paging) dan tidak ada pemindahan proses.
Mempunyai beberapa fungsi, antara lain
:
a.
Mengelola informasi memori yang dipakai dan tidak dipakai.
b.
Mengalokasikan memori ke proses yang memerlukan.
c.
Mendealokasikan memori dari proses yang telah selesai.
d. Mengelola swapping antara memori utama dan disk.
2. Hirarki
memori
Pemakaian
memori dua tingkat, menggunakan cache memory yang dapat meningkatkan kinerja
dan utilisasi memori secara dinamik. Chace memory merupakan penyimpan
berkecepatan tinggi lebih cepat dibanding memori utama. Chace memory lebih
mahal dibanding memori utama, sehingga kapasitas cache relatif kecil.
Memperlihatkan
hubungan antara chace memory, memori utama dan penyimpan sekunder. Dengan cache
memory, bagian program yang akan digunakan (dieksekusi atau diacu) dikopi dulu
ke chace sebelum dieksekusi. Di chace memory, instruksi dapat dieksekusi dengan
lebih cepat dibanding di memori utama. Penggunaan chace atau memori antara yang
lebih cepat mempunyai alasan yang dikemukakan oleh Denning, yaitu ekseksui
program biasanya pada suatu interval waktu mengumpul di satu lokasi kecil.
Prinsip ini disebut lokalitas. Lokalitas dapat berupa lokalitas waktu dan
ruang. Prinsip lokalitas berkembang menjadi konsep working set model.
3. 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. Memori logika juga dibagi ke
dalam blokblok dg ukuran yang sama yang disebut page. Semua daftar frame yang
bebas disimpan. Untuk menjalankan
program dengan ukuran n page, perlu menemukan n
frame bebas dan meletakkan program pada frame tersebut. Tabel page (page
table) digunakan untuk menterjemahkan
alamat logika ke alamat fisik.
Setiap alamat dibangkitkan oleh CPU dengan membagi ke dalam 2 bagian
yaitu :
•
Page
number (p) digunakan sebagai indeks ke dalam table page (page table). Page table berisi alamat basis dari setiap
page pada memori fisik.
•
Page
offset (d) mengkombinasikan alamat basis dengan page offset untuk mendefinisikan alamat memori fisik yang
dikirim ke unit memori.
Ukuran page (juga frame) didefinisikan oleh perangkat
keras. Ukuran page merupakan bilangan 2 pangkat k, mulai 512 (29)
s/d 8192 (213) tergantung arsitektur computer. Bila ukuran ruang
alamat logika 2m dan ukuran satu page adalah 2n
address unit (byte/word) maka (m-n) bit
orde tinggi dari alamat logika menunjukkan nomor page (page number) dan n bit
orde rendah menunjukkan page offset.
Pada skema paging, tidak terjadi fragmentasi eksternal,
karena “sembarang” frame dapat dialokasikan ke proses yang memerlukannya.
Tetapi beberapa fragmentasi internal masih mungkin terjadi. Hal ini dikarenakan
frame dialokasikan sebagai unit dan jika kebutuhan memori dari proses tidak
menemukan page, maka frame terakhir mungkin tidak dialokasikan penuh.
Bila suatu proses datang untuk dieksekusi, maka
ukurannya diekspresikan dengan page. Setiap page membutuhkan satu frame. Bila
proses membutuhkan npage, maka proses tersebut juga membutuhkan n frame. Jika
tersedia n frame, maka memori dialokasikan untuk proses tersebut. Alokasi page
pada frame bebas.
Pada paging, user memandang memori sebagai bagian
terpisah dari memori fisik aktual. Program user memandang memori sebagai satu
ruang berurutan yang hanya berisi program user tersebut. Faktanya, program user
terpecah pada memori fisik, yang juga terdapat program lain. Karena sistem
operasi mengatur memori fisik, perlu diwaspadai lokasi detail dari memori
fisik, yaitu frame mana yang dialokasikan, frame mana yang tersedia, berapa
jumlah frame dan lain-lain. Informasi tersebut disimpan sebagai struktur data
yang disebut “frame table”.
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 :
1. Tabel page diimplementasikan sebagai kumpulan dari “dedicated”
register. Register berupa rangkaian logika berkecepatan sangat tinggi untuk
efisiensi translasi alamat paging. Contoh : DEC PDP-11. Alamat terdiri dari 16
bit dan ukuran page 8K. Sehingga tabel page berisi 8 entri yang disimpan pada
register. Penggunaan register memenuhi jika tabel page kecil (tidak lebih dari
256 entry).
2. 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). Perubahan tabel page hanya mengubah
PTBR dan menurunkan waktu context-switch. Akan tetapi penggunaan metode ini memperlambat
akses memori dengan faktor 2. Hal ini dikarenakan untuk mengakses memori perlu
dua langkah : pertama untuk lokasi tabel page dan kedua untuk lokasi alamat
fisik yang diperlukan.
3. 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. Sekumpulan associative register berupa memori
kecepatan tinggi. Setiap register terdiri dari 2 bagian yaitu key dan value.
Jika associative register memberikan item, akan dibandingkan dengan semua key
secara simultan. Jika item ditemukan nilai yang berhubungan diberikan. Model
ini menawarkan pencarian cepat tetapi perangkat keras masih mahal. Jumlah entry
pada TLB bervariasi antara 8 s/d 2048
Mekanisme penggunaan associative register adalah sebagai berikut :
•
Associative register berisi hanya beberapa
entry tabel page (sampai dengan ukuran maksimum).
•
Jika
memori logika dibangkitkan oleh CPU, nomor page berupa sekumpulan associative
register yang berisi nomor page dan nomor frame yang berkorespondensi.
• Jika nomor page ditemukan pada associative
register, nomor frame segera tersedia
dan digunakan untuk mengakses memori.
•
Sebaliknya, jika nomor page tidak ditemukan
pada associative register, acuan memori ke tabel page harus dibuat.
•
Jika nomor frame tersedia, maka dapat
menggunakannya untuk mengakses ke memori yang tepat.
•
Kemudian
ditambahkan nomor page dan nomor frame ke associative register sehingga akan
mudah ditemukan pada acuan berikutnya.
•
Setiap kali tabel page baru dipilih, TLB harus
dihapus untuk menjamin eksekusi proses berikutnya tidak menggunakan informasi
translasi yang salah.
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.
Untuk sistem dengan ruang
alamat logika 32 bit dapat dipecahkan menggunakan skema two level paging. Pada
skema ini alamat logika dibagi menjadi 20 bit untuk nomor page dan 12 bit untuk
page offset. Karena tabel page juga merupakan page maka nomor page lebih jauh
akan dipecah menjadi 10 bit untuk nomor page dan 10 bit untuk page offset. Maka
alamat logika adalah sebagai berikut :
Dimana pi adalah indeks
ke table page luar dan p2 adalah displacement dalam page pada table page luar. Skema tabel page pada two
level paging dapat dilihat pada Gambar 7- 17. Sedangkan arsitektur translasi
alamat pada two level paging untuk mesin 32 bit dapat dilihat pada Gambar 7-18.
Untuk sistem dengan ruang
alamat logika 64 bit tidak dapat menggunakan skema two-level paging. Solusi
yang digunakan adalah dengan membagi tabel pageluar ke dalam bagian yang lebih
kecil : menggunakan skema three-level atau four-levelpaging. Multilevel paging
dapat berakibat pada performansi sistem. Untuk skema three-level paging, jika
kita menggunakan memori untuk menyimpan tabel, maka akan membutuhkan 4 kali
akses memori. Tetapi jika menggunakan cache dengan hit ratio 98%, effective
access time menjadi 0.98 X 120 + 0.02 X 420.
4. 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.
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.
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.
Arsitektur
Segmentasi
Alamat logika terdiri dari dua bagian
yaitu nomor segmen (s) dan offset (d) yang dituliskan dengan <nomor segmen,
offset>
Pemetaan alamat logika ke alamat fisik
menggunakan tabel segmen (segment table), terdiri dari
•
Segmen
basis (base) berisi alamat fisik awal
•
Segmen
limit merupakan panjang segmen
Seperti tabel page,
tabel segmen dapat berupa register atau memori berkecepatan tinggi. Pada
program yang berisi sejumlah segmen yang besar, maka harus menyimpan tabel page
di memori.
•
Segment-table base register (STBR) digunakan
untuk menyimpan alamat yang menunjuk ke segment table.
•
Segment-table length register (STLR) digunakan
untuk menyimpan nilai jumlah segmen yang digunakan program.
•
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
5. Virtual Memory
Memory virtual adalah suatu
teknik yang memisahkan antara memory logis dan memory fisik. Teknik ini
menyembunyikan aspek-aspek fisik memory dari pwngguna dengan menjadikan memory
sebagai lokasi alamat virtual berupa byte yang tidak terbatas dan menaruh
beberapa bagian dari memory virtual yang berada di memory logis. Konsep memory
virtual dikemukakan pertama kali oleh John Fotheringham pada tahun 1961 dengan
menggunakan dinamik storage allocation pada system computer atlas di Universitas
Manchester. Sedangkan istilah memory virtual di popilerkan oleh Peter J.
Denning yang mengambil istilah “virtual” dari dunia optic. Memory virtual lebih
besar ukurannya dari memory fisik setiap program yang dijalankan harus berasa
di memori. Memory merupakan suatu tempat penyimpanan utama yang bersifat
sementara. Ukuran memory yang terbatas akan menimbulkan masalah bagaimana
menempatkan program yang berukuran lebih besar dari ukuran memory fisik dan
masalah penerapan multiprogramming yang membutuhkan tempat lebih besar di
memory.
Bertambahnya jumlah pengguna
yang dapat dilayani. Ruang memory yang masih tersedia luas memingkinkan
computer untuk menerima lebih banyak permintaan dari pengguna. Gagasan utama
dari virtual adalah ukuran gabungan program, data dan stack melampaui jumlah
memory fisik yang tersedia, system operasi menyimpan bagian-bagian proses yang
sedang digunakan di memory fisik dan sisanya di letakkan di disk.
Begitu bagian yang ada di disk
di perlukan, maka meningkatnya respon , karena menurunnya beban I/O dan memori.
Ruang menjadi lebih leluasa karena berkurangnya memory fisik yang digunakan.
Contoh untuk program 10 Mb tidak seluruh bagian dimasukkan dalam memory fisik.
Pesan-pesan eror hanya dimasukkan jika terjadi error.berkurangnya proses I/O
yang dibutuhkan.
Misalnya untuk program butuh
membaca dari disk dan memasukkan dalam memory setiap kali diakses memory.
Dengan pengaturan oleh system operasi dan di dukung perangkat keras , memory
virtual dapat mengatasi masalah kebuutuuhhan memory tersebut.
Memory virtual melakukan
pemisahan dengan menaruh emory logis ke disk sekunder dan hanya membawa halaman
yang diperlukan ke memory utama. Teknik ini menjadikan seolah-olah ukuran
memory fisik yang dimiliki lebih besar dari sebenarnya dengan menpatkan
keseluruhan program di disk sekunder dan membawa halaman-halaman yang
diperlukan ke memory fisik. Jadi jika
proses yang sedang berjalan membutuhkan instruksi atau data yang terdapat pada
suatu halaman tertentu maka halaman tersebuut akan dicari di memory utama. Jika
halaman yang diinginkan tidak ada maka akan di cari di disk. Ide ini seperti
menjadikan memory sebagai cache untuk disk. Beberapa keuntungan penggunaan
memory virtual adalah sebagai berikut :
1.
Sedikit memori yang dibutuhkan
2.
Sedikit I/O yang dibutuhhkan
Bagian memori yang tidak diperlukan akan diperlukan dari memori fisik
(swap out) dan diganti (swap in) oleh bagian disk yang diperlukan itu. Memory
virtual diimplementasikan oleh system multiprogramming. Misalnya : 10 program
dengan ukuran 2 Mb dapat berjalan di memory berkapasitas 4 Mb. Tiap memory
dialokasikan 256 Kbyte dan bagian-bagian proses swap in masuk ke dalam memory
fisik begitu diperlukan dan akan keluar swap out jika sedang tidak diperlukan.
Dengan demikian, system multiprogramming manjadi lebih efien. Prinsip dari
memory virtual yang perlu di ingat adalah bahwa “ kecepatan maksimum eksekusi
proses di memory virtual dapat sama, tetapi tidak pernah melampaui kecepatan
eksekusi proses yang sama di system yang tidak menggunakan memory virtual”.
Memory virtual di implementasikan dengan 2 cara , yaitu:
1.
Deaman paging
Menerapkan
konsep pemberian alaman pada proses
2.
Deman segmentation
Lebih
kompleks diterapkan karena ukuran segmen yang bervariasi
Demand paging adlah satu
implementasi dari memory virtual yang paling umum digunakan. Demand paging pada
prinsipnya hamper sama dengan permintaan halaman hanya saja halaman tidak
dibawa ke dalam memori fiik sampai ia benar-benar diperlukan. Untuk itu
diperlukan bantuan perangkat keras untuk mengetahui lokasi halaman saat
diperlukan. Karena demand paging merupakan implementasi dari memory virtual,
maka keuntungannya sama dengan keuntungan memory virtual , yaitu :
1. Dapat
melayani lebih banyak pengguna.
Ada 3 kemungkinan kasus yang dapat terjadi saat dilakukan pengecekan pada
halam yang dibutukan , yaitu , halaman ada dan sudah berada di memory- status
valid, halaman ada tetapi masih berada di disk atau belum berada di memori .
Halaman tidak ada, baik dimemory maupun di disk. Pengaturan bit dilakukan dengan
: bit=1 berarti halaman berada di memory. Bit=0 berati halaman tidak ada di
memori. Apabila ternyata hasil dari transaksi bit halaman bernilai 0, berarti
kesalahan halaman terjadi .Kesalahan halaman adalah interupsi yang tejadi
ketika halaman yang diminta tidak berapa di memory utama. Proses yang sedang
terjadi berjalan akan mengakses table halaman untuk mendapatkan refrensi
hhalaman yang diinginkan . Kelebihan atau kekurangan manajemen memory dengan
permintaan halaman memiliki kelebihan yang sama dengan manajemen memori dengan
pemberian halaman, antara lain :
a.
Menghilangkan masalah
b.
Respon yang lebih cepat
c.
Fragmentasi eksternal sehingga tidak diperlukan
pemadatan
Selain itu
permintaan halaman memiliki kelebihan yang lain , yaitu :
a.
Memory virtual yang besar
Memori
logis tidak lagi terbatas pada ukurab memory fisik.
b.
Penggunaan memory yang lebi efisien
Bagian
program yang dbawa ke memori fisik hanyalah bagian program yang dibutuhkan
sementara bagian lain yang jarang digunakan tidak akan dibawa
c.
Meningkatkan derajat multiprogramming
Derajat
multiprogramming menunjukkan banyaknya proses yang berada di memory fisik .
d.
Penggunaan I/O yang lebih sedikit
Hal
ini dapat terjadi karena permintaan halaman hanya membawa bagian yang
diperlukan dari suatu program.
Permintaan
halaman juga memiliki beberapa kekurangan , antara lain :
a.
Processor overhead
Interupsi
kesalaan halaman memberikan kerja tambahan kepada CPU untuk mengambil halaman
yang tidak berada di memory fisik pada saat diperlukan.
b.
Kinerja demand paging salah satu hal yang
menjadi pertimbangan dalam penggunaan permintaan halaman adalah waktu akses
memory menjadi lebih lambat akibat perlunya penanganan kesalahan halaman.
c.
Halaman Fault Time lamanya waktu untuk mengatasi
kesalahan halaman
Ada 3 faktor
untuk mempengaruhi halaman fault time ini yaitu:
1.
Melayani interupsi dari kesalahan halaman
Aktifitas
yang dilakuukan dalam melayani kesalahan halaman ini yaitu :
a.
Memberitahu system operasi saat terjadinya
kesalahan halaman
b.
Menyimpan status dari proses bersangkutan
c.
Memeriksa apaka refrensi halaman memberikan
legal atau tidak . bila refrensi yang diberikan legal maka dicari lokasi dari
halaman tersebut di disk
2.
Pembacaan halaman
Aktivitas
terjadi alam pembacaan halaman ini, yaitu:
a.
Menunggu dalam antrian sampai mendapatkan
giliran untuk membaca
b.
Menunggu disk untuk membaca lokasi yang diminta.
Disk dilakukan kerja mekanis untuk membaca data sehingga lebih lambat dari
memory
c.
Mengirim halaman yang diminta ke memory fisik
3.
Pengulangan instruksi
Aktivitas
yang terjadi untuk mengulangi instruksi ini, yaitu :
a.
Interupsi proses yang sedang berjalan untuk
menandakan bahwa proses yang sebelumnya terhenti akibat kesalahan halaman telah
selesai dalam membaca halaman yang diminta
b.
Menyimpan status dari proses yang sedang
berjalan
c.
Membetulkan table halaman untuk menunjukkan
bahwa halaman yang ingin dibaca sudah ada di memory fisik
d.
Mengambil kembali status proses bersangkutan
untuk selanjutnya dijalankan di CPU
Sumber:
http://lecturer.eepis.-its.edu/-arna/Diktat_SO/7.manajemen%20Memory.pdf
Tidak ada komentar:
Posting Komentar