Pages

Subscribe:

Ads 468x60px

.

Sabtu, 03 Desember 2011

MANAJEMEN MEMORI PADA MAC OS X



Konsep Dasar
Memori adalah pusat dari kegiatan komputer , karena setiap proses yang akan dijalankan harus melewati memori terlebih dahulu.karena untuk dapat dieksekusi  program harus dibawa ke memori untuk dieksekusi.
Pada umumnya mikrokernel mendukung proses dan menajemen memori yang minimal, sebagai tambahan untuk fasilitas komunikasi. Bagian ini menjelaskan bagaimana linux menangani memori dalam sistem. Memori managemen 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 adil
Managemen memori membuat pembagian yang adil dalam pengalokasian memori antara proses-proses.
3.Perlindungan
Memori managemen 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.
1.      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.
2.      Monitoring  manajemen memory di mac os x
Mac os x memiliki manajemen memori yang sangat efisien . sistem operasi Mac secara otomatis akan  mengalokasikan memori dan menyesuaikan isi memori dengan kebutuhan
Cara melihat ataupun  memonitoring manajemen memory yang ada di dalam mac os x dapat dilakukan dengan cara  memilih (Applications > Utilities > Activity Monitor>system Memory
Empat jenis memori muncul dalam diagram pie Memori Sistem tab ini: Gratis, Wired, Aktif, dan Tidak aktif. Jumlah irisan grafik pie empat sama dengan jumlah total random-access memory (RAM) yang diinstal pada komputer Anda. RAM adalah memori kecepatan tinggi yang digunakan untuk menyimpan informasi yang digunakan atau digunakan yang paling baru. Informasi dalam RAM adalah load dari hard disk Anda pada saat startup dan ketika Anda membuka aplikasi dan dokumen.
Berikut adalah jendela sampel dengan tab System Memory dipilih:
Berikut ini adalah penjelasan dari komponen system memori
Free memori
Adalah Jumlah Memori Ram yang tidak digunakan
Wired memori
Informasi dalam memori ini tidak dapat dipindahkan ke dalam harddisk,sehingga harus tetap di RAM.Jumlah wired memori tergantung pada aplikasi yang digunakan / dijalankan
Active memory
Informasi ini sedang dalam memori, dan telah baru saja digunakan
inActive Memory
Informasi ini berisi memori yang tidak aktif digunakan , namun baru saja digunakan
Misalnya, jika Anda telah menggunakan Mail dan kemudian berhenti itu, RAM yang menggunakan Mail adalah ditandai sebagai memori aktif. Memori ini aktif tersedia untuk digunakan oleh aplikasi lain, seperti free memory. Namun, jika Anda membuka Mail sebelum memori aktif yang digunakan oleh aplikasi yang berbeda, Mail akan membuka lebih cepat karena memori tidak aktif adalah dikonversi ke memori aktif, bukannya memuat Mail dari hard disk lebih lambat.
Used Memory
Ini adalah jumlah total memori yang digunakan.
VM SIZE
Ini adalah jumlah total dari Memori Virtual untuk semua proses pada Mac Anda.
Page in / Page out
Hal ini mengacu pada jumlah informasi dipindahkan antara RAM dan hard disk. Nomor ini adalah jumlah kumulatif data bahwa Mac OS X telah pindah antara RAM dan ruang disk.
Tip: Halaman out terjadi ketika Mac Anda harus menulis informasi dari RAM ke hard drive (karena RAM sudah penuh). Menambahkan RAM lebih dapat mengurangi out halaman
Swap Used
Ini adalah jumlah informasi yang disalin ke file swap pada hard drive Anda.


3.      Arsitektur dan Organisasi Memory di Mac os x

a)      Organisasi Memori di Mac OS

Ketika Sistem Operasi Macintosh dijalankan, membagi RAM yang tersedia menjadi dua bagian yang luas. Hal cadangan untuk dirinya sendiri sebuah zona atau partisi memori yang dikenal sebagai sistem partisi. Partisi sistem selalu dimulai pada byte addressable memori terendah (Alamat memori 0) dan memanjang ke atas.
Semua memori luar partisi sistem tersedia untuk alokasi aplikasi atau
komponen perangkat lunak lainnya. Dalam versi 7.0 perangkat lunak sistem dan kemudian (atau ketika MultiFinder berjalan dalam versi perangkat lunak sistem 5.0 dan 6.0), pengguna dapat memiliki beberapa aplikasi terbuka sekaligus. Ketika aplikasi diluncurkan, Mengoperasikan Sistem memberikan sebuah bagian dari memori yang dikenal sebagai aplikasi partisi. Secara umum, sebuah
aplikasi hanya menggunakan memori yang terkandung dalam aplikasi partisi sendiri.
Gambar: Memori organisasi di Mac dengan membuka beberapa aplikasi.

 

b)      Heap Sistem
Bagian utama dari partisi sistem adalah daerah memori yang dikenal sebagai tumpukan sistem. Dalam umum, sistem tumpukan dicadangkan untuk penggunaan eksklusif oleh Sistem Operasi dan lainnya komponen sistem perangkat lunak, berbagai item yang memuat ke dalamnya seperti sumber daya sistem, segmen kode sistem, dan sistem data struktur. Semua sistem buffer dan antrian, untuk Misalnya, dialokasikan dalam tumpukan sistem. Driver perangkat keras (disimpan sebagai sumber kode tipe 'DRVR') yang dimuat ke dalam tumpukan sistem ketika pengemudi dibuka.


c)      Variabel Sistem Global
Bagian terendah dari memori ditempati oleh kumpulan variabel global yang disebut sistem variabel global (atau rendah memori sistem s variabel global). Sistem Operasi menggunakan variabel-variabel ini untuk menjaga berbagai jenis informasi tentang operasi lingkungan. Misalnya,  variabel global ApplZone berisi alamat dari byte pertama dari aplikasi yang aktif di partisi. Variabel global ApplLimit berisi alamat dari byte terakhir heap aplikasi yang aktif bisa diperluas untuk mencakup. Para CurrentA5 variabel global berisi alamat dari batas antara aplikasi yang aktif yang variabel global dan parameter penerapannya. Karena variabel global mengandung informasi tentang aplikasi yang aktif, Sistem Operasi perubahan nilai-nilai variabel-variabel ini setiap kali terjadi context switch. Biasanya, ketika nilai variabel rendah memori global kemungkinan akan berguna untuk aplikasi, perangkat lunak sistem menyediakan rutin yang dapat Anda gunakan untuk membaca atau menulis bahwa nilai.

d)     Organisasi Memori dalam sebuah Partisi Aplikasi
Bila aplikasi Anda diluncurkan, Sistem Operasi untuk mengalokasikan sebuah partisi memori disebut partisi penerapannya.
Partisi aplikasi Anda dibagi menjadi tiga bagian utama:
1. aplikasi stack
2. tumpukan aplikasi
3. variabel aplikasi global dan A5 dunia

Heap terletak di ujung rendah memori partisi aplikasi Anda dan selalu mengembang (bila perlu) ke memori tinggi. A5 dunia terletak di high- memori akhir partisi aplikasi Anda dan ukuran tetap. Stack dimulai pada memori rendah akhir dunia A5 dan mengembang ke bawah, ke arah bagian atas tumpukan.
Biasanya ada area yang tidak terpakai dari memori antara stack dan heap. Ini yang tidak terpakai daerah menyediakan ruang untuk stack untuk tumbuh tanpa melanggar batas ruang ditugaskan untuk
tumpukan aplikasi. Dalam beberapa kasus, bagaimanapun, stack akan tumbuh menjadi ruang dicadangkan untuk tumpukan aplikasi. Jika ini terjadi, sangat mungkin bahwa data dalam tumpukan akan menjadi rusak. Variabel global ApplLimit menandai batas atas tumpukan yang Anda dapat tumbuh. Jika Anda memanggil prosedur MaxApplZone pada awal program anda, tumpukan segera meluas sepanjang jalan sampai ke batas ini. Jika Anda menggunakan semua ruang bebas tumpukan itu, Manajer memori tidak akan memungkinkan Anda untuk mengalokasikan tambahan blok atas ApplLimi t. Jika Anda tidak menghubungi e MaxApplZon, tumpukan tumbuh ke arah ApplLimit setiap kali Memory Manager menemukan bahwa tidak ada cukup memori pada tumpukan untuk mengisi permintaan. Namun, setelah tumpukan tumbuh sampai ApplLimi t, dapat tumbuh
tidak lebih. Jadi, apakah Anda memaksimalkan tumpukan aplikasi Anda atau tidak, Anda dapat menggunakan hanya ruang antara bagian bawah tumpukan dan ApplLimi t.

Tidak seperti heap, stack tidak dibatasi oleh ApplLimi t. Jika aplikasi Anda menggunakan sangat bersarang prosedur dengan variabel lokal atau menggunakan rekursi luas, tumpukan bisa tumbuh ke bawah melampaui ApplLimi t. Karena Anda tidak menggunakan memori Rutinitas Manager untuk mengalokasikan memori pada stack, Manajer memori tidak bisa berhenti Anda stack dari tumbuh melampaui ApplLimit dan mungkin melanggar batas ruang
dicadangkan untuk tumpukan. Namun, tugas menelusuri kembali vertikal sekitar 60 kali pemeriksaan setiap detik untuk melihat apakah stack telah pindah ke tumpukan. Jika memiliki, tugas, yang dikenal sebagai "Stack sniffer," menghasilkan kesalahan sistem. Ini kesalahan sistem memberitahu Anda bahwa Anda telah stack memungkinkan untuk tumbuh terlalu jauh, sehingga Anda dapat membuat penyesuaian.
Catatan:
Untuk memastikan selama debugging bahwa aplikasi Anda menghasilkan ini kesalahan sistem jika
tumpukan melampaui ApplLimi t, Anda harus menghubungi MaxApplZone pada awal Anda program untuk memperluas tumpukan untuk ApplLimi t.
Stack Aplikasi 1 Tumpukan adalah daerah memori dalam partisi aplikasi Anda yang dapat tumbuh atau menyusut pada salah satu ujung sementara ujung lainnya tetap tetap. Ini berarti bahwa ruang di stack selalu dialokasikan dan dirilis pada LIFO (last-in, first-out) pesanan. Item terakhir yang dialokasikan selalu yang pertama akan dirilis. Ini juga berarti bahwa daerah yang dialokasikan dari stack selalu berdekatan. Ruang ini dirilis hanya di bagian atas tumpukan, tidak pernah di tengah, sehingga ada akan pernah ada belum dialokasikan "lubang" di stack.
Dengan konvensi, stack tumbuh dari memori tinggi terhadap alamat memori rendah. Para akhir stack yang tumbuh atau menyusut biasanya disebut sebagai "atas" dari tumpukan, bahkan meskipun sebenarnya di ujung bawah dari memori ditempati oleh stack. Bila aplikasi Anda panggilan rutin, ruang secara otomatis dialokasikan pada stack untuk tumpukan bingkai. Sebuah stack frame berisi parameter rutin itu, variabel lokal, dan kembali alamat.
Catatan:
Alokasi memori dinamis pada stack biasanya ditangani secara otomatis jika Anda
menggunakan bahasa tingkat tinggi seperti Pascal pengembangan. Compiler menghasilkan kode yang menciptakan dan menghapus tumpukan
frame untuk setiap panggilan fungsi atau prosedur
 

2 komentar:

rafkahrizzqia mengatakan...

Makasih gan , sangat bermanfaat

agincu mengatakan...

sangat bermanfaat

Posting Komentar