Sabtu, 15 Mei 2010

Tugas Arkom, Pak...

“ Managing Memory ”

Memori manajemen adalah tindakan pengelolaan memori komputer. Dalam bentuknya yang sederhana, ini melibatkan menyediakan cara untuk mengalokasikan tiap partisi memori untuk program atas permintaan mereka, dan membebaskan untuk digunakan kembali ketika tidak lagi dibutuhkan. Manajemen memori utama sangat penting untuk sistem komputer.

Virtual Memory sistem yang terpisah alamat memori yang digunakan oleh sebuah proses dari alamat fisik yang sebenarnya, yang memungkinkan proses pemisahan dan meningkatkan jumlah efektif yang tersedia RAM menggunakan disk swapping . Kualitas manajer memori virtual dapat memiliki dampak besar pada kinerja sistem secara keseluruhan.

Pengumpulan sampah adalah alokasi otomatis, dan dealokasi sumber daya memori komputer untuk program. Hal ini umumnya dilaksanakan pada tingkat bahasa pemrograman dan bertentangan dengan manajemen memori manual , alokasi dan dealokasi eksplisit sumber daya memori komputer.

 

Relokasi

Dalam sistem dengan memori virtual, program-program di memori harus mampu berada di berbagai bagian memori pada waktu yang berbeda. Hal ini karena ketika program swap kembali ke dalam memori setelah bertukar keluar untuk sementara tidak dapat selalu ditempatkan di lokasi yang sama. Unit manajemen virtual memory juga harus berurusan dengan konkurensi. Manajemen memori dalam sistem operasi sehingga harus dapat pindah program di memori dan menangani referensi memori dan alamat dalam kode program sehingga mereka selalu merujuk ke lokasi yang tepat di memori.

 

Perlindungan

Proses tidak harus dapat referensi memori untuk proses lain tanpa izin. Ini disebut perlindungan memori , dan mencegah kode berbahaya atau rusak dalam satu program dari mengganggu pengoperasian program yang berjalan lain.

* Memori virtual (dalam bahasa Inggris: virtual Memory) adalah sebuah mekanisme yang digunakan oleh aplikasi untuk menggunakan sebagian dari memori sekunder seolah-olah ia menggunakannya sebagai RAM fisik yang terinstal di dalam sebuah sistem. Mekanisme ini beroperasi dengan cara memindahkan beberapa kode yang tidak dibutuhkan ke sebuah berkas di dalam hard drive yang disebut dengan swap file, page file atau swap partition.

Dalam sistem operasi berbasis Windows NT, terdapat sebuah komponen yang mengatur memori virtual, yakni Virtual Memory Manager (VMM). VMM dapat memetakan alamat-alamat virtual yang dimiliki oleh sebuah proses yang berjalan ke dalam page memori fisik di dalam komputer. Dengan cara begini, setiap proses pun dapat memperoleh memori virtual yang cukup agar dapat berjalan, dan yang terpenting adalah setiap proses tidak mengganggu memori yang sedang digunakan oleh proses lainnya. VMM menangani paging antara RAM dan page file, dengan memindahkan page dengan menggunakan sebuah cara yang disebut sebagai demand paging. Hasilnya, setiap aplikasi 32-bit pun dapat mengakses memori hingga 4 gigabyte (meskipun Windows hanya membatasi proses yang berjalan dalam modus pengguna hanya sebatas 2 GB saja).

 

Memori Virtual 6,6, Perlindungan, dan Pager

Dalam sistem operasi modern seperti Linux atau Windows, sangat umum untuk memiliki beberapa program yang berbeda berjalan secara bersamaan dalam memori. This presents several problems. Ini menyajikan berbagai permasalahan. Pertama, bagaimana Anda menjaga program dari mengganggu satu sama lain? Kedua, jika salah satu program mengharapkan untuk memuat ke memori pada alamat $ 1.000 dan program kedua juga mengharapkan untuk load ke memori pada alamat $ 1000, bagaimana Anda dapat memuat dan menjalankan kedua program pada saat yang sama? Satu pertanyaan terakhir kita bisa bertanya adalah apa yang terjadi jika komputer kita memiliki 64 MB memori dan kami memutuskan untuk memuat dan menjalankan tiga aplikasi yang berbeda, dua di antaranya membutuhkan 32 megabyte dan satu yang membutuhkan 16 megabyte (belum lagi memori sistem operasi membutuhkan untuk keperluan sendiri)? Jawaban atas semua pertanyaan ini terletak pada subsistem memori virtual prosesor 80x86 dukungan.

Virtual memory pada 80x86 memberikan setiap proses 32 bit sendiri ruang alamat-nya .  Ini berarti bahwa alamat $ 1000 dalam satu program secara fisik berbeda dari alamat $ 1000 dalam program yang terpisah. The 80x86 mencapai ini sulapan dengan menggunakan paging untuk memetakan alamat virtual dalam satu program untuk alamat fisik yang berbeda di memori. Sebuah alamat virtual pada alamat memori yang menggunakan program. Alamat fisik adalah pola bit dari benar-benar muncul di alamat bus CPU. Kedua tidak harus sama (dan biasanya, mereka tidak). Misalnya, program alamat virtual # 1's $ 1000 mungkin benar-benar sesuai dengan alamat fisik $ 215.000 saat program alamat virtual # 2's $ 1.000 mungkin sesuai dengan memori fisik alamat $ 300.000. Bagaimana CPU melakukan ini?  Mudah, dengan menggunakan paging.

Konsep di balik paging cukup sederhana. Pertama, Anda membagi memori menjadi blok-blok byte yang disebut halaman. Sebuah halaman dalam memori utama adalah sebanding dengan baris cache dalam subsistem cache, meskipun halaman biasanya jauh lebih besar daripada baris cache. Sebagai contoh, CPU 80x86 gunakan ukuran halaman 4.096 bytes.

Setelah putus memori ke halaman, Anda menggunakan tabel pencarian untuk menerjemahkan HO bit dari alamat virtual untuk memilih halaman; Anda menggunakan LO bit dari alamat virtual sebagai indeks ke halaman. Misalnya, dengan halaman 4.096 byte, Anda akan menggunakan LO 12 bit dari alamat virtual sebagai offset dalam halaman di memori fisik. Atas 20 bit dari alamat yang akan digunakan sebagai indeks ke tabel pencarian yang mengembalikan aktual atas 20 bit dari alamat fisik (lihat gambar di bawah ini)




Menerjemahkan sebuah Alamat Virtual ke Alamat Fisik

 

Tersegmentasi virtual memory

Beberapa sistem, seperti system besar burroighis , tidak menggunakan paging untuk mengimplementasikan memori virtual. Sebaliknya, mereka menggunakan segmentasi, sehingga ruang alamat virtual's aplikasi dibagi menjadi segmen-panjang variable. Alamat maya terdiri dari beberapa segmen dan offset dalam segmen tersebut.

Terutama Intel 80826 didukung skema segmentasi yang sama sebagai pilihan, tapi itu tidak digunakan oleh sistem operasi.

Hal ini dimungkinkan untuk menggabungkan segmentasi dan paging, biasanya membagi setiap segmen ke halaman. Dalam sistem yang menggabungkan mereka, seperti Multics dan Sysrem/38 dan IBM System mesin, memori virtual biasanya diimplementasikan dengan paging, dengan segmentasi digunakan untuk menyediakan perlindungan memori.  Dengan Intel 80836 dan kemudian IA-32 prosesor, segmen berada dalam 32-bit paged ruang alamat linier, sehingga segmen dapat dipindahkan ke dalam dan keluar dari ruang alamat linier, dan halaman di ruang alamat linier dapat dipindahkan masuk dan keluar dari memori utama , menyediakan dua tingkat memori virtual, namun jika ada beberapa sistem operasi melakukannya. Instead, they only use paging. Sebaliknya, mereka hanya menggunakan paging. Awal virtualisai x 86 solusi (non-hardware-dibantu) dieksploitasi namun kombinasi dari paging dan segmentasi: x86 paging hanya menawarkan dua domain perlindungan, sedangkan VMM / OS guest / tamu aplikasi stack (biasanya berjalan pada cincin 0 / 1 / 3) kebutuhan tiga domain perlindungan memori.

Perbedaan antara implementasi memori virtual menggunakan halaman dan menggunakan segmen bukan hanya tentang pembagian memori dengan ukuran tetap dan variabel, masing-masing. Dalam beberapa sistem, misalnya Multics , atau lambat Sysrem/38 dan Perdana mesin, segmentasi itu sebenarnya terlihat oleh pengguna proses, sebagai bagian dari semantik model memori. Dengan kata lain, bukan sebuah proses hanya memiliki memori yang tampak seperti vektor besar tunggal byte atau kata-kata, itu lebih terstruktur. Hal ini berbeda dengan menggunakan halaman, yang tidak mengubah model terlihat pada proses. Hal ini memiliki konsekuensi penting.

 Segmen bukan hanya halaman "dengan panjang variabel", atau cara sederhana untuk memperpanjang ruang alamat (seperti pada Intel 80826). Dalam Multics, segmentasi itu merupakan mekanisme yang sangat kuat yang digunakan untuk menyediakan model single-level memori virtual, di mana tidak ada pembedaan antara "memori proses" dan "file system" - sebuah proses 'ruang alamat aktif hanya terdiri daftar segmen (file) yang dipetakan ke ruang alamat potensi, baik kode dan data. Tidaklah sama dengan kemudian mmap fungsi dalam Unix, karena antar-file pointer tidak bekerja saat file pemetaan ke semi- sewenang-wenang tempat. Multics had such an addressing mode built into most instructions. Multics memiliki seperti mode pengalamatan dibangun menjadi petunjuk yang paling. Dengan kata lain itu bisa melakukan pindah-segmen referensi antar, sehingga menghilangkan kebutuhan akan penghubung sepenuhnya. Ini juga bekerja ketika proses yang berbeda memetakan file yang sama ke tempat yang berbeda dalam ruang alamat pribadi mereka.