Download
slide1 n.
Skip this Video
Loading SlideShow in 5 Seconds..
Razief Perucha F.A Jurusan Informatika Fakultas Matematika dan Ilmu Pengetahuan Alam PowerPoint Presentation
Download Presentation
Razief Perucha F.A Jurusan Informatika Fakultas Matematika dan Ilmu Pengetahuan Alam

Razief Perucha F.A Jurusan Informatika Fakultas Matematika dan Ilmu Pengetahuan Alam

183 Views Download Presentation
Download Presentation

Razief Perucha F.A Jurusan Informatika Fakultas Matematika dan Ilmu Pengetahuan Alam

- - - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - - -
Presentation Transcript

  1. SistemOperasi (pertemuan 3) Memori Razief Perucha F.A JurusanInformatika FakultasMatematikadanIlmuPengetahuanAlam UniversitasSyiah Kuala 2012

  2. Memori

  3. Halaman Fault Time • Lamanyawaktuuntukmengatasikesalahanhalamandisebutdenganhalamanfault time. • Adatigafaktorutama yang mempengaruhihalamanfault time ini, yaitu: • Melayaniinterupsidarikesalahanhalaman. Aktivitas yang dilakukandalammelayanikesalahanhalamanini, yaitu: • Memberitahu sistem operasi saat terjadinya kesalahan halaman. • Menyimpan status dariprosesbersangkutan. • Memeriksaapakahreferensihalaman yang diberikan legal atautidak. Bilareferensi yang diberikan legal maka dicari lokasi dari halaman tersebut di disk.

  4. Halaman Fault Time • Pembacaanhalaman. Aktivitas yang terjadidalampembacaanhalamanini, yaitu: • Menunggudalamantriansampaimendapatkangiliranuntukmembaca. • Menunggu disk untukmembacalokasi yang diminta. Disk melakukankerjamekanisuntukmembaca data sehingga lebih lambat dari memori. • Mengirimhalaman yang dimintakememorifisik.

  5. Halaman Fault Time • Pengulanganinstruksi. • Aktivitas yang terjadiuntukmengulangiinstruksiini, yaitu: • Interupsiproses yang sedangberjalanuntukmenandakanbahwaproses yang sebelumnyaterhentiakibatkesalahanhalamantelahselesaidalammembacahalaman yang diminta. • Menyimpan status dariproses yang sedangberjalan. • Membetulkantabelhalamanuntukmenunjukkanbahwahalaman yang ingindibacasudahadadimemorifisik. • Mengambil kembali status proses bersangkutan untuk selanjutnya dijalankan di CPU.

  6. Effective Access Time • Untukmengetahuikinerjapermintaanhalamandapatdilakukandenganmenghitungeffective access time-nya. • Effective Access Time (EAT) = (1-p) x ma + p x halaman fault time • - p = kemungkinan terjadi halaman fault (0 < p < 1) • - ma = memory access time (10 - 200 ns)

  7. Effective Access Time • Jika p = 0 makatidakadakesalahanhalaman, sehingga EAT = memory access time. • Jika p = 1 maka semua pengaksesan mengalami kesalahan halaman. • Untukmenghitung EAT, kitaharusmengetahuiwaktu yang dibutuhkanuntukmelayanikesalahanhalaman.

  8. Contohpenggunaan Effective Access Time • Diketahuiwaktupengaksesanmemori (ma) = 100 ns, waktukesalahanhalaman (halaman fault time) = 20 ms. • Berapakah Effective Access Time-nya? • EAT = (1-p) x ma + p x halaman fault time • = (1-p) x 100 + p x 20.000.000 • = 100 - 100p + 20.000.000p • = 100 + 19.999.900p nanosecond • Padapermintaanhalamandiusahakan agar kemungkinanterjadinyahalaman fault rendahkarenabila EAT-nya meningkat, maka proses akan berjalan lebih lambat.

  9. PersyaratanPerangkatKeras • Locality of References • Jika terjadi banyak kesalahan halaman maka efisiensi sistem akan menurun. • Oleh karena itu, kemungkinanterjadinyakesalahanhalamanharusdikurangiataudibatasidenganmemakaiprinsiplokalitasini.

  10. PersyaratanPerangkatKeras • Locality of References • Prinsiplokalitasinidibagimenjadi 2 bagian: • Temporal. Lokasi yang sekarangditunjukkemungkinanakanditunjuklagi. • Spatial. Kemungkinanlokasi yang dekatdenganlokasi yang sedangditunjukakanditunjukjuga.

  11. Pure Demand Paging • Penjalanan (running) sebuah program dimulaidenganmembawahanyasatuhalamanawalke main memori. • Setelahitu, setiap kali terjadipermintaanhalaman, halamantersebutbaruakandimasukkankedalammemori. • Halamanakandimasukkankedalammemorihanyabiladiperlukan.

  12. Multiple Page Fault • Kesalahanhalaman yang terjadikarenasatuinstruksimemerlukanpengaksesanbeberapahalaman yang tidakadadimemoriutama. • Kejadiansepertiinidapatmengurangikinerjadari program. • Pemberiannomorhalamanmelibatkandukunganperangkatkeras, sehinggaadapersyaratanperangkatkeras yang harusdipenuhi.

  13. Multiple Page Fault • Perangkat-perangkatkerastersebutsamadengan yang digunakanuntukpaging dan swapping, yaitu: • Tabelhalaman "bit valid-tidak valid" • Valid ("1") artinya halaman sudah berada di memori • Tidak valid ("0") artinya halaman masih berada di disk. • Memorisekunder, digunakanuntukmenyimpanproses yang belumberadadimemori. • Lebihlanjut, sebagaikonsekuensidaripersyaratanini, akandiperlukan pula perangkatlunak yang dapatmendukungterciptanyapemberiannomorhalaman.

  14. Restart Instruction • Salahsatupenangananjikaterjadikesalahanhalamanadalahkebutuhanakanpengulanganinstruksi. • Penangananpengulangaminstruksiberbeda-bedatergantungpadakemungkinanterjadinyakesalahan halaman dan kompleksitas instruksi. • Jika kesalahan halaman terjadi saat pengambilan instruksi maka pengulangan proses dilakukan dengan mengambil instruksi itu lagi. • Jika kesalahan halaman terjadi saat pengambilan operan maka pengulangan proses dilakukan denganmengambilinstruksiitulagi, men-dekode-kan, barumengambiloperan.

  15. Pengulangan proses ketika instruksi memodifikasi beberapa lokasi yang berbeda, misalnya pada instruksi move character daribloksource keblok destination dimanakeduabloktersebuttumpangtindih (overlapping) dankesalahanhalamanterjadisaatsebagianinstruksitersebutsudahdijalankan, tidakdapatdilakukansecaralangsungkarenaadabagiandariblok source yang telahtermodifikasi. • Adaduasolusiuntukmengatasihalini, yaitu: • Komputasikodemikrodanberusahauntukmengakseskeduaujungdariblok, agar tidakadamodifikasi halaman yang sempat terjadi.

  16. Menggunakan register sementara (temporary register) untukmenyimpannilai yang beradapadalokasi yang "overwritten" sehinggabilaterjadikesalahanhalamansemuanilai lama dapat ditulis kembali ke memori dan pengulangan dapat dilakukan.

  17. Pengulanganprosesketikainstruksimenggunakan mode pengalamatanspesialsepertiautoincrementdanautodacrement, misalnyainstruksi MOV (R2)+,-(R3) yang menyalinisilokasi yang ditunjuk register R2 kelokasi yang ditunjuk register R3. Misalkan R2 = 10 dan R3 = 20 maka isi alamat memori 10 akan disalin ke alamat 19. Apabila terjadi kesalahan halaman saatpenyimpanankelokasi yang ditunjuk R3 danproseslangsungterulangmakapenyalinanakandilakukandarilokasi 11 kelokasi 18. Solusinyayaitudenganmemakai register status khusus yang akanmenyimpanangkapada register danjumlahperubahan (modifikasi) yang dialamioleh register sehingga register dapatdiubahkembalikenilai lama dansistemoperasidapatmengulangsebagianprosesinstruksi yang telahdilakukan.

  18. PermintaanHalamanProses • Seperti yang telahdibahasdalambagiansebelumnya, memori virtual memungkinkanprosesuntukberbagipakaimemori. • Prosesberbagipakaiiniadalahprosesberbagipakaihalamanmemori virtual. • Karenasetiapprosesmembutuhkanhalamantersendirimakaakandibutuhkanteknikuntukmengelolahalamandanpembuatannya. • Teknikuntukmengoptimasipembuatandanpenggunaanhalamanprosesadalahdengan Copy-On-Write dan Memory-Mapped-File.

  19. Copy-On-Write • Denganmemanggilsistempemanggilanfork(), sistemoperasiakanmembuatprosesanaksebagaisalinandariprosesinduk. • Sistempemanggilanfork() bekerjadenganmembuatsalinanalamatprosesindukuntukprosesanak, lalumembuatsalinanhalamanmilikprosesinduktersebut. • Tapi, karenasetelahpembuatanprosesanakselesai, prosesanaklangsungmemanggilsistempemanggilanexec() yang menyalinalamatprosesinduk yang kemungkinantidakdibutuhkan.

  20. Copy-On-Write • Olehkarenaitu, lebihbaikkitamenggunakanteknik lain dalampembuatanproses yang disebutsistemcopy-on-write. • Teknikinibekerjadenganmemperbolehkanprosesanakuntukmenginisialisasi penggunaan halaman yang sama secara bersamaan. • Halaman yang digunakan bersamaanitu, disebutdengan "halamancopy-on-write", yang berartijikasalahsatudariprosesanak atau proses induk melakukan penulisan pada halaman tersebut, maka akan dibuat juga sebuah salinandarihalamanitu.

  21. Copy-On-Write • Sebagaicontoh, sebuahprosesanakhendakmemodifikasisebuahhalaman yang berisisebagiandaristack. • Sistemoperasiakanmengenalihalinisebagai copy-on-write, laluakanmembuatsalinandarihalamaninidanmemetakannyakealamatmemoridariprosesanak, sehinggaprosesanakakanmemodifikasi halaman salinan tersebut, dan bukan halaman milik proses induk. • Dengan tekik copy-on-write ini, halaman yang akandisalinadalahhalaman yang dimodifikasiolehprosesanakatauprosesinduk. • Halaman-halaman yang tidakdimodifikasiakanbisadibagiuntukprosesanakdanprosesinduk.

  22. Copy-On-Write • Saat suatu halaman akan disalin menggunakan teknik copy-on-write, digunakan teknik zero-fill-on-demand untukmengalokasikanhalamankosongsebagaitempatmeletakkanhasilduplikat. • Halamankosongtersebutdialokasikansaatstack atau heap suatuprosesakandiperbesaratauuntukmengaturhalamancopy-on-write. • Halaman Zero-fill-on-demand akandibuatkosongsebelumdialokasikan, yaitudenganmenghapusisiawaldarihalaman. • Karenaitu, dengancopy-on-write, halaman yang sedangdisalinakandisalinkesebuahhalaman zero-fill-on. • Teknikcopy-on-write digunakanolehbeberapasistemoperasiseperti Windows 2000, Linux, danSolaris2.

  23. Copy-On-Write • Dengan COW, beberapaprosesdapatberbagipakaihalaman yang sama, namunjikaadasalahsatuprosesakanmenulisataumelakukanmodifikasi, makadibuathalamanbaru (sebagaisalinandarihalaman copy-on-write). • Pada halaman salinan tersebut proses melakukan modifikasi. • Halaman yang lama tetap. • Halaman Copy-On-Write diberitandasebagai "halaman Copy-On-Write" danbersifat "read only", sedangkanhalamansalinantidakdiberitandadanbisadimodifikasi.

  24. Copy-On-Write • Misalkan, halaman C digunakan bersama oleh proses 1 dan proses 2. • Ketika proses 1 akan melakukanmodifikasiterhadaphalaman C, makasistemoperasimembuathalamanbarusebagaisalinandarihalaman C yang ditunjukolehproses 1. • Proses 1 melakukanmodifikasipadahalaman yang barutersebut (ditunjukolehproses 1), sedangkanhalaman C tetap (ditunjukolehproses 2).

  25. Copy-On-Write • Untukmenentukanhalamanbarusebagaisalinandarihalaman Copy-On-Write tersebutSistemOperasiharusmengetahuiletakhalaman-halaman yang kosong. • BeberapaSistemOperasimenyediakan pool dari halaman-halaman yang kosong. • Selain untuk salinan dari halaman Copy-On-Write, halaman-halamankosongtersebutdisediakanuntukproses yang melakukanpenambahan stack atau heap.

  26. Copy-On-Write • Teknik yang biasadigunakanolehsistemoperasiuntukmenyediakanhalamantersebutdisebut zero-fill-on-demand. • Teknikinidilakukandenganmengosongkanhalaman-halamansebelumdigunakanolehproses yang baru.

  27. Keuntunganteknik COW • Jikatidakadamodifikasipadahalamanmakapembuatansalinandarihalamantidakakanpernahdilakukanataujumlahmemorifisik yang dialokasikanuntukprosestidakpernahbertambahsampaiterjadipenulisan data. • Penggunaanmemorifisiksangatjarang, memorifisikbarudigunakanhanyajikaterjadipenyimpanan data.

  28. Kekuranganteknik COW: • Bertambahnyakompleksitaspada level kernel, padasaat kernel menuliskehalaman, makaharusdibuatsalinanhalamanjikahalamantersebutdiberitanda COW.

  29. Memory-Mapped Files • Memory-Mapped Files adalahteknik yang digunakanuntukpengaksesan file, dimanablokberkasdalam disk dipetakankehalamanmemori. • File tersebutbelumberadadalammemori. • Karenapengaksesan berkas dilakukan melalui demand paging, akses kali pertama pada berkas akan menghasilkan halaman fault. • Namun sesudah itu sebagian dari halaman berkas akan dibaca dari sistemberkaskememorifisik.

  30. Memory-Mapped Files • Selanjutnyapembacaandanpenulisanpadaberkasdilakukandalammemori. • Hal inimenyederhanakanpengaksesandanpenggunaanberkasdaripadapengaksesanlangsungke disk melaluisistem call read() dan write(). • Bilaterjadipenulisan/perubahanpadabagianberkasdalammemori, perubahaninitidaklangsungdilakukan pada berkas dalam disk. • Beberapa sistem operasi melakukan perubahan secara periodik denganmemeriksaapakahadaperubahanpadaberkasatautidak. • Ketikaberkasditutupsemuaperubahandituliske disk danberkasdihapusdarimemori virtual.

  31. Implementasi Memory-Mapped File (MMF) • Padabeberapasistemoperasi, MMF dilakukandenganmenggunakansistem call khusussementarasistem call biasadigunakanuntukberkas M/K yang lainya. • Padabeberapasistem lain, walaupunsistem call khususuntuk MMF ada, semuaberkasakandipetakanmeskipun file tersebuttidakditandaisebagaiberkas MMF. • Pada Solaris misalnya, sisteminimemilikisistem call mmap() untukmengaktifkan MMF. • Namun Solaris tetapakanmemetakan file yang diaksesmenggunakansistem call open(), read() dan write().

  32. Implementasi Memory-Mapped File (MMF) • MMF jugadapatmemetakanbanyakprosespadaberkas yang samasecarabersamaansehinggaproses-prosestersebutdapatsalingberbagi data. • Padamultiproses, perubahan yang dibuatolehsalahsatuprosesdapatdilihatolehproseslainnya. • MMF jugamendukungteknik COW. • Jikaditambahkanteknik COW, halaman yang dipetakanberadadalam mode read only danapabilaadaproses yang merubah isi berkas maka proses tersebut akan diberi salinan halaman yang akan dirubahnya sehinggaperubahan yang terjaditidakdapatdilihatolehproses lain.

  33. Implementasi Memory-Mapped File (MMF) • Dalambeberapahal, sharing memoripada MMF samadengan sharing memori yang telahdijelaskanpada bab sebelumnya. • Unix dan Linux menggunakan mekanisme yang berbeda untuk MMF dan sharing memori, untuk MMF digunakansistem call mmap(), sedangkanuntuk sharing memoridigunakansistem call shmget() danshmat(). • Pada Windows NT, 2000, dan XP penerapan sharing memoridilakukandenganmekanisme MMF.

  34. BerbagiMemoriDalam Win32API • Untukmelakukan sharing memorimenggunakan MMF, pertama kali harusdibuat (create) pemetaanberkasdari disk kememori. • Setelahitu, dibuat view dariberkastersebutpadaalamat virtual proses. • Proseskedua (lainnya) dapatmembukadanmembuat view dariberkastersebutdalamruangalamatvirtualnya. • Pemetaanberkasinimerupakanrepresentasi sharing memori, dimanaprosesdapatberkomunikasisatusama lain.

  35. BerbagiMemoriDalam Win32API • Misalnyapadaprosesprodusendankonsumen. • Produsenmembuatobyek sharing memorimenggunakanfasilitasmemori mapped-file Win32 API. • Kemudianprodusenmenulispesankedalammemoritersebut. • Setelahitu, konsumendapatmembuatpemetaankeobyek sharing memoritersebut, membukanya, danmembacapesan yang ditulisolehprodusen.

  36. MMF pada Win32 API

  37. MMF pada Win32 API • Untukmembuatmemori mapped file, prosesharusmembuka (open) berkas yang akandipetakandenganfungsiCreateFile(). • KemudianprosesmemetakanberkasdenganfungsiCreateFileMapping(). • Setelahberkasdipetakanmaka view dari file dapatdimunculkanpadaalamat virtual prosesdenganmenggunakanfungsiMapViewOfFile().

  38. MMF pada Win32 API • FungsiCreateFileMapping() akanmembuatobyek sharing memori yang disebutSharedObject. • Konsumendapatberkomunikasimenggunakan sharing memoridenganmembuatpemetaankeobyekdengannama yang sama. • SementarafungsiMapViewOfFile() akanmemunculkan pointer padaobyek shared-memori, seluruhaksespadabagianmemoriinimerupakanaksespada memory-mapped file.

  39. Kelebihan Memory-Mapped Files • Aksespadaberkasdilakukandengan pointer, tidaklangsungdengansistem call read() dan write(). • Aksesdapatdilakukan secara acak. • "On demand loading", permintaan M/K baruakanterjadikalauberkas/bagianberkas yang bersangkutandiakses. • Data/bagian berkas yang tak terpakai akan di-swap out.

  40. Kelemahan Memory-Mapped Files • Bilaterjadipenambahanberkasharusdibuat MMF yang baru. • Proses M/K secaraasinkrontidakdapatdilakukan, semuanyadilakukan per blok. • Kadang-kadangterjadi bug ketika OS menuliskedalam file.