Kuliah Umum Ilmu Komputer Matkul : Sistem Operasi Komputer Amad Samrodin, S.Kom Email : [email protected] Website : Samphp.co.cc BAB III MANAJEMEN MEMORY Manajemen memori merupakan bagian dari sistem operasi yang memiliki tugas untuk mengatur bagian memori. Tugas dari manajemen memori adalah untuk mengatur memori utama yang sedang digunakan dan mengalokasikan jumlah dan alamat memori yang diperlukan, baik untuk program yang sedang berjalan maupun untuk sistem operasi itu sendiri. Memori utama berfungsi sebagai tempat penyimpanan instruksi atau data yang akses datanya digunakan oleh CPU dan perangkat masukan/keluaran. 3.1 Tujuan dari manajemen memori adalah agar kemampuan dari penggunaan CPU meningkat dan untuk meningkatkan efisiensi pemakaian memori. Memori utama sebagai sumber daya yang harus dialokasikan dan dipakai bersama di antara sejumlah proses yang aktif. Agar dapat memanfaatkan CPU dan fasilitas masukan/keluaran secara efisian maka diinginkan memori dapat menampung proses sebanyak mungkin. Manajemen memori juga mengupayakan agar pemrogram atau proses tidak dibatasi oleh kapasitas memori fisik di sistem computer. 3.1.1 Ada beberapa istilah dalam manajemen memori a. Primary Memory b. Address Binding c. Dinamic Loading d. Dinamic Linking e. Swapping f. Manageman Memory Unit 3.1.2 Hirarki Memori Manajemen Memory OS BAB_3 1/12 Kuliah Umum Ilmu Komputer Matkul : Sistem Operasi Komputer Amad Samrodin, S.Kom Email : [email protected] Website : Samphp.co.cc Hierarki adalah urutan atau aturan dari tingkatan abstraksi menjadi seperti struktur; adalah sebuah pedoman yang dilakukan oleh para perancang demi menyetarakan kapasitas, waktu akses, dan harga memori untuk tiap bitnya. Sebagian besar sistem komputer memiliki hirarki memori yang terdiri dari tiga level, yaitu : 1. Register di CPU, berada di level teratas. Informasi yang berada di register dapat di akses dalam satu cycle CPU. 2. Primary Memory, berada di level tengah. Diukur dengan satu byte dalam satu waktu, secara relatif dapat diakses dengan cepat, dan bersifat volatile. CPU mengakses memori ini dengan instuksi singgle load dan store dalam beberapa clock cycle. 3. Secondary Memory, berada di level bawah. Di ukur sebagai kumpulan dari bytes, waktu aksesnya lambat dan bersifat non-volatile. Memori ini ditetapkan di storage device, jadi akses meliputi aksi oleh driver dan physical device. Contoh : HD, ROM Manajemen Memory OS BAB_3 2/12 Kuliah Umum Ilmu Komputer Matkul : Sistem Operasi Komputer Amad Samrodin, S.Kom Email : [email protected] Website : Samphp.co.cc Gambar 1. Hirarki Memori 3.2 Komputer yang lebih canggih memiliki level yang lebih banyak pada sistem hirarki memorinya, yaitu cache memory dan bentuk lain dari secondary memory seperti rotating magnetic memory, optical memory, dan sequntially access memory. Akan tetapi, masing-masing level ini hanya sebuah penyempurnaan salah satu dari tiga level dasar yang telah dijelaskan sebelumnya. Bagian dari sistem operasi yang mengatur hirarki memori disebut dengan memory manager. Di era multiprogramming ini, memory manager digunakan untuk mencegah satu proses dari penulisan dan pembacaan oleh proses lain yang dilokasikan di primary memory, mengatur swapping antara memori utama dan disk ketika memori utama terlalu kecil untuk memegang semua proses. Manajemen memori memiliki fungsi dan tujuan sebagai berikut : 1. Fungsi manajemen memori yaitu : Mengelola informasi mengenai memori yang dipakai dan tidak dipakai system Mengalokasikan memori ke proses yang memerlukan Mendealokasikan memori dari proses yang telah selesai menggunakan Mengelola swapping antara memori utaman dan harddisk Manajemen Memory OS BAB_3 3/12 Kuliah Umum Ilmu Komputer Matkul : Sistem Operasi Komputer Amad Samrodin, S.Kom Email : [email protected] Website : Samphp.co.cc 2. Tujuan manajeman memori antara lain : Meningkatkan utilitas CPU Data dan instruksi dapat diakses cepat oleh CPU Efisiensi dalam pemakaian memori yang terbatas Transfer dari/ke memori utama ke/dari CPU dapat lebih efisien 3.3 Konsep Dasar Memori 3.1.1. Proteksi Perangkat Keras Pada saat suatu proses sedang berjalan, ada keadaan dimana processor berhenti. Hal ini menandakan tidak adanya lagi data yang diproses oleh processor. Oleh karena itu, processor pastinya akan mencari data ke dalam memori. Pengaksesan data tersebut memerlukan banyak clock cycle. Situasi ini tidak bisa ditoleransi sehingga membutuhkan perbaikan dalam kecepatan pengaksesan antara CPU dan memori utama. Tidak hanya peduli tentang kecepatan tersebut, tetapi juga memastikan operasi yang benar untuk melindungi pengaksesan sistem operasi dari proses lainnya, dan melindungi proses yang satu dari pengaksesan proses lainnya pula. Perlindungan atau proteksi ini disediakan oleh perangkat keras. Kita harus memastikan bahwa masing-masing proses memiliki ruang memori yang terpisah. Fungsi dari proteksi ini untuk mencegah user program dari kesengajaan memodifikasi kode/struktur data baik di sistem operasi atau user lainnya. Jika proteksi gagal, semua hal yang dilakukan oleh program executing di user mode untuk mengakses memori sistem operasi atau memori user lainnya akan terperangkap di sistem operasi dan bisa menyebabkan kesalahan yang fatal, yaitu addressing error. 3.1.2. Address Binding Address binding adalah sebuah prosedur untuk menetapkan alamat fisik yang akan digunakan oleh program yang terdapat di dalam memori utama. Address binding yang dilakukan terhadap suatu program dapat dilakukan di 3 tahap yang berbeda, yaitu: Manajemen Memory OS BAB_3 4/12 Kuliah Umum Ilmu Komputer Matkul : Sistem Operasi Komputer Amad Samrodin, S.Kom Email : [email protected] Website : Samphp.co.cc a. Compilation time. Pada tahap ini sebuah program pada awalnya akan menghasilkan alamat berupa simbol-simbol, kemudian simbol-simbol ini akan langsung diubah menjadi alamat absolut atau alamat fisik yang bersifat statik. Bila suatu saat terjadi pergeseran alamat dari program tersebut maka untuk mengembalikan ke alamat yang seharusnya dapat dilakukan kompilasi ulang. b. Load time. Pada tahap ini awalnya program menghasilkan alamat berupa simbol-simbol yang sifatnya acak (relative address), kemudian akan dilakukan penghitungan ulang agar program tersebut ditempatkan pada alamat yang dapat dialokasikan ulang (relocateble address). Singkatnya binding terjadi pada waktu program telah selesai di- load. Execution time. Alamat bersifat relatif, binding akan dilakukan pada saat run time. Pada saat run time dibutuhkan bantuan hardware yaitu MMU (Memory Management Unit). 3.1.3. Ruang Alamat Logika dan Fisik Alamat yang dihasilkan oleh CPU berupa alamat logika, sedangkan yang masuk ke dalam memori adalah alamat fisik. Pada compile time dan load time, alamat fisik dan logika identik. Sebaliknya, perbedaan alamat fisik dan logika terjadi pada execution time. Kumpulan semua alamat logika yang dihasilkan oleh program adalah ruang alamat logika/ruang alamat virtual. Kumpulan semua alamat fisik yang berkorespondensi dengan alamat logika disebut ruang alamat fisik. Pada saat program berada di CPU, program tersebut memiliki alamat logika, kemudian oleh MMU dipetakan menjadi alamat fisik yang akan disimpan di dalam memori. Manajemen Memory OS BAB_3 5/12 Kuliah Umum Ilmu Komputer Matkul : Sistem Operasi Komputer Amad Samrodin, S.Kom Email : [email protected] Website : Samphp.co.cc Gambar 2 Relokasi dinamis dengan menggunakan Relocation Register 3.1.4. Pemuatan Dinamis Ukuran dari memori fisik terbatas. Supaya utilitas memori berjalan dengan baik, maka kita menggunakan pemuatan dinamis. Dengan cara ini, routineroutine hanya akan dipanggil jika dibutuhkan. Ilustrasi sebagai berikut, semua routine disimpan di disk dalam format yang dapat dialokasikan ulang (relocatable load format). Program utama diletakkan di memori dan dieksekusi. Ketika sebuah routine memanggil routine yang lain, hal pertama yang dilakukan adalah mengecek apakah ada routine lain yang sudah di-load. Jika tidak, relocatable linking loader dipanggil untuk menempatkan routine yang dibutuhkan ke memori dan memperbaharui tabel alamat program. Lalu, kontrol diberikan pada routine baru yang dipanggil. Keuntungan dari pemuatan dinamis adalah routine yang tidak digunakan tidak pernah dipanggil. Metode ini berguna pada kode yang berjumlah banyak, ketika muncul kasus seperti routine yang salah. Walaupun ukuran kode besar , porsi yang digunakan bisa jauh lebih kecil. Sistem operasi tidak membuat mekanisme pemuatan dinamis, tetapi hanya menyediakan routineroutine untuk menerapkan mekanisme ini. User-lah yang merancang programnya sendiri agar programnya menggunakan sistem pemuatan dinamis. Manajemen Memory OS BAB_3 6/12 Kuliah Umum Ilmu Komputer Matkul : Sistem Operasi Komputer Amad Samrodin, S.Kom Email : [email protected] Website : Samphp.co.cc 3.1.5. Linking Dinamis Pustaka bisa bersifat statik, dikenal dengan archive yang terdiri dari kumpulan routine yang diduplikasi ke sebuah program oleh compiler, linker, atau binder, sehingga menghasilkan sebuah aplikasi yang dapat dieksekusi (bersifat stand alone atau dapat berjalan sendiri). Compiler menyediakan standard libraries, misalnya C standard library, tetapi programmer bisa juga membuat pustakanya untuk digunakan sendiri atau disebarkan. Pustaka statis ini menyebabkan memori menjadi berat. Oleh karena itu, seiring dengan perkembangan teknologi, terdapat pustaka yang bersifat dinamis. Mekanismenya disebut linking dinamis, sedangkan pustakanya disebut dynamically linked library. Linking Dinamis artinya data (kode) di pustaka tidak diduplikasi ke dalam program pada compile time, tapi tinggal di file terpisah di disk Linker hanya membutuhkan kerja sedikit pada compile time. Fungsi linker adalah mencatat apa yang dibutuhkan oleh pustaka untuk eksekusi dan nama indeks atau nomor. Kerja yang berat dari linking akan selesai pada load time atau selama run time. Kode penghubung yang diperlukan adalah loader. Pada waktu yang tepat, loader menemukan pustaka yang relevan di disk dan menambahkan data dari pustaka ke proses yang ada di ruang memori. Keuntungan dari linking dinamis adalah memori program tidak menjadi berat. 3.4 Alokasi Memori Didalam pengalokasian sebuah Memori ada macam yakni : Swap, Pemetaan Memori, Partisi Memori, Fragmentasi Memori 3.4.1 Swap Sebuah proses, sebagaimana telah diterangkan di atas, harus berada di memori sebelum dieksekusi. Proses swapping menukarkan sebuah proses keluar dari memori untuk sementara waktu ke sebuah penyimpanan sementara dengan sebuah proses lain yang sedang membutuhkan sejumlah alokasi memori untuk dieksekusi. Tempat penyimpanan sementara ini biasanya berupa sebuah fast disk dengan kapasitas yang dapat menampung semua salinan dari semua gambaran memori serta menyediakan Manajemen Memory OS BAB_3 7/12 Kuliah Umum Ilmu Komputer Matkul : Sistem Operasi Komputer Amad Samrodin, S.Kom Email : [email protected] Website : Samphp.co.cc akses langsung ke gambaran tersebut. Jika eksekusi proses yang dikeluarkan tadi akan dilanjutkan beberapa saat kemudian, maka ia akan dibawa kembali ke memori dari tempat penyimpanan sementara tadi. Bagaimana sistem mengetahui proses mana saja yang akan dieksekusi? Hal ini dapat dilakukan dengan ready queue. Ready queue berisikan semua proses yang terletak baik di penyimpanan sementara maupun memori yang siap untuk dieksekusi. Ketika penjadwal CPU akan mengeksekusi sebuah proses, ia lalu memeriksa apakah proses bersangkutan sudah ada di memori ataukah masih berada dalam penyimpanan sementara. Jika proses tersebut belum berada di memori maka proses swapping akan dilakukan seperti yang telah dijelaskan di atas. Gambar 3. Proses Swapping 3.4.2 Pemetaan Memori Sistem operasi dan berbagai proses pengguna terletak di dalam memori utama. Oleh karena itu, kita harus menjaga agar proses diantara keduanya tidak bercampur dengan cara mengalokasikan sejumlah bagian memori tersebut untuk sistem operasi dan proses pengguna. Memori ini biasanya dibagi menjadi 2 bagian. Satu untuk sistem operasi, dan satu lagi untuk proses pengguna. 3.4.3 Partisi Memori Memori harus di diatur agar penempatan proses-proses tersebut dapat tersusun dengan baik. Hal tersebut berkaitan dengan banyaknya jumlah proses yang berada di Manajemen Memory OS BAB_3 8/12 Kuliah Umum Ilmu Komputer Matkul : Sistem Operasi Komputer Amad Samrodin, S.Kom Email : [email protected] Website : Samphp.co.cc memori pada suatu saat/waktu. Cara yang paling mudah adalah dengan membagi memori ke dalam beberapa partisi dengan ukuran yang tetap. Cara ini memungkinkan pembagian yang tidak sama rata. Tiap partisi dapat terdiri dari hanya satu buah proses. Sehingga derajat multiprogramming-nya dibatasi oleh jumlah partisi tersebut. 3.4.4 Fragmentasi Memori Fragmentasi merupakan fenomena munculnya lubang-lubang (ruang memori kosong) yang tidak cukup besar untuk menampung permintaan alokasi memori dari proses. Fragmentasi terdiri dari dua jenis yaitu fragmentasi eksternal dan fragmentasi internal. 3.5 Configurasi Share Memori Dalam VGA Perlu diingat sebelum menambah shared memory harus memastikan bahwa RAM yang anda gunakan memang mencukupi dalam menghandle aplikasi yang biasa gunakan dan bisa diasumsikan bahwa sisa pemakaian memory RAM masih banyak dan cukup untuk dibagi menjadi Buffer memory VGA. Kalau dirasa Ukuran RAM pas-pasan lebih baik upgrade terlebih dahuulu RAM yang gunakan sesuai jumlah pemakaian applikasi dan maksimal batas kemampuan shared memory VGA. 3.5.1 Cara Melakukan Share Memori : 1. Masuk ke BIOS 2. Kemudian setting Video RAM (VGA Shared Memory Size) 3. Setting jumlah shared memory yang anda inginkan. 4. Save dan Exit NB : Besar kecilnya nilai memory yang diambil tergantung dari Jenis VGA Onboardnya dan besarnya kapasitas RAM yang terpasang. Pastikan juga bahwa VGA yang anda gunakan merupakan VGA onboard (bisa di share) tapi jika VGA yang anda gunakan adalah VGA dedicated tentu saja tidak Manajemen Memory OS BAB_3 9/12 Kuliah Umum Ilmu Komputer Matkul : Sistem Operasi Komputer Amad Samrodin, S.Kom Email : [email protected] Website : Samphp.co.cc bisa share dengan RAM karena pada VGA dedicated mempunyai Graphic memory tersendiri yang bekerja pada sistem GPU VGA. 3.5.2 Menambah virtual memory komputer (setting virtual memory) Salah satu fasilitas yang disediakan oleh windows adalah virtual memory. Virtual memory merupakan memori cadangan yang diatur oleh windows dengan mengalokasikan sebagian ruang hardisk yang dapat digunakan (berfungsi) sebagai memory jika memory fisik (ddr ram) komputer sudah penuh terpakai oleh aplikasi yang berjalan di komputer. Virtual memory ini sangat membantu dalam menunjang kinerja windows khususnya XP. Cara melakukan setting atau configurasi virtual memory windows di komputer agar kinerja windows xp lebih optimal. Berikut adalah cara mengatur (setting) virtual memory windows. 1. Pada start menu pilih setting -> Control Panel. Pada window Control panel double klik icon System 2. Pada kotak dialog system properties atau System Protection, pilih tabulasi Advanced, pada bagian Performance klik Settings Manajemen Memory OS BAB_3 10/12 Kuliah Umum Ilmu Komputer Matkul : Sistem Operasi Komputer Amad Samrodin, S.Kom Email : [email protected] Website : Samphp.co.cc 3. Pada kotak dialog performace option pilih tab Advanced klik tombol Change 4. Pada kotak dialog Virtual Memory: Manajemen Memory OS BAB_3 11/12 Kuliah Umum Ilmu Komputer Matkul : Sistem Operasi Komputer Amad Samrodin, S.Kom Email : [email protected] Website : Samphp.co.cc a. Bagian Drive: pilih drive yang akan anda jadikan virtual memory, misalnya D (Uasahakan gunakan partisi yang masih kosong, jika tidak ada partisi hardisk anda pilih saja drive C) b. Bagian Custom Size, ketik angka sesuai keinginan anda, saya memilih maximum size 1000 MB, jika anda punya ruang hardisk yang besar bisa gunakan angka yang lebih tinggi l c. Klik tombol Set d. Klik tombol OK 5. Tutup kotak dialog yang lain dengan menekan tombol OK. Virtual memory komputer sudah aktif, perubahan dan peningkatan kinerja windows xp di komputer Manajemen Memory OS BAB_3 12/12