Jumat, 11 Juni 2010

manajemen memory

Latar Belakang Manajemen Memory
1. Konsep binding, dinamic linking, dinamik loading, overlay, swapping
Binding

Pemetaaan alamat suatu data program ke alamat memory tertentu dapat terjadi pada 3 saat, yaitu:
• Compilation Time.
Jika kita tahu dimana proses akan ditempatkan di memori pada saat
mengkompilasi, maka kode yang absolut dapat dibuat. Kita harus mengkompilasi ulang kode jika
lokasi berubah.
• Load Time.
Kita harus membuat kode relokasi jika pada saat mengkompilasi kita tidak tahu
proses akan ditempatkan dimana dalam memori. Pada kasus ini, binding harus ditunda sampai
load time.
• Execution Time.
Binding harus ditunda sampai waktu proses berjalan selesai jika pada saat
dieksekusi proses dapat dipindah dari satu segmen ke segmen yang lain di dalam memori. Kita butuh perangkat keras khusus untuk melakukan ini.
Dinamic Linking
• Menghubungkan semua rutin yang ada scr dinamis.
• Tidak membuang-buang tempat di disk dan memori (Kumpulan data yang ada dapat digunakan bersama-sama).
• Membutuhkan bantuan sistem operasi (Operating system dibutuhkan untuk memeriksa apakah routine itu ada dalam processes’ memory address).
• Linking dilaksanakan pada execution time.
• Sekumpulan kode kecil yg disebut stub, digunakan untuk mencari memory-resident library routine yang tepat (Stub akan mengganti dirinya sendiri dengan address dari routine, dan kemudian mengeksekusi routine).
• Dynamic linking digunakan untuk file libraries (System also known as shared libraries).
• Kelebihan: ukuran file kecil, irit, dipakai bersama
. Kekurangan: jika dll hilang, perbedaaan versi
Dinamic loading
• Memanggil routine yang diperlukan saja pada memory (Routine yang tidak diperlukan, tidak akan dipanggil).
• Tidak memerlukan bantuan sistem operasi.
• Better memory-space utilization(Because unused routine is never loaded).
• Sangat berguna jika menangani banyak kode yg jarang diakses.
• Ketika pemanggilan terjadi rutin pemanggil akan memeriksa di memory, apakah rutin yg dibutuhkan itu sudah ada atau belum, jika belum dipanggil dan dialokasi ke memory
Overlay
Untuk memasukkan suatu proses yang membutuhkan memori lebih besar dari yang tersedia.
• Caranya:
– Data dan instruksi yang diperlukan dimasukkan langsung ke memori utama.
– Routine-nya dimasukkan ke memori secara bergantian. (dibagi-bagi / dipecah2).
– Bagian pendukung lain dimasukkan ke memory sekunder
– Memerlukan algoritma tambahan untuk melakukan overlays.
• Tidak memerlukan bantuan dari sistem operasi. Sulit untuk dilakukan.
Swapping
Sebuah proses harus berada di dalam memori untuk dapat dijalankan.
• Sebuah proses dapat di-swap sementara keluar memori ke sebuah penyimpanan cadangan (backing store) untuk kemudian dikembalikan lagi ke memori.
• Roll out, roll in adalah penjadualan swapping berbasis pada prioritas
proses berprioritas rendah di-swap keluar memori agar proses berprioritas tinggi dapat masuk dan dijalankan dimemori
• Backing store – fast disk large enough to accommodate copies of all memory images for all users
harus dapat direct access ke memory images
2. Konsep alokasi memory(single dan multiple partition allocation)
Single partition: alamat pertama memory yang dialokasikan untuk suatu proses adalah alamat setelah alamat yang dialokasikan untuk proses sebelumnya.
Partisi banyak: adalah dimana Sistem Operasi menyimpan informasi tentang semua bagian memori yang tersedia untuk digunakan (disebut hole).
Konsep MFT dan MVT dan akibatnya serta solusi dari akibat tersebut
Algoritma pada pengalokasian memory pada partisi dinamis.
• First fit : Mengalokasikan hole pertama yang besarnya mencukupi. Pencarian dimulai dari awal.
• Best fit : Mengalokasikan hole terkecil yang besarnya mencukupi (tepat).
• Next fit : Mengalokasikan hole pertama yang besarnya mencukupi.
– Pencarian dimulai dari akhir pencarian sebelumnya.
• Worst fit : Mengalokasikan hole terbesar yang tersedia. • First-fit and best-fit better than worst-fit in terms of speed and storage utilization
Multiprogramming Dengan Partisi statis
a. Mempermudah pemogram.Pemogram dapat memecah program menjadi dua proses atau lebih.
b. Agar dapat memberi layanan interaktif ke beberapa orang secara simultan.
Untuk itu diperlukan kemampuan mempunyai lebih dari satu proses dimemori agar memperoleh kinerja yang baik.
c. Efisiensi penggunaan sumber daya. Bila pada multiprogramming maka proses tersebut diblocked (hanya DMA yang bekerja) dan proses lain mendapat jatah waktu pemroses, maka DMA dapat meningkatkan efisiensi sistem.
d. Eksekusi lebih murah jika proses besar dipecah menjadi beberapa proses kecil.
e. Dapat mengerjakan sejumlah job secara simultan.
Memori Nyata dan Memori Maya

Sistem operasi yang memberikan fasilitas multitasking, misalnya OS/2 atau Unix, mampu memberikan kesan seolah-olah setiap program mengakses dan mengalokasikan memori sendiri-sendiri tanpa khawatir terjadi tumpang-tindih pemakaian ruang memori. Padahal kenyataannya, setiap byte memori utama hanya memiliki satu alamat saja. Sistem operasi bersama-sama dengan perangkat keras menciptakan dua jenis alamat yakni alamat nyata dan alamat maya. Program menggunakan alamat maya sedangkan pengendali sistem memori memerlukan alamat nyata.

Sistem operasi mengalokasikan memori untuk program dalam unit-unit berukuran tetap yang disebut halaman (page). Satu halaman pada umumnya berukuran 4 KB. Sistem operasi juga menyimpan tabel yang berisi pemetaan halaman maya ke halaman nyata. Setiap kali program mengakses alamat maya, sistem harus melihat tabel translasi alamat maya ke alamat nyata sehingga lokasi memori yang benar dapat diakses.

Sistem pemeriksaan tabel (table look-up) memerlukan waktu operasi yang cukup lama. Oleh karena itu, prosesor menggunakan cache khusus yang disebut sebagai TLB (translation look-aside buffer) untuk menyimpan translasi alamat terbaru. Jadi, hanya bila translasi halaman yang diperlukan tidak tersedia dalam TLB, sistem operasi akan menginterupsi program, memeriksa translasi halaman dalam tabel yang menetap dalam memori (memory resident), mengisikan hasil translasi ke dalam TLB dan mengembalikan kontrol kepada program.

Luput yang terjadi pada TLB memerlukan siklus detak yang lebih banyak daripada luput yang terjadi pada cache. Bila terjadi luput pada TLB maka seluruh alur-pipa (pipeline) harus dikosongkan, register-register harus diselamatkan, rutin pemeriksaan harus dieksekusi, dan register-register harus dipulihkan. Proses ini memerlukan belasan bahkan ratusan siklus detak.

Untuk memeriksa dan menyimpan data dalam cache, baik alamat nyata maupun alamat maya dapat dipakai. Pemilihan organisasi cache mempengaruhi berbagai aspek dalam organisasi sistem komputer dan unjuk-kerja aplikasi.



Cache Alamat Maya
Cache dengan alamat maya memiliki beberapa kelebihan. Pengendali cache tidak perlu menunggu selesainya proses translasi alamat sebelum mulai memeriksa alamat dalam cache sehingga pasokan data dapat lebih cepat diberikan.
Karena program juga menggunakan alamat maya, pelaksanaan program yang sama akan membentuk pola pemakaian cache yang sama pula.

Pada cache yang dipetakan ke alamat nyata, sistem operasi bisa saja mengalokasikan halaman nyata yang berbeda untuk pelaksanaan program yang sama.
Dengan demikian, tag dari cache untuk alamat-alamat instruksi bisa berbeda pada pelaksanaan program yang sama, bahkan meskipun dilakukan komputasi yang sama.
Unjuk-kerja bisa berbeda jauh meskipun program yang dijalankan sama, terutama bila alamat nyata tersebut dipetakan langsung.
Cache Alamat Nyata
Meski cache dengan alamat nyata unjuk-kerjanya bervariasi, cache ini memiliki dua kelebihan.
Pertama, jika cache eksternal dirancang untuk prosesor yang memiliki unit pengelola memori internal (on-chip memory management unit), alamat yang dikirimkan oleh prosesor telah merupakan alamat hasil translasi, dan dengan demikian cache dengan alamat nyata adalah satu-satunya pilihan.
Kedua, karena semua alamat adalah untuk ruang alamat-nyata tunggal, maka data dapat ditinggalkan dalam cache saat sistem operasi memindahkan kendali dari satu aplikasi ke aplikasi lain.

Hal ini tidak bisa dilakukan pada cache yang menggunakan ruang alamat-maya berbeda untuk tiap-tiap aplikasi.
Pada sistem cache dengan alamat-maya, data harus dihapus setiap kali terjadi pemindahan kendali. Bila tidak, aplikasi A misalnya, akan membaca isi alamat 0 aplikasi B, bukan alamat 0nya sendiri.
Karena alasan itulah, cache dengan alamat nyata memiliki unjuk kerja yang lebih baik dalam lingkungan multitasking di mana pemindahan kendali relatif sering terjadi.
Multiprogramming

Untuk sistem komputer yang berukuran besar (bukan small computers),
membutuhkan pengaturan memori, karena dalam multiprogramming akan
melibatkan banyak pemakai secara simultan sehingga di memori akan terdapat
lebih dari satu proses bersamaan. Oleh karena itu dibutuhkan sistem operasi yang
mampu mendukung dua kebutuhan tersebut, meskipun hal tersebut saling
bertentangan, yaitu :
a. Pemisahan ruang-ruang alamat.
b. Pemakaian bersama memori.
Manajer memori harus memaksakan isolasi ruang-ruang alamat tiap proses agar
mencegah proses aktif atau proses yang ingin berlaku jahat mengakses dan
merusak ruang alamat proses lain. Manajer memori di lingkungan multiprogramming
sekalipun melakukan dua hal, yaitu :
a. Proteksi memori dengan isolasi ruang-ruang alamat secara disjoint.
c. Pemakaian bersama memori.

Memungkinkan proses-proses bekerja sama mengakses daerah memori bersama.
Ketika konsep multiprogramming digunakan, pemakaian CPU dapat ditingkatkan.
Sebuah model untuk mengamati pemakaian CPU secara probabilistic :
CPU utilization = 1 - p n
Dengan :
* N menunjukkan banyaknya proses pada suatu saat, sehingga kemungkinan
bahwa semua n proses akan menunggu menggunakan I/O (masalah CPU
menganggur) adalah sebesar p n. Fungsi dari n disebut sebagai degree of
multiprogramming.
* P menunjukkan besarnya waktu yang digunakan sebuah proses
Contoh analisisnya :
Diketahui :
------------------------------------------
Job Arrival time CPU minutes needed
------------------------------------------
1 10:00 4
2 10:10 3
3 10:15 2
4 10:20 2
------------------------------------------
Bila semua job bersifat 80% I/O wait. Tentukan kapan waktu selesainya masingmasing
job !
Jawab :
----------------------------------------------
Process
----------------------------------------------
Modul Training TOT : Sistem Operasi
Halaman : 74
1 2 3 4
----------------------------------------------
CPU idle .80 .64 .51 .41
CPU busy .20 .36 .49 .59
CPU/process .20 .18 .16 .15
----------------------------------------------
0.2x10 0.18x5 0.16x5
| :: | :: | :: | | | | |
| 2.0 | .9 | .8 | .3 | | | |
1 +------------+-----------+----------+----+ | | | = 4
| | | | | | | |
| | .9 | .8 | .3 | .9 | .1 | |
2 + +-----------+----------+----+--------+-----+ | = 3
| | | | | | | |
| | | .8 | .3 | .9 | | |
3 + | +----------+----+--------+ | | = 2
| | | | | | | |
| | | | .3 | .9 | .1 | .7 |
4 + | | +----+--------+-----+-------+ = 2
| | | | | | | |
| | | | | | | |
+------------+-----------+----------+----+--------+-----+-------+--
0 10 15 20 22 27.6 28.2 31.7
<----><-------><----><------>
a b c d
Keterangan :
ax0.15=0.3 bx0.16=0.9 cx0.18=0.1 dx0.2=0.7
a=2 b=5.6 c=0.6 d=3.5
Monoprogramming.

Monoprogramming sederhana tanpa swapping merupakan manajemen memori
paling sederhana, sistem komputer hanya mengijinkan satu program/pemakai
berjalan pada satu waktu. Semua sumber daya sepenuhnya dkuasi proses yang
sedang berjalan.

Manajemen memori monoprogramming sederhana mempunyai ciri-ciri berikut :

a. Hanya terdapat satu proses pada satu saat, sehingga proses baru akan
menimpa proses lama yang sudah selesai eksekusi.
b. Hanya satu proses mengunakan semua memori.
c. Pemakai memusatkan program keseluruh memori dari disk atau tape.
d. Program mengambil kendali seluruh mesin.

Karena hanya terdapat satu proses dan menguasai seluruh sistem, maka
eksekusi memori dilakukan secara berurutan.

Teknik ini digunakan sampai sekitar 1960, ditinggalkan bahkan untuk komputer
pribadi karena tiap proses harus berisi device driver perangkat I/O yang
digunakan.
Gambar 6.3 menunjukkan tiga organisasi memori menjalankan satu proses
tunggal :
c. Gambar 6.3(a) menunjukkan seluruh kebutuhan (sistem operasi, device
driver dan proses driver dapat ditempatkan di sistem operasi atau di setiap
proses pemakai, bergantung perancang sistem operasi.
d. Gambar 6.3(b) menunjukkan sistem operasi ditempatkan di ROM, sedang
program pemakai di RAM.
e. Gambar 6.3(c) menunjukkan device driver di ROM. Device driver di ROM
biasa disebut ROM-BIOS (Read Only Memory - Basic Input Output Systems).