Kamis, 04 Juli 2019

MEMORY MANAGEMENT



MEMORY MANAGEMENT

Definisi Memory Management
Memori manajemen adalah tindakan mengelola memori komputer. Kebutuhan utama manajemen memori adalah untuk menyediakan cara untuk secara dinamis mengalokasikan bagian-bagian dari memori untuk program atas permintaan mereka, dan membebaskan untuk digunakan kembali ketika tidak lagi diperlukan. Ini sangat penting untuk setiap sistem komputer canggih di mana lebih dari satu proses mungkin berlangsung setiap saat.
Alamat Memori
a) Alamat memori mutlak (alamat fisik)
Sel memori pada memori kerja adalah sumber daya berbentuk fisik, sehingga untuk mencapai sel memori ini digunakan kata pengenal. Maka disebutlah alamat fisik dan karena nomor alamat fisik ini bersifat mutlak (nomor setiap sel adalah tetap), maka disebut juga alamat mutlak.
b) Alamat memori relatif (alamat logika)
Alamat memori yang digunakan oleh program / data berurutan / berjulat. Jika kita menggunakan alamat 1, maka kitapun menggunakan alamat 2,3, … dan untuk 1 informasi jika alamat awalnya 0 dan alamat lainnya relatif terhadap alamat awal 0 ini, maka dinamakan alamat relatif. Dan alamat tersebut adalah logika dari untaian alamat yang menyimpan informasi maka dikenal alamat memori logika. Contoh : alamat awal relatif 0, alamat awal fisik 14726, maka selisihnya = relokasinya = 14726-0 = 14726.
Fungsi Manajemen Memori
  1. Mengelola informasi yang dipakai dan tidak dipakai.
  2. Mengalokasikan memori ke proses yang memerlukan.
  3. Mendealokasikan memori dari proses telah selesai.
  4. Mengelola swapping atau paging antara memori utama dan disk.
Partisi Memori
Partisi memori adalah pembagian harddisk menjadi beberapa bagian yang digunakan untuk mempermudah manajemen file.
Terdapat 2 jenis partisi memori, yaitu :
  1. Fixed Partitioning
    Ciri-ciri :
    – Pembagian memori ditentukan di awal dan tidak dapat dirubah
    – Ukuran partisi bisa sama (equal-size) atau berbeda (unequal-size)Kesulitan yang dihadapi :
    – Ukuran program > ukuran partisi
    – Penggunaan memori yang tidak efisien
    – Internal Fragmentation
    Contoh OS yang menggunakan : IBM OS/MFT (Multiprogramming with a Fixed Number of Tasks)
  2. Dynamic Partitioning
    Dalam dynamic memory partitioning,,memori dipartisi menjadi bagian-bagian dengan jumlah dan besar yang tidak tentu.Ciri-ciri :
    – Alokasi memori ditentukan saat runtime
    – Setiap proses diberikan alokasi sesuai yang dibutuhkan
    Kesulitan yang dihadapi :
    – External Fragmentation
    – Ruang kosong di memori banyak, tetapi terbagi-bagi
Syarat Pengelolaan Memori
  • Relokasi
    Prosesor dan sistem operasi harus dapat mentransfer memory referensi ( dalam bentuk kode program ) ke alamat fisik yang mengalokasikan program dalam memory utama.
  • Proteksi
    User tidak boleh mengakses beberapa bagian dari wilayah sistem operasi.
  • Sharing
    Memory skunder pada manajemen memory dapat mengontrol sharing area pada memory utama.
  • Organisasi Logika
    Sistem oerasi dan hardware berusaha untuk dapat berhubungan dengan user program dalamsatu modul.
  • Organisasi fisik
    Harus ada pengaturan yang jelas antara memory utama dngan memory skunder pada Longterm scheduling.

Fragmentasi
Penyimpanan di komputer, fragmentasi adalah sebuah fenomena di ruang penyimpanan yang digunakan secara tidak efisien, mengurangi kapasitas penyimpanan. Istilah ini juga digunakan untuk menunjukkan tempat yang gersang itu sendiri.
Ada tiga bentuk yang terkait dengan fragmentasi: fragmentasi eksternal, internal fragmentasi, dan data fragmentasi. Berbagai skema alokasi penyimpanan pameran satu atau beberapa kelemahan. Fragmentasi dapat diterima di kembali untuk peningkatan kecepatan atau kesederhanaan.
Fragmentasi internal
Fragmentasi internal terjadi saat penyimpanan dialokasikan tanpa pernah ingin menggunakannya. [1] Ini adalah ruang-siakan. Sementara ini tampaknya bodoh, sering diterima dalam kembali untuk meningkatkan efisiensi atau kesederhanaan. Istilah “internal” merujuk pada kenyataan bahwa unusable penyimpanan yang dialokasikan di dalam wilayah namun tidak sedang digunakan.
Misalnya, dalam banyak sistem file, setiap file selalu dimulai pada awal sebuah cluster, karena ini simplifies organisasi dan memudahkan tumbuh file. Setiap ruang kiri atas antara terakhir byte dari file yang pertama dan byte berikutnya dari cluster adalah bentuk internal disebut fragmentasi file atau kendur kendur ruang. [2] [3]
Demikian pula, sebuah program yang mengalokasikan satu byte data seringkali banyak yang dialokasikan untuk tambahan byte metadata dan berpihak. Spasi ini juga fragmentasi internal.
Contoh lainnya: Inggris teks sering disimpan dengan satu karakter di masing-masing 8-bit byte meskipun standar ASCII encoding yang paling signifikan sedikit setiap byte selalu nol. Bit yang digunakan adalah bentuk fragmentasi internal.
Serupa dengan meninggalkan masalah daya cipta unused muncul di banyak daerah lain. Misalnya, alamat IP hanya dapat dimiliki dalam ukuran blok tertentu, sehingga banyak IP yang dilindungi undang-undang, tetapi tidak sedang digunakan. Ini adalah kontribusi terhadap kekurangan alamat IPv4.
Tidak seperti jenis fragmentasi, fragmentasi internal yang sulit untuk kembali, biasanya cara terbaik untuk melepaskannya adalah dengan perubahan desain. Misalnya, dalam alokasi memori dinamis, memori internal renang secara drastis memotong fragmentasi oleh menyebarkan overhead ruang yang lebih besar atas jumlah benda.
Fragmentasi eksternal
Fragmentasi eksternal adalah fenomena yang gratis menjadi dibagi menjadi beberapa bagian kecil dari waktu ke waktu. [1] Ini adalah kelemahan dari beberapa algoritma alokasi penyimpanan, terjadi ketika aplikasi dan mengalokasikan deallocates ( “frees”) dari daerah penyimpanan berbagai ukuran, dan alokasi oleh algoritma merespon meninggalkan dialokasikan dan deallocated daerah interspersed. Hasilnya adalah bahwa, walaupun gratis tersedia, maka secara efektif unusable karena dibagi menjadi potongan-potongan yang terlalu kecil untuk memenuhi kebutuhan dari aplikasi. Istilah “eksternal” merujuk pada kenyataan bahwa unusable penyimpanan yang dialokasikan di luar daerah.
Misalnya, dalam alokasi memori dinamis, blok 1000 byte mungkin diminta, tetapi yang terbesar adalah berdekatan blok ruang kosong yang hanya 300 byte. Bahkan jika terdapat sepuluh blok 300 byte dari ruang kosong, yang dipisahkan oleh daerah dialokasikan, satu masih tidak dapat mengalokasikan yang diminta blok 1000 byte, dan alokasi permintaan akan gagal.
Fragmentasi eksternal juga terjadi di banyak file sebagai sistem file yang berbeda ukuran dibuat, mengubah ukuran, dan akan dihapus. Efek lebih buruk lagi adalah jika sebuah file yang dibagi menjadi beberapa bagian kecil akan dihapus, karena ini mirip daun kecil daerah bebas spasi.
Fragmentasi data
Data fragmentasi terjadi ketika sebuah bagian dari data dalam memori rusak ke dalam banyak potongan-potongan yang tidak saling berdekatan. Hal ini biasanya hasil dari mencoba untuk memasukkan benda yang besar ke dalam penyimpanan yang telah menderita fragmentasi eksternal.
Misalnya, file dalam file sistem biasanya diatur dalam unit yang disebut blok atau kelompok. Ketika sebuah file sistem yang dibuat, ada ruang untuk menyimpan file blok bersama contiguously. Hal ini memungkinkan untuk cepat berurut membaca dan menulis file. Namun, seperti file ditambahkan, dihapus, dan berubah dalam ukuran, ruang bagi menjadi eksternal, hanya meninggalkan lubang kecil di tempat yang tepat untuk data baru. Bila file yang baru ditulis, atau jika file yang sudah ada diperpanjang, maka data baru blok pasti tersebar, karena perlambatan akses untuk mencari waktu dan pemutaran penundaan dari membaca / menulis head, dan overhead incurring tambahan untuk mengelola tambahan lokasi. Hal ini disebut fragmentasi file system.
Sebagai contoh lain, jika node yang terhubung daftar dialokasikan turut dalam memori, ini akan meningkatkan lokalitas dari referensi dan data cache meningkatkan kinerja selama traversal dari daftar. Jika memori renang gratis bagi ruang adalah, baru node akan tersebar di seluruh memori, meningkatkan jumlah cache misses.
Seperti compaction dapat menghilangkan fragmentasi eksternal, data fragmentasi dapat dihapuskan oleh rearranging data terkait agar buah yang saling berdekatan. Misalnya, pekerjaan utama dari defragmentation alat ini untuk mengatur ulang blok pada disk, sehingga setiap file blok yang berdekatan. Paling defragmenting utilitas juga berusaha untuk mengurangi atau menghilangkan fragmentasi ruang kosong. Beberapa pindah pengumpul sampah terkait juga akan memindahkan objek dekat bersama (disebut Memadatkan) untuk meningkatkan kinerja cache.

Sistem Paging

Sistem paging adalah suatu sistem manajemen pada sistem operasi yang mengatur program yang sedang berjalan. Metode dasar dari paging adalah dengan memecah memori fisik menjadi blok-blok yang berukuran tertentu yang disebut dengan frame dan memecah memori logika menjadi bok-blok yang berukuran sama dengan frame yang disebut page. Untuk mengatasi apabila suatu program lebih besar dibandingkan dengan memori utama adalah dengan konsep overlay dan konsep memori maya(virtual memori):

# Konsep Overlay,
yaitu dimana program yang di jalankan dipecah menjadi beberapa bagian yang dapat dimuat oleh memory (overlay), sedangkan yang belum dieksekusi akan disimpan di dalam disk, yang nantinya akan dimuat ke memori begitu diperlukan dalam ekekusi.

# Konsep Memori Maya
yaitu kemampuan untuk mengalamati ruang memori melebihi memori utama yang tersedia.

Implementasi Sistem Paging
Setiap sistem operasi mempunyai metode sendiri untuk menyimpan tabel page. Beberapa sistem operasi mengalokasikan sebuah tabel page untuk setiap proses. Pointer ke tabel page disimpan dengan nilai register lainnya dari PCB. Pada dasarnya terdapat 3 metode yang berbeda untuk implementasi tabel page :
  1. Tabel page diimplementasikan sebagai kumpulan dari “dedicated” register. Register berupa rangkaian logika berkecepatan sangat tinggi untuk efisiensi translasi alamat paging. Contoh : DEC PDP-11. Alamat terdiri dari 16 bit dan ukuran page 8K. Sehingga tabel page berisi 8 entri yang disimpan pada register. Penggunaan register memenuhi jika tabel page kecil (tidak lebih dari 256 entry).
  2. Tabel page disimpan pada main memori dan menggunakan page table base registe” (PTBR) untuk menunjuk ke tabel page yang disimpan di main memori. Penggunakan memori untuk mengimplementasikan tabel page akan memungkinkan tabel page sangat besar (sekitar 1 juta entry). Perubahan tabel page hanya mengubah PTBR dan menurunkan waktu context-switch. Akan tetapi penggunaan metode ini memperlambat akses memori dengan faktor 2. Hal ini dikarenakan untuk mengakses memori perlu dua langkah : pertama untuk lokasi tabel page dan kedua untuk lokasi alamat fisik yang diperlukan.
  3. Menggunakan perangkat keras cache yang khusus, kecil dan cepat yang disebut associative register atau translation look-aside buffers (TLBs). Merupakan solusi standar untuk permasalahan penggunaan memori untuk implementasi tabel page. Sekumpulan associative register berupa memori kecepatan tinggi. Setiap register terdiri dari 2 bagian yaitu key dan value. Jika associative register memberikan item, akan dibandingkan dengan semua key secara simultan. Jika item ditemukan nilai yang berhubungan diberikan. Model ini menawarkan pencarian cepat tetapi perangkat keras masih mahal. Jumlah entry pada TLB bervariasi antara 8 s/d 2048.

Sekarang apa bedanya dari table page: 

#    Perbedaannya adalah bahwa paging itu memecah memori fisik menjadi blok-blok yang berukuran tertentu di sebut frame, dan memecah memori logika menjadi blok-blok yang disebut page, seperti di jelaskan dalam point pengertian di atas, Jadi karena ada program yang melebihi memori utama, maka dengan paging ini, dapat di pecah-pecah menjadi beberapa bagian, sehingga program dapat di eksekusi.

#       Sedangkan tabel page digunakan untuk menerjemahkan memori logika ke memori fisik, dengan perantara MMU (Memory Management Unit), dan pengeksekusian proses akan mencari memori berdasarkan table page ini. Sehingga pada waktu memori logika di pecah-pecah maka dengan tabel page ini akan diterjemahkan dan eksekusi dengan menggunakan tabel tersebut.