1 pengurusan ingatan, sistem baru bab 3. 2 takrif : satu skim berasaskan pada konsep membahagikan...
Post on 20-Dec-2015
224 views
TRANSCRIPT
2
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
Peruntukan Ingatan Berhalaman(Paged Memory Allocation)
3
Seksyen pada cakera dipanggil sektor (atau blok) dan seksyen pada ingatan utama dipanggil bingkai halaman.
Kesemuanya adalah sama saiz.
4
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
5
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
6
Kekurangan Satu mekanisme diperlukan oleh
pengurus ingatan untuk mengesan kesemua halaman bagi program yang berada dalam ingatan dan penyerpihan dalaman masih lagi menjadi masalah
7
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)
8
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)
9
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?
10
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
11
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
12
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
13
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
14
Skim ini tidak bergantung pada program yang berstruktur dengan baik, tempatan yang ada ruang atau tempatan bermasa untuk menjadi berkesan
15
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.
16
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’)
17
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
18
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
19
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)
20
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.
21
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.
22
Kelebihan Mengadakan ingatan maya Ia membolehkan pengguna
menjalankan kerja-kerja mereka dengan mengurangkan ingatan utama dari apa yang mereka ada dalam skim yang lama
23
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’).
24
Bila sesuatu sistem dikatakan mensesia, ia meluangkan lebih masa menyilih halaman-halaman dalam dan luar daripada melakukan pemprosesan data yang sebenar
25
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.
26
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.
27
Skim ini bergantung pada program yang berstruktur dengan baik, tempatan bermasa dan tempatan ruangan untuk menjadi berkesan.
28
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
29
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
30
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.
31
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
32
Lain-lain algorithma penggantian LIFO - Last In, First Out MRU - Most Recently Used STR - Shortest Time Remaining LTR - Longest Time Remaining
33
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.
34
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.
35
Selepas beberapa ketika, program mencapai keadaan stabil dan pemprosesan diteruskan dengan licin dengan sedikit ralat halaman.
36
Bila idea ini diterima pakai, maka para pengaturcara mula menulis program dengan sedikit perbezaan untuk mengambil peluang bagi sistem pengendalian penghalamanan tuntutan.
37
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.
38
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.
39
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
40
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.
41
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’).
42
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.
43
Kebaikan : Skim ini meraih faedah kedua-dua
pensegmenan dan penghalamanan. Kekurangan :
Kerja tambahan untuk menjejaki kesemua cebisan dan bahagian seperti segmen dan halaman.
44
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
45
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.
46
Mereka mula membahagi program mereka kepada segmen-segmen bagi memudahkan penyilihan segmen-segmen.
Nama lain bagi segmen-segmen ini ialah pelapisan (‘overlays’).
47
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.
48
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).
49
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.
50
Kekurangan Pertambahan kos perkakasan Pertambahan overhed bagi
mengendalikan sampukan penghalamanan
Pertambahan kekompleksan perisian bagi menghalang pensesiaan.
51
Ringkasan Pengurus ingatan adalah salah satu
dari empat pengurus yang terdapat pada system pengendalian.
Ia mempunyai tugas untuk memperuntukkan ingatan bagi setiap kerja yang akan dilaksanakan dan membebaskan ingatan setelah kerja siap dilaksanakan.