330 likes | 607 Views
Manajemen Memori. Tugas Kelompok. Pengenalan alat 5 menit Fungsi Cara kerja Latihan memasang atau merakit 5 menit Menjelaskan cara kerja memori dan manasaja yang disebut memori Menjelaskan bagaimana cara kerja komputer tersebut berdasarkan alat yang ada
E N D
Tugas Kelompok • Pengenalan alat 5 menit • Fungsi • Cara kerja • Latihan memasang atau merakit 5 menit • Menjelaskan cara kerja memori dan manasaja yang disebut memori • Menjelaskan bagaimana cara kerja komputer tersebut berdasarkan alat yang ada • Lempar pertanyaan masing-masing kelompok
Kel 1 (Feky) • Kel 2 (Resno) • Kel 3 (Dano)
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.
KAPASITAS MEDIA PENYIMPAN • Berikut ini satuan kapasitas media penyimpan, antara lain:1. Bit = 1 bit2. Nibble = 4 bit3. Byte = 8 bit = 1 Byte4. Kilobyte = 1000 byte = 1 Kb5. Megabyte = 1000000 byte = 1 Mb6. Gigabyte = 1000000000 byte = 1 Gb7. Terrabyte = 1000000000000 byte = 1 Tb
Jenis Memori • Memory atau RAM adalah hardware atau perangkat bagian dari komputer yang digunakan untuk menyimpan sementara data atau program yang sedang dijalankan termasuk service atau layanan dalam sebuah operating system. • Data aplikasi yang disimpan dalam RAM bersifat sementara selama komputer hidup atau dialiri daya. Saat komputer itu dimatikan, data yang tersimpan simpan dalam memori akan hilang.
Jenis Memori • RAM. Random Access Memory adalah Generasi awal memory komputer untuk menyimpan data dan instruksi yang diberikan oleh prosesor. • EDO RAM. Extended Data Output RAM adalah jenis memori untuk menyimpan data dari prosesor dengan lebih cepat seperti generasi pertama prosessor Intel Pentium. EDO RAM awalnya dioptimalkan untuk prosessor Pentium 66 MHz.
Jenis Memori • SDRAM. Synchronous Dynamic RAM adalah memori generasi selanjutnya dan dalam memproses data lebih cepat dari EDO RAM. Kecepatan SDRAM digolongkan berdasarkan MHz bukan nanosecond (ns). Hal ini membuat lebih mudah untuk membandingkan kecepatan bus dan kecepatan chip RAM. Memory SDRAM berbentuk DIMM (Dual Inline Memory Module) dan digunakan di motherboard 168pin. • DDR SDRAM. Double Data Rate Synchronous DRRAM merupakan memori yang memiliki kemampuan dua kali lebih cepat dari SDRAM. DDR SDRAM memiliki jumlah pin lebih banyak dari SDRAM yaitu 184pin. Jenis memori DDR SDRAM ini yang saat ini banyak digunakan untuk komputer desktop dan notebook. Dimulai dari DDR, DDR2 dan DDR3.
Jenis Memori • RDRAM. Rambus Dynamic RAM adalah memori berkecepatan tinggi yang menjanjikan transfer data hingga 1,6 GB per detik. Lalu muncul juga Direct Rambus Dynamic (DRDRAM), sebuah teknologi yang dikembangkan dan dilisensikan oleh Rambus Corporation. • RDRAM menggunakan slot RIMM,yang mirip dengan slot SDRAM dan lebih banyak digunakan untuk komputer server atau orang yang membutuhkan memori berkecepatan sangat tinggi. Type memori ini juga mendukung system dual-channel untuk kinerja server dengan kecepatannya yang sangat tinggi. Namun, sayang harganya yang sangat mahal membuat memory jenis ini jarang digunakan.
Manajemen memori • Mendefinisikan manajemen ada berbagai ragam, ada yang mengartikan dengan ketatalaksanaan, manajemen pengurusan dan lain sebagainya. Pengertian manajemen dapat dilihat dari tiga pengertian. • Manajemen sebagai suatu proses • Manajemen sebagai suatu kolektivitas manusia • Manajemen sebagai ilmu ( science ) dan sebagai seni Manajemen sebagai suatu proses. • Memori adalah pusat kegiatan pada sebuah komputer, karena setiap proses yang akan dijalankan harus melalui memoriter lebih dahulu. Sedangkan manajemen adalah cara / pengaturan agar sesuatu dapat bekerja secara maksimal dan efisien. Sehingga dapat didefinisikan bahwa Manajemen Memori adalah cara / pengaturan agar pusat kegiatan pada sebuah komputer dapat bekerja secara maksimal dan efisien. 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
Tujuan Manajemen Memori • Meningkatkan utilitas CPU yang sebesar-besarnya • Data dan instruksi dapat diakses dengan cepat oleh CPU • Memori utama memiliki kapasitas yang sangat terbatas sehingga pemakaiannya harus efisien • Transfer data dari/ke memori utama ke/dari CPU dapat efisien • Mengelola informasi memori yang dipakai dan tidak dipakai • Mengalokasikan memori ke proses yang memerlukan • Mendealokasikan memori dari proses yang telah selesai • Mengelola swapping antara memori utama dan disk • Mengelola informasi memori yang dipakai dan tidak dipakai • Mengalokasikan memori ke proses yang memerlukan • Mendealokasikan memori dari proses yang telah selesai • Mengelola swapping antara memori utama dan disk
Pembagian Memori manajemen • Manajemen Memori dibedakan menjadi dua, yaitu : • Swapping : Manajemen Memori dengan swapping adalah manajemen memori dengan pemindahan proses antara memori utama dan disk selama eksekusi. • Tanpa swapping adalah manajemen memori tanpa pemindahan proses antara memori utama dan disk selama eksekusi.
STRATEGI MANAJEMEN MEMORI • Dokomenhardware • Kinerja • Fragmantation • Relokasi • Swapping • Sharing • Proteksi
MANAJEMEN MEMORI • 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. • MANAJEMEN MEMORI 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
Manajemen Memori • Pengikatan Alamat (Address Binding) • Dinamic Loading • Dinamic Linking • Overlay
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 sistem 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 (Gambar 7-1). Alamat pada source program umumnya merupakan alamat simbolik. Sebuah compiler biasanya melakukan pengikatan alamat simbolik (symbolic address) ke alamat relokasi dipindah (relocatable address). Misalnya compiler mengikatkan alamat simbolik ke alamat relokasi “14 byte from the beginning of this module”. Editor Linkage mengikatkan alamat relokasi ini ke alamat absolute (absolute addresses) “74014”.
Pengikatan Alamat (Address Binding) • Instruksipengikataninstruksidan data kealamatmemoridapatdilakukanpadasaat : • Compile time : Jikalokasimemoridiketahuisejakawal, kodeabsolutdapatdibangkitkan, apabilaterjadiperubahanalamatawalharusdilakukankompilasiulang. Misalnya : program format .com pada MS-DOS adalah kode absolut yang diikat pada saat waktu kompilasi • Load time : Harusmembangkitkankoderelokasijikalokasimemoritidakdiketahuipadasaatwaktukompilasi. • Execution time : Pengikatanditundasampaiwaktueksekusijikaprosesdapatdipindahkan selama eksekusi dari satu segmen memori ke segmen memori lain. Memerlukan dukungan perangkat keras untuk memetakan alamat (misalnya register basis dan limit).
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. Keuntungan dari dynamic loading adalah rutin yang tidak digunakan tidak pernah di-load. • Skema ini lebih berguna untuk kode dalam jumlah besar diperlukan untuk menangani kasus-kasus yang jarang terjadi seperti error routine. Dinamic loading tidak memerlukan dukungan khusus dari sistem operasi. Sistem operasi hanya perlu menyediakan beberapa rutin pustaka untuk implementasi dynamic loading.
Dinamic Linking • Sebagian besar sistem operasi hanya men-support static linking, dimana sistem 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. Dinamic linking biasanya digunakan dengan sistem library, seperti language subroutine library. Tanpa fasilitas ini, semua program pada sistem perlu mempunyai copy dari library language di dalam executable image. Kebutuhan ini menghabiskan baik ruang disk maupun memori utama. • Bagaimanapun, tidak seperti dynamic loading, dynamic linking membutuhkan beberapa dukungan dari sistem operasi, misalnya bila proses-proses di memori utama saling diproteksi, maka sistem operasi melakukan pengecekan apakah rutin yang diminta berada diluar ruang alamat. Beberapa proses diijinkan untuk mengakses memori pada alamat yang sama. File dynamic linking berekstensi .dll, .sys atau .drv
Overlay • Sebuahprosesdapatlebihbesardaripadajumlahmemori yang dialokasikanuntukproses, teknikoverlay biasanyadigunakanuntukkasusini. • Teknik Overlay biasanyadigunakanuntukmemungkinkansebuahprosesmempunyaijumlah yang lebihbesardarimemorifisikdaripadaalokasimemori yang diperuntukkan. • Idedarioverlay adalahmenyimpandimemorihanyainstruksidan data yang diperlukanpadasatuwaktu. Jikaintruksi lain diperlukan, makainstruksitersebutdiletakkandiruangmemorimenggantikaninstruksi yang tidakdigunakanlagi. • Sebagaicontohmisalnyaterdapat two-pass assembler. Selama pass 1, dibangun table symbol, danselama pass 2 dibangkitkankodebahasamesin. Kita dapatmembagi assembler kedalamkode pass 1, kode pass 2, tabel symbol danrutinumum yang digunakanbaikpada pass 1 maupun pass 2. Diasumsikanukurankomponensebagaiberikut : Pass 1 70K Pass 2 80K Tabel symbol 20K Rutinumum 30K
Overlay • Apabila semua diletakkan di memori memerlukan 200K. Jika hanya tersedia tempat 150K, proses tidak dapat dijalankan. Pass 1 dan pass 2 tidak perlu berada di memori pada waktu yang sama. Dengan menggunakan overlay, rutin dibagi dalam 2 overlay. • Overlay A adalah tabel symbol, rutin umum dan pass1 (membutuhkan total 120K) dan overlay B terdiri dari tabel symbol, rutin umum dan pass 2 (membutuhkan 130K). Ditambahkan 10K untuk driver overlay dan dimulai dari overlay A. • Setelah selesai dijalankan overlay B dengan mengganti tempat dari overlay A. Gambaran overlay dapat dilihat pada Gambar 7-2. Overlay tidak membutuhkan dukungan khusus dari sistem operasi. User dapat mengimplementasikannya secara lengkap menggunakan struktur file sederhana, membaca dari file ke memori dan meloncat ke memori dan mengeksekusi instruksi read yang lebih baru. • Sistem operasi memberitahu hanya jika terdapat I/O yang melebihi biasanya. Penggunaan overlay terbatas untuk beberapa sistem yang mempunyai jumlah memori fisik terbatas dan kekurangan dukungan H/W untuk teknik yang lebih lanjut.
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). • 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.
RUANG ALAMAT LOGIKA DAN RUANG ALAMAT FISIK • 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.
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. Proses swapping
SWAPPING • Kebijakan penukaran juga dapat digunakan pada algoritma penjadwalan berbasis prioritas. Jika proses mempunyai prioritas lebih tinggi datang dan meminta layanan, memori akan swap out proses dengan prioritas lebih rendah sehingga proses dengan prioritas lebih tinggi dapat di-load dan dieksekusi. • Umumnya sebuah proses yang di-swap out akan menukar kembali ke ruang memori yang sama dengan sebelumnya. Jika proses pengikatan dilakukan pada saat load-time, maka proses tidak dapat dipindah ke lokasi yang berbeda. Tetapi, jika pengikatan pada saat execution-time , maka kemungkinan proses ditukar ke ruang memori yang berbeda, karena alamat fisik dihitung selama waktu eksekusi. Bila CPU scheduler memutuskan untuk mengeksekusi proses, OS memanggil dispatcher. Dispatcher memeriksa untuk melihat apakah proses selanjutnya pada ready queue ada di memori. • Jika tidak dan tidak terdapat cukup memori bebas, maka dispatcher swap out sebuah proses yang ada di memori dan swap in proses tersebut. Kemudian reload register ke keadaan normal. Teknik swapping yang sudah dimodifikasi ditemui pada beberapa sistem misalnya Linux, UNIX dan Windows.
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.
Single Partition Allocation • Pada single partition allocation diasumsikan sistem operasi ditempatkan di memori rendah dan proses user dieksekusi di memori tinggi. Kode dan data sistem operasi harus diproteksi dari perubahan tak terduga oleh user proses. Proteksi dapat dilakukan dengan menggunakan register relokasi (relocation register) dan register limit (limit register). • Register relokasi berisi nilai dari alamat fisik terkecil sedangkan register limit berisi jangkauan alamat logika dan alamat logika harus lebih kecil dari register limit. MMU memetakan alamat logika secara dinamis dengan menambah nilai pada register relokasi.
Multiple Partition Allocation • Pada multiple partition allocation, mengijinkan memori user dialokasikan untuk proses yang berbeda yang berada di antrian input (input queue) yang menunggu dibawa ke memori. • Terdapat dua skema yaitu partisi tetap (fixed partition) dimana memori dibagi dalam sejumlah partisi tetap dan setiap partisi berisi tepat satu proses. Jumlah partisi terbatas pada tingkat multiprogramming. Digunakan oleh IBM OS/360 yang disebut Multiprogramming with a Fixed number of Task (MFT). • Skema yang kedua adalah partisi dinamis (variable partition) merupakan MFT yang digeneralisasi yang disebut Multiprogramming with a Variable number of Tasks (MVT). Skema ini digunakan terutama pada lingkungan batch. • Pada MVT, sistem operasi menyimpan tabel yang berisi bagian memori yang tersedia dan yang digunakan. Mula-mula, semua memori tersedia untuk proses user sebagai satu blok besar (large hole). Lubang (hole) adalah blok yang tersedia di memori yang mempunyai ukuran berbeda. • Bila proses datang dan memerlukan memori, dicari lubang (hole) yang cukup untuk proses. Bila ditemukan memory manager mengalokasikan sejumlah memori yang dibutuhkan dan menyimpan sisanya untuk permintaan berikutnya. Sistem operasi menyimpan informasi tentang partisi yang dialokasikan dan partisi yang bebas (hole).