Pages

Rabu, 19 Juni 2013


A.                                                                 

"MASALAH SISTEM PAGING & PENGGANTIAN PAGE"

Pengertian sistem paging
            Sistem paging adalah suatu sistem manajemen pada sistem operasi yang mengatur program yang sedang berjalan.  Metode dasar dari paging adalah dengan memecah memori fisikmenjadi blok-blok yang berukuran tertentu yang disebut dengan frame dan memecahmemori logika menjadi bok-blok yang berukuran sama dengan frame yang disebut page.
Istilah pada sistem paging
·         Alamat maya: alamat yang dihasilkan perhitungan menggunakan index register, base register, segment register dan sebagainya.
·         Alamat nyata: Alamat di memori fisik.
·         Page: Unit terkecil virtual address space.
·         Page frame : Unit terkecil memori fisik.
·         Page fault : Exception untuk permintaan alokasi ‘page’ ke memori.
·         MMU (Memory Management Unit) : Chip/kumpulan chip yang memetakan alamat maya ke alamat fisik.
Fungsi sistem paging
Untuk mengatasi apabila suatu program lebih besar dibandingkan dengan memori utama adalah dengan konsep overlay dan konsep memori maya(virtual memori),
ü            Konsep overlay
·         Yang dimaksud konsep overlay Program dipecah menjadi bagian-bagian (OverLay) yangdapat dimuat ke memori.
·         Overlay yang belum diperlukan disimpan di Disk.
·         Overlay yang diperlukan akan dimuad ke memori.
ü           Konsep memory maya
·         Konsep Memori Maya, yaitu kemampuan untuk mengalamati ruang memori melebihimemori utama yang tersedia.
·         Istilah memori maya diasosiasikan dengan kemampuan mengalamati memori melebihimemori yang tersedia.Konsep ini ditemukan Fotheringham (1961) pada system computer Atlas di Universitas Manchester, Inggris.
·         SO menyimpan bagian yang sedang digunakan (di memori) dan sisanya di disk. Saatdiperlukan (bagian di disk), maka bagian di memori segera disingkirkan diganti denganbagian di disk.
Contoh:
Program 10Mb dapat berjalan di 2Mb.
Memilih (secara hati-hati) sebesar 2Mb untuk dimuat ke memori.
Bagian-bagian program di swap antara disk dan memori saat diperlukan.*
                   (Ditulis Anan Widiyanto 12.3.00046)

PENGGANTIAN PAGE
·         Saat terjadi page fault, maka harus diputuskan page frame di memori fisik yang harus diganti.
·         Kinerja system akan baik jika page yang diganti dipilih yang tidak sering digunakan.
·         Jika page yang diganti sering digunakan, maka page tersebut akan dikembalikan, secepatnyayang berarti page fault berulang kali.
·         Banyaknya page fault akan menaikkan overhead
Macam-macam algoritma penggantian page
·         Acak,
·         Optimal,
·         NRU (Not Recently Used),
·         FIFO,
·         Modifikasi FIFO
·         LRU (Least Recently Used)

1.                  Algoritma penggantian page acak
Pada algoritma ini setiap terjadi page fault, page yang diganti dipilih secara acak. Pada algoritma ini terdapat kemungkinan proses yang baru berjalan bias digantikan (diberhentikan oleh proses lain) jadi sangat merugikan dan teknik ini sangat buruk, percobaan menunjukkan rate page fault yang sangat tinggi ketika menggunakan teknikini (sangat merugikan).

2.                  Algoritma penggantian page optimal
                     Pada algoritma ini memilih page yang baru terpakai untuk digantikan oleh string acuan terbaru.
3.                   Algoritma penggantian page LRU
Berdasarkan observasi, page page yang digunakan pada beberapa instruksi terakhirberkemungkinan besar akan dipakai kembali nantinya. Page-page yang lama tidakdigunakan akan tetap tak digunakan dalam waktu lama. Pada algoritma ini ketika terjadipage fault maka memindahkan page yang tak digunakan paling lama.
4.                  Algoritma penggantian page FIFO
                     Algoritma ini dapat memilih memindahkan page yang sering digunakan yang telah berada dimemori untuk waktu yang lama.

Diposkan oleh diyant Arhswine di 04.20 
(Ditulis Adi Suwanto 12.3.00043)

ISU DISAIN SISTEM PAGING

1.  Model Working Set
Ø  Dalam bentuk paging murni, proses dimulai dengan memori kosong, dan page-page dimasukkan ke dalamnya setelah diminta. Cara ini disebut demand paging.
Ø  Locality of reference: Kecenderungan proses untuk memakai satu set page yang sama selama beberapa saat.
Ø  Satu set page tersebut di atas membentuk working set. Dalam hal ini, yang diusahakan oleh sistem operasi adalah agar working set berada utuh di memori pada saat eksekusinya.
Ø  Jika ukuran memori terlalu kecil untuk working set, akan seringkali terjadi page fault. Hal ini disebut thrashing.
Ø  Banyak sistem paging yang mengusahakan agar working set sudah ada di memori sebelum proses dimulai. Pendekatan ini disebut model working set. Tujuannya adalah untuk memperkecil jumlah terjadinya page fault (page yang diminta tidak ada di memori).
Ø  Memasukkan page ke memori sebelum proses dimulai juga disebut prepaging.
Ø  Untuk pertama kali menentukan working set, dipakai sistem aging untuk mengetahui berapa kali jumlah pemakaian setiap page.

2. Alokasi Global dan Lokal
o    Pada sistem timesharing, isi memori bisa seperti pada Gambar a.
o    Misalkan diminta page A6. Jika dikeluarkan A5 untuk memberi tempat ke A6, berarti dilakukan alokasi lokal. Bila yang dikeluarkan adalah B3, dilakukan alokasi global.
o    Algoritma lokal berhubungan dengan pemberian jumlah frame yang sama untuk setiap proses, sementara algoritma global secara dinamis mengalokasikan frame untuk proses yang berjalan.

Age



A0
10
A0

A0
A1
7
A1

A1
A2
5
A2

A2
A3
4
A3

A3
A4
6
A4

A4
A5
3
A5 -> A6

A5
B0
9
B0

B0
B1
4
B1

B1
B2
6
B2

B2
B3
2
B3

B3 -> A6
B4
5
B4

B4
B5
6
B5

B5
B6
12
B6

B6
C1
3
C1

C1
C2
5
C2

C2
C3
6
C3

C3
                            (a)                                     (b)                                   (c)
Penggantian page global vs. lokal. (a) Konfigurasi awal.
(b) Penggantian page lokal. (c) Penggantian page global.
(Ditulis Yuyut Yanegar 12.3.00039)
3.  Ukuran Page
o    Ukuran page merupakan salah satu parameter yang ditentukan oleh perancang sistem operasi.
o    Penentuan ukuran page yang optimum harus menyeimbangkan beberapa faktor.
o    Rata-rata, page terakhir hanya akan terisi setengah (fragmentasi internal), berarti page sebaiknya kecil. Tetapi page yang kecil akan menghasilkan tabel page yang panjang.
Ø  s (byte)       =     ukuran proses rata-rata
Ø  p (byte)       =     ukuran page
Ø  e (byte)       =     ukuran setiap page entry
Ø  s/p              =     perkiraan jumlah page yang dibutuhkan per-proses
Ø  se/p (byte)  =     ruang untuk tabel page
Ø  p/2              =     memori yang terbuang karena fragmentasi
Ø  overhead    =     memori yang terpakai untuk tabel page dan fragmen internal.
overhead = se/p + p/2
Ø  Ukuran tabel page besar jika ukuran page kecil. Fragmen internal besar jika ukuranb page besar. Optimum harus ada di antaranya. Dengan mengambil penurunan pertama terhadap p dan menyemakan dengan nol:      -se/p2 + ½ = 0
Ø  Dari persamaan ini, ukuran page optimum adalah: p = Ö(2se)
Ø  Sebagian besar komputer komersial menggunakan ukuran page antara 512 byte – 8K.

4.         Isu Implementasi
Ø  Instruction backup
Instruksi yang menyebabkan referensi ke page yang belum ada di memori (menyebabkan page fault) harus diulang ketika page tersebut telah tersedia. Beberapa sistem operasi meng-copy setiap instruksi sebelum dilaksanakan sehingga hal ini tidakmakan waktu terlalu lama.
Ø  Locking pages in memory
Pada saat satu proses menjalani tahap I/O, proses lain bisa dijalankan. Yang mungkin terjadi ialah page proses I/O tersebut digantikan oleh proses yang kedua ini (jika dipakai alokasi global). Jalan keluarnya ialah dengan me-lock page-page proses I/O.
Ø  Shared pages
Dua atau lebih proses bisa memakai bersama page-page yang berasal dari editor yang mereka pakai. Penutupan salah satu proses ini tanpa disengaja bisa mengosongkan juga page yang dipakai bersama tersebut. Diperlukan suatu struktur data khusus untuk memantau page-page yang dipakai bersama ini.
Ø  Backing Store
Pada disk, disediakan area untuk menampung page yang dikeluarkan dari memori (paged out) yang disebut swap area. Setiap proses memiliki swap area di disk. Swap area ada yang statis ada juga yang dinamis.
Ø  Paging Daemon
Untuk meyakinkan tersedianya frame bebas yang cukup banyak, banyak sistem paging yang menggunakan proses background yang disebut paging daemon. Jika jumlah frame bebas terlalu sedikit, paging daemon akan mengosongkan beberapa page setelah menulisnya ke disk jika pernah dimodifikasi.
Ø  Penanganan Page Fault

Urutan langkah-langkah penanganan adalah sebagai berikut:
1.       Hardware melakukan trap ke kernel, program counter di-save ke stack. Pada banyak mesin, beberapa informasi tentang status instruksi saat itu di-save di register-register khusus CPU.
2.       Rutin kode assembly dimulai untuk men-save register-register umum dan informasi lain yang bisa berubah, agar sistem operasi tidak merusaknya. Rutin ini memanggil sistem operasi sebagai suatu prosedur.
3.       Sistem operasi menemukan bahwa terjadi page fault, dan mencoba menemukan page virtual mana yang diperlukan. Seringkali salah satu register hardware berisi informasi ini. Jika tidak, sistem operasi harus menarik program counter, mengambil instruksi, dan melakukan parsing pada software untuk mengetahui apa yang dilakukan sebelum terjadi fault.
4.       Begitu alamat virtual yang menyebabkan fault diketahui, sistem operasi memeriksa apakah alamat ini valid dan proteksinya konsisten dengan akses. Jika tidak, proses dikirimi sinyal atau ditutup. Jika alamat valid dan tidak ada pelanggaran proteksi, sistem berusaha untuk mendapatkan frame page dari daftar frame bebas. Jika tidak ada frame yang bebas, dijalankan algoritma penggantian page untuk mencari yang bisa ditukar.
5.       Jika frame page yang dipilih telah dimodifikasi, page dijadwalkan untuk ditransfer ke disk, dan terjadi pertukaran proses, menghentikan sementara proses yang fault dan membiarkan yang lainnya berjalan hingga transfer disk selesai. Frame ditandai terpakai untuk mencegah dipakai untuk tujuan lain.
6.       Begitu frame page bersih (apakah langsung atau setelah disave ke disk), sistem operasi menelusuri alamat disk di mana page diperlukan, dan menjadwalkan operasi disk untuk memasukkannya. Sementara page dimasukkan, proses yang mengalami fault dihentikan sejenak dan yang lainnya dijalankan, jika ada.
7.       Ketika disk interrrupt menandai bahwa page telah ada, tabel page di-update untuk menunjukkan posisinya, dan frame ditandai berada dalam status normal.
8.       Instruksi yang menyebabkan fault di-back-up ke status mulainya dan program counter di-reset untuk menunjuk ke instruksi tersebut.
9.       Proses yang fault tersebut dijadwalkan, dan sistem operasi kembali ke rutin bahasa assembly yang memanggilnya.
10.     Rutin ini mengembalikan register dan informasi lainnya ke keadaan semula , dan kembali ke user untuk melanjutkan eksekusi, seakan-akan tidak ada fault yang terjadi.*
                                                         (Ditulis Wahyu Liyanto 12.3.00037)

B.                       SISTEM SEGMENTASI
Pengertian Segmentasi ?
Secara sederhana segmentasi bisa diartikan sebagai suatu ruang alamat atau segment yang berada di memori. Segment-segment itu dalam keadaan independent. Setiap segment berisi alamat 0 sampai maksimum secara linier. Panjang setiap segment berbeda-beda sampai panjang maksimun, perobahanpanjang segment terjadi selama proses eksekusi.
Segment stack bertambah ketika terjadi operasi push dan turun saat operasi pop, dimana setiap segment merupakan ruang alamat terpisah segment-segment dapat tumbuh dan mengkerut secara bebas tanpa mempengaruhi yang lain.
Alamat terdiri dari dua bagian pada memori bersegment yaitu :
1. Nomor segment
2. Alamat pada segment ( offset ).
Segment dapat berisi :
1. Prosedure
2. Array
3. Stack
4. Kumpulan variable skala.
Sistem Segmentasi
Sistem dengan memori maya dengan segmentasi murni adalah alamat maya adalah offset di segment, setiap proses mempunyai tabel segment dan pada saat proses running alamat awal maya tabel dimuatkan ke register dasar. Nomor segment digunakan mencari deskriptor segment di tabel segment yang menyediakan alamat fisik awal dari segment, panjang dan bit-bit proteksinya. Alamat fisik dihitung dengan menambahkan alamat dasar segment ke alamat maya.

Keunggulan sistem ini dimana segment-segment tersebut saling berhubungan dengan unit-unit program, sehingga segment – segment indeal untuk proteksi dan pemakaian bersama.
Kelemahan sistem ini adalah dimana segment – segment berukuran bervariasi menyebabkan fragmentasi eksternal dan sulit menyelesaikan pertumbuhan dinamis. Segment-segment tidak memetakan blok-blok disk untuk memori maya secara alami.





Thrashing: peristiwa page fault yang sangat berlebihan.
Salah satu cara menghindari thrashing adalah dengan menyediakan sebanyak mungkin bingkai sesuai dengan kebutuhan proses. Untuk mengetahui berapa bingkai yang dibutuhkan adalah dengan strategi working set. Strategi ini dimulai dengan melihat berapa banyak bingkai yang digunakan oleh suatu proses. Working set model mengatakan bahwa sistem hanya akan berjalan secara efisien jika proses diberikan bingkai yang cukup, jika bingkai tidak cukup untuk menampung semua proses maka suatu proses akan ditunda, dan memberikan halamannya untuk proses yang lain.
Working set model merupakan model lokalitas dari eksekusi proses. Model ini menggunakan parameter (delta) untuk definisi working set window. Kumpulan dari halaman dengan halaman yang dituju yang paling sering muncul disebutworking set.
Berdasarkan hal ini terdapat dua teknik untuk memuatkan page, yaitu:
·     Prepaging, teknik memuatkan page-page lebih dulu sbelum proses berjalan.
·     Demand paging, teknik yang segera memuatkan page begitu page dibutuhkan.
Keakuratan Working set tergantung pada pemilihan :
  1. jika terlalu kecil tidak akan mewakilkan seluruh lokalitas.
  2. jika terlalu besar menyebabkan overlap.
  3. jika tidak terbatas working set adalah kumpulan halaman sepanjang eksekusi program.
Jika total permintaan > total bingkai, maka akan terjadi thrashing. Jika ini terjadi maka proses yang sedang berjalan akan diblok.
-          Kebijaksanaan penggantian local vs global
Terdapat dua pendekatan untuk mengganti page, yaitu:
·     Penggantian local adalah page yang dipilih untuk diganti hanya pada partisi dimana proses diletakkan.
·     Penggantian global adalah page yang dipilih untuk diganti adalah tempat kosong dengan tidak mempedulikan partisi proses. Dengan penggantian global, page fault suatu proses dapat dilayani dengan memindahkan page yang dimiliki proses lain.
-          Frekuensi page fault
Frekuensi terjadinya page fault dapat dikendalikan dengan algoritma PFF (page fault frequency algorithm). Dengan PFF harus didefinisikan ambang batas dan ambang bawah frekuensi page fault. Bila proses melampaui ambang batas frekuensi page fault maka dialokasikan lebih banyak page memory fisik untuk prose situ. Apabila proses telah mancapai amabang bawah frekuensi page fault maka alokasi page dihentikan.
-          Ukuran page
Ukuran page ditentukan oleh perancang system operasi.. ukuran page harus ditentukan agar system berperilaku optimal.  Beberapa pertimbangan, antara lain:
·     Ukuran page lebih kecil berarti jumlah page dan page frame lebih banyak sehingga memerlukan table page lebih besar.
·     Ukuran page besar, berarti sejumlah informasi yang tidak diacu juga dimasukkan ke memory utama sehingga terjadi fragmentasi internal yang tinggi.
·     Transfer masukan/ keluaran relative sangat mengkonsumsi waktu sehingga perlu meminimumkan  Transfer masukan/ keluaran saat program berjalan.
·     Program cenderung mengikuti prinsip lokalitas yang cenderun berukuran kecil.
                                                          (Ditulis Jovie Tofan L 12.3.00025)




0 komentar:

Posting Komentar