rizky putri ananda 141410124 tugas manajemen sistem file.docx

16
VIRTUAL MEMORI Selama bertahun-tahun, pelaksanaan berbagai strategi managemen memori yang ada menuntut keseluruhan bagian proses berada di memori sebelum proses dapat mulai dieksekusi. Dengan kata lain, semua bagian proses harus memiliki alokasi sendiri pada memori fisiknya. Pada nyatanya tidak semua bagian dari program tersebut akan diproses, misalnya: 1. Terdapat pernyataan-pernyataan atau pilihan yang hanya akan dieksekusi jika kondisi tertentu dipenuhi. Apabila kondisi tersebut tidak dipenuhi, maka pilihan tersebut tak akan pernah dieksekusi/ diproses. Contoh dari pilihan itu adalah: pesan- pesan error yang hanya akan muncul bila terjadi kesalahan dalam eksekusi program. 2. Terdapat fungsi-fungsi yang jarang digunakan, bahkan sampai lebih dari 100x pemakaian. 3. Terdapat pealokasian memori lebih besar dari yang sebenarnya dibutuhkan. Contoh pada: array, list, dan tabel. Hal-hal di atas telah menurunkan optimalitasi utilitas dari ruang memori fisik. Pada memori berkapasitas besar, hal ini mungkin tidak menjadi masalah. Akan tetapi, bagaimana jika memori yang disediakan terbatas? Salah satu cara untuk mengatasinya adalah dengan overlay dan dynamic loading . Namun hal ini menimbulkan masalah baru karena implementasinya yang rumit dan penulisan program yang akan memakan tempat di memori. Tujuan semula untuk menghemat memori bisa jadi malah tidak tercapai apabila program untuk overlay dan dynamic loading . malah lebih besar daripada program yang sebenarnya ingin dieksekusi. Maka sebagai solusi untuk masalah-masalah ini digunakanlah konsep memori virtual.

Upload: rizky-ananda

Post on 07-Nov-2015

220 views

Category:

Documents


0 download

TRANSCRIPT

VIRTUAL MEMORISelama bertahun-tahun, pelaksanaan berbagai strategi managemen memori yang ada menuntut keseluruhan bagian proses berada di memori sebelum proses dapat mulai dieksekusi. Dengan kata lain, semua bagian proses harus memiliki alokasi sendiri pada memori fisiknya.Pada nyatanya tidak semua bagian dari program tersebut akan diproses, misalnya:1. Terdapat pernyataan-pernyataan atau pilihan yang hanya akan dieksekusi jika kondisi tertentu dipenuhi. Apabila kondisi tersebut tidak dipenuhi, maka pilihan tersebut tak akan pernah dieksekusi/ diproses. Contoh dari pilihan itu adalah: pesan-pesan error yang hanya akan muncul bila terjadi kesalahan dalam eksekusi program.2. Terdapat fungsi-fungsi yang jarang digunakan, bahkan sampai lebih dari 100x pemakaian.3. Terdapat pealokasian memori lebih besar dari yang sebenarnya dibutuhkan. Contoh pada:array,list, dan tabel.Hal-hal di atas telah menurunkan optimalitasi utilitas dari ruang memori fisik. Pada memori berkapasitas besar, hal ini mungkin tidak menjadi masalah. Akan tetapi, bagaimana jika memori yang disediakan terbatas?Salah satu cara untuk mengatasinya adalah denganoverlaydandynamic loading. Namun hal ini menimbulkan masalah baru karena implementasinya yang rumit dan penulisan program yang akan memakan tempat di memori. Tujuan semula untuk menghemat memori bisa jadi malah tidak tercapai apabila program untukoverlaydandynamic loading. malah lebih besar daripada program yang sebenarnya ingin dieksekusi.Maka sebagai solusi untuk masalah-masalah ini digunakanlah konsep memori virtual.PengertianMemori virtual merupakan suatu teknik yang memisahkan antara memori logis dan memori fisiknya. Teknik ini mengizinkan program untuk dieksekusi tanpa seluruh bagian program perlu ikut masuk ke dalam memori.Berbeda dengan keterbatasan yang dimiliki oleh memori fisik, memori virtual dapat menampung program dalam skala besar, melebihi daya tampung dari memori utama yang tersedia.Prinsip dari memori virtual yang patut diingat adalah bahwa: "Kecepatan maksimum eksekusi proses di memori virtual dapat sama, tetapi tidak pernah melampaui kecepatan eksekusi proses yang sama di sistem tanpa menggunakan memori virtual."Konsep memori virtual pertama kali dikemukakan Fotheringham pada tahun 1961 pada sistem komputer Atlas di Universitas Manchester, Inggris (Hariyanto, Bambang : 2001).KeuntunganSebagaimana dikatakan di atas bahwa hanya sebagian dari program yang diletakkan di memori. Hal ini berakibat pada: Berkurangnya I/O yang dibutuhkan (lalu lintas I/O menjadi rendah). Misal, untuk program butuh membaca dari disk dan memasukkan dalam memory setiap kali diakses. Berkurangnya memori yang dibutuhkan (spacemenjadi lebih leluasa). Contoh, untuk program 10 MB tidak seluruh bagian dimasukkan dalam memori. Pesan-pesanerrorhanya dimasukkan jika terjadierror. Meningkatnya respon, sebagai konsekuensi dari menurunnya beban I/O dan memori. Bertambahnya jumlahuseryang dapat dilayani. Ruang memori yang masih tersedia luas memungkinkan komputer untuk menerima lebih banyak permintaan dariuser.1. Konsep Dasar MemoriKonsep Dasar

Memory sebagai tempat penyimpanan instruksi / data dari program. Memory adalah pusat kegiatan pada sebuah komputer, karena setiap proses yang akan dijalankan, harus melalui memory terlebih dahulu. Untuk dapat dieksekusi, program harus dibawa ke memory dan menjadi suatu proses. Manajemen Memory : Melacak pemakaian memory (siapa dan berapa besar) Memilih program mana yang akan di-load memory. Alokasi dan dealokasi memory fisik untuk program / proses-proses dalam menggunakan address space Tugas Sistem Operasi : Mengatur peletakan banyak proses pada suatu memory, memory harus dapat digunakan dengan baik -> dapat memuat banyak proses dalam suatu waktu.Memori adalah pusat dari operasi pada sistem komputer modern, berfungsi sebagai tempat penyimpanan informasi yang harus diatur dan dijaga sebaik-baiknya. Memori adalah array besar dari word atau byte, yang disebut alamat. CPU mengambil instruksi dari memory berdasarkan nilai dari program counter.Sedangkan manajemen memori adalah suatu kegiatan untuk mengelola memori komputer. Proses ini menyediakan cara mengalokasikan memori untuk proses atas permintaan mereka, membebaskan untuk digunakan kembali ketika tidak lagi diperlukan serta menjaga alokasi ruang memori bagi proses. Pengelolaan memori utama sangat penting untuk sistem komputer, penting untuk memproses dan fasilitas masukan/keluaran secara efisien, sehingga memori dapat menampung sebanyak mungkin proses dan sebagai upaya agar pemogram atau proses tidak dibatasi kapasitas memori fisik di sistem komputer (Eko, 2009).Memory manager merupakan salah satu bagian sistem operasi yang mempengaruhi dalam menentukan proses mana yang diletakkan pada antrian.

1. Konsep Binding Sebelum eksekusi, program berada di dalam disk, dan saat dieksekusi, program tersebut perlu berada pada suatu lokasi dalam memory fisik. Address Binding adalah cara instruksi dan data (yang berada di disk sebagai file executable) dipetakan ke alamat memory. Alamat (address) pada source program umumnya merupakan alamat simbolik. Sebuah compiler biasanya membutuhkan "mengikat" (bind) alamat simbolik ke alamat relokasi. Address Binding dapat berlangsung dalam 3 tahap yang berbeda, yaitu : kompilasi, load dan eksekusi dari suatu program.

Bagaimana Sistem Operasi menempatkan program di memory : Kompilasi dan Linking menerjemahkan semua simbol data berdasarkan alamat acuan absolut. Proses relokasi (proses mapping program -> lokasi memory) Jika program berada di memory, maka semua alamat logic dalam program harus dikonversi ke alamat fisik. Cara relokasi :Statis :relokasi alamat dilakukan sebelum program dijalankan.Dinamis :relokasi alamat dilakukan pada saat referensi setiap instruksi atau data.

2. Dynamic Loading Dengan dynamic loading, suatu routine tidak diload sampai dipanggil. Semua routine disimpan pada disk sebagai formatrelocatable load.Mekanisme dasar : Program utama diload dahulu dan dieksekusi. Bila suatu routine perlu memanggil routine yang lain, routine yang dipanggil lebih dahulu diperiksa apakah routine yang dipanggil sudah diload. Jika tidak,relocatable linking loaderdipanggil untuk meload routine yang diminta ke memory dan mengupdate tabel lamat dari program yang mencerminkan perubahan ini.

3. Dynamic Linking Linking ditunda hingga waktu eksekusi. Program-program user tidak perlu menduplikasi system library. System library dipakai bersama. Mengurangi pemakaian space : satu rutin library di memory digunakan secara bersama oleh sekumpulan proses

Contoh : DLL Win32 Mekanisme menggunakan stub (potongan kecil yang mengindikasikan bagaimana meload library jika routine tidak tersedia saat itu). Saat stub dieksekusi, ia akan memeriksa apakah rutin yang bersangkutan sudah berada di dalam memory (diakses oleh proses lain yang run), kalau belum ada maka rutin tersebut akan diload. Stub menempatkan dirinya pada alamat rutin dan mengeksekusi rutin tersebut. Dynamic linking membutuhkan beberapa dukungan dari OS, misalnya : Bila proses-proses di memory utama saling diproteksi, maka SO melakukan pengecekan apakah rutin yang diminta berada di luar alamat. Beberapa proses diijinkan untuk mengakses memory pada alamat yang sama. File dynamic linking berekstensi .dll, .sys, .drv

4. Overlay Hanya instruksi dan data yang diperlukan pada suatu waktu yang disimpan di memory. Overlay diperlukan jika ukuran proses lebih besar dari memory yang dialokasikan untuknya. Overlay tidak membutuhkan dukungan khusus dari SO. User dapat mengimplementasikan secara lengkap menggunakan struktur file yang sederhana. OS memberitahu hanya jika terdapat I/O yang melebihi biasanya.

2. Strategi Manajemen MemoriStrategi yang dikenal untuk mengatasi hal tersebut adalah memori maya. Memori maya menyebabkan sistem seolah-olah memiliki banyak memori dibandingkan dengan keadaan memori fisik yang sebenarnya. Memori maya tidak saja memberikan peningkatan komputasi, akan tetapi memori maya juga memiliki bberapa keuntungan seperti : Large Address SpaceMembuat sistem operasi seakan-akan memiliki jumlah memori melebihi kapasitas memori fisik yang ada. Dalam hal ini memori maya memiliki ukuran yang lebih besar daripada ukuran memori fisik. Proteksi.Setiap proses di dalam sistem memiliki virtual address space. Virtual address space tiap proses berbeda dengan proses yang lainnya lagi, sehingga apapun yang terjadi pada sebuah proses tidak akan berpengaruh secara langsung pada proses lainnya Memory MappingMemory mapping digunakan untuk melakukan pemetaan image dan file-file data ke dalam alamat proses. Pada pemetaan memori, isi dari file akan di link secara langsung ke dalam virtual address space dari proses. Fair Physical Memory AllocationDigunakan oleh Manajemen Memori untuk membagi penggunaan memori fisik secara adil ke setiap proses yang berjalan pada sistem. Shared Virtual Memory.Meskipun tiap proses menggunakan address space yang berbeda dari memori maya, ada kalanya sebuah proses dihadapkan untuk saling berbagi penggunaan memori.

3. Ruang Alamat Logika dan FisikAlamat Logika adalah alamat yg dibentuk di CPU, disebut juga alamat virtual. Alamat fisik adalah alamat yang terlihat oleh memori. Untuk mengubah dari alamat logika ke alamat fisik diperlukan suatu perangkat keras yang bernama MMU (Memory Management Unit). Pengubahan dari alamat logika ke alamat fisik adalah pusat dari manajemen memori. 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 (Ama, 2003).

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).Memory Manajement Unit (MMU) adalah perangkat keras yang memetakan alamat virtual ke alamat fisik. Pada skema MMU, nilai register relokasi ditambahkan ke setiap alamat yang dibangkitkan oleh proses user pada waktu dikirim ke memori.

Register basis disebut register relokasi. Nilai dari register relokasi ditambahkan ke setiap 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.

User program tidak pernah melihat alamat fisik secara real. Program dapat membuat sebuah penunjuk ke lokasi 346, mengirimkan ke memory, memanipulasinya, membandingkan dengan alamat lain, semua menggunakan alamat 346. Hanya ketika digunakan sebagai alamat memory akan direlokasi secara relatif ke register basis.

4. Swaipping Meskipun proses harus berada di memory untuk dieksekusi, tapi proses dapat diswap(ditukar) sementara keluar memory kebacking storedan kemudian membawanya ke memory untuk eksekusi lanjutan. Penukaran dapat terjadi pada lingkungan dengan multiprogramming dengan penjadwalan CPU Round Robin atau Priority. Bila waktu kuantum habis atau proses yang datang mempunyai prioritas lebih tinggi, makamemory managerakan mulaiswap outproses yang telah selesai atau proses yang prioritasnya lebih rendah danswap inproses lainnya ke memory. Skema Swapping :

Pada umumnya sebuah proses yang diswap outakan menukar kembali ke ruang memory yang sama dengan sebelumnya. Penukaran membutuhkan sebuahbacking storage. BilaCPU Schedulermemutuskan untuk mengeksekusi proses, OS memanggil dispatcher. Dispatcher memeriksa untuk melihat apakah proses selanjutnya padaready queueada di memory. Jika tidak dan tidak terdapat cukup memory bebas, makadispatcher swap outsebuah proses yang ada di memory danswap inproses tersebut.

5. Pencatatan Pemakaian Memori1. Pencatatan memakai peta bit (Bit Map) Memori dibagi menjadi unit-unit alokasi, berkorespondensi dengan tiap unit alokasi, yaitu 1 bit pada bit map.nilai 0 pada peta bit berarti unit itu masih bebas nilai 1 berarti unit sudah digunakanMasalah pada peta bit adalah penetapan mengenai ukuran unit alokasimemori, yaitu : unit lokasi memori berukuran kecil berarti membesarkan ukuran peta bit unit alokasi memori n berukuran besar berarti peta bit kecil tapi memori banyak disiapkan pada unit terakhir jika ukuran proses bukan kelipatan unit alokasi

Keunggulan : dealokasi dapat dilakukan dengan mudah, hanya tinggalmengeset bit yang berkorespondensi dengan unit yang telah tidak digunakan dengan 0.Kelemahan : dilakukan penghitungan blok lubang memori saat unit memori bebas memerlukan ukuran bit map besar untuk memori yang besar.

2. Pencatatan memakai linked listSistem operasi mengelola senarai berkait (linked list) untuk segmen-segmen memori yang telah dialokasikan dan bebas. Segmen memori menyatakan memori untuk proses atau memori yang bebas (lubang). Senarai segmen diurutkan sesuai alamat blok. Memori yang digunakan pada metode ini lebh kecil dibandingkan dengan peta bit.

Keunggulan :tidak harus dilakukan perhitungan blok lubang memori karena sudah tercatat di nodememori yang diperlukan relatif lebih kecilKelemahan :

Dealokasi sulit dilakukan karena terjadi berbagai operasi penggabungan node di senarai

6. Monoprogramming monoprogramming multiprogramming dengan pemartisian statis Monoprogramming Monoprogramming Monoprogramming Merupakan manajemen memori paling sederhana. Sistem komputerhanya mengijinkan 1 program/pemakai berjalan pada 1 waktu. Semua sumber daya sepenuhnya dikuasai proses yang sedangberjalan. Ciri-ciri manajemen memori monoprogramming : hanya 1 proses pada 1 saat hanya 1 proses menggunakan semua memori pemakai memuatkan program ke seluruh memori dari disk/ tape program mengambil kendali seluruh mesin Karena hanya terdapat 1 proses dan menguasai seluruh sistemmaka alokasi memori dilakukan secara berurutan.Monoprogramming Monoprogramming MonoprogrammingMultiprogramming dengan Multiprogramming dengan Multiprogramming denganPemartisian Statis Pemartisian Statis Pemartisian Statis.

7. Pengalolasian Berurutan (Contigous Allocation) Alokasi Memori Berurutan (Contiguous Allocation)Pada alokasi memori berurutan, setiap proses menempati satu blok tunggal lokasi memori yang berurutan. Kelebihan : sederhana, tidak ada rongga memory bersebaran, proses berurutan dapat dieksekusi secara cepat. Kekurangan : memori boros, tidak dapat disisip apabila tidak ada satu blok memori yang mencukupi.Contiguous Allocation Memori harus mengakomodasi kebutuhan SO dan proses user Memori utama biasanya terbagi dalam dua bagian: Resident operating system, biasanya tersimpan di alamat memori rendah. User proces menggunakan memori beralamat tinggi/besar.Terbagi menjadi:1. Partisi statis2. Partisi dinamis3. Sistem buddy

1. Pengalokasian berurut dengan partisi statisCiri-ciri Memori dibagi menjadi partisi-partisi dengan ukuran yang tetap. Satu proses hanya memakai satu partisi. Jika proses sudah selesai, partisi tersebut dapat digunakan proses yang lain. Dibagi menjadi 2 bagian: Berukuran sama Berukuran tidak sama

Pengalokasian berurut dengan partisi statis dengan ukuran samaBanyak kelemahan, antara lain: Proses yang ukurannya lebih besar dari ukuran partisi tidak dapat dialokasikan. Sebaliknya bila ukuran proses lebih kecil daripada ukuran partisi, maka akan terjadi pemborosan ruang memori (Fragmentasi internal).Pengalokasian berurut dengan partisi statis dengan ukuran tidak sama Untuk mengatasi kelemahan dari Pengalokasian berurut dengan partisi statis dengan ukuran sama, yaitu proses ukuran kecil diletakkan ke partisi yang kecil dan sebaliknya. Ada 2 jenis strategi:1. Satu antrian untuk setiap partisi 2. Satu antrian untuk seluruh partisi

2. Pengalokasian berurut dengan partisi dinamisCara kerja: Pengalokasian dilakukan dengan mencari hole suatu ruang memori utama yang kosong, yang cukup besar untuk menampung image proses. Hole sisa kadang kala terlalu kecil untuk dapat dialokasikan ke proses lainnya sehingga tidak bisa digunakan lagi fragmentasi eksternal.

Salah satu cara untuk mengatasi masalah ini adalah melakukan memory compaction. Yaitu: menggeser image proses-proses yang ada di memori sehingga hole terkumpul di satu tempat saja. Kelemahan: proses alokasi dan dealokasi menjadi lebih rumit Perlu pengelolaan informasi area memori yang masih kosong. Ada 2 metode pengelolaan memori kosong: Peta bit (bitmap) Linked list Peta bit (bitmap) Menggunakan area memori khusus untuk mencatat seluruh area kosong pada memori utama. Memakai nilai 0 dan 1 Nilai 0 alamat memori tersebut masih kosong Nilai 1 alamat memori tersebut sudah terisi Linked list Informasi mengenai hole kosong berikutnya dicatat pada hole kosong sebelumnya. Tidak diperlukan area memori khusus. Karena seluruh informasi tercatat di area memori kosong itu sendiri sehingga menghemat kapasitas memori utama. Diperlukan algoritma untuk menentukan hole mana yang akan dialokasikan ke suatu proses. Algoritma Best-fit Algoritma First-fit Algoritma Next-fit Algoritma Worst-fit3. Pengalokasian berurut dengan sistem buddySistem buddyadalah algoritma pengelolaan memori yang memanfaatkan kelebihan penggunaan bilangan biner dalam pengalamatan memori.Karakteristik bilangan biner digunakan untuk mempercepat penggabungan lubang-lubang berdekatan ketika proses berakhir dikeluarkan. Mekanisme pengelolaan sistem buddy tersebut memiliki keunggulan dan kelemahan.

Alokasi memori pada sistem buddy:1. Menentukan ukuran partisi Ditentukan ukuran partisi untuk menampung image proses yaitu ukuran bilangan pangkat 2 terkecil Misal : ukuran image proses = 12kbmaka ukuran partisi yang bisa digunakan adalah 16kb.

2. Pengalokasian Selanjutnya adalah mencari hole yang ukurannya sebesar perhitungan. Jika tidak ada maka dicarikan hole yang berukuran sedikit lebih besar. Kemudian dipecah secara bertahap sesuai dengan aturan bilangan pangkat 2. Misal : ukuran image proses = 12kbdan hole yang paling kecil adalah 64kb. maka dipecah menjadi 2 partisi 32kb, selanjutnya dipecah lagi menjadi 2 partisi 16kb. dan partisi 16kb pertama yang bisa dipakai untuk image proses 12kb.