Minggu, 16 Mei 2010

Managing Memory

-Melakukan pengaturan prosesor sehubungan penjadwalan proses yang harus ddilakukannya
-untuk mempersiapkan proses multi-programming diperlukan pengaturan memori .
-Dalam sistem single-programming,memori utama dibagi menjadi dua bagian,yaitu:satu bagian untuk sistem operasi (monitor resident) dan bagian lainnya untuk program yang sedang berjalan.
-Dalam sistem multi -programming, bagian pengguna dari memori harus dibagi lagi untuk mengakomodasikan sejumlah proproses .
-Tugas pembagian dilakukan secara dinamis oleh sistem operasi yang dikenal dengan manajemen memormemori .
-Ada beberapa istilah dalam manajemen memori yang akan dijelaskan, yaitu:swapping, partitioning, paging, virtual memory

Swapping

-Kerja prosesor lebih cepat dari pada perangkat I/O maka akan terjadi antrian keluaran, yaitu proses yang memerlukan akses ke perangkat I/O.
-Pendekatan untuk masalah diatas adalah swapping.
-Kita memiliki antrian panjang permintaan proses, yang umumnya tersimpan dalam memori utamaumumnya tersimpan dalam memori utama.
-Apabila proses telah selesai, maka proses – proses tersebut akan dikeluarkan dari memori utamaakan dikeluarkan dari memori utama.
-Sekarang, situasi yang terjadi adalah tidak ada proses di dalam memori utama yang siap, daripada prosesor idle maka prosesor akan malakukan swap salah satu tersebut kembali ke disk di antrian menengah. Antrian ini merupakan antriandisk di antrian 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 darmenengah, atau memenuhi permintaan proses yang baru dari
antrian panjanantrian panjang.
-Setelah itu eksekusi akan dilanjutkan dengan memproses
proses yang baru tibaproses yang baru tiba.
-Swapping merupakan operasi I/O, karenanya dapat membuat keadaan menjadi buruk, namun karena I/O disk umumnyakeadaan menjadi buruk, namun karena I/O disk umumnya lebih cepat dari I/O lainnya maka swapping ini mamplebih cepat dari I/O lainnya maka swapping ini mampu meningkatkan kinerja prosesomeningkatkan kinerja prosesor


Partitioning


-Sistem operasi akan menempati bagian memori yang tetap.
-Sisa memori dibagi – bagi untuk keperluan sejumlah proses.
-Partitioning adalah teknik membagi memori menjadi beberapa bagian sesuai kebutuhan.
-Terdapat dua macam partisi, yaitu partisi tetap (fixed size partitioning) dan partisi variabel (variable size partitioning)
-Dalam partisi tetap, proses akan disimpan dalam partisi memori yang dapat menampungnya
-Partisi biasanya dibuat tidak sama kapasitasnya.
-Pendekatan ini kurang efisien karena tidak bisa diubah ukuran partisinya dan biasa terjadi sisa memori dari alokasi partisinya dan biasa terjadi lubang (hole) memori
-Pendekatan yang lebih efisien adalah partisi variabel, dimana ukuran partisi disesuaikan kebutuhan memorinya.
-Suatu blok memori akan diisi proses lain apabila tidak digunakan lagi oleh suatu proses.
-Akibat dari proses ini adalah terjadinya fragmentasi dari program atau proses yang dijalankan sehingga utilitas memorprogram atau proses yang dijalankan sehingga utilitas memori akan menurun.
-Teknik untuk mengatasi hal ini adalah compaction. Dari waktu ke waktu, sistem operasi memindahkan proses di dalam memori untuk menempatkan seluruh memori yang bebas secara bersama – sama pada sebuah blok.
-Dengan adanya pemindahan blok – blok proses maka akan terjadi perubahan alamat memori.
-Namun perlu diketahui bahwa terdapat dua macam alamat dalam hal ini, yaitu alamat fisik dan alamat logik.Alamat fisik adalah alamat sebenarnya pada memori, sedangkan alamat logik adalah alamat yang berhubungan dengan akses instruksi prosesor.

Paging

-Pada saat suatu proses sedang berjalan, sebuah register menyimpan alamat awal page table proses tersebut .
-Nomer halaman alamat virtual digunakan untuk mengindeks tabel tersebut dan meng-look up nomer frame -nya. Ha. Hal ini dikombinasikan dengan bagian offset dari alamat virtual untuk menghasilkan alamat real yang diinginkan.
-Tabel ini bisa sangat besar , sehingga sebagian besar teknik ini menyimpan tabel pada memori virtual,bukan pada real memori .
-Pada saat suatu proses sedang berjalan, sedikitnya bagian page table-nya harus berada di memori utama,termasuk page table entry yang sedang dieksekusi.
-Sebagian prosesor menggunakan teknik dua tingkat untuk mengorganisasikan page table yangpage table yang besar .
-Dalam sistem ini, terdapat page directory sama dengan X, dan apabila panjangnya Y, maka sebuah proses dapat berisi sampai dengan X x Y
-Umumnya panjang maksumum page table dibatasi sampai sama dengan satu page'
-Struktur inverted page table manerapkan teknik ini dan telah digunakan pada komputer IBM AS/400 dan pada semua produk RISC, termasuk PowerPC.
-Terdapat hash table yang berisi sebuah pointer ke page table yang diinversikan, yang berisi page table entrydiinversikan, yang berisi page table entry.
-Dengan struktur seperti ini maka hash table hanya akan terdapat sebuah entry dan page table yang diinversikan bagi setiap real memory page, bukannya satu per virtual page.


Virtual Memory


-Untuk memahami vertual memori perlu diawali dari pemahaman mendalmendalam tentang paging.
-demand paging, yaitu hanya page – page dari proses yang dibutuhkan saat itu saja yang dimuatkan ke memoriutama. Ha. Hal ini merupakan solusi bahwamemori utama biasanya berukuran kecil dan mahal.
-Apabila ada sebuah program besar maka akan tidak efektif apabila semua page dari program tersebut diletakkan dalam memori utama .
-Hanya page yang akan digunakan saja yang dimuatkan dalam memori utama membuat kinerja memori lebih baik.
-Apabila page yang akan dieksekusi tidak didapatkan di memori utama,maka sinyal page fault diaktifkan.
-Sinyal ini menyatakan bahwa sistem operasi harusmengambil page yang dimaksud .
-Karena proses hanya mengeksekusi di dalam memori utama saja, maka memori tersebut disebut real memory.
-Namun pemrogram atau pengguna dapat menggunakan memori yang lebih besar,yang dikenal sebagai virtual memory.
-Memori virtual merupakan solusi efektif bagi pengguna atau pemrogram sehubungan masalah keterbatasan memori utama.