Upload
aditya-dwi-cahyo-nugroho
View
674
Download
6
Embed Size (px)
Citation preview
TUGAS MATA KULIAH ARSITEKTUR DAN ORGANISASI KOMPUTER 1 “Proses Pada Swapping, Partitioning dan Paging”
Disusun Oleh :
Nama : Aditya Dwi Cahyo Nugroho
NIM : 123100023
Kelas : B
Dosen :
Hidayatullah Himawan, ST., MM
Prodi Teknik Informatika
Fakultas Teknologi Industri
Universitas Pembangunan Nasional “Veteran” Yogyakarta
2012
Soal :
1. Berikan Contoh Proses yang terjadi di dalam Swapping, Partitioning dan Paging!!!
Jawab :
a. Swapping
Swapping merupakan Sebuah proses agar bisa dieksekusi bukan hanya membutuhkan
sumber daya dari CPU, tetapi juga harus terletak dalam memori. Dalam tahapannya, suatu
proses bisa saja ditukar sementara keluar memori ke sebuah penyimpanan sementara dan
kemudian dibawa lagi ke memori untuk melanjutkan pengeksekusian. Hal ini dalam
sistem operasi disebut swapping.
Contoh Proses Swapping
Sebuah contoh untuk menggambarkan teknik swapping ini adalah sebagai berikut:
Algoritma Round-Robin yang digunakan pada multiprogramming environment
menggunakan waktu kuantum (satuan waktu CPU) dalam pengeksekusian proses-
prosesnya. Ketika waktu kuantum berakhir, memory manager akan mengeluarkan (swap
out) proses yang telah selesai menjalani waktu kuantumnya pada suatu saat serta
memasukkan (swap in) proses lain ke dalam memori yang telah bebas tersebut. Pada saat
yang bersamaan penjadwal CPU akan mengalokasikan waktu untuk proses lain dalam
memori. Hal yang menjadi perhatian adalah, waktu kuantum harus cukup lama sehingga
waktu penggunaan CPU dapat lebih optimal jika dibandingkan dengan proses penukaran
yang terjadi antara memori dan disk.
Teknik swapping roll out, roll in menggunakan algoritma berbasis prioritas dimana ketika
proses dengan prioritas lebih tinggi tiba maka memory manager akan mengeluarkan proses
dengan prioritas yang lebih rendah serta me-load proses dengan prioritas yang lebih tinggi
tersebut. Saat proses dengan prioritas yang lebih tinggi telah selesai dieksekusi maka
proses yang memiliki prioritas lebih rendah dapat dimasukkan kembali ke dalam memori
dan kembali dieksekusi.
Sebagian besar waktu swapping adalah waktu transfer. Sebagai contoh kita lihat ilustrasi
berikut ini: sebuah proses pengguna memiliki ukuran 5 MB, sedangkan tempat
penyimpanan sementara yang berupa harddisk memiliki kecepatan transfer data sebesar 20
MB per detiknya. Maka waktu yang dibutuhkan untuk mentransfer proses sebesar 5 MB
tersebut dari atau ke dalam memori adalah sebesar 5000 KB / 20000 KBps = 250 ms
Perhitungan di atas belum termasuk waktu latensi, sehingga jika kita asumsikan waktu
latensi sebesar 2 ms maka waktu swap adalah sebesar 252 ms. Oleh karena terdapat dua
kejadian dimana satu adalah proses pengeluaran sebuah proses dan satu lagi adalah proses
pemasukan proses ke dalam memori, maka total waktu swap menjadi 252 + 252 = 504 ms.
Agar teknik swapping dapat lebih efisien, sebaiknya proses-proses yang di- swap hanyalah
proses-proses yang benar-benar dibutuhkan sehingga dapat mengurangi waktu swap. Oleh
karena itulah, sistem harus selalu mengetahui perubahan apapun yang terjadi pada
pemenuhan kebutuhan terhadap memori. Disinilah sebuah proses memerlukan fungsi
system call, yaitu untuk memberitahukan sistem operasi kapan ia meminta memori dan
kapan membebaskan ruang memori tersebut.
Jika kita hendak melakukan swap, ada beberapa hal yang harus diperhatikan. Kita harus
menghindari menukar proses dengan M/K yang ditunda (asumsinya operasi M/K tersebut
juga sedang mengantri di antrian karena peralatan M/Knya sedang sibuk). Contohnya
seperti ini, jika proses P1dikeluarkan dari memori dan kita hendak memasukkan proses
P2, maka operasi M/K yang juga berada di antrian akan mengambil jatah ruang memori
yang dibebaskan P1 tersebut. Masalah ini dapat diatasi jika kita tidak melakukan swap
dengan operasi M/K yang ditunda. Selain itu, pengeksekusian operasi M/K hendaknya
dilakukan pada buffer sistem operasi.
Tiap sistem operasi memiliki versi masing-masing pada teknik swapping yang
digunakannya. Sebagai contoh pada UNIX, swapping pada dasarnya tidak diaktifkan,
namun akan dimulai jika banyak proses yang membutuhkan alokasi memori yang banyak.
Swapping akan dinonaktifkan kembali jika jumlah proses yang dimasukkan berkurang.
Pada sistem operasi Microsoft Windows 3.1, jika sebuah proses baru dimasukkan dan
ternyata tidak ada cukup ruang di memori untuk menampungnya, proses yang lebih dulu
ada di memori akan dipindahkan ke disk. Sistem operasi ini pada dasarnya tidak
menerapkan teknik swapping secara penuh, hal ini disebabkan pengguna lebih berperan
dalam menentukan proses mana yang akan ditukar daripada penjadwal CPU. Dengan
ketentuan seperti ini proses-proses yang telah dikeluarkan tidak akan kembali lagi ke
memori hingga pengguna memilih proses tersebut untuk dijalankan.
b. Partitioning Partisi (Bahasa Inggris: Partition), dalam sistem berkas dan manajemen media penyimpanan adalah sebuah bagian dari memori atau media penyimpanan yang terpisah secara logis yang berfungsi seolah-olah bagian tersebut terpisah secara fisik. Media penyimpanan yang dapat dipartisi adalah memori (baik itu memori fisik ataupun memori maya oleh manajer memori sistem operasi), hard disk, magneto-optical disk (MO Disk), dan beberapa flash memory. Meskipun demikian, istilah partisi saat ini digunakan untuk merujuk pada bagian dari hard disk. Konsep umum dari proses partitioning adalah sistem operasi akan menempati bagian memori yang tetap, kemudian sisa memori dibagi-bagi untuk keperluan sejumlah proses. Partioning sendiri adalah teknik membagi memori menjadi beberapa bagian sesuai dengan kebutuhan pemogram.
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 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.
Proses Pemartisian Dinamis
Dengan menggunkan partisi statis menyebabkan memori terlalu banyak diboroskan
dengan proses-proses yang lebih kecil dibanding partisi yang ditempatinya. Namun
apabila menggunakan partisi dinamis maka jumlah, lokasi, dan ukuran proses di memori
dapat beragam sepanjang waktu secara dinamis. proses yang akan masuk ke memori
segera dibuatkan partisi untuknya sesuai kebutuhannya. Teknik ini meningkatkan utilitas
memori. Kelemahan partisi dimanis adalah dapat terjadi lubang-lubang kecil memori di
antara partisi-partisi yang dipakai merumitkan alokasi dan dealokasi memori.
c. Pagging Paging adalah suatu metode yang memungkinkan suatu alamat fisik memori yang tersedia dapat tidak berurutan. Prinsipnya adalah memecah memori fisik dan memori logika menjadi blok-blok dengan ukuran sama (disebut page). Setelah itu kita membuat page table yang akan menerjemahkan memori logika menjadi memori fisik dengan perantara Memory Management Unit (MMU), dan pengeksekusian proses akan mencari memori berdasarkan tabel tersebut. Pengertian Lainnya Paging adalah suatu metode yang mengizinkan alamat logika proses untuk dipetakan ke alamat fisik memori yang tidak berurutan, yaitu sebagai solusi dari masalah fragmentasi ekstern. Metode dasar dari paging adalah dengan memecah memori fisik menjadi blok-blok yang berukuran tertentu (frame) dan memecah memori logika menjadi blok-blok yang berukuran sama (page). Contoh proses 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. Gambar memperlihatkan Implementasi pemetaan memori system paging.
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.