Weekly post

  • Manajemen Memori

      Definisi Manajemen Memori
    Manjemen memori (Memory Manager) adalah salah satu bagian sistem operasi yang mempengaruhi dalam menentukan proses mana yang diletakkan pada antrian. Manajemen memori DOS merupakan mekanisme pengaturan memori pada sistem operasi DOS. Sistem operasi berjalan dalam modus real dengan arsitektur berbasis prosesor intel x86. Dalam modus real, hanya 20-bit pertama dari bus alamat yang akan digunakan oleh sistem operasi untuk mengakses memori, sehingga menjadikan jumlah memori yang dapat diakses hanya mencapai 220=1048576 bytes (1 MB) saja, dari yang seharusnya 32-bit/40-bit pada prosesor-prosesor modern. Ada beberapa macam jenis memori diantaranya :

    - Memori Kerja
    • ROM/PROM/EPROM/EEPROM
    • RAM
    • Cache memory
    - Memori Dukung
    · Floppy, harddisk, CD, dll.
    2 .      Manajemen Memori
    Terdapat 2 (dua) manajemen memori yaitu :
    a. Manajeman memori statis
    Dengan pemartisian statis, jumlah, lokasi dan ukuran proses dimemori tidak beragam sepanjang waktu secara tetap.
    b. Manajemen memori dinamis
    Dengan pemartisian dinamis , jumlah, lokasi dan ukuran proses dimemori dapat beragam sepanjang waktu secara dinamis.

    Manajemen Memori Berdasarkan Alokasi memori Terdapat 2 (dua) cara menempatkan informasi ke dalam memori kerja, yaitu:
    a. 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
    b. Alokasi Memori Tak Berurutan (Non Contiguous Allocation)
    Program/proses ditempatkan pada beberapa segmen berserakan, tidak perlu saling berdekatan atau berurutan. Biasanya digunakan untuk lokasi memori maya sebagai lokasi page-page.
    Kelebihan : sistem dapat memanfaatkan _ memori utama secara lebih efesien, dan sistem opersi masih dapat menyisip proses bila jumlah lubang-lubang memori cukup untuk memuat proses yang akan dieksekusi.
    Kekurangan : memerlukan pengendalian yang lebih rumit dan memori jadi banyak yang berserakan tidak terpakai.
    c. Penggunaan memori
    Pencocokan ukuran informasi ke penggalan memori kerja disebut sebagai fit. Bagian dari memori kerja yang tidak terpakai dan letaknya tersebar di banyak wilayah memori kerja disebut sebagai fragmen. Peristiwa terjadinya fragmen disebut fragmentasi
    d. Pencocokan (fit) dan fragmentasi
    Beberapa jenis strategi pencocokan antara lain:
    1. Cocok pertama (first fit)
    Pencocokan terjadi menurut antrian informasi
    2. Cocok pertama berdaur (cyclical first fit)
    Pencocokan tidak harus dimulai dari urutan penggalan memori yang pertama, tetapi dapat dilakukan setelah terjadi pencocokan sebelumnya.
    3. Cocok terbaik (best fit)
    Pencocokan dilakukan sesuai dengan penggalan memori yang ukurannya pas.
    4. Cocok terburuk (Worst fit)
    Informasi akan menempati penggalan yang ukurannya terbesar.
    e. Fragmentasi
    Menurut prosesnya terdapat dua macam fragmentasi :
    a. Fragmentasi internal
    Kelebihan memori pada penggalan memori ketika penggalan memori itu menerima penggalan informasi yang berukuran kurang dari ukuran penggalan memori.
    b. Fragmentasi Ekternal
    Penggalan memori bebas yang ukurannya terlalu kecil untuk dapat menampung penggalan informasi yang akan dimuat ke penggalan memori itu.
    Contoh : Proses

    3. Fungsi manajemen memori :
    Manajemen memori sangat penting untuk memproses dan fasilitas masukan/keluaran secara efisien, sehingga memori dapat menampung sebanyak mungkin proses dan sebagai upaya agar pemrogram atau proses tidak dibatasi kapasitas memori fisik di sistem komputer.  Berikut ini kami sebutkan fungsi manajemen memori diantaranya :
    1.Mengelola informasi memori yang dipakai dan tidak dipakai.
    2.Mengalokasikan memori ke proses yang memerlukan.
    3.Mendealokasikan memori dari proses yang telah selesai.
    4.Mengelola swapping antara memori utama dan disk.

    4.  Manajemen memori berdasarkan keberadaan swapping atau paging
    Terbagi dua yaitu :
    1.      Manajemen tanpa swapping atau paging
    Yaitu manajemen memori tanpa pemindahan citra proses antara memori utama dan disk selama eksekusi. Yang terdiri dari :
    Ø  Monoprogramming, ciri-cirinya:
    - Hanya satu proses pada satu saat
    - Hanya satu proses menggunakan semua memori
    - Pemakai memuatkan program ke seluruh memori dari disk atau tape
    - Program mengambil kendali seluruh mesin
    Ø  Multiprogramming Dengan Pemartisian Statis
    Terbagi dua :
    - Pemartisian menjadi partisi-partisi berukuran sama, yaitu ukuran semua partisi memori adalah sama
    - Pemartisian menjadi partisi-partisi berukuran berbeda, yaitu ukuran semua partisi memori adalah berbeda
       Strategi Penempatan Program Ke Partisi
    ·      Satu Antrian Tunggal Untuk Semua Partisi
    Keuntungan : Lebih fleksibel serta implementasi dan operasi lebih minimal karena hanya mengelola satu antrian.
    Kelemahan : Proses dapat ditempatkan di partisi yang banyak diboroskan, yaitu proses kecil ditempatkan di partisi sangat besar.
    ·      Satu Antrian Untuk Tiap Partisi (banyak antrian Untuk Seluruh Partisi) . Keuntungan : Meminimalkan pemborosan memori
    Kelemahan : Dapat terjadi antrian panjang di suatu partisi sementara antrian partisi - partisi lain kosong
    2.      Manajemen dengan swapping atau paging
    Swapping : pemindahan proses dari memori utama ke disk dan kembali lagi.
    1. Multiprogramming dengan Pemartisisan Dinamis
    Jumlah , lokasi dan ukuran proses di memori dapat beragam sepanjang waktu secara dinamis.
    Kelemahan:
    - Dapat terjadi lubang-lubang kecil memori di antara partisi-partisi yang dipakai.
    - Merumitkan alokasi dan dealokasi memori
    2. Pencatatan Pemakaian memori
    - Pencatatan memakai peta bit (Bit Map)
    - Pencatatan memakai linked list

    5. Sistem Buddy
    Sistem buddy adalah algoritma pengelolaan memori yang memanfaatkan kelebihan penggunaan bilangan biner dalam pengalamatan memori. Karakteristik bilangan biner digunakan untuk mempercepat Penggabungan lubang-lubang berdekatan ketika proses Terakhir atau dikeluarkan. Mekanisme pengelolaan sistem buddy tersebut memiliki keunggulan dan kelemahan.
    Keunggulan Sistem Buddy
    1. Sistem buddy mempunyai keunggulan dibanding algoritma-algoritma yang mengurutkan blok-blok berdasarkan ukuran. Ketika blok berukuran 2k dibebaskan, maka manajer memori hanya mencari pada senarai lubang 2k untuk memeriksa apakah dapat dilakukan  penggabungan. Pada algoritma algoritma lain yang memungkinkan blok-blok memori dipecah dalam sembarang ukuran, seluruh senarai harus dicari.
    2. Dealokasi pada sistem buddy dapat dilakukan dengan cepat.
    Kelemahan Sistem Buddy
    1. Utilisasi memori pada sistem buddy sangat tidak efisien.
    2. Masalah ini muncul dari dari kenyataan bahwa semua permintaan dibulatkan ke 2k terdekat yang dapat memuat. Proses berukuran 35 kb harus dialokasikan di 64 kb, terdapat 29 kb yang disiakan. Overhead ini disebut fragmentasi internal karena memori yang disiakan adalah internal terhadap segmen-segmen yang dialokasikan

    Manajemen Memori pada Windows 
              Windows memiliki memori fisik dan virtual yang dibutuhkan oleh proses sebuah program atau lebih (multitasking). Singkatnya, Virtual Memory selalu dimiliki oleh sebuah sistem operasi untuk mencegah terjadinya deadlock antar aplikasi maupun sistem itu sendiri.

     Kita dapat memanggil task manager melalui beberapa cara :

    1)      Melalui Ctrl + Shift + Esc

    1

    2)      Melalui Ctrl + Alt + Del dan pilih Start Task Manager

    1.png

    3)      Melalui Klik kanan pada task bar dan pilih Start Task Manager

    1.png



    Manajemen Memori pada Linux
           Linux memanfaatkan virtual memori untuk mendukung kinerja sistem. Sebagai sistem operasi multiprogramming, virtual memori dapat meningkatkan efisisensi sistem. Sambil proses menunggu bagiannya diswap masuk ke memori, menunggu selesainya operasi masukan/keluaran dan proses diblocked. Jatah waktu pemroses dapat diberikan ke proses-proses lain

    Manajemen memori Linux menyediakan:
                Ruang alamat besar, ruang alamat dapat lebih besar dibanding memori fisik yang tersedia
    Proteksi, tiap proses di sistem mempunyai ruang alamat maya tersendiri. Ruang-ruang alamat maya itu sepenuhnya terpisah. Proses yang berjalan di satu aplikasi tidak dapat mengganggu proses lainnya.
    Pemetaan memori, dilakukan pemetaan antara memori maya ke memori fisik yang tersedia.
    Memori maya bersama (shared virtual memory), memori maya bersama ini untuk menghemat ruang memori, seperti pustaka dinamis bagi beberapa proses.
    Linux menempatkan proses pada memori yang dibagi menjadi sejumlah partisi. Pemartisian ini bersifat dinamis maka jumlah, lokasi dan ukuran proses di memori dapat beragam sepanjang waktu secara dinamis. Proses yang akan masuk ke memori segera dibuatkan partisi sesuai kebutuhan. Linux menciptakan ruang disk tempat swap terlebih dahulu, saat proses diciptakan, ruang swap pada disk dialokasikan. Ketika proses harus dikeluarkan dari memori utama, proses selalu ditempatkan ke ruang yang telah dialokasikan, bukan ke tempat-tempat berbeda setiap kali terjadi swap-out. Ketika proses berakhir, ruang swap pada disk didealokasikan.

     CONTOH MANAJEMEN MEMORY DI WINDOWS DAN LINUX

    - WINDOWS
              
              Windows memiliki memori fisik dan virtual yang dibutuhkan oleh proses sebuah program atau lebih (multitasking). Sebelum kita membahas tentang memory-nya kita patut mengetahui dulu apa itu proses. Proses adalah sebuah program yang sedang dieksekusi, sedangkan program adalah kumpulan instruksi yang ditulis ke dalam bahasa yang dimengerti sistem operasi. Sebuah proses membutuhkan sejumlah sumber daya untuk menyelesaikan tugasnya. Sumber daya tersebut dapat berupa CPU time, alamat memori, berkas-berkas, dan perangkat-perangkat I/O. Sistem operasi mengalokasikan sumber daya-sumber daya tersebut saat proses itu diciptakan atau sedang diproses/dijalankan. Ketika proses tersebut berhenti dijalankan, sistem operasi akan mengambil kembali semua sumber daya agar bisa digunakan kembali oleh proses lainnya.

    - LINUX 
             Bagian ini menjelaskan bagaimana linux menangani memori dalam sistem. Memori manajemen merupakan salah satu bagian terpenting dalam sistem operasi. Karena adanya keterbatasan memori, diperlukan suatu strategi dalam menangani masalah ini. Jalan keluarnya adalah dengan menggunakan memori virtual. Dengan memori virtual, memori tampak lebih besar daripada ukuran yang sebenarnya.
    Dengan memori virtual kita dapat:
    1. Ruang alamat yang besar sistem operasi membuat memori terlihat lebih besar daripada ukuran memori sebenarnya. Memori virtual bisa beberapa kali lebih besar daripada memori fisiknya.
    2. Pembagian memori fisik yang dil, manajemen memori membuat pembagian yang adil dalam pengalokasian memori antara proses-proses.
    3. Perlindungan memori manajemen menjamin setiap proses dalam sistem terlindung dari proses-proses lainnya. Dengan demikian, program yang crash tidak akan mempengaruhi proses lain  dalam sistem tersebut.
    4. Penggunaan memori virtual bersama, memori virtual mengizinkan dua buah proses berbagi memori diantara keduanya, contohnya dalam shared library. Kode library dapat berada di satu tempat, dan tidak dikopi pada dua program yang berbeda. 
    Memori Virtual
            Memori fisik dan memori virtual dibagi menjadi bagian-bagian yang disebut page. Page ini memiliki ukuran yang sama besar. Tiap page ini punya nomor yang unik, yaitu Page Frame Number (PFN). Untuk setiap instruksi dalam program, CPU melakukan mapping dari alamat virtual ke memori fisik yang sebenarnya.
    Penerjemahan alamat di antara virtual dan memori fisik dilakukan oleh CPU menggunakan tabel page untuk proses x dan proses y. Ini menunjukkan virtial PFN 0 dari proses x dimap ke memori fisik PFN  Setiap anggota tabel page mengandung informasi berikut ini:

    1. Virtual PFN
    2. PFN fisik
    3. Informasi akses page dari page tersebut

            Untuk menerjemahkan alamat virtual ke alamat fisik, pertama-tama CPU harus menangani alamat virtual PFN dan offsetnya di virtual page. CPU mencari tabel page proses dan mancari anggota yang sesuai degan virtual PFN. Ini memberikan PFN fisik yang dicari. CPU kemudian mengambil PFN fisik dan mengalikannya dengan besar page untuk mendapat alamat basis page tersebut di dalam memori fisik. Terakhir, CPU menambahkan offset ke instruksi atau data yang dibutuhkan. Dengan cara ini, memori virtual dapat dimap ke page fisik dengan urutan yang teracak.


    Demand Paging
           Cara untuk menghemat memori fisik adalah dengan hanya meload page virtual yang sedang digunakan oleh program yang sedang dieksekusi. Tehnik dimana hanya meload page virtual ke memori hanya ketika program dijalankan disebut demand paging.
             Ketika proses mencoba mengakses alamat virtual yang tidak ada di dalam memori, CPU tidak dapat menemukan anggota tabel page. Contohnya, dalam gambar, tidak ada anggota tabel page untuk proses x untuk virtual PFN 2 dan jika proses x ingin membaca alamat dari virtual PFN 2, CPU tidak dapat menterjemahkan alamat ke alamat fisik. Saat ini CPU bergantung pada sistem operasi untuk menangani masalah ini. CPU menginformasikan kepada sistem operasi bahwa page fault telah terjadi, dan sistem operasi membuat proses menunggu selama sistem operasi menagani masalah ini.
             CPU harus membawa page yang benar ke memori dari image di disk. Akses disk membutuhkan waktu yang sangat lama dan proses harus menunggu sampai page selesai diambil. Jika ada proses lain yang dapat dijalankan, maka sistem operai akan memilihnya untuk kemudian dijalankan. Page yang diambil kemudian dituliskan di dalam page fisik yang masih kosong dan anggota dari virtual PFN ditambahkan dalam tabel page proses. Proses kemudian dimulai lagi pada tempat dimana page fault terjadi. Saat ini terjadi pengaksesan memori virtual, CPU membuat penerjemahan dan kemudian proses dijalankan kembali.
             Demand paging terjadi saat sistem sedang sibuk atau saat image pertama kali diload ke memori. Mekanisme ini berarti sebuah proses dapat mengeksekusi image dimana hanya sebagian dari image tersebut terdapat dalam memori fisik.

    Swaping
          Jika memori fisik tiba-tiba habis dan proses ingin memindahkan sebuah page ke memori, sistem operasi harus memutuskan apa yang harus dilakukan. Sistem operasi harus adil dalam mambagi page fisik dalam sistem diantara proses yang ada, bisa juga sistem operasi menghapus satu atau lebih page dari memori untuk membuat ruang untuk page baru yang dibawa ke memori. Cara page virtual dipilih dari memori fisik berpengaruh pada efisiensi sistem.
         Linux menggunakan tehnik page aging agar adil dalam memilih page yang akan dihapus dari sistem. Ini berarti setiap page memiliki usia sesuai dengan berapa sering page itu diakses. Semakin sering sebuah page diakses, semakin muda page tersebut. Page yang tua adalah kandidat untuk diswap.

    Pengaksesan memori virtual bersama

         Memori virtual mempermudah proses untuk berbagi memori saat semua akses ke memori menggunakan tabel page. Proses yang akan berbagi memori virtual yang sama, page fisik yang sama direference oleh banyak proses. Tabel page untuk setiap proses mengandung anggota page table yang mempunyai PFN fisik yang sama.

    Efisiensi 

           Desainer dari CPU dan sistem operasi berusaha meningkatkan kinerja dari sistem. Disamping membuat prosesor, memori semakin cepat, jalan terbaik adalah manggunakan cache. Berikut ini adalah beberapa cache dalam manajemen memori di linux:

    1. Page Cache  digunakan untuk meningkatkan akses ke image dan data dalam disk. Saat dibaca dari disk, page dicache di page cache. Jika page ini tidak dibutuhkan lagi pada suatu saat, tetapi dibutuhkan lagi pada saat yang lain, page ini dapat segera diambil dari page cache.
    2. Buffer Cache  page mungkin mengandung buffer data yang sedang digunakan oleh kernel, device driver dan lain-lain. Buffer cache tampak seperti daftar buffer. Contohnya, device driver membutuhkan buffer 256 bytes, adalah lebih cepat untuk mengambil buffer dari buffer cache daripada mengalokasikan page fisik lalu kemudian memecahnya menjadi 256 bytes buffer-buffer.3.
    3. Swap Cache hanya page yang telah ditulis ditempatkan dalam swap file. Selama page ini tidak mengalami perubahan setelah ditulis ke dalam swap file, maka saat berikutnya page di swap out tidak perlu menuliskan kembali jika page telah ada di swap file. Di sistem yang sering mengalami swap, ini dapat menghemat akses disk yang tidak perlu.


    Salah satu implementasi yang umum dari hardare cache adalah di CPU, cache dari anggota tabel page. Dalam hal ini, CPU tidak secara langsung membaca tabel page, tetap mencache terjemahan page yang dibutuhkan.

    Load dan Eksekusi Program
    1. Penempatan program dalam memori

    Linux membuat tabel-tabel fungsi untuk loading program, memberikan kesempatan kepada setiap fungsi untuk meload file yang diberikan saat sistem call exec dijalankan. Pertama-tama file binari dari page ditempatkan pada memori virtual. Hanya pada saat program mencoba mengakses page yang telah diberikan terjadi page fault, maka page akan diload ke memori fisik.

           2. Linking statis dan linking dinamis:

    a. Linking statis:
        librari-librari yang digunakan oleh program ditaruh secara langsung dalam file binari yang dapat        dieksekusi. Kerugian dari linking statis adalah setiap program harus mengandung kopi library              sistem yang umum.
    b. Linking dinamis:
        hanya sekali meload librari sistem menuju memori. Linking dinamis lebih efisien dalam hal                memori fisik dan ruang disk.

    0 comments

  • Copyright © - Nisekoi - All Right Reserved

    Fahri Ranendra Blog Powered by Blogger - Designed by Johanes Djogan