Senin, 17 Mei 2010

MANAGING MEMORY

MANAGING MEMORY

Manajemen Memori yaitu Melakukan pengaturan prosesor sehubungan penjadwalan proses yang harus dilakukannya. Untuk mempersiapkan proses multi-programming diperlukan pengaturan memori. Ada beberapa istilah dalam manajemen memori yang akan dijelaskan, yaitu virtual memori, swapping, paging dan segmentasi.

1. Virtual Memori
Virtual Memori adalah Bagian dari suatu hard drive yang diidentifikasi sebagai RAM melalui sistem operasi atau software lain. Karena memory hard drive lebih murah dari pada RAM tambahan, maka virtual memory adalah cara yang lebih murah untuk memperoleh tambahan memory dan meningkatkan kecepatan operasi aplikasi. Biasanya memory ini halamannya diarahkan ke harddisk.
(dalam bahasa Inggris: virtual Memory) adalah sebuah mekanisme yang digunakan oleh aplikasi untuk menggunakan sebagian dari memori sekunder seolah-olah ia menggunakannya sebagai RAM fisik yang terinstal di dalam sebuah sistem. Mekanisme ini beroperasi dengan cara memindahkan beberapa kode yang tidak dibutuhkan ke sebuah berkas di dalam hard drive yang disebut dengan swap file, page file atau swap partition.
Dalam sistem operasi berbasis Windows NT, terdapat sebuah komponen yang mengatur memori virtual, yakni Virtual Memory Manager (VMM). VMM dapat memetakan alamat-alamat virtual yang dimiliki oleh sebuah proses yang berjalan ke dalam page memori fisik di dalam komputer. Dengan cara begini, setiap proses pun dapat memperoleh memori virtual yang cukup agar dapat berjalan, dan yang terpenting adalah setiap proses tidak mengganggu memori yang sedang digunakan oleh proses lainnya. VMM menangani paging antara RAM dan page file, dengan memindahkan page dengan menggunakan sebuah cara yang disebut sebagai demand paging. Hasilnya, setiap aplikasi 32-bit pun dapat mengakses memori hingga 4 gigabyte (meskipun Windows hanya membatasi proses yang berjalan dalam modus pengguna hanya sebatas 2 GB saja).

2. Swapping
Dalam representasi diagram antrian penjadwalan jika Kerja prosesor lebih cepat daripada perangkat I/O maka akan terjadi antrian keluaran, yaitu proses yang memerlukan akses ke perangkat I/O.Pendekatan untuk masalah di atas adalah swapping. Kita memiliki antrian panjang permintaan proses, yang umumnya tersimpan dalam memori utama

Sekarang, situasi yang terjadi adalah tidak ada proses di dalam memori utama yang siap, daripada prosesor idle maka prosesor akan melakukan swap salah satu tersebut kembali ke disk di antara menengah. Antrian ini merupakan antrian proses yang telah dikeluarkan sementara dari memori. Kemudian sistem operasi mengambil proses lain dari antrian menengah, atau memenuhi permintaan proses yang baru dari antrian panjang. Setelah itu eksekusi akan dilanjutkan dengan memproses proses yang baru tiba.
Swapping merupakan operasi I/O, karenanya dapat membuat keadaan menjadi buruk, namun karena I/O disk umumnyalebih cepat dari I/O lainnya maka swapping ini mampu meningkatkan kinerja prosesor.

3. Paging
Metode dasar dari paging adalah dengan memecah memori fisik menjadi blok-blok yang berukuran tertentu yang disebut dengan frame dan memecah memori logika menjadi blok-blok yang berukuran sama dengan frame yang disebut dengan page. Selanjutnya sebuah page table akan menerjemahkan alamat logika ke alamat fisik. Alamat logika terdiri dari 2 bagian yaitu nomor page dan nomor offset. Bila digunakan ruang alamat logika 2 pangkat m dan ukuran page 2 pangkat n bytes, maka m-n bit paling kiri menunjukkan nomor page dan n bit paling kanan menunjukkan offset.
Gambar 3.1. Translasi Alamat Pada Sistem Paging

Gambar 3.2. Contoh Translasi Alamat Pada Sistem Paging

Lihat gambar di atas. Bila kita mempunyai ruang alamat logika 16 byte (2 pangkat 4), dan ukuran page-nya 4 byte (2 pangkat 2), maka 2 bit (4-2 dari m-n) paling kiri menunjukkan nomor page dan 2 (didapat dari n) bit paling kanan menunjukkan nomor offset. Contohnya alamat logika 0000, maka bit 00 sebelah kiri menunjukkan bahwa nomor pagenya adalah 0 , sedangkan 00 sebelah kanan menunjukkan bahwa nomor offsetnya adalah 0000 (bilangan biner). Dilihat di page table bahwa page 0 dipetakan ke frame 5, berarti alamat logika 0000 dipetakan ke frame 5 offset 0000. Dan alamat logika 0000 menyimpan data dari frame 5 offset 0 yaitu 'U'. Begitu pula alamat logika 0110 berarti nomor pagenya adalah 01 atau 1, dan nomor offsetnya 0010. Sehingga dipetakan ke frame 6 offset 0010 dan menyimpan data AA.
Fragmentasi intern masih mungkin terjadi pada sistem paging. Contohnya adalah bila page berukuran 2KB (2048 byte), maka proses berukuran 20500 byte membutuhkan 10 page dan tambahan 20 byte, berarti diperlukan 11 frame sehingga terjadi fragmentasi intern sebesar 2028 byte (2048-20) dan worst case yang terjadi adalah fragmentasi intern sebesar ukuran page dikurang 1 byte.

4. Segmentasi
Dalam segmentasi, ruang alamat memori akan dibagi ke dalam beberapa bagian yang disebut dengan segmen. Untuk mengalamati sebuah lokasi yang diperlukan, sebuah program harus menentukan alamat mutlak (absolute address) dengan format xxxx:yyyy di mana xxxx adalah alamat segmen dan yyyy merupakan alamat offset (ofset merupakan alamat lokasi ke berapa dari segmen tersebut yang dimulai dari permulaan segmen). Kedua bilangan tersebut direpresentasikan dalam bilangan heksadesimal. Nilai absolute address dapat dihitung dengan menggunakan perhitungan sederhana: dengan melakukan pemangkatan dengan bilangan 16 (karena memang basis yang digunakan adalah basis 16/heksadesimal) dari segmen dan menjumlahkannya dengan alamat offset. Melakukan pemangkatan alamat segmen dapat dengan mudah dilakukan, yaitu dengan menambahkan angka 0 (nol) di samping angka segmen, sehingga yang tadinya hanya berjumlah empat digit akan bernilai lima digit. Hasil dari pemangkatan ini ditambahkan dengan alamat offset, dan jadilah alamat mutlak sebuah memori.

Karena dalam real mode, memori komputer hanya dapat diakses hingga 1 MB saja, maka alamat segmen pun dibuat sedemikian rupa. DOS akan membagi 1 MB alamat ke dalam 16 segmen berukuran 65536 bytes (64K), yang diberi alamat dari 0x0000 hingga 0x10000. Memori konvensional dialamatkan oleh DOS pada alamat segmen 0x0000 hingga 0xA000 (10 segmen); Upper memory dialamatkan oleh DOS pada alamat segmen 0xA000 hingga 0x10000 (6 segmen). Beberapa segmen di dalam upper memory dialokasikan untuk beberapa keperluan (tapi tidak harus begitu), yakni segmen 0xA000 dan 0xB000 disediakan untuk Video Memory; segmen 0xC000 dan 0xD000 dialokasikan untuk pengendali cakram dan beberapa kartu lainnya; sementara segmen 0xE000 dan 0xF000 dialokasikan untuk ROM BIOS. Alokasi segmen-segmen dalam Upper Memory tersebut hanyalah sebuah panduan umum, dan tidak berlaku dalam setiap kasus.

Tidak ada komentar:

Posting Komentar