Swapping, Partitioning, Paging

15
ARSITEKTUR DAN ORGANISASI KOMPUTER CONTOH PROSES SWAPPING, PARTITIONING, PAGING Disusun Oleh : Indra Gustiaji Wibowo (123100031) Kelas B Dosen Hidayatulah Himawan,ST.,M.M.,M.Eng JURUSAN TEKNIK INFORMATIKA FAKULTAS TEKNOLOGI INDUSTRI

Transcript of Swapping, Partitioning, Paging

Page 1: Swapping, Partitioning, Paging

ARSITEKTUR DAN ORGANISASI KOMPUTER CONTOH PROSES SWAPPING, PARTITIONING, PAGING

Disusun Oleh :

Indra Gustiaji Wibowo (123100031)

Kelas B

Dosen

Hidayatulah Himawan,ST.,M.M.,M.Eng

JURUSAN TEKNIK INFORMATIKA

FAKULTAS TEKNOLOGI INDUSTRI

UPN “VETERAN” YOGYAKARTA

2012

Page 2: Swapping, Partitioning, Paging

Penukaran (Swap)

Sebuah proses membutuhkan memori untuk dieksekusi. Sebuah proses dapat ditukar sementara keluar memori ke backing store (disk), dan kemudian dibawa masuk lagi ke memori untuk dieksekusi. Sebagai contoh, asumsi multiprogramming, dengan penjadualan algoritma CPU Round-Robin. Ketika kuantum habis, manager memori akan mulai menukar keluar proses yang selesai, dan memasukkan ke memori proses yang bebas. Sementara penjadualan CPU akan mangalokasikan waktu untuk proses lain di memori. Ketika tiap proses menghabiskan waktu kuantumnya, proses akan ditukar dengan proses lain. Idealnya memori manager, dapat menukar proses-proses cukup cepat, sehingga selalu ada proses dimemori, siap dieksekusi, ketika penjadual CPU ingin menjadual ulang CPU. Besar kuantum juga harus cukup besar, sehingga jumlah perhitungan yang dilakukan antar pertukaran masuk akal.

Variasi dari kebijakan swapping ini, digunakan untuk algoritma penjadualan berdasarkan prioritas. Jika proses yang lebih tinggi tiba, dan minta dilayani, memori manager dapat menukar keluar proses dengan prioritas yang lebih rendah, sehingga dapat memasukkan dan mengeksekusi proses dengan prioritas yang lebih tinggi. Ketika proses dengan prioritas lebih tinggi selesai, proses dengan prioritas yang lebih rendah, dapat ditukar masuk kembali, dan melanjutkan. Macam-macam pertukaran ini kadang disebut roll out, dan roll in.

Normalnya, sebuah proses yang ditukar keluar, akan dimasukkan kembali ke tempat memori yang sama dengan yang digunakan sebelumnya. Batasan ini dibuat oleh method pengikat alamat. Jika pengikatan dilakukan saat assemble atau load time, maka proses tidak bisa dipindahkan ke lokasi yang berbeda. Jika menggunakan pengikatan waktu eksekusi, maka akan mungkin menukar proses kedalam tempat memori yang berbeda. Karena alamat fisik dihitung selama proses eksekusi.

Pertukaran membutuhkan sebuah backing store. Backing store biasanya adalah sebuah disk yang cepat. Cukup besar untuk mengakomodasi semua kopi tampilan memori. Sistem memelihara ready queue terdiri dari semua proses yang mempunyai tampilan memori yang ada di backing store, atau di memori dan siap dijalankan. Ketika penjadual CPU memutuskan untuk mengeksekusi sebuah proses, dia akan memanggil dispatcher, yang mengecek dan melihat apakah proses berikutnya ada diantrian memori. Jika proses tidak ada, dan tidak ada ruang memori yang kosong, dispatcher menukar keluar sebuah proses dan memaasukan proses yang diinginkan. Kemudian memasukkan ulang register dengan normal, dan mentransfer pengendali ke proses yang diinginkan.

Page 3: Swapping, Partitioning, Paging

Konteks waktu pergantian pada sistem swapping, lumayan tinggi. Untuk efisiensi kegunaan CPU, kita ingin waktu eksekusi untuk tiap proses lebih lama dari waktu pertukaran. Karenanya digunakan CPU penjadualan roun-robin, dimana kuantumnya harus lebih besar dari waktu pertukaran.

Perhatikan bahwa bagian terbesar dari waktu pertukaran, adalah waktu pengiriman. Total waktu pengiriman langsung didapat dari jumlah pertukaran memori.

Proses dengan kebutuhan memori dinamis, akan membutuhkan system call (meminta dan melepaskan memori), untuk memberi tahu sistem operasi tentang perubahan kebutuhan memori.

Ada beberapa keterbatasan swapping. Jika kita ingin menukar sebuah proses kita harus yakin bahwa proses sepenuhnya diam. Konsentrasi lebih jauh, jika ada penundaan I/O. Sebuah proses mungkin menunggu I/O, ketika kita ingin menukar proses itu untuk mengosongkan memori. Jika I/O secara asinkronus, mengakses memori dari I/O buffer, maka proses tidak bisa ditukar. Misalkan I/O operation berada di antrian, karena device sedang sibuk. Maka bila kita menukar keluar proses P1 dan memasukkan P2, mungkin saja operasi I/O akan berusaha masuk ke memori yang sekarang milik P2. Dua solusi utama masalah ini adalah

1. Jangan pernah menukar proses yang sedang menunggu I/O. 2. Untuk mengeksekusi operasi I/O hanya pada buffer sistem operasi.

Secara umum, ruang pertukaran dialokasikan sebagai potongan disk, terpisah dari sistem berkas, sehingga bisa digunakan secepat mungkin.

Belakangan pertukaran standar pertukaran digunakan dibeberapa sistem. Ini membutuhkan terlalu banyak waktu untuk menukar dari pada untuk mengeksekusi untuk solusi managemen memori yang masuk akal. Modifikasi swapping digunakan dibanyak versi di UNIX. Pertukaran awalnya tidak bisa, tapi akan mulai bila banyak proses yang jalan dan menggunakan batas jumlah memori.

SISTEM PAGING

Adalah sistem manajemen pada sistem operasi dalam mengatur program yang sedang berjalan. Program yang berjalan harus dimuat di memori utama. Kendala yang terjadi apabila suatu program lebih besar dibandingkan dengan memori utama yang tersedia.Untuk mengatasi hal tersebut Sistem Paging mempunyai 2 solusi, yaitu:

- Konsep OverlayDimana program yang dijalankan dipecah menjadi beberapa bagian yang dapat dimuat memori (overlay). Overlay yang belum diperlukan pada saat program berjalan (tidak sedang di eksekusi) disimpan di disk, dimana nantinya overlay tersebut akan dimuat ke memori begitu diperlukan dalam eksekusinya.

- Konsep Memori Maya (virtual Memory)Adalah kemampuan mengalamati ruang memori melebihi memori utama yang tersedia. Konsep ini pertama kali dikemukakan Fotheringham pada tahun 1961 untuk sistem komputer Atlas di Universitas Manchester, Inggris.

Page 4: Swapping, Partitioning, Paging

Gagasan Memori Maya adalah ukuran gabungan program, data dan stack melampaui jumlah memori fisik yang tersedia. Sistem operasi menyimpan bagian-bagian proses yang sedang digunakan di memori utama dan sisanya di disk. Begitu bagian di disk diperlukan maka bagian memori yang tidak diperlukan disingkirkan dan diganti bagian disk yang diperlukan.

A. Pengertian Memori Maya

Didalam menejemen memori dengan system partisi statis dan system dinamis sudah dapat menyelesaikan masalah menejemen memori didalam banyak hal, tetapi masih memiliki kekurangan atau keterbatasan di dalam pengakses. Dimana keterbatasan akses hanya sebatas addres memori yang ada secara fisik ( memori nyata ).

Misalnya memori 64 MB maka addres maksimum yang dapat diakses hanya sebesar 64 MB saja. Pada hal banyak program yang akan diakses yang melebihi 64 MB. Untuk mengatasi hal tersebut agar kemampuan akses lebih besar lagi maka dibentuklah memori maya ( yang pertama sekali di kemukakan oleh Fotheringham pada tahun 1961 untuk system komputer Atlas di Universitas Manchester, Inggris).

Dengan memori maya program yang besar tadi akan dapat diterapkan pada memori kecil saja, misalnya program 500 MB dapat ditempatkan secara maya di memori 64 MB. Untuk mengimplementasikan memori maya tersebut dapat dilakukan dengan tiga cara :

1. Sistem Paging

2. Sistem Segmentasi

3. Sistem kombinasi Paging dan Segmentasi

B. Memori system Paging

Untuk menginplementasikan addres maya yang besar ke dalam memori yang kecil diperlukan index register, base register, segment register dan MMU ( Memory Menegement Unit ).

· Pemetaan Memori Sistem Paging

Sistem kinerja komputer akan menerjemahkan alamat maya menjadi alamat fisik. Dengan kata lain dalam system memori maya alamat memori tidak langsung di tuliskan ke BUS tetapi terlebih dahulu dimasukkan ke MMU untuk diterjemahkan. Ada dua kemungkinan keluaran MMU yaitu :

1. Alamat yang dicari ada dimemori nyata, maka proses dapat langsung dikerjakan.

2. Alamat yang dicari tidak ada didalam memori nyata, maka MMU mengeluarkan page fault, yaitu permintaan alokasi memori untuk proses itu.

MMU mempunyai fungsi untuk memetakan memori maya ke memori fisik. Apabila alamat memori yang dipetakan tidak tersedia di memori fisik, MMU menertibkan exception page fault yang melewatkan ke system operasi untuk menengani.

Page 5: Swapping, Partitioning, Paging

Gambar memperlihatkan Implementasi pemetaan memori system paging.

Gambar 1. Implementasi Pemetaan Memori sistem paging

Apabila exception page fault meminta alokasi memori akan ditangani oleh system operasi yaitu memilih partisi yang telah selesai diakses dan kemungkinan proses ini akan digunakan lagi, dalam waktu yang lama lagi. Jika sudah dipilih maka program akan dikosongkan dari memori dan selanjutnya program yang alamatnya yang diminta akan dimasukkan ke memori.

Proses Pemetaan Pada MMU

Dibawah ini adalah suatu proses pemetaaan memori yang terjadi pada MMU. Alamat maya terdiri dari bagian nomor page dan offset. Alamat ini dicarikan didalam tabel page, bila ketemu maka MMU mengeluarkan page frame ( register alamat fisik ).Register alamat fisik terdiri darei nomor page dan offset, dimana nomor page frame lebih sedikit dari nomor page.

Apabila alamat tersebut tidak ada pada tabel page maka MMU mengeluarkan page fault.

Page 6: Swapping, Partitioning, Paging

C. 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, perobahan panjang 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.

Page 7: Swapping, Partitioning, Paging

Gambar 4. Skema Segmentasi

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.

D. Teknik Kombinasi Paging Dan Segmentasi

Teknik kombinasi pacing dan segmentasi adalah ruang alamat pemakai dibagi menjadi sejumlah segment sesuai dengan kehendak pemrogram. Segment tersebut dibagi menjadi sejumlah page berukuran tetap dan berukuran sama dengan page frame memori utama. Jika segment kurang dari ukuran page, maka segnent hanya memerlukan satu page.

Dari segi pandangan pemrogram, alamat maya masih berisi nomor segment dan offset di segment itu. Dari segi pandangan sistem, offset segment dipandang sebagai nomor page dan offset page untuk page di segment yang dispesifiksikan. Penggabungan dengan proses adalah tabel segment dan sejumlah tabel page, merupakan satu tabel persegment proses.

Saat proses running, register menyimpan alamat awal tabel segment untuk proses, pemroses menggunakan bagian nomor segment untuk mengindeks tabel segment proses guna menemukan tabel page untuk segment. Bagian angka page alamat maya digunakan untuk indeks tabel page dan mencari nomor page korespondensi. Angka tersebut kemudian dikombinasikan dengan bagian offset alamat maya untuk menghasilkan alamat nyata yang diinginkan.

Page 8: Swapping, Partitioning, Paging

PARTITIONING

Memori harus di diatur agar penempatan proses-proses tersebut dapat tersusun dengan baik. Hal

tersebut berkaitan dengan banyaknya jumlah proses yang berada di memori pada suatu saat/waktu.

Cara yang paling mudah adalah dengan membagi memori ke dalam beberapa partisi dengan ukuran

yang tetap. Cara ini memungkinkan pembagian yang tidak sama rata. Tiap partisi dapat terdiri dari

hanya satu buah proses. Sehingga derajat multiprogramming-nya dibatasi oleh jumlah partisi tersebut.

Proses Partisi Memori Tetap

Ketika sebuah proses datang, ia akan diletakkan ke dalam input queue (antrian proses pada disk yang

menunggu dibawa ke memori untuk dieksekusi) sesuai dengan ukuran terkecil partisi yang mampu

menampungnya. Kerugian dari mengurutkan proses ke dalam antrian yang berbeda berdasarkan

ukurannya muncul ketika partisi yang besar akan menjadi kosong karena tidak ada proses dengan

ukuran sesuai yang diletakkan di partisi tersebut. Namun di lain sisi, antrian untuk partisi dengan

ukuran kecil sangat padat karena banyaknya proses dengan ukuran yang sesuai. Cara alternatif yang

dapat dilakukan adalah dengan membuat sebuah antrian tunggal seperti terlihat pada gambar diatas.

Ketika sebuah partisi bebas, proses dengan ukuran sesuai partisi tersebut yang terletak di depan

antrian dapat dimasukkan lalu dieksekusi. Namun metode ini memiliki kelemahan, yaitu bagaimana

jika proses yang memasuki partisi yang cukup besar ternyata ukurannya jauh lebih kecil dari partisi

itu sendiri? Masalah ini dapat diatasi dengan mencari proses terbesar ke dalam seluruh antrian yang

Page 9: Swapping, Partitioning, Paging

dapat ditampung oleh sebuah partisi pada saat itu. Namun algoritma ini mendiskriminasikan proses

yang kecil karena proses yang diambil adalah proses terbesar yang dapat dimuat ke dalam partisi yang

sedang bebas saat itu.

Dalam partisi tetap ini, sistem operasi menggunakan sebuah tabel untuk mengindikasikan bagian

memori mana yang kosong dan mana yang terisi. Pada awalnya semua partisi kosong dan dianggap

sebagai sebuah blok besar yang tersedia (hole). Ketika sebuah proses datang dan membutuhkan

memori, ia akan dicarikan lubang yang cukup besar yang mampu menampungnya. Setelah

menemukannya, memori yang dialokasikan untuknya hanyalah sebesar memori yang dibutuhkannya

sehingga menyisakan tempat untuk memenuhi kebutuhan proses lain. Sistem operasi mencatat

kebutuhan memori masing-masing proses yang berada dalam antrian serta jumlah memori yang masih

tersedia untuk menentukan proses mana yang harus dimasukkan. Sistem akan memiliki sebuah daftar

yang berisi ukuran blok yang masih tersedia serta antrian masukan proses. Sistem operasi dapat

mengurutkan antrian input tersebut berdasarkan algoritma penjadwalan. Memori dialokasikan pada

proses yang ukurannya sesuai hingga akhirnya kebutuhan memori untuk proses berikutnya tidak dapat

dipenuhi karena tidak ada lagi blok yang cukup untuknya. Sistem operasi akan menunggu hingga blok

yang cukup besar untuk menampung proses tersebut tersedia atau sistem operasi dapat juga melewati

proses tersebut dan mencari jikalau ada proses dengan kebutuhan memori yang dapat ditampung oleh

blok memori yang tersedia. Pada kenyatannya, partisi tetap kurang mengoptimalkan memori sebagai

sumber daya yang penting karena seringkali terjadi, partisi yang cukup besar dialokasikan untuk

proses dengan ukuran yang lebih kecil sehingga sisa dari partisi tersebut tidak digunakan.

Pada alokasi penyimpanan dinamis, kumpulan lubang-lubang (ruang memori kosong) dalam berbagai

ukuran tersebar di seluruh memori sepanjang waktu. Apabila ada proses yang datang, sistem operasi

akan mencari lubang yang cukup besar untuk menampung memori tersebut. Apabila lubang yang

tersedia terlalu besar, maka ia akan dipecah menjadi 2. Satu bagian digunakan untuk menampung

proses tersebut sedangkan bagian lain akan digunakan untuk bersiap-siap menampung proses lain.

Setelah proses tersebut selesai menggunakan alokasi memorinya, ia akan melepaskan ruang memori

tersebut dan mengembalikannya sebagai lubang-lubang kembali. Apabila ada 2 lubang yang

berdekatan, keduanya akan bergabung untuk membentuk lubang yang lebih besar. Pada saat itu,

sistem harus memeriksa apakah ada proses dalam antrian yang dapat dimasukkan ke dalam ruang

memori yang baru terbentuk tersebut. Isu utama dari alokasi penyimpanan dinamis adalah bagaimana

memenuhi permintaan proses berukuran n dengan kumpulan lubang-lubang yang tersedia. Ada

beberapa solusi untuk masalah ini:

1. First Fit.  Memory manager akan mencari sepanjang daftar yang berisi besarnya ukuran

memori yang dibutuhkan oleh proses dalam antrian beserta ukuran memori yang tersedia pada

Page 10: Swapping, Partitioning, Paging

saat itu. Setelah menemukan lubang yang cukup besar (ruang memori dengan ukuran lebih

besar dari ukuran yang dibutuhkan oleh proses bersangkutan), lubang itu lalu dipecah menjadi

2 bagian. Satu bagian untuk proses tersebut dan bagian lain digunakan untuk memori yang tak

terpakai, kecuali tentu saja jika memang ukuran ruang memori tersebut sama besar dengan

yang dibutuhkan oleh proses. First fit ini merupakan algoritma yang bekerja dengan cepat

karena proses pencariannya dilakukan sesedikit mungkin

2. Next Fit.  Algoritma ini hampir sama persis dengan first fit, kecuali next fit meneruskan

proses pencarian terhadap lubang yang cukup besar untuk sebuah proses mulai dari lubang

sebelumnya yang telah sesuai dengan proses sebelumnya. Pendek kata, algoritma ini tidak

memulai pencarian dari awal. Gambar di bawah ini mengilustrasikan sebuah contoh yang

membedakan antara first fit dan next fit. Jika blok berukuran 2 dibutuhkan maka first fit akan

memilih lubang pada alamat 5, namun next fit akan memilih lubang pada 18.

Bagian Memori dengan 5 Proses dan 3 Lubang

3. Best Fit.  Best fit mencari dari keseluruhan daftar (kecuali jika daftar tersebut telah terurut

berdasarkan ukuran), dan memilih lubang terkecil yang cukup untuk menampung proses yang

bersangkutan. Daripada harus memecah sebuah lubang besar, yang mungkin saja dapat lebih

bermanfaat nantinya, best fitmencari lubang dengan ukuran yang hampir sama dengan yang

Page 11: Swapping, Partitioning, Paging

dibutuhkan oleh proses. Strategi ini menghasilkan sisa lubang terkecil. Kekurangan best

fit jika dibandingkan dengan first fit adalah lebih lambat karena harus mencari ke seluruh

tabel tiap kali dipanggil. Berdasarkan gambar diatas jika blok berukuran 2 dibutuhkan maka

berdasarkan best fit akan memilih lubang pada alamat 18 yaitu lubang terkecil yang cukup

menampung permintaan proses tersebut.

4. Worst Fit.  Worst fit akan mencari lubang terbesar. Sebagaimana best fit kita harus mencari

dari keseluruhan daftar kecuali jika daftar tersebut telah terurut berdasarkan ukuran. Strategi

ini menghasilkan sisa lubang terbesar. Berdasarkan gambar diatas jika blok berukuran 2

dibutuhkan maka berdasarkanworst fit akan memilih lubang pada alamat 28 yaitu lubang

terbesar yang cukup menampung permintaan proses tersebut.

5. dipenuhi karena tidak ada lagi blok yang cukup untuknya. Sistem operasi akan menunggu hingga blok yang cukup besar untuk menampung proses tersebut tersedia atau sistem operasi dapat juga melewati proses tersebut dan mencari jikalau ada proses dengan kebutuhan memori yang dapat ditampung oleh blok memori yang tersedia. Pada kenyatannya, partisi tetap kurang mengoptimalkan memori sebagai sumber daya yang penting karena seringkali terjadi, partisi yang cukup besar dialokasikan untuk proses dengan ukuran yang lebih kecil sehingga sisa dari partisi tersebut tidak digunakan.

Contoh partitioning pada windows :

Contoh partitioning pada linux :