Ada
dua jenis penyimpanan sekunder yang utama adalah berurutan dan akses langsung:
1.Penyimpanan Berurutan (SASD)
2.Penyimpanan
Akses Langsung (DASD)
Penyimpanan Berurutan (SASD)
Penyimpanan
berurutan (sequential storage) adalah suatu organisasi atau penyusunan data di
suatu medium penyimpanan yang terdiri dari satu catatan mengikuti satu catatan
lain ke urutan tertentu. Misalnya, catatan pegawai disusun dalam urutan nomor
pegawai. Bila sistem penyimpanannya berurutan yang digunakan, data pertama
harus diproses pertama,
kedua diproses kedua, dan seterusnya sampai akhir file itu tercapai. Sebagian media penyimpanan komputer hanya dapat memproses data yang disusun secara berurutan. Pita magnetik adalah contohnya.
Penyimpanan Akses Langsung (DASD)
kedua diproses kedua, dan seterusnya sampai akhir file itu tercapai. Sebagian media penyimpanan komputer hanya dapat memproses data yang disusun secara berurutan. Pita magnetik adalah contohnya.
Penyimpanan Akses Langsung (DASD)
Penyimpanan akses langsung (direct access storage) adalah suatu cara mengorganisasikan data yang memungkinkan semua catatan ditulis dan dibaca tanpa pencarian secara berurutan atau secara acak. Unit perangkat keras yang memungkinkan hal ini disebut direct accsess storage divice (DASD). DASD memiliki mekanisme membaca dan menulis yang dapat diarahkan ke lokasi manapun dalam medium penyimpanan. Walau beberapa teknologi DASD telah dibuat, yang paling populer adalah piringan magnetic.
struktur media penyimpanan sekunder, Pertama-tama kita mendeskripsikan algoritma head-scheduling yang
bertugas mengurutkan kerja dari setiap disk I/O untuk meningkatkan kinerja
secara keseluruhan. Setelah itu kita akan membahas disk formatting
dan managemen dari blok boot, blok-blok yang rusak (bad blok), dan daerah swap space. Kita akhiri dengan rangkuman dari
reabilitas disk dan implementasi media penyimpanan yang stabil dan
aman.
1. Struktur Disk
Disk menyediakan penyimpanan sekunder bagi sistem komputer modern. Magnetic tape sebelumnya
digunakan sebagai media penyimpanan sekunder, tetapi waktu aksesnya lebih lambat dari disk. Oleh karena
itu, sekarang tape digunakan terutama
untuk backup, untuk penyimpanan
informasi yang tidak sering, sebagai mediauntuk
mentransfer infromasi dari satu sistem ke sistem yang lain, dan untuk menyimpan
sejumlah data yang terlalu besar untuk sistem disk. Disk drive modern dialamatkan sebagai suatu array satu
dimensi yang besar dari blok lojik, dimana blok lojik merupakan unit
terkecil dari transfer. Ukuran dari blok lojik biasanya adalah 512 bytes , walau pun sejumlah disk dapat
diformat di levelrendah (low level
formatted ) untuk memilih sebuah ukuran
blok lojik yang berbeda,misalnya 1024 bytes .Array satu dimensi dari blok lojik dipetakan ke bagian dari disk secarasekuensial. Sektor 0 adalah sector pertama dari
trek pertama di silinder paling luar (outermost cylinder). Pemetaan kemudian memproses secara berurutan
trek tersebut,kemudian melalui trek selanjutnya di silinder tersebut,
dan kemudian sisa silinder dariyang paling luar sampai yang paling dalam.Dengan menggunakan pemetaan, kita dapat minimal
dalam teori mengubahsebuah nomor blok logical ke sebuah alamat disk yang
bergaya lama (old-style disk address) yang terdiri atas sebuah nomor silinder, sebuah
nomor trek di silinder tersebut,
dan sebuah nomor sektor di trek tersebut. Dalam prakteknya, adalah sulituntuk
melakukan translasi ini, dengan 2 alasan. Pertama, kebanyakan disk memilikisejumlah sektor yang rusak, tetapi pemetaan
menyembunyikan hal ini denganmensubstitusikan
dengan sektor yang dibutuhkan dari mana-mana di dalam disk.Kedua, jumlah dari sektor per trek tidaklah
konstan. Semakin jauh sebuah trek daritengah
disk, semakin besar panjangnya, dan juga semakin banyak sektor yangdipunyainya.
Oleh karena itu, disk modern diatur menjadi zona-zona silinder. Nomor sektor per trek adalah konstan dalam sebuah zona.
Tetapi seiring kita berpindah darizona dalam ke zona luar, nomor sektor per
trek bertambah. Trek di zona paling luar tipikalnya mempunyai 40 persen sector lebih banyak daripada trek di zona
palingdalam. Nomor sektor per
trek telah meningkat seiring dengan peningkatan teknologidisk, dan adalah lazim
untuk mempunyai lebih dari 100 sektor per trek di zona yanglebih luar dari disk. Dengan analogi yang sama,
nomor silinder per disk telahmeningkat, dan sejumlah ribuan silinder
adalah tak biasa.
2. Penjadualan Disk
Salah satu tanggung jawab sistem operasi adalah menggunakan hardware dengan
efisien. Khusus untuk disk drives, efisiensi
yang dimaksudkan di sini adalahdalam hal waktu akses yang cepat dan aspek bandwidth
disk. Waktu akses memilikidua komponen utama
yaitu waktu pencarian dan waktu rotasi disk. Waktu pencarianadalah waktu
yang dibutuhkan disk arm untuk menggerakkan head ke bagian silinder disk yang mengandung sektor yang diinginkan. Waktu rotasi disk adalah
waktutambahan yang dibutuhkan untuk
menunggu rotasi atau perputaran disk, sehinggasektor yang diinginkan dapat dibaca oleh
head. Pengertian Bandwidth adalah total jumlah Bytes yang
ditransfer dibagi dengan total waktu antara permintaan pertamasampai seluruh
bytes selesai ditransfer. Untuk meningkatkan kecepatan akses
dan bandwidth, kita dapat melakukan penjadualan pelayanan atas permintaan I/O dengan urutan yang tepat. Sebagaimana
kita ketahui, jika suatu proses membutuhkan pelayanan I/O dari atau
menuju disk, maka proses tersebut
akan melakukan system call ke sistem operasi.Permintaan tersebut membawa
informasi-informasi antara lain:
1.Apakah operasiinput atau
output.
2.Alamatdisk untuk proses tersebut.
3.Alamat memori untuk proses tersebut
4.Jumlahbytes yang akan ditransfer
Jika disk
drive beserta controller tersedia
untuk proses tersebut, maka proses akandapat dilayani dengan segera. Jika
ternyata disk drive dan controller
tidak tersedia atausedang sibuk melayani
proses lain, maka semua permintaan yang memerlukan pelayanan disk tersebut
akan diletakkan pada suatu antrian penundaan permintaanuntuk disk tersebut. Dengan demikian, jika suatu permintaan telah dilayani, makasistem operasi memilih permintaan tertunda dari
antrian yang selanjutnya akandilayani.
2.1 Penjadualan FCFS
Bentuk paling
sederhana dalam penjadualan disk adalah
dengan sistem antrian(queue) atau First
Come First Served (FCFS). Algoritma ini
secara intrinsik bersifatadil, tetapi secara umum algoritma ini pada
kenyataannya tidak memberikan pelayananyang paling cepat. Sebagai contoh,
antrian permintaan pelayanan disk untuk
proses I/O pada blok dalam
silinder adalah sebagai berikut: 98, 183, 37, 122, 14, 124, 65, 67. Jika head pada
awalnya berada pada 53, maka head akan bergerak dulu dari 53 ke 98,kemudian 183, 37, 122, 14, 124, 65, dan terakhir
67, dengan total pergerakan head sebesar
640 silinder.Permasalahan dengan menggunakan
penjadualan jenis ini dapat diilustrasikandengan pergerakan dari 122 ke 14 dan
kembali lagi ke 124. Jika permintaan terhadapsilinder 37 dan 14 dapat
dikerjakan/ dilayani secara bersamaan, baik sebelum mau punsetelah permintaan 122 dan 124, maka pergerakan
total head dapat dikurangi secarasignifikan, sehingga
dengan demikian pendayagunaan akan meningkat.
2.2 Penjadualan SSTF
Sangat
beralasan jika kita menutup semua pelayanan pada posisi head saat ini,sebelum
menggerakkan head ke tempat lain yang jauh untuk melayani suatu permintaan. Asumsi ini mendasari algoritma
penjadualan kita yang kedua yaitu shortest-seek-time-first
(SSTF).
Algoritma ini memilih permintaan dengan berdasarkanwaktu pencarian atau seek
time paling minimum dari posisi
head saat itu. Karenawaktu pencarian meningkat seiring dengan jumlah silinder
yang dilewati oleh
head ,maka
SSTF memilih permintaan yang paling dekat posisinya di disk
terhadap
posisi head saat itu.Perhatikan contoh antrian permintaan yang kita
sajikan pada penjadualanFCFS, permintaan paling dekat dengan posisi head saat itu (53) adalah silinder 65.
Jikakita penuhi permintaan 65, maka yang terdekat berikutnya adalah silinder
67. Dari 67,silinder 37 letaknya lebih dekat
ke 67 dibandingkan silinder 98, jadi 37 dilayaniduluan. Selanjutnya,
dilanjutkan ke silinder 14, 98, 122, 124, dan terakhir adalah 183.Metode
penjadualan ini hanya menghasilkan total pergerakan
head sebesar
236 silinder - kira-kira sepertiga dari
yang dihasilkan penjadualan FCFS. Algoritma SSTF inimemberikan peningkatan yang
cukup signifikan dalam hal pendayagunaan atauperformance
sistem.Penjadualan
SSTF merupakan salah satu bentuk dari penjadualan shortest-job- first (SJF), dan karena itu maka penjadualan SSTF juga dapat mengakibatkan starvation pada suatu saat
tertentu. Kita ketahui bahwa permintaan dapat datang kapansaja. Anggap kita
memiliki dua permintaan dalam antrian, yaitu untuk silinder 14 dan186. Selama
melayani permintaan 14, kita anggap ada permintaan baru yang letaknyadekat
dengan 14. Karena letaknya lebih dekat ke 14, maka permintaan ini akan
dilayanidulu sementara permintaan 186 menunggu gilirannya. Jika kemudian
berdatangan lagi permintaan-permintaan
yang letaknya lebih dekat dengan permintaan terakhir yangdilayani jika
dibandingkan dengan 186, maka permintaan 186 bisa saja menunggusangat lama.
Kemudian jika ada lagi permintaan yang lebih jauh dari 186, maka jugaakan
menunggu sangat lama untuk dapat dilayani.Walaupun
algoritma SSTF secara substansial meningkat jika dibandingkandengan
FCFS, tetapi algoritma SSTF ini tidak optimal. Seperti contoh diatas, kita
dapatmenggerakkan head dari 53 ke 37, walau pun bukan yang paling dekat,
kemudian ke14, sebelum menuju 65, 67,
98, 122, dan 183. Strategi ini dapat mengurangi totalgerakan head menjadi
208 silinder.
2.3. Penjadualan SCAN
Pada
algoritma SCAN, pergerakan disk arm dimulai dari salah satu ujung disk, kemudian
bergerak menuju ujung yang lain sambil melayani permintaan setiap kalimengunjungi
masing-masing silinder. Jika telah sampai di ujung disk, maka disk
arm bergerak berlawanan arah, kemudian mulai lagi melayani
permintaan-permintaan yangmuncul. Dalam hal ini disk arm bergerak bolak-balik melalui disk. Kita
akan menggunakan contoh yang sudah dibarikan diatas. Sebelummelakukan SCAN untuk melayani
permintaan-permintaan 98, 183, 37, 122, 14, 124,65, dan 67, kita harus
mengetahui terlebih dahulu pergerakan head sebagai langkahawal dari 53. Jika disk arm
bergerak menuju 0, maka head
akan melayani 37 dankemudian 14. Pada silinder 0, disk arm akan bergerak berlawanan arah dan bergerak menuju
ujung lain dari disk untuk melayani
permintaan 65, 67, 98, 122, 124, dan 183.Jika
permintaan terletak tepat pada head saat itu, maka akan dilayani terlebih dahulu,sedangkan
permintaan yang dating tepat dibelakang head
harus menunggu dulu head mencapai
ujung disk, berbalik arah, baru
kemudian dilayani.Algoritma SCAN ini disebut juga algoritma lift/ elevator,
karena kelakuan disk arm sama
seperti elevator dalam suatu gedung, melayani dulu orang-orang yang akannaik ke atas, baru kemudian berbalik arah untuk
melayani orang-orang yang inginturun ke bawah.Kelemahan algoritma ini
adalah jika banyak permintaan terletak pada salah satuujung disk, sedangkan permintaan yang akan
dilayani sesuai arah arm disk jumlahnyasedikit atau tidak ada, maka
mengapa permintaan yang banyak dan terdapat pada ujungyang berlawanan arah
dengan gerakan disk arm saat itu tidak
dilayani duluan? Ide iniakan mendasari algoritma penjadualan berikut
yang akan kita bahas.
2.4 Penjadualan C-SCAN
Circular-SCAN adalah varian dari algoritma SCAN yang sengaja didesainuntuk menyediakan waktu tunggu
yang sama. Seperti halnya SCAN, C-SCAN akan menggerakkan head dari
satu ujung disk ke ujung
lainnya sambil melayani permintaanyang
terdapat selama pergerakan tersebut. Tetapi pada saat head tiba
pada salah satuujung, maka head tidak berbalik arah dan melayani
permintaan-permintaan, melainkanakan kembali
ke ujung
disk asal pergerakannya. Jika head mulai dari ujung 0, makasetelah tiba di ujung disk yang lainnya, maka head tidak
akan berbalik arah menujuujung 0, tetapi langsung bergerak ulang dari 0
ke ujung satunya lagi.
2.5 Penjadualan LOOK
Perhatikan
bahwa SCAN dan C-SCAN menggerakkan disk arm melewati lebar seluruh disk. Pada
kenyataanya algoritma ini tidak diimplementasikan demikian(pergerakan melewati lebar seluruh
disk). Pada
umumnya,arm disk bergerak paling jauh hanya pada permintaan terakhir pada masing-masin arah
pergerakannya.Kemudian langsung berbalik arah tanpa
harus menuju ujung disk. Versi SCAN
dan C-SCAN yang berprilaku seperti ini disebut LOOK SCAN dan LOOK C-SCAN,
karenaalgoritma ini melihat dulu
permintaan-permintaan sebelum melanjutkan arah pergerakannya.
2.6 Pemilihan Algoritma
Penjadualan Disk
Dari algoritma-algoritma diatas,
bagaimanakah kita memilih algoritma terbaik yang akan digunakan ?
SSTF lebih umum dan memiliki prilaku yang lazim kita temui.SCAN dan C-SCAN memperlihatkan kemampuan yang
lebih baik bagi sistem yangmenempatkan
beban pekerjaan yang berat kepada disk, karena algoritma tersebutmemiliki masalah starvation yang paling
sedikit. Untuk antrian permintaan tertentu,mungkin saja kita dapat
mendefinisikan urutan akses dan pengambilan data dari disk yang optimal, tapi proses komputasi membutuhkan penjadualan
optimal yang tidak kitadapatkan pada SSTF atau SCAN.Dengan algoritma penjadualan yang mana pun, kinerja sistem sangattergantung pada jumlah dan tipe permintaan.
Sebagai contoh, misalnya kita hanyamemiliki satu permintaan, maka semua algoritma
penjadualan akan dipaksa bertindak sama,
karena algoritma-algoritma tersebut hanya punya satu pilihan dari manamenggerakkan
disk head: semuanya berprilaku seperti algoritma penjadualan FCFS. Perlu diperhatikan pula bahwa pelayanan permintaan
disk dapat
dipengaruhi pula oleh metode alokasi file. Sebuah program yang membaca
alokasi file secara terusmenerus mungkin
akan membuat beberapa permintaan yang berdekatan pada disk,menyebabkan
pergerakan head menjadi terbatas.
File yang memiliki link atau indeks,dilain
pihak, mungkin juga memasukkan blok-blok yang tersebar luas pada disk ,menyebabkan
pergerakan head yang sangat
besar.Lokasi blok-blok indeks dan directory juga tidak kalah penting. Karena fileharus dibuka sebelum
digunakan, proses pembukaan file membutuhkan pencarian padastruktur directory, dengan demikian directory akan sering diakses. Kita anggap
catatan directory berada pada
awal silinder, sedangkan data file berada pada silinder terakhir.Pada kasus ini, disk head harus bergerak
melewati sepanjang lebar disk. Membuattempat penyimpanan sementara dari
blok-blok indeks dan
Directory ke dalam memoridapat membantu mengurangi pergerakan disk arm, khususnya untuk permintaanmembaca
disk .Karena kerumitan inilah,
maka algoritma penjadualan disk harus
ditulis dalammodul terpisah dari system operasi, jadi dapat saling mengganti
dengan algoritma lain jika diperlukan. Baik SSTF mau pun LOOK keduanya
merupakan pilihan yang palingmasuk akal sebagai algoritma yang paling dasar.
3. Managemen Disk
Sistem operasi juga bertanggung jawab atas beberapa aspek dari managemendisk.Di sini kita akan membahas inisialisasi
disk, booting dari disk, danrecovery /pemulihan dari blok-blok yang rusak
(bad-blok).
3.1 Memformat Disk
Sebuah disk magnetik yang baru sebenarnya hanyalah sebuah Slate kosongyang
berupa piringan magnetik untuk menyimpan sesuatu. Sebelum disk tersebut dapat menyimpan data, harus dilakukan proses low-level
formatting / physical formatting ,yaitu
membagi disk menjadi beberapa sektor dan mengisinya dengan struktur datatertentu
(biasanya header, area data, dan trailer)
agar dapat dibaca dan ditulis oleh disk
controller. Salah satu informasi yang
dibutuhkan oleh disk controller adalah
error-correcting code (ECC). Disebut seperti itu karena jika terdapat
satu atau dua bit datayang corrupt, controller dapat mengidentifikasi bit mana yang berubah danmengoreksi nya. Proses ini otomatis dilakukan oleh
controller setiap membaca ataumenulis pada disk. Low-level formatting berfungsi
agar pihak manufaktur dapat mengetes disk danmenginisialisasi
mapping dari lojikal nomor blok ke pendeteksi sektor kosong.Semakin besar ukuran sektor yang diformat, semakin
sedikit sektor yang dapat diisi pada masing-masing track dan semakin sedikit header dan
trailer yang ditulis padasetiap track.
Hal ini berarti ruang yang dapat digunakan untuk data semakin besar.Agar disk dapat menggunakan suatu berkas, sistem
operasi membutuhkanuntuk menyimpan struktur datanya pada disk. Langkah
pertama adalah membagi disk menjadi
satu/ lebih silinder( partition), sehingga sistem operasi dapatmemperlakukannya sebagai disk yang terpisah.
Langkah kedua adalah logicalformatting, atau membuat sistem berkas. Pada
langkah ini, sistem operasi menyimpanstruktur data yang telah diinisialisasi ke
disk. Raw I/O adalah array pada
blok lojikal yang memiliki kemampuan untuk menggunakan suatu
partisi disk tanpa struktur data dari sistem berkas. Dengan partisi raw ini, untuk beberapa aplikasi tertentu akan lebih
efisien dari segi penyimpanan.Tetapi kebanyakan aplikasi akan berjalan
lebih baik dengan servis sistem berkas biasa.
3.2 Boot Block
Ketika pertama kali menjalankan komputer, dibutuhkan program yang sudandiinisialisasi, yaitu bootstrap. Yang diinisialisasi adalah segala aspek sistem, dari CPU register sampai device controller dan isi dari main memory, kemudian menjalankansistem operasi. Untuk
itu bootstrap mencari kernel system operasi pada disk, me-load -nya ke memori, dan menggunakan alamat yang telah diinisialisasi untuk
mulaimenjalankan sistem operasi.Hampir
semua komputer menyimpan bootstrap pada Read-Only Memory(ROM). Alas annya karena ROM tidak membutuhkan
inisialisasi dan berada padalokasi yang tetap dimana prosesor tetap
dapat mengeksekusinya ketika komputer barudinyalakan/ di-reset. Kelebihan
lainnya karena ROM read-only, ia tidak dapat terkenavirus. Tetapi masalah yang
timbul adalah jika kita mengubah kodebootstrap berartimengubah
Chip ROM juga. Untuk mengatasinya, sistem
menyimpan bootstrap loader di ROM, yang
hanya berfungsi untuk memasukkan seluruh program bootstrap daridisk. Boot blocks adalah suatu partisi untuk menyimpan seluruh program bootstrap Boot disk atau system disk adalah disk yang
memiliki partisi boot
3.3 Bad Blocks
Bad blocksadalah
satu/lebih sektor yang rusak pada suatu disk. Pada disk sederhana, bad blocks diatasi secara manual. Untuk
disk yang lebih kompleks sepertidisk SCSI, bad blocks diatasi dengan sector
sparing atau forwarding, yaitu
controller dapat mengganti sektor yang rusak dengan sebuah sektor yang terpisah.
Alternatif lainnya adalah mengganti sektor tersebut dengan cara sector slipping .Mengganti blok yang rusak bukan sepenuhnya
merupakan proses yangotomatis, karena data-data yang tersimpan sebelum
nya akan terhapus.
4. Penanganan Swap-Space Penanganan ( management)
swap-space (tempat
pertukaran; tetapi karena istilah swap-space
sudah umum dipakai, maka untuk
seterusnya kita tetap memakai istilah swap-space
) adalah salah satu dari low-level task
pada sebuah sistem operasi. MemoriVirtual menggunakan disk space sebagai perpanjangan (atau spacetambahan) darimemori
utama. Karena kecepatan akses disk lebih lambat daripada kecepatan aksesmemori,
menggunakan swap-space akan
mengurangi performa sistem secarasignifikan. Tujuan utama dari
perancangan dan implementasi swap-space
adalah untuk menghasilkan
kinerja memori virtual yang optimal. Dalam sub-bab ini, kita akanmembicarakan
bagaimana swap-space digunakan,
dimana letak swap-space
pada
disk,dan bagaimana penanganan swap-space.
4.1 Penggunaan Swap-Space
Penggunaan swap-space pada berbagai macam sistem operasi
berbeda-beda,tergantung pada algoritma memory management yang diimplementasikan. Sebagaicontoh, sistem yang
mengimplementasikan
swapping mungkin akan menggunakan swap-space untuk menyimpan (dan mengerjakan) sebuah proses, termasuk segmenkode dan
datanya. Sistem yang menggunakan paging hanya akan menyimpan page (atau "halaman " proses)
yang sudah dikeluarkan dari memori utama. Besarnya swap- space yang dibutuhkan sebuah sistem bermacam-macam, tergantung dari banyaknya physical
memory (RAM, seperti EDO DRAM, SDRAM, RD
RAM), memori virtualyang disimpan di swap-space, dan caranya memori virtual digunakan. Besarnya bervariasi,
antara beberapa megabytes sampai ratusan megabytes atau lebih.Beberapa sistem operasi, seperti UNIX, menggunakan swap-space sebanyak yang
diperlukan. Swap-space ini biasanya
disimpan dalam beberapa disk yang
terpisah, jadi beban yang diterima oleh sistem I/O
dari paging dan swapping bisa didistribusikanke
berbagai I/O device pada
sistem.Harap dicatat bahwa menyediakan
swap-space yang berlebih lebih amandaripada
kekurangan swap-space, karena bila
kekurangan maka ada kemungkinansistem
terpaksa menghentikan sebuah atau lebih proses atau bahkan membuat sistemmenjadi
crash. Swap-space yang berlebih memang membuang disk space yangsebenarnya
bisa digunakan untuk menyimpan berkas (file), tapi setidaknya tidak menimbulkan resiko yang lain.
4.2 Lokasi Swap-Space
Ada dua tempat dimana swap-space bisa berada: swap-space bisa diletakkan pada partisi yang
sama dengan sistem operasi, atau pada partisi yang berbeda. Apabila swap-space yang dipakai hanya berupa sebuah berkas yang besar di dalam sistem berkas,
maka sistem berkas yang dipakai bisa digunakan untuk membuat, menamakan,dan
mengalokasikan tempat swap-space. Maka dari itu, pendekatan seperti ini mudahuntuk
diimplementasikan. Sayangnya, juga tidak efisien. Menelusuri struktur direktoridan struktur data alokasi disk memakan waktu, dan
berpotensi untuk mengakses disk lebih banyak dari yang diperlukan.
Fragmentasi eksternal bisa membuat swapping lebih lama dengan memaksakan pencarian sekaligus banyak (multiple
seeks) ketikasedang membaca atau menulis
sebuah proses. Kita bisa meningkatkan performadengan meng-cache informasi
lokasi blok pada physical memory, dan denganmenggunakan aplikasi khusus
untuk mengalokasikan blok-blok yang contiguous
(tidak terputus) untuk berkas
swap-nya, dengan waktu tambahan untuk menelusuri
struktur data
file-system masih tetap
ada.Metode yang lebih umum adalah untuk
membuat swap-space di partisi yangterpisah. Tidak ada system file
atau struktur direktori di dalam partisi ini. Justru sebuah swap-space
storage manager yang terpisah digunakan
untuk mengalokasikan danmelepaskan blok-blok yang digunakan. Manager ini menggunakan algoritma yangdioptimalkan untuk kecepatan, daripada efisiensi
tempat. Fragmentasi internalmungkin akan meningkat, tetapi ini bisa diterima
karena data dalam swap-space biasanya
umurnya lebih singkat daripada data-data di sistem file, dan swap area-nyadiakses lebih sering.
Pendekatan ini membuat besar swap-space
yang tetap selagimempartisi disk. Menambah
jumlah swap-space bisa
dilakukan hanya me laluimempartisi ulang disk (dimana juga termasuk memindahkan atau menghancurkan
danmengembalikan partisi file-system
lainnya dari backup), atau dengan
menambahkan swap-space di
tempat lain.Beberapa sistem operasi cukup
fleksibel dan bisa swapping baik
di partisimentah (raw, belum di-format) dan di file-system. Contohnya Solaris 2. Policy danimplementasinya terpisah, sehingga administrator mesinnya (komputernya)
bisamemutus kan mana yang akan digunakan. Pertimbangannya adalah antara
kemu dahanalokasi dan pengelolaan file-system
, dan performa dari swapping pada partisi yang raw.
4.3 Pengelolaan Swap-Space
Untuk mengilustrasikan metode-metode yang digunakan untuk mengelola swap-space, kita sekarang akan mengikuti
evolusi dari
swapping dan paging padaGNU/ Linux. GNU/ Linux memulai dengan implemen tasi swapping
yang menyalinseluruh proses antara daerah disk yang
contiguous (tidak
terputus) dan memori. UNIX berevolusi menjadi kombinasi dari
swapping dan paging dengan tersedianya hardware untuk paging .Dalam 4.3 BSD, swap-space dialokasikan untuk proses ketika sebuah prosesdimulai.
Tempat yang cukup disediakan untuk menampung program, yang juga dikenalsebagai halaman-halaman teks (text pages) atau segmen teks, dan segmen data dari proses itu. Alokasi dini tempat yang dibutuhkan
dengan cara seperti ini umumnyamencegah sebuah proses untuk kehabisan swap-space selagi proses itu dikerjakan.Ketika
proses mulai, teks di dalamnya di page dari file system. Halaman-halaman( pages ) ini akan ditaruh diswap bila
perlu, dan dibaca kembali darisana, jadi sistem file akan diakses
sekali untuk setiap text page.Halaman-halaman
dari segmen datadibaca dari sistem file,
atau dibuat (bila belum sebelumnya), dan ditaruh di swap space dan di page kembali bila perlu. Satu contoh optimisasi (sebagai contoh, ketika dua pengguna
menggunakan editor yang sama) adalah proses-proses dengan text page yangidentik membagi halaman-halaman (pages) ini, baik di memori mau pun di swap- space. Dua peta swap untuk
setiap proses digunakan oleh kernel untuk melacak penggunaan swap-space. Segmen teks besarnya tetap, maka swap space yangdialokasikan sebesar 512K
setiap potong (chunks), kecuali untuk potongan terakhir,yang menyimpan
sisa halaman-halaman (pages) tadi,
dengan kenaikan (increments)
sebesar 1K.Peta swap dari Segmen data lebih
rumit, karena segmen data bisa mem besar setiap saat. Petanya
sendiri besarnya tetap, tapi menyimpan a lamat-alamat swap untuk blok-blok yang besarnya bervariasi. Misalkan
ada index i, dengan besar maksimun 2megabytes. Data struktur ini
ditunjukkan oleh gambar 12.1.(Besar minimum
dan maksimum blok bervariasi, dan bisa diubah ketika me-reboot sistem.) Ketika
sebuah proses mencoba untuk memperbesar segmen datanyamelebihi blok yang
dialokasikan di tempat swap, sistem operasi mengalokasikan blok lain lagi,
dua kali besarnya yang pertama. Skema ini menyebab kan proses-proses yangkecil menggunakan blok-blok kecil. Ini juga
meminimalisir fragmentasi. Blok-blok dari proses yang besar bisa di
temukan dengan cepat, dan peta swap tetap kecil.Pada Solaris 1 (SunOS 4), para
pembuatnya membuat perubahan pada me todestandar
UNIX untuk meningkatkan efisiensi dan untuk mencermin kan perubahanteknologi.
Ketika sebuah proses berjalan, halaman-hala man (pages) dari segmen teksdibawa kembali dari sistem berkas, diak ses di
memori utama, dan dibuang biladiputuskan untuk di-pageout. A kan lebih efisien
untuk membaca ulang sebuahhalaman
(page) dari sistem berkas daripada menaruhnya di swap-space danmembacanya
ulang dari sana. Lebih banyak lagi perubahan pada Solaris 2. Perubahanterbesar ada lah Solaris 2 mengalokasikan
swap-space hanya ketika sebuah halaman(page) dipaksa keluar dari memori,
daripada ketika halaman (page) dari memori virtual pertama kali dibuat. Perubahan ini memberikan per forma yang lebih
baik padakomputer-komputer modern, yang
sudah mem punyai memori lebih banyak dari pada komputer-komputer dengan sistem yang sudah lama, dan lebih jarang
melakukan paging.
5. Keandalan Disk
Disk memiliki resiko untuk mengalami kerusakan. Kerusakan ini dapat berakibat turunnya performa atau pun hilangnya
data. Meski pun terdapat backup data,tetap
saja ada kemungkinan data yang hilang karena adanya perubahan setelah
terakhir kali data dibackup.
Karenanya reliabilitas dari suatu disk harus dapat terusditingkatkan.Berikut
adalah beberapa macam penyebab terjadinya hilangnya data:
1.Ketidaksengajaan dalam menghapus.Bisa saja
pengguna secara tidak sengaja menghapus suatu berkas, hal ini dapatdicegah seminimal mungkin dengan cara melakukan backup data
secarareguler.
2.Hilangnya tenaga listrik Hilangnya
tenaga listrik dapat mengakibatkan adanya corrupt data.
3.Blok rusak pada disk.Rusaknya
blok pada disk dapat saja disebabkan dari umur disk tersebut. Seiringdengan
waktu, banyaknya blok pada disk yang rusak dapat terus terakumulasi.Blok yang
rusak pada disk, tidak akan dapat dibaca.
4.Rusaknya Disk.Bisa saja
karena suatu kejadian disk rusak total. Sebagai contoh, dapat saja
disk jatuh atau pun ditendang ketika sedang dibawa.
5. System Corrupt.Ketika komputer sedang
dijalankan, bisa saja terjadi OS error,
program error ,dan lain sebagainya.
Hal ini tentu saja dapat menyebabkan hilangnya data.
Berbagai macam cara dilakukan untuk meningkatkan kinerja dan jugareliabilitas dari disk. Biasanya
ntuk meningkatkan kinerja, dilibatkan banyak disk sebagai satu unit penyimpanan. Tiap-tiap blok data
ipecah ke dalam beberapa subblok,dan
dibagi-bagi ke dalam disk-disk tersebut. Ketika mengirim data isk-disk tersebut bekerja
secara pararel. Ditambah dengan sinkronisasi pada rotasi masing-masing disk,aka kinerja dari disk dapat ditingkatkan. Cara ini
dikenal sebagai RAID (Redundant Array of ndependent Disks). Selain masalah kinerja RAID juga dapat
meningkatkanreabilitas dari disk dengan alan melakukan redundansi data.Salah satu cara yang digunakan pada RAID adalah dengan
mirroring atau shadowing, yaitu dengan embuat duplikasi dari tiap-tiap disk. Pada cara ini,
berartidiperlukan media penyimpanan
yang dua ali lebih besar daripada ukuran datasebenarnya. Akan tetapi, dengan cara ini pengaksesan disk yang ilakukan
untuk membaca dapat
ditingkatkan dua kali lipat. Hal ini dikarenakan setengah dariermintaan membaca dapat dikirim ke masing-masing
disk. Cara lain yang digunakan pada RAID adalah lock interleaved parity. Pada cara ini,
digunakan sebagian kecil daridisk untuk penyimpanan parity
block. Sebagai contoh, dimisalkan terdapat
10 disk pada array. Karenanya setiap 9 data block
yang disimpan pada array, 1
parityblock juga akan disimpan. Bila terjadi kerusakan pada salah satublock pada disk makadengan adanya informasi pada parity
block ini, ditambah dengan data block lainnya,diharapkan kerusakan
pada disk tersebut dapat ditanggulangi, sehingga tidak ada datayang
hilang.Penggunaan parity block ini juga akan
menurunkan kinerja sama seperti halnya pada mirroring . Pada parity block ini, tiap kalisubblock data ditulis, akan terjadi perhitungan
dan penulisan ulang pada parity block .
6. Implementasi Stable-Storage
Pada bagian sebelumnya (sinkronisasi proses), kita sudah membicarakanmengenai write-ahead
log, yang membutuhkan ketersediaan
sebuah storage yangstabil. Berdasarkan definisi, informasi yang berada
di dalam stable storage tidak akan pernah hilang. Untuk
mengimplementasikan storage seperti itu, kita perlu mereplikasiinformasi yang dibutuhkan ke banyak peralatan
storage (biasanya disk-disk) denganfailure
modes yang independen. Kita perlu mengkoordinasikan penulisan update-update dalam sebuah cara yang menjamin bila
terjadi kegagalan selagi meng-updatetidak akan membuat semua kopi yang
ada menjadi rusak, dan bila sedang recover darisebuah kegagalan, kita bisa memaksa semua kopi yang ada ke dalam keadaan
yang bernilai benar dan konsisten, bahkan bila ada kegagalan lain
yang terjadi ketika sedangrecovery. Untuk
selanjutnya, kita akan membahas bagaimana kita bisa mencapaikebutuhan
kita.Sebuah
disk write menyebabkan satu dari tiga
kemungkinan:
1.Successful completion Data disimpan dengan
benar di dalam disk.
2. Partial failure Kegagalan terjadi di tengah-tengah transfer,
menyebabkan hanya bebe rapasektor yang diisi dengan data yang baru, dan sektor
yang diisi ketika terjadikegagalan menjadi rusak.
3.Total failure Kegagalan terjadi sebelum disk write dimulai, jadi data yang sebe lumnya
ada pada disk masih tetap ada.Kita
memerlukan, kapan pun sebuah kegagalan terjadi ketika sedang me nuliske
sebuah blok, system akan mendeteksinya dan memanggil sebuah prosedur recoveryuntuk me-restore blok tersebut ke sebuah keadaan
yang konsisten.
Untuk melakukanitu, sistem
harus menangani dua blok physical untuk setiap blok logical.Sebuah operasi
output dieksekusi seperti berikut:
1.Tulis informasinya ke blok physical yang pertama.
2.Ketika penulisan pertama berhasil, tulis informasi yang sama ke blok
physicalyang kedua.
3.Operasi dikatakan berhasil hanya jika penulisan kedua berhasil.
Pada saat recovery dari sebuah kegagalan, setiap pasang blok physi caldiperiksa. Jika keduanya sama dan
tidak terdeteksi adanya kesa lahan, tetapi berbedadalam isi, maka kita
mengganti isi dari blok yang pertama dengan isi dari blok yangkedua. Prosedur
recovery se perti ini memastikan bahwa sebuah penulisan ke stable storage akan sukses atau tidak ada perubahan sama sekali.Kita bisa menambah fungsi prosedur ini dengan
mudah untuk memboleh kan penggunaan dari kopi yang banyak dari setiap blok
pada stable storage. Meski punsejumlah
besar kopi semakin mengurangi kemungkinan untuk terjadinya sebuahkegagalan,
maka biasanya wajar untuk men simulasi stable storage
hanya dengan dua kopi. Data di dalam stable storage dijamin aman kecualisebuah kegagalan menghancurkan
semua kopi yang ada.
0 komentar:
Posting Komentar