Pengaruh Manajemen Memori Terhadap Kinerja Sistem Operasi
Memori merupakan pusat operasi dari sistem komputer, digunakan sebagai tempat penyimpanan informasi. Memori merupakan struktur data besar dari word atau byte yang idsebut alamat. Kemudian CPU mengambil instruksi dari memori berdasar nilai dari program center.
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).
Konsep Dasar
Manajemen memori
- Melacak pemakaian memori, siapa dan berapa besar. Dalam melacak pemakaian memori, alat-alat seperti Task Manager (Windows), Activity Monitor (Mac), atau perintah command-line seperti top dan ps dapat digunakan untuk memantau penggunaan memori oleh setiap proses yang berjalan di sistem.
- Memilih program yang akan diload ke memori. Pemilihan program yang akan diload ke memori penting untuk mengoptimalkan penggunaan memori dan meningkatkan efisiensi sistem. Metode yang digunakan dapat bervariasi tergantung pada kebutuhan dan karakteristik sistem yang digunakan.
- Proses alokasi memori melibatkan penentuan bagian memori yang akan dialokasikan kepada program atau proses yang sedang berjalan. Alokasi dapat dilakukan secara statis (dalam hal ini, memori dialokasikan sejak awal dan tetap konstan) atau secara dinamis (memori dialokasikan sesuai kebutuhan saat program berjalan). Pemantauan alokasi memori penting untuk memastikan bahwa setiap program mendapatkan memori yang cukup dan tidak ada tumpang tindih yang dapat menyebabkan konflik.
- Setelah program selesai atau tidak lagi membutuhkan bagian memori tertentu, memori tersebut harus dibebaskan agar bisa digunakan oleh program lain. Pembebasan memori dilakukan dengan menghapus alokasi memori yang sebelumnya dibuat oleh program. Jika pembebasan memori tidak dilakukan dengan benar, hal ini dapat menyebabkan kebocoran memori atau fragmentasi memori.
- Fragmentasi memori terjadi ketika ruang yang tersedia di memori terfragmentasi menjadi beberapa bagian kecil yang tidak dapat digunakan secara efisien. Ada dua jenis fragmentasi: fragmentasi eksternal dan fragmentasi internal. Fragmentasi eksternal terjadi ketika ada cukup ruang kosong total di memori, tetapi tidak ada blok kontigu yang cukup besar untuk alokasi yang diminta oleh program. Fragmentasi internal terjadi ketika ruang yang dialokasikan kepada program lebih besar dari yang sebenarnya dibutuhkan, menyebabkan pemborosan memori.
- Swap adalah mekanisme di mana bagian dari memori fisik yang tidak digunakan saat ini oleh program ditukar ke dalam file swap pada hard disk untuk memberikan lebih banyak ruang bagi program lain. Swap digunakan ketika memori fisik tidak mencukupi untuk menampung semua program yang sedang berjalan. Namun, penggunaan swap dapat menyebabkan penurunan kinerja karena kecepatan akses hard disk lebih lambat daripada akses memori fisik.
Tugas Sistem Operasi
- Mengatur peletakan proses pada suatu memori, memori harus dapat digunakan dengan baik agar dapat memuat banyak proses dalma suatu waktu.
Konsep Binding
Pengalamatan dilakukan dengan cara Address Binding atau pengikatan alamat, yaitu cara instruksi dan data yang berada dalam disk sebagai file yang dapat dieksekusi kemudian dipetakan ke alamat memori.Sebagian besar sistem memperbolhkan sebuah proses user ubtuk meletakkan di sembarang tempat dari memori fisik. Instruksi pengikatan instruksi dapat dilakukan pada saat.
- Compile Time
Jika lokasi memori diketahui sejak awal, kode absolut dapat dibangkitkan, apabila terjadi perubahan alamat harus dilakukan kompilasi ulang.
- Load Time
Membangkitkan kode relokas jika lokasi memori tidak diketahui pada saat waktu kompilasi.
- Execution Time
Pengikatan ditunda sampai waktu eksekusi jika proses dapt dipindahkan selama eksekusi dari satu segmen memori ke segmen memori lain.
Dinamic Loading
Dynamic loading (pemuatan dinamis) adalah proses di mana program komputer memuat kode atau modul tambahan saat diperlukan saat runtime. Hal ini memungkinkan program untuk mengambil komponen yang diperlukan secara fleksibel, meningkatkan efisiensi dan penggunaan sumber daya. Dynamic loading sering digunakan dalam pengembangan perangkat lunak untuk mempercepat waktu eksekusi dan mengoptimalkan penggunaan memori.
Mekanisme dari dinamic loading adalah program utama di-load terlebih 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 yang diminta ke memori dan mengubah tabel alamat.
Dinamic Linking
Dynamic Linking (pengaitan dinamis) adalah suatu konsep dalam pengembangan perangkat lunak di mana kode atau fungsi yang digunakan oleh suatu program tidak dimasukkan secara langsung ke dalam program tersebut saat dikompilasi, tetapi ditautkan secara dinamis saat program dijalankan. Dalam pengaitan dinamis, ada file yang disebut dengan pustaka dinamis (dynamic library) yang berisi kode atau fungsi yang dapat digunakan oleh program. Ketika program dijalankan, sistem operasi akan mencari dan memuat pustaka dinamis yang diperlukan ke dalam memori. Kemudian, program akan menggunakan kode atau fungsi dari pustaka dinamis tersebut sesuai kebutuhan.
Keuntungan dari pengaitan dinamis adalah mengurangi ukuran file program yang dihasilkan dan memungkinkan berbagi kode atau fungsi antara beberapa program. Jika ada perubahan atau pembaruan pada pustaka dinamis, program yang menggunakan pustaka tersebut tidak perlu dikompilasi ulang, cukup dengan memuat versi pustaka yang baru.
Contoh pustaka dinamis yang umum digunakan adalah DLL (Dynamic-Link Library) pada sistem operasi Windows dan SO (Shared Object) pada sistem operasi Linux. Pengaitan dinamis juga digunakan dalam pengembangan aplikasi berbasis plugin, di mana plugin dapat ditambahkan atau dihapus secara dinamis tanpa perlu mengubah program utama.
Overlay
Sebuah proses dapat lebih besar daripada jumlah memori yang dialokasikan untuk proses. Teknik overlay biasnaya digunakan untuk kasus ini. Tekni overlay biasanya digunakan untuk memungkinkan sebuah proses mempunyai jummlah yang lebih besar dari memori fisik daripada alokasi memori yang diperuntukkan. Overlay tidak membutuhkan dukungan khusus dari sistem operasi. User dapat mengimplementasikannya secara lengkapmenggunakan struktur file sederhana, membaca dari file ke memori dan meloncat ke memori dan mengeksekusi instruksi read yang lebih baru.
Ruang Alamat Logika dan Fisik
Alamat yang diaktifkan oleh CPU disebut alamat logika (logical address) yang dimana alamat terlihat sebagai unit memori yang disebut alamat fisik (Phisical address). Tujuan utama manajemen memori adalah meletakkan ruang alamat logika ke ruang 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 diaktifkan oleh program disebut dengan ruang almat logika (logical address space). Himpunan dari semua alamat fisik yang berhubungan dengan alamat logika disebut dengan ruang alamat fisik (phisical address space). Memory Management Unit (MMU) adlaah perangkat kerasyang memetakan alamat virtual ke alamat fisik. Pada skema MMU, nilai register relokasi ditambahkan ke setiap alamat yang dibangkitkan ole proses user pada waktu dikirim ke memori.
Swapping
Swapping merupakan pemindahan proses dari memori utama ke disk dan kembali lagi. Sebuah proses harus berada di memori untuk dieksekusi. Proses juga bisa ditukar 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 memori image untuk semua user, sistem juga harus menyediakan akses langsung ke dalam memori image tersebut.
Memori dan Proses
- Monoprogramming
Manajemen memori yang paling sederhana, sistem komputer hanya mengijinkan satu program/pemakai berjalan pada satu waktu. Semua sumber daya sepenuhnya dikuasai oleh proses yang sedang berjalan.
Ciri – ciri dari monoprogrammming yaitu
- Hanya terdapat satu proses pada satu saat, sehingga proses baru akan menimpa proses lama yang sudah selesai eksekusi.
- Hanya satu proses mengunakan semua memori.
- Pemakai memusatkan program keseluruh memori dari disk atau tape.
- Program mengambil kendali seluruh mesin.
- Masih dipakai untuk sistem kecil yaitu sistem tempelan (embedded system) yang menempel atau terdapat disistem lain.
- Sistem-sistem tempelan menggunakan mikroprosesor kecil, seperti Intel 8051, dan sebagainya.
- Sistem ini biasanya untuk mengendalikan satu alat sehingga menjadi bersifat intelejen (intelegent devices) dalam menyediakan satu fungsi spesifik. Karena hanya satu fungsi spesifik, dapat diprogram di mikroprosesor dengan memori kecil (1-64 Kb).
- Multiprogramming
Multiprogramming dapat dilakukan dengan pemartisian statis, yaitu memori dibagi menjadi beberapa sejumlah partisi tetap. Pada partisi-partisi tersebut proses-proses ditempatkan. Melibatkan banyak pemakai secara simultan sehingga di memori akan terdapat lebih dari satu proses bersamaan.
Pengalokasian Memori
Salah satu tanggung jawab Sistem Operasi adalah mengontrol akses ke sumber daya sistem. Salah satunya adalah memori. Pengalokasian memori dibagi 2 tipe, yaitu : Pengalokasian berurutan (Contiguous Allocation), Pengalokasian tidak berurutan (Non Contiguous Allocation)
- Pengalokasian berurutan (Contiguous Allocation) adalah metode pengalokasian ruang penyimpanan di dalam sistem komputer. Dalam pengalokasian berurutan, file atau data disimpan secara berurutan dalam blok-blok yang berdekatan di dalam memori atau disk.
- Pengalokasian tidak berurutan (Non Contiguous Allocation) adalah metode pengalokasian ruang penyimpanan di dalam sistem komputer di mana file atau data tidak perlu disimpan secara berurutan atau berdekatan. Sebaliknya, blok-blok data bisa tersebar di berbagai lokasi di dalam memori atau disk.
Paging
Dalam sistem operasi komputer, paging adalah salah satu skema manajemen memori yang digunakan sistem operasi untuk menyimpan dan mengambil data dari penyimpanan sekunder untuk digunakan dalam memori utama. Dalam skema paging manajemen memori, sistem operasi mengambil data dari penyimpanan sekunder dengan ukuran blok yang sama yang disebut halaman. Keuntungan utama dari paging terhadap segmentasi adalah memungkinkan menggunakan ruang alamat memori fisik yang tidak berdekatan atau tidak berurutan. Sebelum paging mulai digunakan, sistem harus memasukkan program seluruhnya ke dalam penyimpanan yang bersambung, yang menyebabkan berbagai masalah penyimpanan dan fragmentasi.
Paging adalah bagian penting dari implementasi memori virtual pada sistem operasi yang kontemporer, yang memungkinkan mereka untuk menggunakan penyimpanan sekunder untuk data yang tidak dapat masuk secara fisik ke Random-Access Memory (RAM).
Segmentasi Memori adalah pembagian memori utama komputer menjadi segmen atau bagian. Dalam sistem komputer yang menggunakan segmentasi, referensi ke lokasi memori termasuk nilai yang mengidentifikasi segmen dan offset dalam segmen tersebut. Segmen atau bagian juga digunakan dalam file objek program dikompilasi ketika mereka dihubungkan bersama-sama ke citra program dan ketika gambar dimuat ke memori.
Segmen biasanya sesuai dengan divisi alami program seperti rutinitas individu atau tabel data sehingga segmentasi umumnya lebih terlihat programmer dari paging sendiri. Segmen yang berbeda dapat dibuat untuk modul program yang berbeda, atau untuk kelas yang berbeda dari penggunaan memori tersebut sebagai segmen kode dan data. Segmen tertentu dapat dibagi antara program
Kesimpulan
Dalam keseluruhan, manajemen memori sangat penting dalam menjaga stabilitas dan kinerja sistem operasi. Dengan manajemen memori yang baik, program dapat berjalan dengan lancar dan penggunaan memori dapat dioptimalkan.
Leave a Reply