Rabu, 21 Januari 2015

MANAJEMEN MEMORY

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 :
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