520 likes | 850 Views
PENGURUSAN INGATAN, SISTEM BARU. BAB 3. Peruntukan Ingatan Berhalaman (Paged Memory Allocation). Takrif :
E N D
Peruntukan Ingatan Berhalaman(Paged Memory Allocation) Takrif : Satu skim berasaskan pada konsep membahagikan kerja pengguna menjadi halaman (seksyen) bersaiz sama bagi membolehkan penstoran program tidak-bersebelahan ‘noncontiguous’ (di dalam bingkai halaman) semasa pelaksanaan
Seksyen pada cakera dipanggil sektor (atau blok) dan seksyen pada ingatan utama dipanggil bingkai halaman. • Kesemuanya adalah sama saiz.
Ini dilaksanakan bagi meningkatkan lagi tahap berbilang tugasan (‘multitasking’) • Andaian : saiz halaman adalah sama dengan saiz blok ingatan • Kita masih perlu memuatkan keseluruhan program ke dalam ingatan sebelum ianya boleh dijalankan, tetapi ia tidak perlu berada dalam blok ingatan bersebelahan • Halaman boleh distorkan di mana sahaja di dalam ingatan
Kelebihan • Penggunaan ingatan dengan lebih cekap • tidak perlu menunggu sehingga kita boleh menyimpan keseluruhan program dalam kawasan bersebelahan bagi ingatan • Kita juga tidak perlu risau mengenai overhed yang disebabkan oleh pemadatan
Kekurangan • Satu mekanisme diperlukan oleh pengurus ingatan untuk mengesan kesemua halaman bagi program yang berada dalam ingatan dan penyerpihan dalaman masih lagi menjadi masalah
Jadual Khas • Bagi tujuan pengesanan halaman dalam ingatan utama, pengurus ingatan menggunakan tiga jadual • Jadual Kerja (Job Table) • Jadual Peta Halaman (Page Map Table) • Jadual Peta Ingatan (Memory Map Table)
Jadual kerja • mengandungi saiz bagi kerja dan lokasi ingatan di mana jadual peta halaman disimpan • Jadual Peta Halaman • menyimpan nombor halaman serta alamat ingatan bingkai halaman berkaitan dengan sesuatu kerja • Jadual Peta Ingatan • mengandungi satu senarai yang terdiri dari kesemua bingkai halaman dalam ingatan utama dan status mereka (iaitu, sama ada sibuk atau bebas)
Kesemua RAM terbahagi kepada bingkai halaman dengan saiz tertentu. Bila satu kerja dimuatkan, ia dibahagikan menjadi bingkai halaman • Misalnya, jika bingkai halaman adalah bersaiz 100K dan kita menjalankan program bersaiz 348K, berapa banyakkah halaman yang kita ada?
Jawapannya adalah 4, di mana tiga halaman masing-masing bersaiz 100 K dan satu lagi halaman bersaiz 48K • Maka, di sini kita menyaksikan bahawa skim ini tidak menghapuskan penyerpihan dalaman
Katakanlah saiz bingkai ialah 512 K dan kita jalankan program bersaiz 3 MB. Berapa banyak halaman akan wujud? • 1 MB = 1,024 K. jadi 3 * 1,024 = 3,072 K • 3,072 / 512 = 6 halaman
Katakanlah saiz bingkai ialah 256 K dan kita jalankan satu program bersaiz 5MB. Berapa banyak halaman akan wujud? • 5 * 1,024 = 5,120 / 256 = 20 halaman
Penghalaman Tuntutan (Demand Paging) • Penghalaman tuntutan adalah skim peruntukan ingatan yang memuatkan halaman program ke dalam ingatan utama pada ketika ia diperlukan untuk pemprosesan • Pengurus ingatan akan respon hanya setelah ralat halaman berlaku. • Idea : untuk memuatkan hanya apa yang diperlukan sahaja ketika ia diperlukan
Skim ini tidak bergantung pada program yang berstruktur dengan baik, tempatan yang ada ruang atau tempatan bermasa untuk menjadi berkesan
Sekarang, kita hanya ada sebahagian dari program yang dimuatkan sebelum pemprosesan dijalankan. • Kerja-kerja masih dibahagikan kepada halaman bersaiz sama. • Tetapi pengurus ingatan hanya memuatkan halaman-halaman ketika ia diperlukan sahaja.
Jika program memerlukan satu halaman tetapi ia masih belum dimuatkan lagi, ini dipanggil ralat halaman (‘page fault’). • Ini bermakna pengurus ingatan perlu mencapai (halaman tersebut ‘retrieve’)
Jika program memproses dan memerlukan halaman lain yang belum sedia (belum masuk ke ingatan lagi) ia dipanggil sampukan halaman (‘page interrupt’) dan pengurus ingatan akan mencapai halaman itu dan memuatkannya ke dalam ingatan
Jika tiada blok ingatan yang bebas, maka pengurus ingatan akan mengeluarkan salah satu halaman yang telah termuat lebih dahulu bagi mengadakan ruang baru halaman yang diperlukan itu
Pengendali sampukan halaman (‘page interrupt handler’) adalah sebahagian dari pengurus ingatan yang menentukan. • Sekiranya ada bingkai halaman yang kosong dalam ingatan agar halaman yang diminta itu boleh segera disalinkan dari ingatan sekunder, atau menentukan halaman mana yang perlu disilihkan keluar jika semua bingkai halaman digunakan sepenuhnya (sibuk)
Dalam petakan statik, kesemua ingatan utama telah dibahagikan menjadi beberapa blok yang telah dipra-tentukan dan muatkan keseluruhan program ke dalam salah satu blok tersebut.
Dalam penghalamanan pula, kesemua ingatan utama telah dibahagikan menjadi blok-blok yang disebut bingkai halaman dan program kemudiannya akan dipecahkan menjadi halaman yang akan muat dalam bingkai tersebut.
Kelebihan • Mengadakan ingatan maya • Ia membolehkan pengguna menjalankan kerja-kerja mereka dengan mengurangkan ingatan utama dari apa yang mereka ada dalam skim yang lama
Kekurangan • Pengurus ingatan kini perlu mengesan bukan sahaja dengan di mana halaman-halaman itu telah termuat dalam ingatan malahan juga halaman MANA yang telah termuat. • Tambahan pula, bila terdapat terlalu banyak penyilihan halaman masuk dan keluar di antara ingatan utama dan ingatan sekunder, pengendalian tidak lagi menjadi cekap. Ini dipanggil pensesiaan (‘thrashing’).
Bila sesuatu sistem dikatakan mensesia, ia meluangkan lebih masa menyilih halaman-halaman dalam dan luar daripada melakukan pemprosesan data yang sebenar
Pra-Halaman • Pra-halaman adalah satu skim bagi memuatkan halaman-halaman bagi satu proses ke dalam ingatan bila dan sebelum ianya diperlukan (dipanggil). • Bila pengurus ingatan memberi respon ke ralat halaman, lebih dari halaman yang diperlukan dimuatkan.
Idea : untuk muatkan apa yang kemungkinan besar diperlukan bila ia adalah menjimatkan (‘cost effective’) untuk berbuat demikian. • Ia cuba untuk bertolak ansur di antara kos fizikal I/O yang diperlukan untuk melakukan ralat halaman dengan kos bagi halaman-halaman lebihan dalam ingatan utama yang mungkin akan menyebabkan pengurangan saiz set bekerja.
Skim ini bergantung pada program yang berstruktur dengan baik, tempatan bermasa dan tempatan ruangan untuk menjadi berkesan.
Polisi dan Konsep Penggantian Halaman • Bagaimana sesuatu system memutuskan halaman mana yang perlu dikeluarkan dari ingatan utama bagi menyediakan ruang bagi halaman baru yang diperlukan? • Polisi penggantian halaman adalah satu algorithma yang digunakan oleh sistem ingatan maya untuk memutuskan halaman atau segmen mana akan dikeluarkan dari ingatan utama bila satu bingkai halaman diperlukan dan ingatan tersebut sudah penuh
Pertama-Masuk Pertama-Keluar (First-In First-Out) • Penggantian halaman yang mengeluarkan dari ingatan utama mana-mana halaman yang dibawa masuk paling pertama. • Ia berasaskan pada andaian bahawa halaman-halaman paling tidak akan digunakan sekali lagi dalam masa terdekat
Terkurang Baru Digunakan (‘Least Recently Used’) • Polisi penggantian halaman yang mengeluarkan dari ingatan utama mana-mana halaman yang menunjukkan ianya paling kurang banyaknya dalam aktiviti terbaru. • Ia berasaskan pada andaian bahawa halaman-halaman sebegini paling tidak akan digunakan dalam masa terdekat.
Cara lain untuk menyatakan andaian ini ialah menerusi teori tempatan (‘theory of locality’) yang mengutarakan lokasi ingatan yang baru sahaja dirujuk, dan mana-mana yang berhampirannya, mempunyai kemungkinan yang besar untuk dijadikan rujukan dalam masa yang terdekat
Lain-lain algorithma penggantian • LIFO - Last In, First Out • MRU - Most Recently Used • STR - Shortest Time Remaining • LTR - Longest Time Remaining
Konsep Set Bekerja (‘Working Set’) • Ia merupakan konsep yang seiringan degan penghalamanan tuntutan. • Set bekerja sesuatu kerja adalah set halaman-halaman yang menghuni dalam ingatan yang boleh dicapai terus tanpa berlakunya ralat halaman.
Bila pengguna melaksanakan satu program, halaman pertama akan dimuatkan ke dalam ingatan dan pelaksanaan berterusan selagi lebih halaman-halaman dimuatkan: yang terdiri dari pengisytiharan pemboleh-ubah, yang mengandungi suruhan-suruhan, yang mengadungi data dan sebagainya.
Selepas beberapa ketika, program mencapai keadaan stabil dan pemprosesan diteruskan dengan licin dengan sedikit ralat halaman.
Bila idea ini diterima pakai, maka para pengaturcara mula menulis program dengan sedikit perbezaan untuk mengambil peluang bagi sistem pengendalian penghalamanan tuntutan.
Mereka akan menstruktur program agar subrutin yang berkaitan diguguskan (cluster) bersama-sama menjadi “set”, dan beberapa halaman-halaman yang berkaitan ini akan dimuatkan dan diproseskan seketika sebelum memuatkan kumpulan set yang lain pula.
Peruntukan Ingatan Bersegmen Segmented Memory Allocation • Peruntukan ingatan bersegmen adalah skim peruntukan ingatan yang berasaskan kepada konsep membahagikan kerja pengguna menjadi kumpulan kod logikal yang membolehkan penstoran program tidak bersebelahan semasa pelaksanaan.
Mungkin ia seakan-akan penghalamanan! • Ia berlainan dari penghalamanan kerana saiz halaman-halaman bagi penghalamanan ditetapkan oleh sistem pengendalian. • Dengan segmen pula, ia mempunyai saiz segmen yang berbeza dan ditetapkan oleh pengaturcara sendiri
Ia juga berbeza dari penghalamanan kerana ingatan utama tidak lagi dibahagikan kepada bingkai halaman. • Ia adalah sama dengan penghalamanan di mana segmen-segmen tidak perlu distorkan dalam blok-blok bersebelahan dalam ingatan.
Peruntukan Ingatan Bersegmen dan Berhalaman Tuntutan • (Segmented/Demand Paged Memory Allocation) • Peruntukan ingatan bersegmen dan berhalaman tuntutan merupakan skim peruntukan ingatan Frankenstein. Iaitu satu kacukan (‘hybrid’).
Ia membahagikan ingatan utama menjadi bingkai halaman. • Dan ia membahagikan program kepada segmen-segmen logikal yang konsisten dengan cara pengaturcara menstruktur program. • Dan kemudiannya, ia membahagikan segmen-segmen menjadi halaman-halaman yang sesuai untuk dimuatkan ke dalam bingkai halaman ingatan utama.
Kebaikan : • Skim ini meraih faedah kedua-dua pensegmenan dan penghalamanan. • Kekurangan : • Kerja tambahan untuk menjejaki kesemua cebisan dan bahagian seperti segmen dan halaman.
Ingatan Maya (Virtual Memory) • Ingatan maya adalah satu teknik yang membolehkan program dilaksanakan meskipun ianya tidak distor secara keseluruhan dalam ingatan. • Ia memberi pengguna satu ilusi bahawa ingatan utama adalah banyak pada hal keadaannya bukan sedemikian
Pengurusan ingatan maya adalah seperti apa yang berlaku dalam skim peruntukan ingatan penghalamanan tuntutan. • Kesedia ada (availability) pengurusan ingatan maya menyebabkan para pengaturcara melaraskan teknik pemprograman mereka.
Mereka mula membahagi program mereka kepada segmen-segmen bagi memudahkan penyilihan segmen-segmen. • Nama lain bagi segmen-segmen ini ialah pelapisan (‘overlays’).
Kelebihan • Saiz kerja tidak lagi terbatas dengan saiz ingatan utama (atau ruang bebas dalam ingatan utama) • Ingatan digunakan dengan lebih cekap kerana hanya seksyen kerja yang diperlukan segera sahaja terstor dalam ingatan; sementara yang masih belum diperlukan berada di ingatan sekunder.
Membenarkan banyak (tanpa ada had) berbilang pengaturcaraan (yang boleh diaplikasikan ke banyak kerja, macam dalam pemetakan dinamik dan statik, atau persekitaran berkongsi masa ramai pengguna).
Ia menghapuskan penyerpihan luaran dan meminimakan penyerpihan dalaman dengan menggabungkan pensegmenan dan penghalamanan (penyerpihan dalaman berlaku dalam program). • Ia membolehkan perkongsian kod dan data. • Ia memudahkan pertautan (‘linking’) dinamik segmen-segmen program.
Kekurangan • Pertambahan kos perkakasan • Pertambahan overhed bagi mengendalikan sampukan penghalamanan • Pertambahan kekompleksan perisian bagi menghalang pensesiaan.