Rabu, 18 Januari 2012

Memori

Memori adalah pusat kegiatan pada sebuah komputer, karena setiap proses yang akan dijalankan harus memlalui memori terlebih dahulu. CPU mengambil instruksi dari memori sesuai dengan yang ada pada program counter. Tugas sistem operasi adalah mengatur peletakan banyak proses pada suatu memori.
Sebelum masuk ke memori, suatu proses harus menunggu di sebuah input queue, setelah itu barulah mereka akan diberikan alamat pada memori. Pemberian alamat dapat dilakukan pada waktu compile, waktu pemanggilan, dan waktu eksekusi. Alamat logika (virtual) adalah alamat yang dibentuk di CPU, sedangkan alamat fisik adalah alamat yang terlihat oleh memori. Seluruh proses dan data berada dalam memori ketika dieksekusi. Berhubung ukuran dari memori fisik terbatas, kita harus melakukan pemanggilan dinamis untuk mendapatkan utilisasi ruang memori yang baik.
Sebuah proses dapat di-swap sementara keluar memori ke sebuah backing store untuk kemudian dibawa masuk lagi ke memori untuk melanjutkan pengeksekusian. Salah satu proses yang memanfaatkan metode ini adalah roll out, roll in, yang pada intinya adalah proses swapping berdasarkan prioritas.
Agar main memory dapat melayani sistem operasi dan proses dengan baik, dibutuhkan pembagian memori seefisien mungkin. Salah satunya adalah dengan contiguous memory allocation. Artinya alamat memori diberikan kepada OS secara berurutan dari kecil ke besar. Ruang memori yang masih kosong dan dapat dialokasikan untuk proses disebut hole. Metode pencarian hole ada beberapa, diantaranya adalah first fit, next fit, best fit, worst fit. Masalah yang sering muncul dalam pengalamatan memori adalah fragmentasi (baik intern maupun ekstern), yaitu munculnya hole-hole yang tidak cukup besar untuk menampung permintaan dari proses.
Paging adalah suatu metode yang memungkinkan suatu alamat fisik memori yang tersedia dapat tidak berurutan. Prinsipnya adalah memecah memori fisik dan memori logika menjadi blok-blok dengan ukuran sama (disebut page). Setelah itu kita membuat page table yang akan menerjemahkan memori logika menjadi memori fisik dengan perantara Memory Management Unit (MMU), dan pengeksekusian proses akan mencari memori berdasarkan tabel tersebut.
Segmentasi adalah skema manajemen memori dengan cara membagi memori menjadi segmen-segmen. Berbeda dengan page, ukuran tiap segmen tidak harus sama dan memiliki ciri tertentu, yaitu nama dan panjang segmen.
Memori virtual adalah suatu teknik yang memisahkan antara memori logika dan memori fisiknya. Keuntungannya adalah memori virtual dapat menampung program dalam skala besar, menurunnya lalu lintas I/O, ruang memori menjadi lebih leluasa, meningkatnya respon, dan bertambahnya jumlah user yang dapat dilayani. Demand paging adalah salah satu implementasi memori virtual yang umum digunakan, yakni mengatur agar page tidak akan dibawa ke memori fisik sampai benar-benar dibutuhkan. Mengukur kinerja demand paging adalah dengan mengukur Effective Access Time-nya. Beberapa teknik yang disediakan memori virtual untuk meningkatkan kinerja pembuatan dan pengeksekusian suatu proses antara lain adalah copy-on-write dan memory-mapped files.
Konsep page replacement adalah jika tidak ada frame yang kosong, carilah frame yang tidak sedang digunakan, lalu dikosongkan dengan swapping dan ubah semua tabelnya sebagai indikasi bahwa page tersebut tidak akan lama berada di dalam memori. Beberapa algoritma page replacement: First-in-First-Out (FIFO), Optimal, Counting, LRU, dan Perkiraan LRU.
Masalah yang penting dari alokasi frame dengan penggunaan memori virtual adalah bagaimana membagi memori dengan bebas untuk beberapa proses yang sedang dikerjakan. Contoh algoritma yang lazim digunakan adalah equal allocation dan proportional allocation.
Algoritma page replacement dapat diklasifikasikan dalam 2 kategori, yaitu penggantian global dan penggantian lokal. Perbedaan antara keduanya terletak pada boleh tidaknya setiap proses memilih frame pengganti dari semua frame yang ada.
Utilitas dari CPU dapat menyebabkan trashing, dimana sistem sibuk melakukan swapping dikarenakan banyaknya page-fault yang terjadi. Efek dari trashing dapat dibatasi dengan algoritma penggantian lokal atau prioritas. Cara untuk mengetahui berapa banyak proses yang dibutuhkan suatu proses salah satunya adalah dengan strategi working set.
Pemilihan algoritma penggantian dan aturan alokasi adalah keputusan-keputusan utama yang kita buat untuk sistem paging. Selain itu, ada beberapa pertimbangan lain, antara lain prepaging, TLB reach, ukuran page, struktur program, I/O interlock, dan lain sebagainya. Beberapa contoh sistem operasi yang mengimplementasikan virtual memori adalah Windows NT, Solaris 2 dan Linux.
READMORE - Memori