• Twitter
  • Facebook
  • Google+
  • RSS Feed

Saturday, May 22, 2010

Manajemen Memori

No comments:
 



Manajemen Memori
1. PENDAHULUAN
Memori adalah pusat dari operasi pada sistem komputer modern. Memori adalah array besar dari word atau byte, yang disebut alamat. CPU mengambil instruksi dari memory berdasarkan nilai dari program counter. Instruksi ini menyebabkan penambahan muatan dari dan ke alamat memori tertentu.

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 system 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. Pada beberapa kasus, program user akan melalui beberapa langkah sebelum dieksekusi.

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.

C. Dinamic Linking

Sebagian besar sistem operasi hanya men-support static linking, dimana system library language diperlakukan seperti obyek modul yang lain dan dikombinasikan dengan loader ke dalam binary program image. Konsep dynamic linking sama dengan dynamic loading. Pada saat loading, linking ditunda sampai waktu eksekusi. Terdapat kode kecil yang disebut stub digunakan untuk meletakkan rutin library di memori dengan tepat. Stub diisi dengan alamat rutin dan mengeksekusi rutin. Sistem operasi perlu memeriksa apakah rutin berada di alamat memori.

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 peruntukkan. Ide dari overlay adalah menyimpan di memori hanya instruksi dan data yang diperlukan pada satu waktu. Jika intruksi lain diperlukan, maka instruksi tersebut diletakkan di ruang memori menggantikan instruksi yang tidak digunakan lagi.

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).

Register basis disebut register relokasi. Nilai dari register relokasi ditambahkan kesetiap alamat yang dibangkitkan oleh proses user pada waktu dikirim ke memori. Sebagai contoh, apabila basis 14000, maka user mencoba menempatkan ke alamat lokasi 0 dan secara dinamis direlokasi ke lokasi 14000. Pengaksesan ke lokasi logika 346, maka akan dipetakan ke lokasi 14346. Sistem operasi MS-DOS yang masih keluarga intel 80X86 menggunakan empat register relokasi ketika proses loading dan running
3. SWAPPING
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. Contohnya, sebuah lingkungan multiprogramming dengan penjadwalan CPU menggunakan algoritma round-robin. Pada saat waktu kuantum berakhir, manajer memori akan memulai untuk menukar proses yang baru selesai keluar dan menukar proses lain ke dalam memori yang dibebaskan (Gambar 7-4). Pada waktu berjalan, penjadwal CPU (CPU scheduler) akan mengalokasikan sejumlah waktu untuk proses yang lain di memori. Ketika masing-masing proses menyelesaikan waktu kuantum-nya, akan ditukar dengan proses yang lain.

4. ALOKASI BERURUTAN
Memori utama biasanya dibagi ke dalam dua partisi yaitu untuk
• Sistem operasi biasanya diletakkan pada alamat memori rendah dengan vektor interupsi
• Proses user yang diletakkan pada alamat memori tinggi.
Alokasi proses user pada memori berupa single partition allocation atau multiple partition allocation.

5. 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 blok-blok 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 (pageable) 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.

6. 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.

7. SEGMENTASI DENGAN PAGING

Pada skema ini, skema paging dan segmentasi dikombinasikan. Kombinasi diilustrasikan menggunakan 2 arsitektur berbeda : MULTICS dan Intel 386 (OS/2).

A. MULTICS
Pada sistem MULTICS, alamat logika dibentuk dari nomor segmen 18 bit dan offset 16 bit. Dengan ukuran segmen 64K word, setiap segmen terdiri dari 36 bit, rata-rata ukuran segmen dapat lebih besar dan fragmentasi eksternal menjadi permasalahan karena membutuhkan banyak ruang memori. Tetapi jika fragmentasi eksternal tidak menjadi permasalahan, waktu pencarian untuk mengalokasikan segmen dapat membutuhkan waktu yang lama.

Solusi yang diadopsi pada MULTICS adalah dengan melakukan paging pada segmen (page the segment). Paging menghilangkan fragmentasi eksternal dimana frame kosong dapat digunakan untuk page yang tepat. Setiap page terdiri dari 1K word. Segment offset (16 bit) dibagi ke dalam nomor page 6 bit dan page offset 10 bit. Nomor page mengindeks ke tabel page untuk memberikan nomor framer. Nomor frame dikombinasikan dengan page offset menunjuk ke alamat fisik. Skema translasi alamat logika ke alamat fisik pada MULTICS dapat dilihat pada Gambar 7-24.

B. INTEL 30386
IBM OS/2 versi 32 bit adalah sistem operasi yang menggunakan arsitektur 30386 (dan 30486). Intel 30386 menggunakan segmentasi dengan paging untuk manajemen memori. Maksimum jumlah segment per proses adalah 16K. Setiap segmen maksimal berukuran 4 gigabytes. Ukuran page adalah 4K byte.
Ruang alamat logika dari suatu proses dibagi ke dalam 2 partisi :
• Partisi 1 terdiri dari 8K segmen yang pribadi (private) untuk proses tersebut.
• Partisi 2 terdiri dari 8K segmen yang digunakan bersama untuk semua proses
Karena setiap segmen adalah page dengan ukuran 4KB per page, sebuah page table terdiri dari 1 juta entri. Dan karena setiap entri terdiri dari 4 byte, setiap proses memerlukan 4MB ruang alamat fisik untuk table page saja. Solusi yang digunakan menggunakan skema two-level paging. Alamat linier dibagi ke dalam nomor page 20 bit, dan sebuah page offset 12 bit. Nomor page dibagi ke dalam 10 bit page directorpointer dan 10 bit page table pointer. Translasi alamat logika ke alamat fisik pada Intel 30386 lebih jelasnya dapat dilihat pada Gambar 7-25.

REFERENSI
• http://opensource.telkomspeedy.com/repo/abba/.../SistemOperasi/.../bahan-bab5.pdf/. Diakses jam 21.36 WIB tanggal 27 April 2010.
• http://lecturer.eepis-its.edu/~arna/Diktat_SO/7.Manajemen%20Memory.pdf/. Diakses jam 21.36 WIB tanggal 27 April 2010.
• http://ocw.gunadarma.ac.id/.../sistem-operasi/manajemen-memori/view/. Diakses jam 21.38 WIB tanggal 27 April 2010.

No comments:

Post a Comment

 
© 2012. Design by Main-Blogger - Blogger Template and Blogging Stuff