VIRTUAL MEMORI
Selama bertahun-tahun, pelaksanaan berbagai strategi managemen memori
yang ada menuntut keseluruhan bagian proses berada di memori sebelum proses
dapat mulaidieksekusi. Dengan kata lain, semua bagian proses harus memiliki
alokasi sendiri padamemori fisiknya.Pada nyatanya tidak semua bagian dari
program tersebut akan diproses, misalnya:
1. Terdapat pernyataan-pernyataan atau pilihan yang hanya akan dieksekusi
jika kondisi tertentu dipenuhi. Apabila kondisi tersebut tidak dipenuhi,
maka pilihan tersebut tak
akan pernah dieksekusi/ diproses. Contoh dari pilihan itu adalah: pesanpesan error
yang hanya akan muncul bila terjadi kesalahan dalam eksekusi program.
2. Terdapat fungsi-fungsi yang jarang digunakan, bahkan sampai lebih dari
100x
pemakaian.
3. Terdapat pealokasian memori lebih besar dari yang sebenarnya
dibutuhkan. Contoh
pada: array, list, dan tabel.
Hal-hal di atas telah menurunkan optimalitasi utilitas dari ruang memori fisik.
Padamemori berkapasitas besar, hal ini mungkin tidak menjadi masalah. Akan
tetapi,bagaimana jika memori yang disediakan terbatas?
Salah satu cara untuk mengatasinya adalah dengan overlay dan dynamic
loading .Namun hal ini menimbulkan masalah baru karena implementasinya yang
rumit danpenulisan program yang akan memakan tempat di memori. Tujuan
semula untukmenghemat memori bisa jadi malah tidak tercapai apabila program
untuk overlay dandynamic loading . malah lebih besar daripada program yang
sebenarnya ingindieksekusi.Maka sebagai solusi untuk masalah-masalah ini
digunakanlah konsep memori virtual.
1.0.1 Pengertian
Pesan-pesan
error
hanya
dimasukkan
jika
terjadi
pernah
digunakan.
Kita
juga
dapat
meningkatkan
derajat
10frame
yang
masih
kosong.Lebih
jauh
lagi,
kita
harus
sejumlah
pemakaianalgoritma
memori.
dalam
Penggunaan
penempatan
di
ini
dapat
meningkatkan
memori.Beberapa
sistem
Dari contoh diatas, terdapat 12 kesalahan halaman. Meski pun algoritma ini
menghasilkan 12 kesalahan halaman, algoritma ini masih lebih baik daripada
algoritma
FIFO,
yang
menghasilkan
15
kesalahan
halaman.
Untuk
10
11
lagi pada daftar frame bebas. Terdapat macam-macam variasi untuk strategi
sederhana ini, kita bisa meminta sistem operasi untuk mengalokasikan seluruh
buffer dan ruang tabel-nya dari daftar frame bebas. Saat ruang ini tidak digunakan
oleh sistem operasi, ruang ini bisa digunakan untuk mendukung paging dari user.
Kita juga dapat menyimpan tiga frame bebas yang dari daftar frame bebas,
sehingga ketika terjadi page fault, ada frame bebas yang dapat digunakan untuk
paging. Saat pertukaran halaman terjadi, penggantinya dapat dipilih, kemudian
ditulis ke disk, sementara proses user tetap berjalan.
Variasi lain juga ada, tetapi ide dasarnya tetap yaitu proses pengguna diberikan
frame bebas yang mana saja. Masalah lain muncul ketika demand paging
dikombinasikan
dengan
multiprogramming.
Hal
ini
terjadi
karena
multiprogramming menaruh dua (atau lebih) proses di memori pada waktu yang
bersamaan.
1.6.1 Jumlah Frame Minimum
Tentu saja ada berbagai batasan pada strategi kita untuk alokasi frame.
Kita tidak dapat mengalokasikan lebih dari jumlah total frame yang tersedia
(kecuali ada page sharing). Ada juga jumlah minimal frame yang dapat di
alokasikan. Jelas sekali, seiring dengan bertambahnya jumlah frame yang
dialokasikan ke setiap proses berkurang, tingkat page fault bertambah dan
mengurangi kecepatan eksekusi proses. Selain hal tersebut di atas, ada jumlah
minimum frame yang harus dialokasikan. Jumlah minimum ini ditentukan oleh
arsitektur set instruksi. Ingat bahwa ketika terjadi page fault, sebelum eksekusi
instruksi selesai, instruksi tersebut harus diulang. Sehingga kita harus punya
jumlah frame yang cukup untuk menampung semua halaman yang dirujuk oleh
sebuah instruksi tunggal. Jumlah minimum frame ditentukan oleh arsitektur
komputer. Sebagai contoh, instruksi move pada PDP-11 adalah lebih dari satu kata
untuk beberapa modus
12
halaman. Satu blok karakter yang akan dipindahkan dan daerah tujuan
perpindahan juga dapat memakai dua halaman, sehingga situasi ini membutuhkan
enam frame. Kesimpulannya, jumlah minimum frame yang dibutuhkan per proses
tergantung dari arsitektur komputer tersebut, sementara jumlah maksimumnya
ditentukan oleh jumlah memori fisik yang tersedia. Di antara kedua jumlah
tersebut, kita punya pilihan yang besar untuk alokasi frame.
1.6.2 Algoritma Alokasi
Cara termudah untuk membagi m frame terhadap n proses adalah
untukmemberikan bagian yang sama, sebanyak m/n frame untuk tiap proses.
Sebagai contohada 93 frame tersisa dan 5 proses, maka tiap proses
akanmendapatkan 18 frame. Frameyang tersisa, sebanyak 3 buah dapat digunakan
sebagai frame bebas cadangan. Strategiini disebut equal allocation.Sebuah
alternatif yaitu pengertian bahwa berbagai proses akan membutuhkanjumlah
memori yang berbeda. Jika ada sebuah proses sebesar 10K dan sebuah prosesbasis
data 127K dan hanya kedua proses ini yang berjalan pada sistem, maka ketika
ada62 frame bebas, tidak masuk akal jika kita memberikan masing-masing proses
31 frame.Proses pertama hanya butuh 10 frame, 21 frame lain akan terbuang
percuma.
Untuk menyelesaikan masalah ini, kita menggunakan proportional
allocation. Kita mengalokasikan memori yang tersedia kepada setiap proses
tergantung pada ukurannya. Let the size of the virtual memory for process pi be si,
and define S = si. Lalu, jika jumlah total dari frame yang tersedia adalah m, kita
mengalokasikan proses ai ke proses pi, dimana ai mendekati ai = si / S x m Dalam
kedua strategi ini, tentu saja, alokasi untuk setiap proses bisa bervariasi
berdasarkan multiprogramming level-nya. Jika multiprogramming level-nya
meningkat, setiap proses akan kehilangan beberapa frame guna menyediakan
memori yang dibutuhkan untuk proses yang baru. Di sisi lain, jika
multiprogramming level-nya menurun, frame yang sudah dialokasikan pada
bagian process sekarang bisa disebar ke proses-proses yang masih tersisa.
Mengingat hal itu, dengan equal atau pun proportional allocation, proses yang
berprioritas tinggi diperlakukan sama dengan proses yang berprioritas rendah.
13
14
memori untuk sebuahproses tergantung tidak hanya pada kelakuan paging dari
proses tersebut, tetapi jugapada kelakuan paging dari proses lain. Karena itu,
proses yang sama dapat tampilberbeda (memerlukan 0,5 detik untuk satu eksekusi
dan 10,3 detik untuk eksekusiberikutnya) due to totally external circumstances.
Dalam Penggantian Lokal, himpunanhalaman dalam memori untuk sebuah proses
hanya dipengaruhi kelakuan paging prosesitu sendiri.Penggantian Lokal dapat
menyembunyikan sebuah proses dengan membuatnya tidak tersedia bagi proses
lain, menggunakan halaman yang lebih sedikit pada memori. Jadi, secara umum
Penggantian Global menghasilkan sistem throughput yang lebih bagus, maka itu
artinya metode yang paling sering digunakan.
1.7 Thrasing
Jika suatu proses tidak memiliki frame yang cukup, walau pun kita
memiliki kemungkinan untuk mengurangi banyaknya frame yang dialokasikan
menjadi minimum, tetap ada halaman dalam jumlah besar yang memiliki kondisi
aktif menggunakannya. Maka hal ini akan mengakibatkan kesalahan halaman.
Pada kasus ini, kita harus mengganti beberapa halaman menjadi halaman yang
dibutuhkan walau pun halaman yang diganti pada waktu dekat akan dibutuhkan
lagi. Hal ini mengakibatkan kesalahan terus menerus. Aktivitas yang tinggi dari
paging disebut thrashing. Suatu proses dikatakan thrashing jika proses
menghabiskan waktu lebih banyak untuk paging daripada eksekusi (proses sibuk
untuk melakukan swap-in swap-out).
1.7.1 Penyebab Thrashing
Penyebab dari thrashing adalah utilisasi CPU yang rendah. Jika utilisasi
CPU terlalu rendah, kita menambahkan derajat dari multiprogramming dengan
menambahkan proses baru ke sistem. Sejalan dengan bertambahnya derajat dari
multiprogramming, utilisasi CPU juga bertambah dengan lebih lambat sampai
maksimumnya dicapai. Jika derajat dari multiprogramming ditambah terus
menerus, utilisasi CPU akan berkurang dengandrastis dan terjadi thrashing. Untuk
menambah utilisasi CPU dan menghentikan thrashing, kita harus mengurangi
derajat dari multiprogramming.
15
16
partisi. File system juga dapat diartikan sebagai partisi atau disk yang digunakan
untuk menyimpan file-file dalam cara tertentu. Cara memberi suatu file system ke
dalam disk atau partisi dengan cara melakukan Format.
(Interface)
merupakan
mekanisme
komunikasi
antara
Sistem
File
adalah
adalah
metoda
untuk
memberi
nama
pada berkas dan meletakkannya pada media penyimpanan. Semua sistem operasi
mulai dari DOS, Windows, Macintosh dan turunan UNIX memiliki Sistem berkas
sendiri untuk meletakkan file dalam sebuah struktur hirarki. Contoh dari sistem
berkas
termasuk
di
File adalah unit penyimpan logika yang diabstraksi sistem operasi dari
perangkat penyimpan. File berisi informasi yang disimpan pada penyimpan
17
sekunder (seperti magnetic disk, magnetic tape dan optical disk). Informasi dalam
file didefinisikan oleh pembuatnya. Sebuah file mempunyai struktur tertentu
tergantung tipenya. Tipe file terdiri dari data baik data numeric, karakter maupun
binary sertaprogram misalnya source program, object program dan executable
program.
mengeksekusi.
Waktu, tanggal dan identifikasi user, data untuk monitoring proteksi,
sekuriti dan penggunaan.
Informasi file disimpan dalam struktur direktori yang diatur oleh disk.
2.1.1.2 Operasi pada File
Sebagai tipe data abstrak, perlu didefinisikan operasi yang dapat dibentuk
olehfile. Terdapat enam operasi dasar yg disediakan sebagai sistem call yaitu :
Membuat file (create)
Menulis file (write)
Membaca file (read)
Reposisi dalam file (file seek)
Menghapus file (delete)
Memotong file (truncate)
Open(Fi) mencari struktur direktori untuk entry Fi dan memindahkan
isi entry kememori.
Close (Fi) memindahkan isi entry Fi di memori ke struktur direktori
pada disk.
Operasi tambahan yang biasanya dilakukan terhadap file adalah :
Menambah (append) informasi baru pada akhir file yang sudah ada
Mengubah nama (rename) file yang sudah ada
18
19
UNIX menggunakan magic number yang disimpan pada awal file untuk
mengindikasikan tipe file berupa program executable, batch file (shell script),
filepostscript dan lain-lain. Tidak semua file mempunyai magic number,
sehinggainformasi tipe tidak dapat digambarkan. UNIX tidak menyimpan nama
dari programpembuatnya. UNIX juga mengijinkan nama extension dari file
tersembunyi, sehingga user dapat menentukan tipe file sendiri dan tidak
tergantung pada sistem operasi.
2.1.1.3 Struktur File
Tipe file juga digunakan untuk untuk menunjukkan struktur internal dari
file.File tertentu harus konfirmasi ke struktur yang dibutuhkan yang dimengerti
oleh system operasi. Misalnya sistem operasi membutuhkan file executable yang
mempunyaistruktur khusus sehingga dapat menentukan dimana letak memory dan
lokasi dariinstruksi pertama.Beberapa sistem operasi menggunakan sekumpulan
sistem pendukung strukturfile dg sejumlah operasi khusus untuk manipulasi file
dengan struktur tersebut. Hal inimenjadi kelemahan pada sistem operasi yang
mendukung struktur file lebih dari satu.Jika sistem operasi menentukan 10
20
struktur file berbeda, maka perlu menyertakan kodeuntuk mendukung struktur file
tersebut. Setiap file perlu dapat didefinisikan sebagai satu dari tipe file yang
didukung oleh sistem operasi.Beberapa sistem operasi seperti UNIX dan MS-DOS
hanya mendukungsejumlah struktur file. UNIX menentukan setiap file merupakan
deret 8 bit byte dan bit tersebut tidak di terjemahkan oleh sistem operasi. Skema
ini mempunyai fleksibilitasimaksimum, tetapi sedikit dukungan. Setiap program
aplikasi harus mnyertakan kodesendiri untuk menterjemahkan file input ke dalam
struktur yang tepat. Setidaknyasemua SO harus mendukung sedikitnya satu
struktur file executable sehingga system dapat load dan menjalankan program.
2.1.2
Metode Akses
File menyimpan informasi. Bila digunakan, informasi tersebut harus
diakses dan dibaca ke memory. Terdapat beberapa cara mengakses informasi pada
file yaituakses berurutan (sequential access), akses langsung (Direct access atau
relative access) dan metode akses lain.
21
panjang
tetap
yang
22
position to n
read next
write next
rewrite n
Operasi file dimodifikasi untuk memasukkan nomor blok sebagai parameter.
Nomor blok ditentukan user yang merupakan nomor blok relatif, misalnya
indeks relatif keawal dari file. Blok relatif pertama dari file adalah 0, meskipun
alamat disk absolutaktual dari blok misalnya 17403 untuk blok pertama. Metode
ini mengijinkan system operasi menentukan dimana file ditempatkan dan
mencegah user mengakses posisi darisistem file yang bukan bagian dari file
tersebut.
Tidak semua sistem operasi menggunakan baik akses berurutan atau akse
langsung untuk file. Beberapa sistem hanya menggunakan akses berurutan,
beberapasistem lain menggunakan akses langsung. Untuk mengubah akses
berurutan ke akseslangsung bukan sesuatu hal yang sulit seperti pada Gambar 4.
23
2.2.3
Struktur Direktori
Direktori adalah kumpulan titik yang berisi informasi tentang semua file .
Beberapa sistem menyimpan ratusan file pada disk ratusan gigabyte.
Untuk mengatur semua data menggunakan organisasi yg dilakukan dalam
dua bagian. Pertama, system file dipecah ke dalam partisi, yang disebut juga
minidisk (pada mesin IBM) atau volume (pada mesin PC dan Macintosh).
Setiap disk padasistem berisi sedikitnya satu partisi, merupakan struktur low-level
dimana file dandirektori berada. Terkadang, partisi digunakan untuk menentukan
beberapa daerahterpisah dalam satu disk, yang diperlakukan sebagai perangkat
penyimpan yangterpisah. Sistem lain menggunakan partisi yang lebih besar dari
sebuah disk untukmengelompokkan disk ke dalam satu struktur logika. Kedua,
24
Nama
Tipe
Alamat
Panjang saat ini
Panjang maksimum
Tanggal akses terakhir
Tanggal perubahan terakhir
ID pemilik
Informasi proteksi
25
26
27
28
Permasalahan
mendasar
adalah
memelihara
konsistensi
jika
file
lainnya
melibatkan
penghapusan.
Kapan
ruang
yang
Proteksi
29
Operasi yang lain, seperti pemberian nama, meng-copy atau mengubah file, juga
harus
dikontrol.
Untuk
beberapa
alasan,
fungsi
level
lebih
tinggi
30
perintah bagi device driver untuk membaca dan menulis blok fisik pada disk. File
organization module berisi modul untuk mengetahui blok logika pada blok fisik.
Logical file system menggunakan struktur direktori untuk memberikan ke file
organization module informasi tentang kebutuhan terakhir. Informasi mengenai
sebuah file disimpan pada struktur penyimpan yang disebut file control block
Pada saat membuka file (dengan menjalankan perintah open) blok-blok dari
struktur direktori disimpan pada struktur direktori di memori dan mengubah file
control block. Pada saat membaca file (dengan menjalankan perintah read), indeks
yang dibaca di cari lokasi blok pada disk melalui tabel open file yang berada di
memori.
2.2.1 Struktur Sistem File
Disk yang merupakan tempat terdapatnya sistem berkas menyediakan sebagian
besar tempat penyimpanan dimana sistem berkas akan dikelola. Disk memiliki
dua karakteristik penting yang menjadikan disk sebagai media yang tepat untuk
menyimpan berbagai macam berkas, yaitu:
Data dapat ditulis ulang di disk tersebut, hal ini memungkinkan untuk membaca,
memodifikasi, dan menulis di disk tersebut.
Dapat diakses langsung ke setiap blok di disk. Hal ini memudahkan untuk
mengakses setiap berkas baik secara berurut mau pun tidak berurut, dan berpindah
dari satu berkas ke berkas lain dengan hanya mengangkat head disk dan
menunggu disk berputar.
32
Disk Organization
2.2.2 Metode Pengalokasian
secara random .
Kekurangan: memakan banyak ruang (permasalahan dynamic storageallocation). File yang disimpan secara berurutan tidak dapat berkembang.
33
34
35
36
2.2.3.4 Counting
Ruang kosong list berupa urutan blok-blok kosong, maka dilakukan pendaftaran
rangkaian blok kosong dengan memasukkan alamat blok kosong pertama dari
rangkaian, lalu disertakan jumlah blok kosong yang bersebelahan dengannya
37
tipe
ukuran
waktu
owner
blok-blok di disk
38
2.2.6 Recovery
39
Daftar pustaka
http://terminaltechno.blog.uns.ac.id/2009/12/13/implementasi-sistem-file/
http://mohiqbal.staff.gunadarma.ac.id/Downloads/files/5359/09.Manajemen+Siste
m+File.ppt
40
Daftar pustaka
http://arna.lecturer.pens.ac.id/Diktat_SO/9.Sistem%20File.pdf
http://manajementos.blogspot.com/2010/10/sistem-manajemen-file.html
41