main memory

Upload: frans-karunia-purba

Post on 07-Jul-2015

134 views

Category:

Documents


0 download

TRANSCRIPT

Nama NIM Kelas Prodi

: : : :

Frans Karunia Purba 092406064 Kom A 09 DIII Teknik Informatika

Main Memory

Latar belakang Memori adalah pusat kegiatan pada sebuah komputer, karena setiap proses yang akan dijalankan, harus melalui memori terlebih dahulu. Jika proses tersebut tidak terdapat di dalam memori, maka proses tersebut harus dipindah ke memori, sehingga CPU dapat mengoperasikannya. Sistem Operasi bertugas untuk mengatur peletakan banyak proses pada suatu memori. Sistem operasi dieksekusi di dalam kernel mode, sehingga diberikan akses baik ke sistem operasi dan user memori. Oleh karena itu, sistem operasi diberikan akses untuk me-load user program ke user memori, untuk membuang paksa program jika error, untuk mengakses dan memodifikasi parameter dari sistem call, dan sebagainya. Memori harus digunakan dengan baik, sehingga dapat memuat banyak proses dalam suatu waktu. Main memory dan registers satu-satunya storage CPU yang dapat diakses secara langsung. Register mengakses dalam satu CPU clock. Main memory lebih lama dari Register. Cache berada diantara main memory dan CPU registers. Protection of memory diperlukan untuk menjamin operasi-operasinya sesuai dan tepat Pemberian alamat (address binding) Sebelum masuk ke memori, suatu proses harus menunggu. Hal ini disebut Input Queue. Prosedur yang normal adalah, memilih satu proses dari input queue, dan me-load proses tersebut ke dalam memori. Selagi proses di eksekusi, proses tersebut mengakses instruksi-instruksi dan data dari memori. Penjilidan alamat (Address binding) dapat terjadi pada 3 saat, yaitu : Compile time: pada waktu di compile, mengunakan absolute code Load time: menggunakan relocatable pada saat meng-compilenya Execution time: binding akan ditunda sampai run time, jika proses dapat dipindahkan selama eksekusi ini dari satu segment memori ke yang lainnya. Dibutuhkan dukungan hardware pada saat operasinya.

Logical vs Physical Address Space Alamat Logika adalah alamat yang di bentuk 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. Sebuah alamat yang di generated oleh CPU umumnya mengacu ke sebuah logical address. Sedangkan yang dimuat ke dalam register memory-address dari memori, umumnya mengacu ke sebuah physical memory. Logical dan physical addresses sama pada compile-time, dan load-time address-binding schema. Logical (virtual) dan physical addresses berbeda pada execution-time, dan address-binding schema.

User program tidak pernah melihat real physical address. Program dapat membuat pointer ke lokasi 346, menyimpannya di dalam memory, memanipulasinya, dan membandingkan dengan alamat yang lain. Dua tipe dari address, logical address (dalam jarak 0 hingga max) dan physical address (dalam jarak R+0 sampai R+max untuk sebuah dasar harga R). Konsep dari logical address space adalah mengikat untuk bagian yang terpisah, sedangkan physical address space adalah pusat untuk memanajemen memori yang tepat. Memory-Management Unit (MMU) Hardware yang memetakan virtual ke physical address. Pada skema MMU, nilai dalam relocation register ditambahkan ke setiap address yang digenerated oleh user pada waktu dikirimkan ke memory. The user program deals with logical addresses; tidak akan pernah melihat real physical addresses. Pemanggilan Dinamis (Dynamic Loading) Memanggil routine diperlukan untuk menjalankan suatu proses. Routine yang tidak diperlukan tidak akan dipanggil. Tidak memerlukan bantuan sistem operasi. Untuk memperoleh pemanfaatan memory-space yang lebih baik, kita dapat menggunakan dynamic loading. Dengan dynamic loading, sebuah routine tidak akan di-load sampai routine dipanggil. Keuntungan dari dynamic loading adalah routine yang tidak digunakan tidak akan pernah di-load. Dynamic Linking dan Shared Libraries Menghubungkan semua routine yang ada di kumpulan data. Tidak membuang-buang tempat di disk dan memori. Kumpulan data yang ada dapat digunakan bersama-sama. Membutuhkan bantuan sistem operasi. Tidak seperti dynamic loading, dynamic linking secara umum membutuhkan bantuan dari sistem operasi. Jika proses di dalam memori dilindungi dari yang lainnya, kemudian hanya sistem operasi yang dapat melihat apakah routine yang diutuhkan di dalam proses yang lainya yang dapat memperbolehkan multiple process untuk mengakses memory address yang sama. Static Linking Menghubungkan seluruh routine yang ada ke dalam suatu ruang alamat. Setiap program memiliki salinan dari seluruh kumpulan data. Library yang dibutuhkan langsung dimasukan ke dalam program, jadi program akan besar ukurannya. Overlays

Untuk memasukkan suatu proses yang membutuhkan memori lebih besar dari yang tersedia. Data dan instruksi yang diperlukan dimasukkan langsung ke memori. Routine-nya dimasukkan ke memori secara bergantian. Memerlukan algoritma tambahan untuk melakukan overlays. Tidak memerlukan bantuan dari sistem operasi. Sangat sulit untuk di lakukan. Dapat dilakukan di komputer mikro. Contoh overlays

Swapping Suatu proses dapat di-swap secara sementara keluar dari memori, dan kemudian dikembalikan lagi ke memori untuk melanjutkan eksekusi. Backing store, disk yang cepat dan lebar cukup untuk mengakomodasi salinan dari semua image memory, harus disediakan akses langsung ke memory image tersebut. Roll out, roll in, digunakan untuk penjadwalan berdasarkan prioritas, proses dengan prioritas yang rendah di-swap keluar memory agar proses dengan prioritas yang tinggi dapat dijalankan. Salah satu tanggung jawab dari sistem operasi adalah mengontrol akses ke sumberdaya sistem. Salah satunya adalah memori. Normalnya, sebuah proses yang di-swap keluar akan di-swap kembali ke dalam memory space yang sama. Jika waktu eksekusi sedang digunakan, proses dapat di-swap ke dalam sebuah memory space yang berbeda. Swapping membutuhkan sebuah backup penyimpanan. Dan harus menyediakan akses langsung ke image memory.

Contiguous Memory Allocation Contiguous Memory Allocation : alamat memori diberikan kepada proses secara berurutan dari kecil ke besar. Keuntungan dan kerugian contiguous dibantingkan non-contiguous: + Sederhana, cepat, mendukung proteksi memori - Jika tidak semua proses dialokasikan di waktu yang sama,akan menjadi sangat tidak efektif dan mempercepat habisnya memori Ada 2 tipe CMA : Partisi tunggal Partisi banyak

Proses yang akan dialokasikan dimasukkan kedalam antrian dan algoritma penjadualan digunakan utnuk menentukan proses mana yang akan dialokasikan berikutnya. Di dalam contiguous memory allocation, setiap proses diisi di dalam single contiguous section of memory. Multiple-partition allocation Hole: block dari memori yang tersedia Sistem operasi me-maintain informasi tentang : a. Allocated partitions b. Free partitions (hole)

Algoritma swapping memory dengan partisi dinamis Algoritma yang digunakan antara lain :

First fit : mengalokasikan hole pertama yang besarnya mencukupi. Pencarian dimulai dari awal. Best fit : mengalokasikan hole terkecil yang besarnya mencukupi . Next fit : mengalokasikan hole pertama yang besarnya mencukupi. Pencarian dimulai dari akhir pencarian sebelumnya. Worst fit: mengalokasikan hole terbesar yang tersedia. Contoh

Fragmentasi Fragmentasi adalah munculnya hole-hole yang tidak cukup besar untuk menampung permintaan dari proses. Apabila terdapat dalam bentuk banyak hole yang berukuran kecil, disebut framentasi eksternal, sedangkan apabila terdapat di dalam blok memori yang sudah teralokasi, disebut fragmentasi internal. Mengatasi fragmentasi ekstern: compactation, yaitu mengatur kembali isi memori agar memori yang kosong di letakkan bersama di suatu bagian yang besar. Solusi lain untuk fragmentasi ekstern adalah paging dan segmentasi. Partisi tetap berukuran berbeda lebih baik dalam meminimalisasi fragmentasi intern daripada partisi tetap berukuran sama. Proteksi memori Proteksi memori dapat berarti melindungi sistem operasi dari proses yang sedang dijalankan oleh pengguna komputer, atau melindungi suatu proses dari proses lainnya. Swapping dan compaction dapat menyebabkan suatu proses menempati lokasi memori yang berbeda selama proses tersebut dijalankan. Salah satu penyelesaiannya adalah dengan relokasi.

Paging Paging merupakan suatu metode yang memungkinkan suatu alamat memori fisik yang tersedia dapat tidak berurutan. Kebanyakan skema dari memory-management digunakan sebelum pengenalan dari paging suffered dari masalah ini. Masalah muncul karena, ketika beberapa kode memfragmentasi, atau data pada main memory dibutuhkan di-swap keluar.

Secara tradisional, dukungan untuk paging sudah ditangani oleh hardware. Meskipun, desain akhir-akhir ini, telah mengimplementasikan paging secara tertutup dengan mengintegrasikan hardware dan sistem operasi, khususnya pada prosesor 64-bit. Konsep paging Memori virtual dibagi menjadi blok-blok yang ukurannya tetap dinamakan page (ukurannya adalah pangkat 2, di antara 512 bytes dan bytes, tergantung arsitektur). Memori fisik dibagi juga menjadi blok-blok ukurannya tetap yang dinamakan frame. Lalu kita membuat suatu page yang akan menerjemahkan memori virtual menjadi memori fisik. yang 8192 yang table

Pages Alamat yang dihasilkan oleh CPU(memori logis) akan dibagi menjadi 2 yaitu nomor page (p)dan page offset(d): Nomor page akan menjadi indeks dari page table yang mengandung alamat dasar dari setiap alamat di memori fisik. Page offset akan digabung dengan alamat dasar untuk mendefinisikan alamat fisik yang akan dikirim ke unit memori.

Frames Pada alamat memori fisik akan dibagi menjadi nomor frame (f) yang nantinya akan dicocokkan pada page table.

Penjelasan konsep Setiap alamat yang dihasilkan oleh CPU akan dicocokan nomor page-nya pada page table lalu akan dicari frame mana yang sesuai dengan nomor page tersebut. Kerugian dan keuntungan paging Jika kita membuat ukuran dari masing-masing pages menjadi besar : + akses memori akan relatif lebih cepat. - kemungkinan terjadinya fragmentasi internal yang sangat besar

Jika kita membuat ukuran dari masing-masing pages menjadi kecil : + akses memori akan relatif lebih lambat. - kemungkinan terjadinya fragmentasi internal akan menjadi lebih kecil.

Struktur paging Dibagi menjadi beberapa bagian :

Struktur MMU

Perangkat keras pemberian page

Tabel page

Skema tabel page dua tingkat

Paging secara multilevel

Struktur MMU

Tabel page secara inverted

Berbagi page

Perangkat Keras Paging Dikenal dengan MMU. Jika CPU ingin mengkases memori, CPU mengirim alamat memorinya ke MMU yang akan menerjemahkannya ke alamat lain sebelum mengirim kembali ke unit memori. Alamat yang dihasilkan oleh CPU disebut alamat logis. Alamat yang didapat setelah melalui MMU disebut alamat fisis.

Page Table

Sebuah rangkain array dari masukkan-masukkan (entries) yang mempunyai indeks berupa nomor page (p).

Setiap masukan terdiri dari flags dan nomor frame.

Alamat fisik dibentuk dengan dengan offset.

menggabungkan nomor frame

Page Table Dua Tingkat

Paging Secara Multilevel

Inverted Page Table Satu masukan untuk setiap page dari memori

Masukan terdiri dari page di alamat logis yang disimpan di lokasi memori nyata, dengan informasi tentang proses yang dimiliki oleh page tersebut Mengurangi memori yang dibutuhkan untuk menyimpan setiap tabel page, tetapi mengurangi waktu yang dibutuhkan untuk mencari tabel saat page mengalami kerusakan Menggunakan hash table untuk membatasi mencari satu atau beberapa masukkan tabel page

Berbagi Page Secara konsep, berbagi page adalah: Berbagi kode Kode dan data private

Segmentasi Segmentasi merupakan salah satu cara untuk mengatur memori dengan menggunakan segmen. Program dibagi menjadi beberapa segmen. Segmen merupakan kumpulan logical unit. Arsitektur Segmentasi

Ukuran tiap segmen tidak harus sama.

Dapat diletakan dimana saja (di main memory, seteleh program dimasukkan ke memori).

Tabel segmen -> menentukan lokasi segmen.

Alamat logisnya dua dimensi, terdiri dari : panjang segmen (limit) dan alamat awal segmen berada (base)

Saling berbagi Adanya proteksi Alokasi yang dinamis

Masalah Dalam Segmentasi Segmen dapat membesar Muncul fragmentasi luar Bila ada proses yang besar

Segmentasi Dengan Paging

Kelebihan paging:

Tidak ada fragmentasi luar Alokasinya cepatKelebihan segmentasi:

Saling berbagi Proteksi