Muhammad Wali, St
i
DAFTAR ISI
ii Sistem Operasi
STRUKTUR KENDALI PROSES ................................................................... 29
3.3.1 Lokasi Proses....................................................................... 29
3.3.2 Atribut Proses ...................................................................... 30
3.4 KENDALI PROSES ......................................................................... 30
PERGANTIAN PROSES ............................................................................... 31
3.4.1 Kapan Mengganti Eksekusi Proses ....................................... 31
3.4.2 Pergantian Mode ................................................................. 32
3.4.3 Perubahan Kondisi Proses ................................................... 32
3.4.4 User Level Thread................................................................ 36
3.4.5 Kernel Level Thread............................................................. 38
4 KONKURENSI ................................................................................. 41
4.1 PENDAHULUAN ............................................................................ 42
4.2 PRINSIP-PRINSIP KONKURENSI ...................................................... 42
4.2.1 Persayaratan untuk mutual exclusion ................................... 45
4.2.2 Dukungan Perangkat Keras untuk Mewujudkan Mutual
Exclusion 45
4.2.3 Interrupt Disabling .............................................................. 45
4.2.4 Instruksi-instruksi Mesin Khusus .......................................... 46
4.2.5 Instruksi Test and Set ........................................................... 46
4.2.6 Instruksi Exchange ............................................................... 48
4.2.7 Sifat-sifat Pendekatan Instruksi Mesin .................................. 48
4.3 FASILITAS PERANGKAT LUNAK UNTUK MEWUJUDKAN MUTUAL
EXCLUSION ............................................................................................. 49
4.3.1 Semaphore ........................................................................... 49
4.3.2 Message Passing.................................................................. 53
4.3.3 Sinkronisasi ......................................................................... 54
4.3.4 Pengalamatan (Addressing) ................................................. 55
4.3.5 Format Pesan ...................................................................... 56
4.3.6 Aturan Antrian ..................................................................... 56
5 PENJADWALAN.............................................................................. 58
5.1 PENDAHULUAN ............................................................................ 59
5.2 TIPE PENJADWALAN PROSESOR ..................................................... 59
5.3 KRITERIA PENJADWALAN ............................................................. 59
5.4 ALGORITMA PENJADWALAN ......................................................... 60
5.5 PENJADWALAN FAIR-SHARE .......................................................... 64
5.6 PENJADWALAN MULTIPROSESOR .................................................. 65
5.7 PENJADWALAN REAL-TIME .......................................................... 66
iii
6 MANAJEMEN MEMORI ................................................................ 70
6.1 PENDAHULUAN ............................................................................ 71
6.2 KEBUTUHAN MANAJEMEN MEMORI .............................................. 71
6.3 PEMARTISIAN MEMORI ................................................................. 72
6.3.1 FIXED PARTITIONING....................................................................... 72
6.3.2 DYNAMIC PARTITIONING ................................................................. 72
Buddy System ...................................................................................... 74
6.4 RELOKASI .................................................................................... 74
6.5 PAGING........................................................................................ 76
6.6 SEGMENTASI ................................................................................ 79
7 MANAJEMEN PERANGKAT I/O .................................................. 81
7.1 PENDAHULUAN ............................................................................ 82
7.2 PERANGKAT M/K (I/O DEVICE) .................................................... 83
7.3 ORGANISASI FUNGSI I/O............................................................... 84
7.3.1 Pengendali Perangkat .......................................................... 84
7.3.2 Polling................................................................................. 85
7.3.3 Interupsi .............................................................................. 85
7.3.3.1 Mekanisme Dasar Interupsi ........................................................ 85
7.3.3.2 Fitur Tambahan pada Komputer Modern .................................... 86
7.4 DIRECT MEMORY ACCESS (DMA) ................................................ 87
7.4.1 Handshaking........................................................................ 88
7.4.2 Cara-cara Implementasi DMA ............................................. 90
7.5 SUBSISTEM MASUKAN/KELUARAN KERNEL .................................. 90
7.5.1 Aplikasi Antarmuka M/K ...................................................... 90
7.6 PERALATAN BLOK DAN KARAKTER .............................................. 92
7.7 PERALATAN JARINGAN ................................................................. 92
7.8 JAM DAN TIMER ........................................................................... 93
7.9 BLOCKING DAN NONBLOCKING I/O ............................................... 93
7.9.1 Penjadualan M/K ................................................................. 93
7.9.2 Buffering.............................................................................. 94
7.9.3 Caching ............................................................................... 96
7.10 SPOOLING DAN RESERVASI PERANGKAT ....................................... 97
7.11 ERROR HANDLING ........................................................................ 98
7.12 STRUKTUR DATA KERNEL ............................................................ 99
7.13 PENANGANAN PERMINTAAN M/K ............................................... 100
7.14 I/O STREAMS ............................................................................. 102
7.15 KINERJA MK ............................................................................. 103
iv Sistem Operasi
8 MANAJEMEN DISK ...................................................................... 109
8.1 STRUKTUR DISK......................................................................... 110
8.2 PENJADWALAN DISK .................................................................. 111
8.3 MACAM-MACAM PENJADWALAN DISK ........................................ 112
8.3.1 Penjadwalan FCFS ............................................................ 112
8.3.2 Penjadwalan SSTF ............................................................. 113
8.3.3 Penjadwalan SCAN............................................................ 114
8.3.4 Penjadwalan C-SCAN ........................................................ 116
8.3.5 Penjadwalan LOOK ........................................................... 117
8.3.6 Penjadwalan C-LOOK ....................................................... 118
8.4 PEMILIHAN ALGORITMA PENJADWALAN DISK ............................. 119
9 MANAJEMEN FILE ...................................................................... 122
9.1 PENDAHULUAN .......................................................................... 123
9.2 DATABASE ................................................................................. 123
9.3 KONSEP BERKAS ........................................................................ 124
9.4 ATRIBUT BERKAS....................................................................... 124
9.5 JENIS BERKAS ............................................................................ 125
9.6 OPERASI BERKAS ....................................................................... 125
9.7 STRUKTUR BERKAS .................................................................... 126
9.8 METODE AKSES ......................................................................... 127
9.9 STRUKTUR PENYIMPANAN .......................................................... 128
9.10 FILE ........................................................................................... 128
9.11 RECORD ..................................................................................... 130
9.12 FIELD ........................................................................................ 130
9.13 ORGANISASI FILE DAN AKSES ..................................................... 130
9.13.1 Kriteria Umum................................................................... 130
9.13.2 Metriks .............................................................................. 131
9.14 STRUKTUR FILE DASAR .............................................................. 132
9.15 PILE ........................................................................................... 132
10 DIREKTORI ............................................................................... 134
10.1 OPERASI DIREKTORI ................................................................... 135
10.2 JENIS DIREKTORI ........................................................................ 136
10.2.1 Direktori Satu Tingkat........................................................ 136
10.2.2 Direktori Dua Tingkat ........................................................ 136
10.2.3 Direktori dengan Struktur Tree .......................................... 137
10.2.4 Direktori dengan Struktur Graf Asiklik ............................... 138
10.2.5 Direktori dengan Struktur Graf Umum ............................... 139
v
10.3 RECORD BLOCKING .................................................................... 140
10.3.1 Metode Blocking ................................................................ 140
10.3.2 Macam Metode Blocking .................................................... 140
11 IMPLEMENTASI SISTEM BERKAS ....................................... 143
11.1 STRUKTUR SISTEM BERKAS ........................................................ 144
11.2 KINERJA SISTEM BERKAS ........................................................... 147
11.3 IMPLEMENTASI PEMBERKASAN ................................................... 148
11.4 PARTISI DAN MOUNTING ............................................................ 150
11.5 SISTEM BERKAS VIRTUAL .......................................................... 151
11.6 IMPLEMENTASI DIREKTORI ......................................................... 152
11.6.1 Algoritma Linear List ......................................................... 153
11.6.2 Algoritma Hash Table ........................................................ 153
11.6.3 Direktori pada MS-DOS..................................................... 154
11.7 DIREKTORI PADA UNIX ............................................................. 154
12 MANAJEMEN PENYIMPAN SEKUNDER .............................. 157
12.1 METODE ALOKASI...................................................................... 158
12.1.1 Contiguous Allocation........................................................ 158
12.1.2 Linked Allocation ............................................................... 160
12.1.3 Indexed Allocation ............................................................. 161
12.2 MANAGEMEN RUANG KOSONG ................................................... 163
12.2.1 Bit Vector .......................................................................... 164
12.2.2 Linked List ......................................................................... 164
12.3 GROUPING ................................................................................. 165
12.4 COUNTING ................................................................................. 166
12.5 EFISIENSI DAN KINERJA .............................................................. 166
12.5.1 Efisiensi ............................................................................. 166
12.5.2 Kinerja .............................................................................. 167
13 RECOVERY................................................................................ 170
13.1 PENGECEKAN RUTIN .................................................................. 171
13.2 BACKUP DAN RESTORE ............................................................... 171
13.3 LOG-STRUCTURED FILE SYSTEM ................................................. 172
13.4 SISTEM BERKAS LINUX VIRTUAL ................................................ 173
14 SISTEM OPERASI TERSEBAR 1 ............................................. 176
14.1 PENDAHULUAN .......................................................................... 177
14.2 KONSEP DASAR SISTEM TERSEBAR / TERDISTRIBUSI ................... 177
14.3 PROPERTI DAN KARAKTERISTIK SISTEM TERSEBAR ..................... 178
vi Sistem Operasi
14.4 TIPE SISTEM TERSEBAR .............................................................. 179
14.4.1 Network Operating System ................................................. 179
14.4.2 Sistem Operasi Tersebar .................................................... 179
14.5 KARAKTERISTIK SISTEM TERSEBAR ............................................ 180
14.6 ARSITEKTUR SISTEM TERDISTRIBUSI .......................................... 183
14.7 CLIENT SERVER ......................................................................... 186
14.8 ARSITEKTUR MIDDLEWARE ........................................................ 191
15 SISTEM TERSEBAR 2............................................................... 195
15.1 KOMUNIKASI SISTEM TERSEBAR ................................................. 196
15.1.1 Model Message Passing ..................................................... 196
15.1.2 Remote Procedure Call ...................................................... 197
15.2 SISTEM PROSESOR JAMAK .......................................................... 199
15.3 SISTEM TERDISTRIBUSI DAN TERKLUSTER ................................... 200
16 KEAMANAN SISTEM OPERASI.............................................. 204
16.1 PENDAHULUAN .......................................................................... 205
16.2 ASET SISTEM KOMPUTER ........................................................... 205
16.3 TUJUAN SECURITY ..................................................................... 205
16.4 JENIS KEAMANAN ...................................................................... 206
16.5 TIPE ANCAMAN .......................................................................... 206
16.6 PETUNJUK PENGAMANAN SISTEM ............................................... 209
16.7 METODE DAN MEKANISME PROTEKSI SISTEM KOMPUTER ........... 210
16.8 MEKANISME PROTEKSI OBJEK .................................................... 211
16.8.1 Proteksi Objek Direktori .................................................... 211
16.8.2 Proteksi Objek ACL ........................................................... 212
16.8.3 Proteksi Objek ACM .......................................................... 213
16.8.4 Proteksi Objek Capability .................................................. 214
16.8.5 Proteksi File ...................................................................... 214
16.8.6 Proteksi Izin Tunggal ......................................................... 214
16.8.7 Proteksi File per-objek dan per-user .................................. 215
16.9 ENKRIPSI ................................................................................... 215
16.10 KARAKTERISTIK INTRUSI KOMPUTER ...................................... 216
16.11 PROGRAM-PROGRAM JAHAT ................................................... 217
16.12 VIRUS DAN ANTI VIRUS .......................................................... 223
16.12.1 Siklus Hidup Virus ......................................................... 223
16.12.2 Infeksi Virus ................................................................... 224
16.12.3 Tipe-tipe virus ................................................................ 224
16.13 ANTI VIRUS............................................................................ 225
16.14 GENERASI ANTI VIRUS ............................................................ 226
vii
1 Tinjau Ulang Sistem Komputer
Overview
Tujuan
Sistem Operasi 1
1.1 Pendahuluan
2 Sistem Operasi
4. Intekoneksi antar Komponen
Interkoneksi dalam hal ini adalah struktur dan mekanisme yang
diperlukan untuk menghubungkan antara ketiga komponen, yaitu:
proses, memori utama dan peralatan input-output.
1.3 Prosesor
Prosesor berfungsi mengendalikan operasi komputer dan melakukan
pemrosesan data. Prosesor mengambil instruksi yang dikodekan secara biner
dari main memori, mendekode instruksi menjadi aksi-aksi sederhana dan
melaksanakan aksi-aksi ini. Prosesor terdiri dari tiga komponen yaitu:
- CU (Control unit), berfungsi mengendalikan operasi yang
dilaksanakan.
- ALU (Arithmetic logic unit), berfungsi melaksanakan operasi aritmatika
dan logika.
- Register, berfungsi sebagai memori yang sangat cepat yang biasanya
digunakan sebagai tempat operan-operan suatu operasi yang akan
dilaksanakan.
Operasi-operasi yang terdapat pada komputer terdiri dari tiga tipe, yaitu:
- Operasi aritmatika, seperti penambahan, pengurangan, dan
sebagainya.
- Operasi logika, seperti OR, AND, X-OR dan sebagainya.
Operasi pengendalian, seperti operasi pencabangan, loncat, dan sebagainya
1.4 Register
Di dalam prosesor terdapat sekumpulan register yang berfungsi sebagai
memori yang sangat cepat dan kecil kapasitasnya. Register-register
dikategorikan menjadi dua, yaitu:
1. Register yang terlihat pemakai, terdiri dari dua jenis yaitu: Register
data dan register alamat.
Register untuk kendali dan status terdiri dari, Register untuk alamat dan
buffer, register untuk eksekusi instruksi, dan register untuk informasi status.
Sistem Operasi 3
1.4.2 Register Alamat
Register ini berisi alamat data atau instruksi di memori utama atau berisi
bagian alamat yang digunakan dalam penghitungan alamat lengkap. Contoh
register ini antara lain: Register indeks, Register penunjuk segmen, Register
penunjuk stack, dan Register penanda.
1.5 Memori
Memori berfungsi untuk menyimpan data dan program. Berdasarkan
kecepatan aksesnya dapat dibuat hirarki memori, sebagai berikut:
4 Sistem Operasi
Tercepat Register
Chace Memory
Main Memory
Disk Chace
Magnetic Disk
Terlambat Magnetic tape Optical disk
Tabel 1-1 Hirarki memori berdasarkan kecepatan
Sistem Operasi 5
Terdapat tiga teknik cara berhubungan perangkat I/O yaitu:
1. Programmed I/O
Pada saat perangkat I/O menangani permintaan perangkat menset bit
status pada register status perangkat. Perangkat tidak memberitahu ke
prosesor bila tugas telah selesai. Prosesor harus selalu melakukan cek
secara periodik terhadap register status perangkat dan melakukan
tindakan-tindakan berdasarkan status yang dibaca.
2. Interrupt Driven I/O
Teknik I/O dikendalikan instruksi mempunyai mekanisme kerja perangkat
I/O sebagai berikut:
- Prosesor memberi instruksi ke perangkat I/O lalu melanjutkan kerja
yang lainnya.
- Perangkat I/O akan menginstruksi untuk minta layanan saat
perangkat telah siap transfer data dengan prosesor
- Saat menerima instruksi dari hardware (Hardware yang siap
melakukan transfer data), prosesor kemudian segera eksekusi
transfer data.
Dengan ini prosesor tidak disibukkan menunggui dan menjaga perangkat
I/O untuk memeriksa status perangkat.
3. Direct Memory Access
Interrupt Driven I/O lebih efisien dari programmed I/O, tapi masih
memerlukan intervensi aktif prosesor untuk transfer data antara memori
dan buffer I/O. I/O dikendalikan interupsi (Interrupt Driven I/O)
mempunyai dua kelemahan yaitu:
- Rate Transfer I/O dibatasi kecepatan menguji dan melayanan operasi
peralatan.
- Prosesor terikat ketat dalam mengelola transfer I/O, sejumlah
instruksi harus dieksekusi untuk tiap transfer I/O.
Ketika data besar dipindahkan teknik yang lebih efisien diperlukan agar
tidak menyibukkan prosesor, sehingga prosesor dapat melakukan kerja
lain.
6 Sistem Operasi
DMA berfungsi membebaskan prosesor menunggui transfer data
perangkat I/O. Saat prosesor ingin baca/tulis data, prosesor
memrintahkan DMA dengan mengirim informasi-informasi berikut:
- Read/write
- Alamat perangkat I/O
- Awal lokasi memori yang ditulis/dibaca
- Jumlah byte yang ditulis/dibaca
Sistem Operasi 7
1.8 Eksekusi Instruksi
8 Sistem Operasi
Rangkuman
Sistem Operasi 9
Soal Latihan
10 Sistem Operasi
2 Pengenalan Sistem Operasi
Overview
Tujuan
Sistem Operasi 11
2.1 Fungsi dan Sasaran Sistem Operasi
Sistem operasi adalah program yang mengendalikan eksekusi program aplikasi
dan bertindak sebagai antarmuka antara pemakai dan perangkat keras
komputer. Fungsi utama sistem operasi adalah:
1. Sistem operasi sebagai pengelola sumber daya (resources manager).
2. Sistem operasi sebagai extended machine/virtual machine.
12 Sistem Operasi
Sistem operasi bertanggung-jawab mengelola sumber daya agar penggunaan
sumber daya dapat secara benar dan efisien.
Gambar 2-1 Fungsi sistem operasi sebagai pengatur sumber daya komputer
14 Sistem Operasi
Gambar 2-2 Lapisan-lapisan dari sebuah computer
Sistem Operasi 15
Batch Multiprogramming Time Sharing
Minimize
Principal objective Maximize Prosesor use
response time
Source of Job control language Commands
directives to commands provided with the entered at the
operating system job terminal
(a) uniprogramming
16 Sistem Operasi
(b) multiprogramming dengan dua proses
Sistem Operasi 17
Gambar 2-4 Perbandingan utilisasi sumber daya komputer antara sistem
uniprogramming dan multiprogramming
18 Sistem Operasi
Uniprogramming Multiprogramming
Prosesor use 22% 43%
Memory use 30% 67%
Disk use 33% 67%
Printer use 33% 67%
Elapsed time 30 min. 15 min.
Throughput rate 6 jobs/hr 12 jobs/hr
Mean response time 18 min. 10 min.
Sistem Operasi 19
Rangkuman
Soal Latihan
20 Sistem Operasi
3 Proses dan Thread
Overview
Tujuan
Sistem Operasi 21
3.1 Pengenalan Konsep Proses
Proses dalam ruang lingkup sistem operasi dapat dikatakan sebagai sebuah
aplikasi/program yang sedang dijalankan. Manajemen proses adalah salah satu
dari fungsi utama dari sistem operasi terutama pada sistem operasi yang
mendukung eksekusi banyak aplikasi pada waktu yang bersamaan. Sistem
operasi yang baik harus dapat mengatur sumber daya komputer (yang
terbatas) sedemikian rupa sehingga aplikasi-aplikasi yang sedang berjalan
bersamaan tersebut mendapatkan sumber daya komputer yang mereka
butuhkan agar dapat berfungsi dengan benar.
Sebuah proses yang sedang berjalan disimpan di dalam memori utama (RAM)
dan dua bagian penting dari sebuah proses adalah:
1. Kode program atau instruksi-instruksi program yang harus
dieksekusi oleh prosesor (yang dapat dibagi pakai bersama dengan
proses lain) dan
2. Sekumpulan data yang berhubungan dengan kode program dari
proses
Tetapi dua bagian di atas tidak memiliki cukup informasi yang dibutuhkan oleh
sistem operasi untuk memanajemen banyak proses yang berjalan bersamaan.
Informasi-informasi tersebut dibuat oleh sistem operasi dan disimpan dalam
struktur data yang disebut PCB (Process Control Block). Isi dari PCB tersebut
antara lain:
1. Identifier: tanda identitas yang membedakan suatu proses dengan
proses lainnya.
2. State: kondisi dari proses. Jika proses sedang dieksekusi maka
kondisi/statusnya adalah running.
3. Priority: prioritas eksekusi dibandingkan proses-proses lainnya.
4. Program counter: alamat memori dari instruksi program berikutnya
yang akan dieksekusi.
5. Memory pointer: pointer menuju kode program (instruksi program),
data yang berhubungan dengan proses, dan blok memori yang
dibagipakai bersama proses-proses lain.
6. Contex data: adalah data yang ada di register prosesor ketika proses
dieksekusi.
7. I/O status information: informasi tentang permintaan I/O, peralatan
I/O, file, dll.
22 Sistem Operasi
8. Accounting information: dapat terdiri dari waktu prosesor, waktu
clock yang digunakan, batas waktu, nomor akun, dll.
Sistem Operasi 23
pada belakang antrian dan merubah nilai program counter sehingga menunjuk
pada urutan instruksi yang dimiliki oleh proses yang berada di depan antrian.
Model Lima Kondisi
Model yang ke-dua adalah model dengan 5 kondisi (5 state). Model ini
merupakan perkembangan dari model yang pertama untuk menangani kondisi
di mana sebuah proses mungkin saja tidak selalu siap untuk dieksekusi karena
harus menunggu sebuah operasi I/O selesai dilaksanakan. Pada model ini
kondisi not running dipecah menjadi ready dan blocked. Berikut ini adalah
daftar 5 kondisi yang ada pada model 5 kondisi:
1. Running: proses sedang dieksekusi
2. Ready: proses siap dieksekusi jika telah mendapat kesempatan
3. Blocked: proses tidak dapat dieksekusi hingga suatu event terjadi
atau menunggu suatu proses I/O selesai
4. New: proses baru saja selesai dibuat. Pada kondisi ini biasanya baru
process control block saja yang telah selesai dibuat dan ditaruh di
memori utama sedangkan instruksi dan datanya belum
5. Exit: proses telah dilepaskan dari kumpulan (pool) proses yang dapat
dieksekusi oleh sistem operasi dikarenakan telah selesai maupun
dibatalkan karena alasan tertentu
Dapat dilihat bahwa ada dua kondisi tambahan selain pemisahan not running
menjadi ready dan blocked yaitu new dan exit. Kondisi new pada model ini
seperti yang telah dijelaskan di atas menerangkan bahwa sistem operasi telah
menyiapkan keperluan untuk menjalankan proses seperti PCB dan tabel-tabel
tertentu dalam sistem operasi tetapi proses itu sendiri belum dieksekusi oleh
prosesor. Kondisi exit pada model ini mewakili kondisi sedemikian sehingga
proses yang telah dihentikan eksekusinya karena telah selesai maupun karena
hal lainnya seperti kesalahan dan pembatalan oleh pengguna tidak langsung
dihapus melainkan disimpan sementara agar informasi yang menyertai proses
tersebut seperti PCB dan tabel-tabel yang menyertainya dapat digunakan oleh
proses lain yang memerlukan seperti proses yang melakukan perhitungan
waktu eksekusi dan penggunaan sumberdaya oleh proses lainnya.
Berikut ini adalah jenis-jenis kejadian (event) yang dapat menyebabkan proses
berpindah dari suatu kondisi ke kondisi lainnya dalam model 5 kondisi:
1. Null –> New: sebuah proses baru dibuat. Prose ini dapat benar-
benar baru atau dapat berasal dari proses lain yang telah ada melalui
process spawning.
24 Sistem Operasi
2. New –> Ready: sistem operasi memindahkan sebuah proses ke
kondisi ready dari kondisi new hanya jika sistem operasi tersebut
telah siap. Sistem operasi dapat menahan sebuah proses dalam
kondisi new jika kondisi belum memungkinkan untuk menangani
proses tambahan seperti kekurangan memori atau terdapat batasan
jumlah proses yang dapat ditangani agar tidak menurunkan kinerja
keseluruhan.
3. Ready –> Running: proses dipindahkan dari kondisi ready ke
kondisi running oleh rutin penjadwalan atau dispatcher dan
dieksekusi oleh prosesor.
4. Running –> Ready: alasan paling umum untuk memindahkan suatu
proses dari running ke kondisi ready adalah karena waktu eksekusi
untuk proses tersebut telah habis atau diinterupsi untuk digantikan
oleh proses dengan prioritas yang lebih tinggi.
5. Running –> Exit: proses dihentikan eksekusinya dan diterminasi
dikarenakan telah selesai atau karena alasan lainnya seperti
terjadinya kesalahan atau pembatalan eksekusi oleh pengguna.
6. Running –> Blocked: proses diblok apabila proses tersebut telah
meminta sesuatu yang tidak dapat langsung dipenuhi oleh sistem
operasi, contohnya: operasi I/O
7. Blocked –> Ready: proses dipindahkan dari blocked ke kondisi
ready hanya jika kejadian (event) tertentu yang ditunggu telah terjadi
seperti permintaan operasi I/O oleh proses tersebut telah selesai
dilaksanakan.
8. Ready –> Exit: transisi ini tidak digambarkan pada model 5 kondisi
untuk menjaga kejelasan tetapi sebuat proses dalam kondisi ready
dapat langsung diterminasi contohnya sebuah proses anak dapat
diterminasai oleh proses induk kapan saja dan jika sebuah proses
induk mati maka proses anak juga ikut diterminasi.
9. Blocked –> Exit: transisi ini termasuk dalam penjelasan kondisi
ready -> exit.
Sistem Operasi 25
menerapkan konsep memori virtual (akan dibahas di bab manajemen memori)
yaitu menjadikan media penyimpanan seperti harddisk sebagai bagian dari
memori untuk menyimpan proses yang akan dieksekusi. Proses-proses yang
ada tidak disimpan dalam memori utama tetapi disimpan dalam media
harddisk. Hanya proses-proses yang siap dieksekusi saja yang disimpan dalam
memori utama. Konsep memori virtual ini memungkinkan sistem operasi
membuat proses dengan jumlah dan ukuran lebih besar dari kapasitas memori
utama. Jika memori utama penuh dan ada proses lain yang harus masuk maka
proses yang sedang tidak dieksekusi di memori dapat dipindahkan kembali ke
memori virtual. Pemindahan dari memori virtual ke memori utama dan
sebaliknya inilah yang disebut sebagai swapping.
Untuk mengimplementasikan konsep memori virtual tersebut perlu dibuat
suatu kondisi baru yaitu kondisi ketika proses berada pada dalam memori
virtual yaitu kondisi suspended. Proses yang berada dalam kondisi blocked
dapat dipindahkan dari memori utama ke sebuah antrian proses di memori
virtual untuk menyediakan ruang kosong bagi proses lain di memori utama.
Gambar 3-4 memperlihatkan dua model yang mengakomodir kondisi
suspended.
Pada model pertama diperlihatkan hanya ada satu kondisi suspend seperti
yang telah dijelaskan di atas. Mengingat bahwa kecepatan eksekusi prosesor
jauh melebihi waktu yang dibutuhkan untuk menyelesaikan operasi I/O maka
akan ada kemungkinan di mana prosesor akan banyak menganggur
dikarenakan kebanyakan proses berada dalam keadaan suspended menunggu
operasi I/O yang belum selesai. Mengembalikan proses-proses ini ke dalam
memori utama hanya akan memboroskan waktu dan sumber daya
dikarenakan proses-proses ini belum tentu siap dijalankan ketika telah berada
di memori utama. Untuk menghemat sumber daya hanya proses-proses yang
telah siap dijalankan, yang telah mendapatkan event yang dibutuhkan, yang
dipindahkan dari antrian di memori virtual ke memori utama. Proses-proses
tersebut sebelum dipindahkan ke memori utama dapat diletakkan dalam
antrian proses yang siap untuk dieksekusi kembali oleh prosesor. Oleh
karena itu kondisi suspended dibagi lagi menjadi dua kondisi, yaitu:
1. Blocked/Suspend: kondisi di mana proses berada dalam kondisi
blocked di dalam memori virtual dan menunggu suatu event.
2. Ready/Suspend: kondisi di mana proses berada dalam memori virtual
tetapi dapat langsung dijalankan ketika telah berada dalam memori
utama.
26 Sistem Operasi
Selain itu kondisi ready berlaku untuk proses yang tidak menunggu event
tertentu dan telah berada di memori utama dan kondisi blocked berlaku bagi
proses yang sedang menunggu event tertentu dan sedang berada dalam
memori utama.
Transisi-transisi antar kondisi yang terjadi, antara lain:
1. Blocked Blocked/Suspend: transisi ini terjadi ketika sistem
operasi membutuhkan tambahan ruang kosong di dalam memori
utama untuk proses lain dan tidak tersedia ruang kosong dalam
memori utama. Untuk menyediakan ruang tersebut sistem operasi
akan memindahakan proses-proses yang berada dalam kondisi
blocked ke dalam memori virtual sehingga kondisi proses tersebut
dikatakan sebagai blocked/suspend.
2. Blocked/Suspend Ready/Suspend: transisi ini terjadi ketika
event yang ditunggu proses dalam kondisi blocked/suspend telah
terjadi sehingga status proses tersebut berubah menjadi
ready/suspend.
3. Ready/Suspend Ready: transisi ini terjadi ketika tidak ada lagi
proses yang berada dalam kondisi ready di dalam memori utama
sehingga sistem operasi akan memindahkan proses yang berada
dalam kondisi ready/suspend dari memori virtual ke memori utama.
Transisi ini juga dapat terjadi apabila proses dalam kondisi
ready/suspend memiliki prioritas lebih tinggi dari proses yang berada
dalam kondisi ready.
4. New Ready/Suspend dan New Ready: transisi ini terjadi
ketika suatu proses baru saja dibuat. Proses tersebut dapat disimpan
di dalam antrian memori di memori utama atau diantrikan dalam
kondisi ready/suspend di memori virtual.
5. Blocked/Suspend Blocked: transisi ini meskipun tampak tidak
terlalu baik dari segi disain namun masih mungkin terjadi. Jika
memori utama memiliki tempat kosong dan proses dalam kondisi
blocked/suspend tersebut memiliki prioritas lebih tinggi dari yang
berada dalam kondisi ready/suspend serta sistem operasi percaya
bahwa event yang ditunggu proses tersebut akan terjadi segera maka
transisi ini boleh saja terjadi.
Sistem Operasi 27
6. Running Ready/Suspend: proses yang telah habis masa
eksekusinya biasanya akan dipindahkan ke dalam kondisi ready
namun apabila ada proses dengan prioritas lebih tinggi telah berubah
dari kondisi blocked/suspend menjadi ready/suspend maka sistem
operasi dapat membebaskan memori utama untuk proses tersebut
dengan memindahkan proses dengan prioritas lebih rendah tersebut
ke dalam kondisi ready/suspend.
28 Sistem Operasi
I/O sistem operasi harus mengetahui lokasi memori yang digunakan
dalam proses perpindahan data.
3. Tabel file
Tabel ini digunakan untuk menyimpan informasi mengenai file-file
yang sedang digunakan, seperti: lokasi mereka dalam memori, status,
dan atribut mereka.
4. Tabel proses
Tabel ini digunakan untuk memanajemen proses-proses. Mulai dari
bagian ini selebihnya dari bab ini akan membahas mengenai tabel
proses yang perlu dibuat untuk memanajemen proses.
Setidaknya ada dua hal penting yang harus diingat sebelum membahas masalah
tabel proses, yaitu bahwa I/O, memori, dan file dimanajamen untuk
memenuhi kebutuhan proses sehingga perlu ada penunjuk bagi proses untuk
mengakses mereka dan informasi mengenai kondisi lingkungan seperti
konfigurasi perangkat keras, jumlah memori tersedia, dan sebagainya harus
disediakan oleh sesuatu di luar sistem operasi apakah oleh perangkat lunak
atau dengan bantuan manusia
Sistem Operasi 29
3.3.2 Atribut Proses
Atribut-atribut proses yang dibutuhkan untuk mengatur jalannya proses
seperti sudah disebutkan sebelumnya disimpan di dalam process control block.
Di dalamnya terdapat tiga kategori informasi, yaitu:
1. Identifikasi proses
Setiap proses diberi sebuah bilangan penanda identitas yang unik
yang dapat menjadi indeks dalam tabel proses. Identitas ini menjadi
referensi proses tersebut dalam operasi I/O dan komunikasi dengan
proses lainnya,
2. Informasi kondisi prosesor
Nilai yang tersimpan dalam register prosesor akan disimpan oleh
proses dalam PCB. Hal ini dilakukan agar ketika proses diinterupsi
dari prosesor data yang sedang diproses dalam register tidak hilang
tergantikan oleh data proses yang lain. Pada saat proses ini kembali
dieksekusi isi regsiter akan dikembalikan ke register prosesor.
Informasi kendali proses ini adalah informasi tambahan yang dibutuhkan oleh
sistem operasi untuk mengendalikan dan mengkoordinasi beberapa proses
yang aktif.
30 Sistem Operasi
Pembuatan Proses
Pada saat sebuah proses baru lahir sistem operasi akan melakukan beberapa
langkah untuk menjamin proses baru tersebut dapat berjalan dengan baik dan
dapat diatur termasuk menyediakan sumber daya komputer seperti memori
dan file-file yang dibutuhkan oleh proses tersebut. Langkah-langkah itu antara
lain:
1. Memberikan identitas unik kepada proses baru tersebut
2. Mengalokasikan ruangan memori untuk proses tersebut
3. Menginisialisasi proses control block
4. Mengkonfigurasi tautan-tautan tertentu terhadap proses seperti
penempatan pada antrian, dsb.
5. Membuat atau mengembangkan struktur data yang lain seperti
membuat file audit terhadap proses agar dapat digunakan untuk
penagihan atau pengukuran kinerja
Pergantian Proses
Pergantian eksekusi satu proses ke proses lainnya tampaknya merupakan
sesuatu yang tidak rumit. Pada waktu tertentu proses yang sedang dieksekusi
mendapat interupsi dan sistem operasi memberikan status running pada
proses lain dan mengalihkan kendali kepada proses tersebut. Tetapi ada
beberapa maslaah disain yang ditimbulkan, Pertama kejadian apa yang memicu
ternjadinya pergantian proses. Maslaah lainnya yang perlu diperhatikan adalah
perbedaan antara pergantian mode dan pergantian proses. Terakhir adalah
apa yang harus dilakukan oleh sistem operasi terhadap berbagai struktur data
yang ada untuk menyelesaikan pergantian proses.
Sistem Operasi 31
Contoh dari berbagai interrupt yang ada:
1. Clock Interrupt: Sistem operasi menentukan bahwa proses yang
sedang dieksekusi telah memenuhi batas maksimum waktu eksekusi
yang diperbolehkan yang dikenal sebagai time slice. Proses tersebut
harus dihentikan eksekusinya dan digantikan dengan proses lainya.
2. I/O Interrupt: Sistem operasi menentukan bahwa operasi I/O telah
terjadi. Jika operasi I/O tersebut merupakan operasi yang ditunggu
oleh satu atau beberapa proses maka sistem operasi akan
memindahkan semua proses yang diblok yang berkepentingan
dengan operasi I/O tersebut ke kondisi ready.
3. Memory Fault: Prosesor menemui sebuah alamat memori virtual
yang menunjuk pada data yang tidak ada di memori utama. Sistem
operasi harus memindahkan blok dari memori virtual yang
mengandung data tersebut ke memori utama. Setelah sistem operasi
mengeluarkan perintah untuk menjalankan operasi I/O untuk
memindahkan blok data tersebut proses yang membutuhkan data
tersebut diubah statusnya menjadi blocked. Setelah blok data yang
diinginkan berada di memori utama proses tersebut dikembalikan ke
kondisi ready.
Sistem Operasi 33
Multithreading
Multithreading adalah kemampuan sistem operasi untuk mendukung adanya
beberapa thread di dalam sebuah proses Sistem operasi terdahulu seperti MS
DOS tidak mengenal konsep multiproses maupun multithread sehingga hanya
dapat menjalankan satu proses dan setiap proses adalah sebuah thread.
Sistem operasi yang lebih maju seperti UNIX mendukung adanya beberapa
proses yang berjalan bersamaan tetapi setiap proses tetap dianggap sebagai
sebuah thread. Java Runtime Environment adalah contoh sebuah sistem
dengan proses yang dapat memiliki beberapa thread. Sistem operasi modern
seperti Microsoft Windows, Solaris, Mach, dan Linux telah mendukung
konsep multiproses sekaligus multithread di mana ada beberapa proses yang
dapat (seakan-akan) berjalan bersamaan dan setiap proses dapat terbagi
menjadi beberapa thread.
Pada sebuah lingkungan multithread sebuah proses didefinisikan sebagai
satuan alokasi sumber daya dan satuan pengamanan. Perbandingan antara
singlethread process dan proses dengan multithreaded process dapat dilihat pada
gambar.
Semua thread dalam sebuah proses berada dalam alamat ruang (address space)
yang sama dan memiliki hak yang sama untuk mengakses sumber daya proses
34 Sistem Operasi
Keuntungan menggunakan thread dibandingkan proses:
1. membuat thread baru lebih cepat daripada membuat proses baru
2. menghentikan thread lebih cepat daripada menghentikan proses
3. waktu untuk pergantian thread lebih cepat dibandingkan pergantian
proses
4. komunikasi antar thread lebih cepat karena berada dalam satu proses
sehingga tidak memerlukan intervensi dari kernel
Contoh penggunaan multithreading pada sistem single-user multiprocessing:
1. Pekerjaan foreground dan background
Input dapat dilakukan melalui thread foreground dan pemrosesan
input dilakukan dengan thread background sehingga aplikasi menjadi
lebih responsif
2. Pemrosesan asinkron
Tugas-tugas asinkron dapat diimplementasikan sebagai thread.
Contoh: sebuah thread yang bertugas melakukan penulisan data dari
RAM ke storage sebagai background proses
3. Mempercepat eksekusi
Proses dengan multithread dapat menghitung sekumpulan data
sembari mengambil data dari peralatan dan pada lingkungan multi
processor beberapa thread dapat dijalankan berbarengan pada
processor yang berbeda. Selain itu membuat program yang
menggunakan thread terpisah untuk melakukan Remote Procedure
Call akan meningkatkan kecepatan program secara substansial
4. Struktur program modular
Mempermudah implementasi dan desain program dengan berbagai
input dan output berbeda
Empat operasi terhadap thread berdasarkan status thread:
1. Spawn
Pembuatan proses meliputi pembuatan thread proses tersebut dan
thread tersebut dapat pula membuat thread baru di dalam thread
yang sama.
2. Block
Ketika thread dihentikan sementara karena menunggu suatu
peristiwa (event) processor akan mengeksekusi thread lain yang siap
dalam antrian.
3. Unblock
Thread yang telah mendapatkan event yang diperlukan untuk
melanjutkan tugasnya akan dikembalikan ke dalam antrian thread
yang siap.
Sistem Operasi 35
4. Finish
Register dan stack dari thread akan didealokasikan begitu thread
selesai
Pada processor tunggal, multiprogramming memungkinkan eksekusi secara
bergantian beberapa thread ketika suatu thread menunggu event atau jatah
waktu eksekusinya telah habis.
Salah satu isu yang penting dalam multithreading adalah sinkronisasi aktivitas
antar thread sehingga aktivitas suatu thread tidak menyebabkan gangguan bagi
thread lainnya.
Masalah apakah blocking salah satu thread akan menghambat eksekusi seluruh
thread dalam proses yang sama menjadi bahasan dalam user-level thread dan
kernel-level thread.
Terminasi dan penahanan proses akan mempengaruhi seluruh thread dalam
proses karena mereka berbagi alamat memori yang sama
36 Sistem Operasi
Keuntungan menggunakan user-level thread:
1. Penggantian thread yang dieksekusi tidak membutuhkan hak
istimewa kernel karena struktur data untuk manajemen
thread ada pada memori proses.
2. Memungkinkan implementasi alogritma penjadwalan thread
yang berbeda-beda untuk aplikasi tertentu tanpa mengubah
kernel. Aplikasi tertentu membutuhkan penjadwalan
tertentu (round robin, skala prioritas, dll) untuk bekerja
secara optimal.
3. Dapat diaplikasikan pada semua sistem operasi karena tidak
menyentuh level kernel
Kekurangan penggunaan user-level thread:
4. Kebanyakan sistem operasi melakukan blocking pada saat
system call dilakukan yang menyebabkan proses (dan seluruh
thread di dalamnya) diblok.
5. Multiprocessing tidak dapat diambil manfaatnya karena
kernel menugaskan satu processor hanya untuk satu proses
sehingga hanya satu thread proses yang bisa dijalankan pada
satu waktu.
Jacketing adalah cara untuk mengakali blocking saat system call yaitu dengan
mengubah blocking system call menjadi non-blocking system call. Contohnya
pada saat membutuhkan I/O thread tidak memanggil rutin I/O sistem
melainkan memanggil rutin jaket I/O level aplikasi dan di dalamnya terdapat
Sistem Operasi 37
kode untuk memeriksa kesiapan peralatan I/O, jika belum siap maka kendali
akan dialihkan ke thread yang lain.
38 Sistem Operasi
Sebuah proses memiliki satu thread atau banyak thread sudah umum
digunakan tetapi relasi antara thread dan proses dapat dikombinasikan
menjadi dua macam lagi, yaitu:
▪ Banyak thread dimiliki oleh banyak proses
1. Melibatkan konsep domain dan thread.
2. Domain adalah entitas statis yang memiliki ruang dan port di mana
pesan dapat dikirim dan diterima.
3. Thread adalah jalur eksekusi tunggal dengan stack eksekusi, status
processor, dan informasi penjadwalan.
4. Thread dapat berpindah-pindah dari satu domain ke domain lainnya.
▪ Satu thread dimiliki oleh banyak proses
1. Digunakan pada sistem terdistribusi.
2. Sebuah proses adalah sebuah virtual address space dan memiliki
sebuah control block .
3. Thread dapat berpindah-pindah dari satu proses ke proses lainnya
dalam satu mesin atau berpindah mesin dengan membawa informasi-
informasi yang diperlukan.
4. Digunakan untuk menyembunyikan detil lingkungan terdistribusi dari
programmer.
Sistem Operasi 39
Rangkuman
Soal Latihan
40 Sistem Operasi
4 Konkurensi
Overview
Tujuan
Sistem Operasi 41
4.1 Pendahuluan
Fitur-fitur utama dari sistem operasi modern yang paling menonjol adalah
kemampuan sistem operasi untuk melakukan:
1. Multiprogramming: kemampuan untuk memanajemen banyak proses
dengan menggunakan satu prosesor,
2. Multiprocessing: kemampuan untuk memanajemen banyak proses
dengan menggunakan banyak prosesor,
3. Distributed Processing (pemrosesan tersebar): kemampuan untuk
memanajemen banyak proses yang dieksekusi pada banyak komputer
yang tersebar dibeberapa lokasi.
Hal mendasar yang perlu diperhatikan ketika menangani banyak proses yang
berjalan bersama-sama (konkurensi) adalah masalah-masalah seperti:
bagaimana komunikasi antar proses-proses tersebut, membagi pakai dan
terjadinya kompetisi untuk sumber daya komputer, sinkronisasi aktivitas
proses-proses, dan alokasi prosesor.
42 Sistem Operasi
Salah satu masalah yang ditimbulkan dari berbagi pakai sumber daya adalah
race condition, yaitu situasi sedemikian sehingga beberapa proses atau thread
menulis data di tempat/variabel yang sama sehingga hasil akhir bergantung
kepada urutan eksekusi instruksi-instruksi proses-proses tersebut. Sebagai
contoh: jika ada dua proses P1 dan P2, berbagai pakai variabel global a. Jika
P1 mengubah nilai a menjadi 1 dan kemudian pada suatu ketika P2 mengubah
nilai a menjadi 2 maka kedua proses sedang berada dalam kondisi balapan
untuk menulis variabel a. Pada contoh ini pihak yang kalah balapan (yang
terakhir mengubah nilai variabel a) adalah yang menentukan nilai akhir dari
variabel a.
Untuk menangani masalah konkurensi ini sistem operasi perlu
memperhatikan hal-hal sebagai berikut:
1. Sistem operasi harus dapat mengetahui jejak dari berbagai proses
yang berjalan, Hal ini dapat dilakukan melalui process control block.
2. Sistem operasi harus dapat mengalokasi dan mendealokasi sumber
daya komputer untuk setiap proses yang aktif, seperti:
a. Prosesor
b. Memori
c. Berkas-berkas (files)
d. Peralatan-peralatan I/O
3. Sistem operasi harus dapat melindungi data dan sumber daya fisik
yang sedang dialokasikan untuk setiap proses dari interferensi yang
tidak dimaksudkan oleh proses lain.
4. Fungsi dan output dari sebuah proses harus independen terhadap
kecepatan eksekusi relatif terhadap kecepatan proses konkuren yang
lain. Bab ini akan difokuskan pada poin ke-empat ini.
Apa maksud dari pernyataan fungsi dan output dari sebuah proses harus
independen terhadap kecepatan eksekusi relatif terhadap kecepatan proses
konkuren yang lain? Fungsi sebuah proses dan output yang dihasilkannya
sebisa mungkin dijaga untuk tidak terpengaruh oleh kecepatan eksekusi
proses tersebut yang dalam sebuah sistem multiproses menjadi tidak tetap
bergantung proses-proses lainnya.
Proses-proses dalam sistem multiproses dapat saling independen tetapi lebih
sering melakukan interaksi. Ada beberapa jenis interaksi yang terjadi antar
proses berdasarkan derajat pengetahuan proses-proses terhadap adanya
proses lainnya:
Sistem Operasi 43
1. Proses-proses tidak saling mengetahui keberadaan proses lain.
Proses-proses tersebut dimaksudkan untuk bekerja independen dan
tidak dimaksudkan untuk saling bekerja sama. Pada kasus ini meski
tidak bekerja sama tetapi sangat mungkin terjadi kompetisi untuk
mendapatkan sumber daya kompuer tertentu.
2. Proses-proses saling mengetahui keberadaan proses lain secara tidak
langsung.
Proses-proses ini tidak mengetahui secara langsung proses lain
melalui process ID yang mereka miliki melainkan karena berbagi pakai
suatu sumber daya yang sama dan mengetahui bahwa sumber daya
tersebut dibagi pakai bersama dengan proses lainnya.
3. Proses-proses saling mengetahui keberadaan proses lain secara
langsung.
Proses-proses ini saling mengetahui keberadaan proses lain sampai
pada tingkat mengetahui process ID proses lainnya.
Mutual exclusion adalah konsep sedemikian sehingga hanya satu proses yang
boleh mengakses/menggunakan sebuah sumber daya yang tidak bisa dipakai
berbarengan (contohnya: printer, kartu jaringan, dll). Instruksi-instruksi yang
dieksekusi ketika mengakses sebuah sumber daya disebut sebagai critical
section dan sumber daya tersebut dikenal sebagai critical resource. Mutual
excluision mengharuskan pada suatu saat hanya ada satu proses yang berada
pada kondisi critical section.
44 Sistem Operasi
Penerapan mutual exclusion dapat menyebabkan dua masalah, yaitu deadlock
dan starvation. Deadlock adalah kondisi sedemikian sehingga beberapa proses
tidak berjalan karena masing-masing sedang mengakses suatu sumber daya
dan untuk menyelesaikan eksekusi critical section masing-masing harus
mengakses critical resource yang sedang diakses proses lainnya. Misalkan
proses P1 dan P2 membutuhkan sumberdaya R1 dan R2 untuk
menyelesaikan critical section masing-masing. Seandainya P1 sedang mengakses
R1 dan P2 sedang mengakses R2 maka P1 tidak dapat mengakses R2 dan
sebaliknya P2 juga tidak dapat mengakses R1. Saat inilah kedua proses tidak
dapat melanjutkan proses eksekusi dan deadlock terjadi.
Starvation (kelaparan) adalah kondisi sedemikan sehingga sebuah proses terus
menerus gagal mendapatkan akses suatu sumber daya dikarenakan proses-
proses lain terus menggunakan sumber daya tersebut
Sebuah proses berada dalam critical section untuk waktu yang terbatas.
Sistem Operasi 45
proses tersebut dapat diwujudkan dalam bentuk rutin-rutin dasar/primitif
yang disediakan di dalam kernal yang berguna untuk mematikan dan
menyalakan kembali fasilitas interupsi. Sebuah proses dapat memaksakan
mutual exclusion dengan cara seperti di bawah ini:
while (true)
{
/* matikan interupsi */;
/* masuk ke critical section */;
/* nyalakan interupsi */;
/* masuk ke non-critical section */;
}
46 Sistem Operasi
{
if(i==0)
{
i=1;
return true;
}
else
{
return false;
}
}
/*program:mutualexclusion*/ /*program:mutualexclusion*/
const int n=/*jumlah proses*/ const int n=/*jumlah proses*/
int bolt; int bolt;
void P(int i) void P(int i)
{ {
while(true) int keyi=1;
{ while(true)
while(!testset(bolt)) {
/*diam*/ do exchange (keyi, bolt);
/*critical section*/ while(key!=0)
/*lain-lain*/ /*critical section*/
Sistem Operasi 47
} exchange(keyi, bolt);
} /*lain-lain*/
void main() }
{ }
bolt=0; void main()
parBegin(P(1),P(2), …, {
P(n)); bolt=0;
} parBegin(P(1),P(2), …, P(n));
}
Instruksi Test and Set Instruksi Exchange
Tabel 4-1 Mutual exclusion dengan dukungan perangkat keras
Instruksi ini menukar nilai dalam sebuah register (lokasi memori dalam
prosesor) dengan nilai dalam sebuah lokasi memori. Tabel 4-1
memperlihatkan bagaimana mutual exclusion dapat diimplementasi dengan
instruksi ini. Prosedur parBegin dan variabel bolt pada instruksi ini memiliki
fungsi yang sama dengan pasangannya di instruksi set and test sedangkan
variabel baru keyi ditetapkan di awal bernilai 1. Proses boleh memasuki critical
section hanya jika mendapati nilai bolt adalah 0 dengan cara menukar nilai keyi
dengan bolt dan memeriksa apakah nilai keyi adalah 1. Setelah proses
meninggalkan critical section proses akan menukarkan kembali nilai bolt
menjadi 0.
48 Sistem Operasi
Kerugiannya:
1. Terdapat busy waiting yang menghabiskan waktu prosesor
2. Memungkinkan terjadinya starvation.
3. Memungkinkan terjadinya deadlock
4.3.1 Semaphore
William Stalling dalam bukunya, Operating Systems Internal Design and
Principles, menyebutkan kemajuan besar yang pertama dalam menangani
masalah-maslah yang timbul akibat proses-proses yang konkuren terjadi di
tahun 1965 oleh Dijkstra. Dijkstra menekankan pada disain dari sistem
operasi sebagai sekumpulan proses berurutan yang saling bekeja sama dan
dengan pengembangan dari mekanisme-mekanisme kerja sama yang efisien
dan dapat diandalkan. Mekanisme-mekanisme tersebut dapat digunakan oleh
proses dari user jika prosesor dan sistem operasi dapat menyediakan mereka
untuk digunakan.
Prinsip dasarnya adalah: bawhwa dua atau lebih proses dapat bekerja sama
dengan menggunakan sinyal-sinyal sederhana, sedemikian sehingga sebuah
proses dapat dipaksa berhenti pada tahap tertentu hingga menerima sinyal
tertentu. Kebutuhan untuk koordinasi kompleks apapun dapat dipenuhi
dengan struktur sinyal-sinyal yang tepat. Untuk mengirimkan sinyal
dibutuhkan variabel-variabel spesial yang disebut sebagai semaphore. Untuk
mengirim sinyal melalui semaphore s sebuah proses memanggil rutin primitif
semSignal(s) dan untuk menerima sinyal melalui semaphore s, sebuah proses
memanggil rutin primitif semWait(s). Jika ternyata setelah memanggil
semWait(s) sinyal yang ditunggu tidak tersedia maka proses tersebut akan
ditahan hingga sinyal yang ditunggu dikirimkan.
Semaphore dapat dilihat sebagai sebuah variabel bertipe integer yang
kepadanya dapat dilakukan tiga operasi, yaitu:
Sistem Operasi 49
1. Sebuah semaphore dapat diinisialisasikan sehingga bernilai bilangan
non negatif.
2. Operasi semWait akan mengurangi nilai semaphore. Jika nilainya
telah negatif maka proses yang memanggil semWait tersebut akan di
blok. Sebaliknya jika nilainya masih positif proses dapat dilanjutkan.
3. Operasi semSignal menaikkan nilai semaphore. Jika nilanya kurang
atau sama dengan nol maka proses yang diblok oleh operasi
semWait akan dilepaskan dari status diblok.
Selain ketiga operasi di atas tidak boleh ada lagi cara untuk memeriksa dan
mengubah nilai semaphore.
Bentuk dari semphore yang lebih ketat adalah binary semaphore atau mutex
yang hanya mengizinkan nilai 0 dan 1 bagi semaphore. Operasi-operasinya
adlah sebagai berikut:
1. Binary semaphore dapat diinisialisasikan dengan nilai 0 atau 1.
2. Operasi semWaitB memeriksa nilai semaphore. Jika nilainya satu
maka nilainya diubah menjadi nol dan proses melanjutkan eksekusi.
3. Operasi semSignalB memeriksa apakah ada proses yang diblok pada
semaphore ini. Juka ada maka proses yang telah diblok oleh operasi
semWaitB akan dilepaskan dari status diblok dan nilai dari
semaphore diubah menjadi satu.
50 Sistem Operasi
1. Awalnya A sedang berjalan; B, C, dan D dalam kondisi ready.
Semaphore bernilai 1 menandakan salah satu hasil yang dikeluarkan
proses D telah tersedia. Ketika A memanggil instruksi semWait pada
semaphore s nilai s akan dikurangi menjadi 0 dan A dapat
melanjutkan ke langkah selanjutnya dan kemudain bergabung pada
antrian ready.
2. B kemudian dieksekusi dan memanggil instruksi semWait.
Dikarenakan nilai semaphore s menjadi -1 maka proses B akan
diblok dan memasuki antrian blocked.
3. Ketika proses D dieksekusi dan mengeluarkan hasil yang baru
instruksi semSignal dipanggil oleh proses D yang memungkinkan
proses B yang diblok untuk masuk ke kondisi ready di antrian ready.
4. Proses D yang telah selesai langsung bergabung pada antrian ready
dan proses C dieksekusi.
5. Proses C yang memanggil instruksi semWait kemudian diblok dan
masuk ke antrian blocked dan nilai semaphore menjadi -1 (tidak
tampak di gambar).
6. Selanjutnya proses A dan B juga mengalami hal yang sama dengan
proses C. Pada tahap ini akhirnya nilai semaphore menjadi -3.
7. Proses D kembali dijalankan, mengeluarkan hasil baru dan memanggil
instruksi semSignal sehingga nilai semaphore menjadi -2 dan proses
C keluar dari antrian blocked masuk ke antrian ready. Ketika
dieksekusi proses C akan mendapatkan hasil yang dikeluarkan oleh
proses D. Pada putaran berikutanya proses D akan melepaskan
proses A dan B dari antrian blocked dan masing-masing akan
mendapatkan hasil dari proses D seperti halnya proses C.
Sistem Operasi 51
Prosesor
A
1
s=1 C D B
Untuk melindungi struktur data yang dibagi pakai bersama data tersebut
dapat diletakkan di dalam monitor.
Untuk dapat digunakan dalam lingkungan yang konkuren monitor harus
menyediakan fasilitas sinkronisasi bagi proses-proses yang menggunakannya.
Sebagai contoh jika ada sebuah proses yang memanggil prosedur dalam
monitor dan ketika berada di dalamnya harus diblok untuk menunggu suatu
kejadian atau kondisi tertentu terpenuhi maka diperlukan sebuah fasilitas yang
memungkinkan proses tersebut tidak hanya diblok tetapi juga melepas akses
terhadap monitor sehinga proses lain dapat menggunakan monitor tersebut.
Setelah kondisi terpenuhi dan monitor kembali tersedia proses tadi dapat
kembali berjalan pada posisi sebelum ia diblok.
Monitor sendiri memiliki beberapa alternative implementasi seperti:
1. Monitor dengan signal
2. Monitor dengan notify dan broadcast
Sistem Operasi 53
Ada beberapa persoalan yang berkenaan dengan disain teknik message passing
ini, antara lain:
1. Sinkronisasi: proses tidak dapat menerima pesan sebelum pesan
tersebut dikirimkan oleh proses lain.
2. Pengalamatan: menentukan cara mengalamati sebuah proses, yaitu
melalui direct addressing dan indirect addressing.
3. Format pesan: menentukan bagaimana pesan dibentuk dan informasi
apa saja yang terdapat di dalam pesan termasuk pesan-pesan pada
sistem tersebar
4. Aturan antrian: menentukan bagaimana antrian pesan yang datang
maupun dikirim diproses oleh proses tujuan atau sumber.
4.3.3 Sinkronisasi
Ketika suatu proses mengirimkan pesan dengan memanggil prosedur send ada
dua kemungkinan yang dapat terjadi:
1. Proses pengirim diblok hingga pesan diterima, atau
2. Proses boleh melanjutkan eksekusi
Hal yang sama juga terjadi pada proses menerima pesandengan memanggil
prosedur receive. Proses dapat diblok menunggu adanya pesan yang datang
atau proses melanjutkan eksekusinya sekalipun pesan belum datang.
Berdasarkan empat kondisi yang telah disebutkan dapat dibuat tiga kombinasi
kondisi yang umum digunakan pada sebuah sistem yaitu:
1. Blocking send, blocking receive
2. Nonblocking send, blocking receive
3. Nonblocking send, nonblocking receive
Sistem Operasi 55
4.3.5 Format Pesan
Format pesan amat bergantung pada fasilitas pertukaran pesan dan jumlah
komputer yang terlibat dalam pertukaran pesan. Pesan dapat memiliki panjang
tetap untuk memperkecil overhead (pemrosesan tambahan seperti:
menelusuri pesan untuk mencari ujung dari sebuah pesan) atau jika berukuran
besar dapat disimpan dalam sebuah file. Pendekatan yang lebih fleksibel adalah
menggunakan pesan yang panjangnya tidak tetap.
Pesan dapat dibagi menjadi bagian kepala (header) yang berisi informasi
tentang pesan dan badan (body) tempat menampung isi pesan sebenarnya.
56 Sistem Operasi
Rangkuman
Soal Latihan
Sistem Operasi 57
5 Penjadwalan
Overview
Tujuan
58 Sistem Operasi
5.1 Pendahuluan
Dalam sistem multiprogramming beberapa program menempati memori
utama sekaligus. Apakah semuanya akan dijalankan dalam waktu yang
bersamaan? Tidak, program akan dijalankan bergantian. Yang mana yang
dijalankan terlebih dahulu? Masalah ini yang ditangani penjadwalan.
Tujuan dari penjadwalan Prosesor adalah untuk memberikan prosesor pada
setiap process sepanjang waktu sedemikian hingga memenuhi tujuan sistem :
rata-rata response time yang cepat, lebih banyak program dapat diselesaikan
(throughput), dan efisiensi Prosesor.
New
Long term Long term
Sistem Operasi 59
Dari sudut pandang pengguna, algoritma dapat dipilih berdasarkan parameter
berikut :
a. Turnaround time : waktu sejak process dikirim hingga selesai.
Carilah algoritma yang memberikan rata-rata turnaround time
terpendek.
b. Response time : waktu sejak process dikirim hingga mendapat
respon pertama kali. Carilah algoritma yang memberikan rata-rata
response time terpendek.
c. Deadline, waktu terakhir process harus selesai dikerjakan. Pilih
algoritma yang memaksimalkan jumlah process yang dapat
diselesaikan sebelum atau dalam waktu deadline-nya.
d. Predictability : apakah perilaku (hasil) algoritma dapat diprediksi.
Pilihlah algoritma yang memberikan kepastian dijalankannya program
pengguna.
Dari sudut pandang sistem, diinginkan efektivitas dan efisiensi penggunaan
Prosesor. Algoritma dapat dipilih berdasarkan parameter berikut :
a. Throughput : jumlah process yang dapat diselesaikan dalam satuan
waktu. Carilah algoritma yang memberikan jumlah process selesai
terbanyak.
b. Prosesor utilization : berapa persen Prosesor sibuk. Carilah
algoritma yang membuat Prosesor sangat sibuk.
c. Fairness, apakah sistem memberlakukan setiap process dengan
‘perhatian’ yang sama. Pilih algoritma yang paling adil.
d. Enforcing priorities : jika sistem memberlakukan prioritas, apakah
algoritma mendukungnya.
Balancing resources : apakah algoritma memberikan resource pada process-
process yang membutuhkan secara seimbang.
60 Sistem Operasi
4. Shortest Remaining Time (SRT), mirip SPN, dilayani dalam waktu yang
terbatas, jika belum selesai diantrikan lagi.
5. Highest Response Ratio Next (HRRN), process dengan rasio respon
tertinggi akan dipilih. Rasio respon adalah : (waktu tunggu + prediksi
waktu servis) / (prediksi waktu servis)
6. Feedback, dikenal juga sebagai Multilevel feedback, process di antrian
level 1 dikerjakan mirip Round Robin. Jika belum selesai diantrikan di
level 2. Jika belum selesai diantrikan lagi di level berikutnya.
Demikian seterusnya hingga level terendah. Kuantum waktu di setiap
level dapat dibuat sama, atau makin lama makin besar.
Perhatikan contoh kasus di Tabel 5.1
Tabel 5-1 Contoh Penjadwalan Proses
0 5 10 15 20
Round Robin A
(q=4) B
C
D
E
Sistem Operasi 61
Shortest Process A
Next (SPN) B
C
D
E
Shortest Remaining A
Time (SRT) B
q=1 C
D
E
0 5 10 15 20
Highest Response A
Ratio Next B
(HRRN) C
D
E
Gambar 5-2 Perbandingan Algoritma Penjadwalan
0 5 10 15 20
Feedback A
q=1 B
C
D
E
Feedback A
q=2i B
C
D
E
Dari kasus yang ditunjukkan pada Tabel 5-1, dan urutan eksekusi process
yang ditunjukkan pada Gambar 5-2 dapat dihitung waktu selesai, dan
turnaround time-nya, TAT, seperti ditunjukkan pada Tabel 5-3
62 Sistem Operasi
Tabel 5-2 Perbandingan Turnaround time beragam algoritma
Process A B C D E
Waktu- 0 2 4 6 8
datang
Waktu- 3 6 4 5 2
layan
Algoritma (Ts) Rata2
Selesai 3 9 13 18 20
FCFS TAT 3 7 9 12 12 8.60
TAT/Ts 1.00 1.17 2.25 2.40 6.00 2.56
Selesai 4 18 17 20 15
RR, q=1 TAT 4 16 13 14 7 10.80
TAT/Ts 1.33 2.67 3.25 2.80 3.50 2.71
RR, q=4 Selesai 3 17 11 20 19
TAT 3 15 7 14 11 10.00
TAT/Ts 1.00 2.5 1.75 2.80 5.50 2.71
SPN Selesai 3 9 15 20 11
TAT 3 7 11 14 3 7.60
TAT/Ts 1.00 1.17 2.75 2.80 1.50 1.84
SRT Selesai 3 15 8 20 10
TAT 3 13 4 14 2 7.20
TAT/Ts 1.00 2.17 1.00 2.80 1.00 1.59
HRRN Selesai 3 9 13 20 15
TAT 3 7 9 14 7 8.60
TAT/Ts 1.00 1.17 2.25 2.80 3.5 2.14
FB, q=1 Selesai 4 20 16 19 11
TAT 4 18 12 13 3 10.00
TAT/Ts 1.33 3.00 3.00 2.60 1.5 2.29
FB, q=2^i Selesai 4 17 18 20 14
TAT 4 15 14 14 6 10.60
TAT/Ts 1.33 2.50 3.50 2.80 3.00 2.63
Pada algoritma di atas ada situasi dimana process yang sedang dikerjakan
dapat atau tidak dapat dihentikan di tengah jalan. Hal tersebut disebut mode
keputusan:
- nonpreemptive : process yang sedang dijalankan tidak dapat
dihentikan di tengah jalan.
- preemptive : process yang sedang dijalankan dapat dihentikan di
tengah jalan. Dibutuhkan usaha yang lebih agar sistem dapat
mendukung aktivitas preemptive.
Sistem Operasi 63
5.5 Penjadwalan Fair-Share
Algoritma-algoritma yang dibahas di atas berlaku pada process-process yang
mandiri, process dari pengguna yang satu tidak terkait dengan process
pengguna lain.
Dalam sistem multiuser para pengguna dapat membentuk group, kelompok.
Program-program dari suatu kelompok biasanya saling terkait. Dalam
pemrograman berorientasi objek dimungkinkan satu program terdiri dari
beberapa thread. Dari sudut pandang pengguna ada kebutuhan sekumpulan
process yang lebih besar lebih diperhatikan oleh sistem. Pengguna
membutuhkan penjadwalan yang fair-share, berbagi yang lebih adil, yang besar
mendapat kuantum waktu yang lebih besar dan yang kecil mendapatkan
kuantum waktu yang kecil.
Tabel 5-3 Karakteristik beragam algoritma penjadwalan
64 Sistem Operasi
5.6 Penjadwalan Multiprosesor
Ada banyak Prosesor dalam sistem multiProsesor. Seberapa sering
sinkronisasi process-process dalam Prosesor-Prosesor itu dilakukan disebut
synchronization granularity. Ada lima kategori paralelisme yang berbeda derajat
granularity-nya.
Tabel 5-4 Synchronization Granularity dan Process
Sistem Operasi 65
Dalam pendekatan load sharing, ada pilihan berikut :
1. first come first served (FCFS) : thread-thread dari job yang datang
diantrikan dalam antrian bersama. Prosesor menganggur akan
memanggil thread terdepan.
2. smallest number of threads first : Ada antrian sesuai prioritas.
Prioritas tertinggi diberikan pada program dengan jumlah thread
terkecil.
Tugas yang akan dijadwalkan musti dilengkapi dengan data : kapan siap
dijalankan (ready time), kapan harus mulai dikerjakan (starting deadline), kapan
66 Sistem Operasi
harus selesai (completion deadline), berapa lama waktu eksekusi (processing
time), apa saja yang dibutuhkan (resource requirement), tingkat prioritas
(priority), apakah ia terdiri dari sub-sub tugas (subtask structure). Perhatikan
kasus pada table di bawah
Tabel 5-5 Dua tugas periodik pada sistem real-time
Kasus lain yang mungkin terjadi adalah tugas-tugas datang dalam jangka waktu
yang tidak tentu, aperiodic. Penjadwalan dapat dilakukan berdasarkan kapan
tugas itu harus mulai dikerjakan, atau kapan tugas itu harus selesai.
Sistem Operasi 67
Soal Latihan
68 Sistem Operasi
10. Tunjukkan penjadwalan tugas real time berikut, lakukan seperti Gambar
5.3.
Process Waktu kedatangan Waktu eksekusi Ending Deadline
A(1) 0 10 20
A(2) 20 10 40
…
B(1) 0 10 50
B(2) 50 10 100
…
C(1) 0 15 50
C(2) 50 15 100
Sistem Operasi 69
6 Manajemen Memori
Overview
Memori komputer adalah salah satu sumber daya komputer yang paling
berharga yang perlu dikelola dengan baik oleh sistem operasi dikarenakan
jumlahnya yang terbatas. Kerumitan pengelolaan pada sistem operasi modern
bertambah seiring dengan adanya fitur multiprogramming dan multitasking di
mana lokasi memori tidak hanya diakses oleh satu proses tetapi juga dibagi
pakai dengan proses-proses lainnya yang berjalan secara konkuren.
Tujuan
70 Sistem Operasi
6.1 Pendahuluan
Dalam sistem uniprogramming, memori utama dibagi ke dalam dua bagian:
bagian pertama untuk sistem operasi, bagian kedua untuk program yang
sedang dijalankan. Dalam sistem multiprogramming, bagian kedua akan dibagi-
bagi lagi untuk menampung banyak process. Tugas membagi ini dilakukan
secara dinamis oleh sistem operasi dan dikenal sebagai manajemen memori.
Sistem Operasi 71
6.3 Pemartisian Memori
Prinsip manajemen memori adalah bagaimana menyimpan banyak program
dalam memori utama. Hampir semua sistem multiprogramming modern
menggunakan teknik virtual memory. Namun sebelum membahasnya, perlu
diketahui teknik yang lebih sederhana : fixed partitioning dan dynamic
partitioning.
72 Sistem Operasi
dynamic partition disebut external fragmentation, fragmentasi terjadi karena
pengaruh luar.
Bagaimana mengatasi masalah banyaknya lubang ini? Salah satu cara adalah
compaction, program-program di bawah lubang digeser ke atas agar
berhimpitan dengan program sebelumnya, sedemikian hingga hanya ada satu
lubang, di lokasi paling bawah.
Apakah tidak butuh waktu untuk menggeser program-program di bawah
lubang? Ya, butuh waktu. Cara lain diusulkan agar penempatan program dapat
dilakukan dengan cepat : biarkan lubang apa adanya, buatlah daftar lubang,
alamat dan ukurannya. Jika ada program baru masuk, ada pilihan :
- carilah lubang dengan ukuran terkecil terdekat dengan ukuran
program baru, cara ini disebut best fit.
- carilah lubang pertama di antrian (pencarian dari awal antrian) yang
mampu menampung program baru, cara ini disebut first fit.
- carilah lubang pertama di antrian (pencarian dari posisi cursor saat
ini) yang mampu menampung program baru, cara ini disebut next
fit.
Process P1 Process P1
(20 M) (20 M)
Process P2 Free : 14 M
(14 M)
Operating Operating Operating
Free : 56(8MM)
System Process P3M)
System (8 Process P3M)
System (8
(18 M) (18 M)
Process P1 Free : 20 M Process P2
(20 M) Free : 4 M Free
(14M): 4 M
Free : 6 M
Process P4 (8 M) Process P4 (8 M)
Process P4 (8 M)
Free : 6 M Free : 6 M
Free : 6 M
Process P3 Process P3
(18 M) (18 M) Process P3
(18 M)
Free : 4 M Free : 4 M
Free : 4 M
Sistem Operasi 73
Gambar 6-1 Pengaruh Partisi Dinamis
Contoh kasus, ada daftar lubang memori seperti pada Gambar 6-2. Ada
program baru masuk berukuran 23 M. Di mana ditempatkan? Ya, di L5. Jika
ada program baru berukuran 16 M masuk, dimana ditempatkan?
L1 : 8M L1 : 8M Program 16 M
L2 : 12M L2 : 12M dimana?
L3 : 22M L3 : 22M
L4 : 18M L4 : 18M First Fit : L3;
L5 : 24M L5 : 1M
L6 : 6M L6 : 6M Best Fit : L4;
L7 : 14M L7 : 14M
L8 : 36M L8 : 36M Next Fit : L8;
setelah Program
23 M masuk
Gambar 6-2 Contoh alokasi memori pada partisi dinamis
Buddy System
Mirip partisi dinamis, ukuran partisi tidak mengikuti ukuran program, pada
sistem ini ukuran partisi merupakan bilangan power of 2 terdekat dengan
ukuran program. Lihat contoh kasus pada Gambar 6.3.
Semula ukuran memori 1Mbyte. Process A meminta 100Kb. Ukuran power
of 2 terdekat dengan 100K adalah 128K. Memori 1Mb akan dipecah menjadi
512K + 512K, 512K pertama dipecah menjadi 256K + 256K, 256K pertama
dipecah menjadi 128K + 128K. Process A diberi memori berukuran 128K
pertama. Process B berukuran 240K diberi memori berukuran 256K. Ketika
sebuah process sudah melepaskan memori, akan diperiksa apakah memori
yang dibebaskan berdekatan dengan tetangganya untuk digabung, untuk
mendapatkan ukuran yang lebih besar lagi.
6.4 Relokasi
Di depan disebutkan ada kebutuhan kesanggupan relokasi program di memori
utama, program tidak harus menempati lokasi yang sama dengan lokasi ketika
ia dikeluarkan dari memori utama. Pada fix partition berukuran sama, pada
antrian tunggal partisi berukuran tidak sama, hal itu dimungkinkan terjadi.
74 Sistem Operasi
Pada dynamic partitioning juga dimungkinkan terjadi, lihat Gambar 6.1,
process P2 dapat menempati lokasi yang berbeda untuk kedua kalinya. Pada
metoda compaction juga, program dapat direlokasi.
1 Mbyte block 1M
Release D
512K D
256K
1M
Sistem Operasi 75
Relative address
Stack
di memori utama
Sebuah program
di memori utama
6.5 Paging
Untuk mengatasi fragmentasi internal atau fragmentasi eksternal ada usaha
memori utama dipartisi ke dalam sejumlah besar potongan berukuran kecil
yang sama, program juga dipotong-potong dalam ukuran yang sama, disebut
pages. Page-page ini kemudian di-load ke potongan memori utama tadi, yang
disebut frame. Disini, fragmentasi hanya akan terjadi pada frame terakhir.
Terapan konsep ini ditunjukkan pada Gambar 6.5. Program A terdiri dari 4
page masuk, program B 3 page masuk, program C 4 page masuk. Program B
kemudian keluar, meninggalkan 3 page bebas. Ada sisa 4 page di bawah. Jika
program D 5 page akan masuk, apakah akan ditahan dulu? Tidak. Sistem
mendaftar frame-frame yang bebas. Sistem juga mengelola page table, tabel
frame-frame yang dipakai page program, lihat contoh di Gambar 6.6 Jika
jumlah frame bebas cukup untuk menampung page program baru, maka akan
diberikan. Program D disimpan di frame 4,5,6,11 dan 12.
76 Sistem Operasi
Agar paging berjalan nyaman, ukuran page dan frame sebaiknya menggunakan
bilangan power of 2. Dengan menggunakan bilangan ini relative address dan
logical address akan sama. Sebuah lokasi di memori fisik akan ditunjukkan
dengan dua nomor : nomor frame dan nomor offset. Misal alamat relatif 1502
menggunakan 16 bit : 0000010111011110, ukuran page 1K = 1024 byte.
Untuk page 1024 butuh 10 bit untuk alamat offset, ada sisa 6 bit (dari 16 bit)
untuk nomor page. (Suatu program diharapkan punya page tidak lebih dari 26
= 64 page). Jadi, alamat relatif 0000010111011110, nomor page-nya 000001
(decimal 1), nomor offsetnya 0111011110 (decimal 478).
Kemudian misalnya page ini akan ditempatkan di memori fisik di alamat frame
6 (000110), maka konversi cukup dilakukan pada nomor page ke nomor
frame, nomor offset keduanya sama.
Menggunakan ukuran page sebagai bilangan power of 2 punya dua keuntungan.
Pertama, skema alamat lojik jelas bagi programmer, assembler dan linker.
Alamat lojik setara identik dengan alamat relatif. Kedua, relatif masalah
mudah untuk mengimplementasikan fungsi penterjemahan alamat dinamis ke
dalam hardware.
No Frame Memori Memori Memori
0 A.0 A.0
1 A.1 A.1
2 A.2 A.2
3 A.3 A.3
4 B.0
5 B.1
6 B.2
7
8
9
10
11
12
13
14
A masuk B masuk
Sistem Operasi 77
No Frame Memori Memori Memori
0 A.0 A.0 A.0
1 A.1 A.1 A.1
2 A.2 A.2 A.2
3 A.3 A.3 A.3
4 B.0 D.0
5 B.1 D.1
6 B.2 D.2
7 C.0 C.0 C.0
8 C.1 C.1 C.1
9 C.2 C.2 C.2
10 C.3 C.3 C.3
11 D.3
12 D.4
13
14
C masuk B keluar D masuk
Gambar 6-5 Pengisian page process ke frame memori
0 0 0 - 0 7 0 4
1 1 1 - 1 8 1 5
2 2 2 - 2 9 2 6
3 3 3 10 3 11
4 12
Table Page Table Page Table Page Table Page
Proses A Proses B Proses C Proses D
0 0
1 1
2 2
3 3
Daftar frame
bebas
78 Sistem Operasi
6.6 Segmentasi
Selain dengan paging, program dapat dipecah ke dalam sejumlah segment,
dengan ukuran tidak harus sama. Hanya memang ada panjang segment
maksimum. Sebuah lokasi akan diidentifikasi dengan dua nomor : nomor
segment dan nomor offset.
Konsep segmentasi ini mirip dengan dynamic partitioning. Bedanya, di
segmentasi ini sebuah program boleh menempati lebih dari satu partisi, dan
tidak harus berdampingan. Fragmentasi internal tidak ada, namun fragmentasi
eksternal mungkin terjadi.
Programmer biasanya tahu segment untuk program atau segment untuk data
yang disediakan sistem. Program dan data sendiri dapat dipecah ke dalam
beberapa segment. Hanya, programmer tidak dapat menggunakan lokasi
melebihi batas maksimum ukuran segment.
Sistem akan mengelola segment table untuk setiap process dan daftar
lokasi bebas di memori utama. Setiap isian tabel ini akan berisi alamat awal
dan panjang segment untuk memproteksi lokasi memori dari pengguna lain.
Saat akan dieksekusi, alamat di tabel segment ini akan di-load ke register
khusus.
Sistem Operasi 79
Soal Latihan
80 Sistem Operasi
7 Manajemen Perangkat I/O
Overview
Tujuan
3. Tujuan 1
4. Tujuan 2
Sistem Operasi 81
7.1 Pendahuluan
Menurut Silberschatz et. al. [Silberschatz2002], salah satu tujuan utama dari
suatu sistem operasi ialah mengatur semua perangkat M/K
(Masukan/Keluaran) atau I/O (Input/Output) komputer. Sistem operasi harus
dapat memberikan perintah ke perangkat-perangkat itu, menangkap dan
menangani interupsi, dan menangani error yang terjadi. Sistem operasi juga
harus menyediakan antarmuka antara sistem operasi itu sendiri dengan
keseluruhan sistem itu yang sederhana dan mudah digunakan. Antarmuka itu
harus sama untuk semua perangkat (device independent), agar dapat
dikembangkan.
Beberapa konsep yang umum digunakan ialah port, bus (daisy chain/shared
direct access), dan pengendali (host adapter). Port ialah koneksi yang digunakan
oleh perangkat untuk berkomunikasi dengan mesin. Bus ialah koneksi yang
menghubungkan beberapa perangkat menggunakan kabel-kabel. Pengendali
ialah alat-alat elektronik yang berfungsi untuk mengoperasikan port, bus, dan
perangkat.
82 Sistem Operasi
3. Communication, peralatan yang sesuai untuk komunikasi dengan
peralatan jarak jauh (remote device) seperti remote control, &
modem
Perangkat M/K dapat dibagi secara umum menjadi dua kategori, yaitu:
perangkat blok (block devices), dan perangkat karakter (character devices).
Perangkat blok menyimpan informasi dalam sebuah blok yang ukurannya
tertentu, dan memiliki alamat masing-masing. Umumnya blok berukuran
antara 512 bytes sampai 32.768 bytes. Keuntungan dari perangkat blok ini
ialah mampu membaca atau menulis setiap blok secara independen. Disk
merupakan contoh perangkat blok yang paling banyak digunakan.
Sistem Operasi 83
blok. Tipe ini tidak memiliki alamat, dan tidak memiliki kemampuan mencari
(seek). Printer dan antarmuka jaringan merupakan contoh perangkat jenis ini.
84 Sistem Operasi
untuk berkomunikasi antara CPU dan pengendali. Sedangkan mainframe yang
berukuran besar umumnya menggunakan model yang berbeda, dengan bus
yang banyak dan I/O channels.
7.3.2 Polling
Busy-waiting/polling ialah ketika host mengalami looping yaitu membaca status
register secara terus-menerus sampai status busy di-clear. Pada dasarnya polling
dapat dikatakan efisien. Akan tetapi polling menjadi tidak efisien ketika setelah
berulang-ulang melakukan looping, hanya menemukan sedikit perangkat yang
siap untuk menservis, karena CPU processing yang tersisa belum selesai.
7.3.3 Interupsi
Sistem Operasi 85
Gambar 7-2 Contoh proses polling yang tipikal
86 Sistem Operasi
handler yang harus mencari semua kemungkinan sumber interupsi untuk
menemukan pengirim interupsi. Akan tetapi, vektor interupsi memiliki
hambatan karena pada kenyataannya, komputer yang ada memiliki perangkat
(dan interrupt handler) yang lebih banyak dibandingkan dengan jumlah alamat
pada vektor interupsi. Karena itulah, digunakan teknik interrupt chaining setiap
elemen dari vektor interupsi menunjuk pada elemen pertama dari sebuah
daftar interrupt handler. Dengan teknik ini, overhead yang dihasilkan oleh
besarnya ukuran tabel dan inefisiensi dari penggunaan sebuah interrupt handler
(fitur pada CPU yang telah disebutkan sebelumnya) dapat dikurangi, sehingga
keduanya menjadi kurang lebih seimbang.
Penyebab Interupsi
Interupsi dapat disebabkan berbagai hal, antara lain exception, page fault,
interupsi yang dikirimkan oleh pengendali perangkat, dan system call. Exception
ialah suatu kondisi dimana terjadi sesuatu, atau dari sebuah operasi didapat
hasil tertentu yang dianggap khusus sehingga harus mendapat perhatian lebih,
contohnya pembagian dengan 0 (nol), pengaksesan alamat memori yang
restricted atau bahkan tidak valid, dan lain-lain. System call ialah sebuah fungsi
pada aplikasi (perangkat lunak) yang dapat mengeksekusikan instruksi khusus
berupa interupsi perangkat lunak atau trap.
Untuk memulai sebuah transfer DMA, host akan menuliskan sebuah DMA
command block yang berisi pointer yang menunjuk ke sumber transfer, pointer
yang menunjuk ke tujuan transfer, dan jumlah byte yang ditransfer, ke
memori. CPU kemudian menuliskan alamat command block ini ke pengendali
DMA, sehingga pengendali DMA dapat kemudian mengoperasikan bus
memori secara langsung dengan menempatkan alamat-alamat pada bus
tersebut untuk melakukan transfer tanpa bantuan CPU.
Sistem Operasi 87
Tiga langkah dalam transfer DMA:
1. Prosesor menyiapkan DMA transfer dengan menyedia kan data-data
dari perangkat, operasi yang akan ditampilkan, alamat memori yang
menjadi sumber dan tujuan data, dan banyaknya byte yang ditransfer.
2. Pengendali DMA memulai operasi (menyiapkan bus, menyediakan
alamat, menulis dan membaca data), sampai seluruh blok sudah di
transfer.
3. Pengendali DMA meng-interupsi prosesor, dimana selanjutnya akan
ditentukan tindakan berikutnya.
7.4.1 Handshaking
Proses handshaking antara pengendali DMA dan pengendali perangkat
dilakukan melalui sepasang kabel yang disebut DMA-request dan DMA-
acknowledge. Pengendali perangkat mengirimkan sinyal melalui DMA-request
ketika akan mentransfer data sebanyak satu word. Hal ini kemudian akan
88 Sistem Operasi
mengakibatkan pengendali DMA memasukkan alamat-alamat yang dinginkan
ke kabel alamat memori, dan mengirimkan sinyal melalui kabel DMA-
acknowledge. Setelah sinyal melalui kabel DMA-acknowledge diterima,
Modul
CPU CPU I/O Memori
DMA
Modul Modul
CPU Memori
DMA DMA
I/O
I/O I/O
Modul
CPU Memori
DMA
Bus I/O
c. Bus I/O
Sistem Operasi 89
7.4.2 Cara-cara Implementasi DMA
Dalam pelaksanaannya, beberapa komputer menggunakan memori fisik untuk
proses DMA sedangkan jenis komputer lain menggunakan alamat virtual
dengan melalui tahap "penerjemahan" dari alamat memori virtual menjadi
alamat memori fisik, hal ini disebut Direct Virtual-Memory Address atau DVMA.
Keuntungan dari DVMA ialah dapat mendukung transfer antara dua memori
mapped device tanpa intervensi CPU
Tujuan dari adanya lapisan device driver ini adalah untuk menyembunyikan
perbedaan-perbedaan yang ada pada pengendali perangkat dari subsistem M/K
yang terdapat dalam kernel. Dengan demikian, subsistem M/K dapat bersifat
mandiri dari perangkat keras. Hal ini sangat menguntungkan dari segi
pengembangan perangkat keras, karena tidak perlu menunggu vendor sistem
operasi untuk mengeluarkan support code untuk perangkat-perangkat keras
baru yang akan dikeluarkan oleh para vendor perangkat keras tersebut
90 Sistem Operasi
dari perangkat-perangkat tersebut sangat bervariasi, beberapa yang dapat
membedakannya adalah dari segi.
Pada umumnya sistem operasi juga memiliki sebuah "escape" atau "pintu
belakang" yang secara terbuka mengirim perintah yang arbitrary dari sebuah
Sistem Operasi 91
aplikasi ke device driver. Dalam UNIX, ada ioctl() yang memungkinkan aplikasi
mengakses seluruh fungsi yang tersedia di device driver tanpa perlu membuat
sebuah sistem call yang baru.
ioctl() ini mempunyai tiga argumen dan yang pertama adalah sebuah
pendeskripsi berkas yang menghubungkan aplikasi ke driver dengan menunjuk
perangkat keras yang diatur oleh driver tersebut. Ke-dua adalah sebuah
integer yang memilih satu perintah yang terimplementasi di dalam driver. Ke-
tiga, sebuah pointer ke struktur data arbitrary di memori, yang memungkinkan
aplikasi dan driver berkomunikasi dengan data dan mengendalikan informasi
data.
Keyboard adalah salah satu contoh alat yang dapat mengakses stream-karakter.
System call dasar dari antarmuka ini d apat membuat sebuah aplikasi
mengerti tentang bagaimana cara untuk mengambil dan menuliskan sebuah
karakter. Kemudian pada pengembangan lanjutannya, kita dapat membuat
library yang dapat mengakses data/pesan baris demi baris
Karena adanya perbedaan dalam kinerja dan pengalamatan dari jaringan M/K,
maka biasanya sistem operasi memiliki antarmuka M/K yang berbeda dari
baca, tulis dan pencarian pada disk. Salah satu yang banyak digunakan pada
sistem operasi adalah socket interface.
92 Sistem Operasi
7.8 Jam dan Timer
Adanya jam dan timer pada perangkat keras komputer, setidaknya memiliki
tiga fungsi, memberi informasi waktu saat ini, memberi informasi lamanya
waktu sebuah proses, sebagai trigger untuk suatu operasi pada suatu waktu.
Fungsi-fungsi ini sering digunakan oleh sistem operasi. Sayangnya, system call
untuk pemanggilan fungsi ini tidak distandarisasi antar sistem operasi.
Sistem operasi dapat mendukung lebih dari banyak timer request daripada
banyaknya jumlah timer hardware. Dengan kondisi seperti ini, maka kernel
atau device driver mengatur daftar dari interupsi dengan urutan yang pertama
kali datang akan dilayani terlebih dahulu.
Sistem Operasi 93
Menjadwal sekumpulan permintaan M/K sama dengan menentukan urutan
yang sesuai untuk mengeksekusi permintaan tersebut. Penjadualan dapat
meningkatkan performa sistem secara keseluruhan, dapat membagi perangkat
secara adil di antara proses-proses, dan dapat mengurangi waktu tunggu rata-
rata untuk menyelesaikan operasi M/K.
Salah satu cara untuk meningkatkan efisiensi M/K sub sistem dari sebuah
komputer adalah dengan mengatur operasi M/K tersebut. Cara lain adalah
dengan menggunakan tempat penyimpanan pada memori utama atau pada
disk, melalui teknik yang disebut buffering, caching, dan spooling.
7.9.2 Buffering
Buffer adalah area memori yang menyimpan data ketika mereka sedang
dipindahkan antara dua perangkat atau antara perangkat dan aplikasi.
94 Sistem Operasi
Tiga alasan melakukan buffering:
Hal ini sangat umum terjadi pada jaringan komputer, dimana buffer
dipakai secara luas untuk fragmentasi dan pengaturan kembali pesan-
pesan yang diterima. Pada bagian pengirim, sebuah pesan yang besar
akan dipecah ke dalam paket-paket kecil. Paket-paket tersebut
dikirim melalui jaringan, dan penerima akan meletakkan mereka di
dalam buffer untuk disusun kembali.
Sistem Operasi 95
memanggil sistem penulisan, menyediakan pointer ke buffer, dan
sebuah integer untuk menunjukkan ukuran bytes yang ingin ditulis.
Setelah pemanggilan tersebut, apakah yang akan terjadi jika aplikasi
tersebut merubah isi dari buffer?
Dengan copy semantics, versi data yang ingin ditulis sama dengan versi data
waktu aplikasi ini memanggil sistem untuk menulis, tidak tergantung dengan
perubahan yang terjadi pada buffer. Sebuah cara sederhana untuk sistem
operasi untuk menjamin copy semantics adalah membiarkan sistem penulisan
untuk menyalin data aplikasi ke dalam buffer kernel sebelum mengembalikan
kontrol kepada aplikasi. Jadi penulisan ke disk dilakukan pada buffer kernel,
sehingga perubahan yang terjadi pada buffer aplikasi tidak akan membawa
dampak apa-apa. Menyalin data antara buffer kernel data aplikasi merupakan
sesuatu yang umum pada sistem operasi, kecuali overhead yang terjadi karena
operasi clean semantics. Kita dapat memperoleh efek yang sama yang lebih
efisien dengan memanfaatkan pemetaan virtual-memori dan proteksi copy-on-
wire dengan lebih pintar.
7.9.3 Caching
Sebuah cache adalah daerah memori yang cepat yang berisikan data salinan.
Akses ke sebuah salinan yang di-cached lebih efisien daripada akses ke data
asli. Sebagai contoh, instruksi-instruksi dari proses yang sedang dijalankan
disimpan ke dalam disk, dan ter-cached di dalam memori fisik, dan kemudian
dikopi lagi ke dalam cache secondary and primary dari CPU. Perbedaan antara
sebuah buffer dan cache adalah buffer dapat menyimpan satu-satunya informasi
data sedangkan sebuah cache secara definisi hanya menyimpan sebuah data
dari sebuah tempat untuk dapat diakses lebih cepat.
Caching dan buffering adalah dua fungsi yang berbeda, tetapi terkadang sebuah
daerah memori dapat digunakan untuk keduanya. sebagai contoh, untuk
menghemat copy semantics dan membuat penjadualan M/K menjadi efisien,
sistem operasi menggunakan buffer pada memori utama untuk menyimpan
data.
Buffer ini juga digunakan sebagai cache, untuk meningkatkan efisiensi IO untuk
berkas yang digunakan secara bersama-sama oleh beberapa aplikasi, atau yang
sedang dibaca dan ditulis secara berulang-ulang.
96 Sistem Operasi
Ketika kernel menerima sebuah permintaan berkas M/K, kernel tersebut
mengakses buffer cache untuk melihat apakah daerah memori tersebut sudah
tersedia dalam memori utama. Jika sudah tersedia, sebuah physical disk I/O
dapat dihindari atau bahkan tidak dipakai. Penulisan disk juga terakumulasi ke
dalam buffer cache selama beberapa detik, jadi transfer yang besar akan
dikumpulkan untuk mengefisiensikan jadual penulisan. Cara ini akan menunda
penulisan untuk meningkatkan efisiensi M/K akan dibahas pada bagian Remote
File Access.
Spooling adalah proses yang sangat berguna saat berurusan dengan perangkat
M/K dalam sistem multiprogram. Sebuah spool adalah sebuah buffer yang
menyimpan keluaran untuk sebuah perangkat yang tidak dapat menerima
interleaved data streams. Salah satu perangkat spool yang paling umum adalah
printer.
Printer hanya dapat melayani satu pekerjaan pada waktu tertentu, namun
beberapa aplikasi dapat meminta printer untuk mencetak. Spooling
memungkinkan keluaran mereka tercetak satu per satu, tidak tercampur.
Untuk mencetak sebuah berkas, pertama-tama sebuah proses mengeneralisasi
berkas secara keseluruhan untuk di cetak dan ditempatkan pada spooling
directory. Sistem operasi akan menyelesaikan masalah ini dengan meng-
intercept semua keluaran kepada printer. Tiap keluaran aplikasi sudah di-
spooled ke disk berkas yang berbeda. Ketika sebuah aplikasi selesai mencetak,
sistem spooling akan melanjutkan ke antrian berikutnya.
Sistem Operasi 97
kernel thread. Pada kedua penanganan tersebut, sistem operasi menyediakan
antarmuka kontrol yang membuat users and sistem administrator dapat
menampilkan antrian tersebut, untuk mengenyahkan antrian-antrian yang
tidak diinginkan sebelum mulai dicetak.
Contoh lain adalah penggunaan spooling pada transfer berkas melalui jaringan
yang biasanya menggunakan daemon jaringan. Untuk mengirim berkas ke
suatu tempat, user menempatkan berkas tersebut dalam spooling directory
jaringan. Selanjutnya, daemon jaringan akan mengambilnya dan
mentransmisikannya. Salah satu bentuk nyata penggunaan spooling jaringan
adalah sistim email via Internet. Keseluruhan sistem untuk mail ini berlangsung
di luar sistem operasi.
Beberapa perangkat, seperti drive tape dan printer, tidak dapat me-multiplex
permintaan M/K dari beberapa aplikasi. Selain dengan spooling, dapat juga
diatasi dengan cara lain, yaitu dengan membagi koordinasi untuk multiple
concurrent ini. Beberapa sistem operasi menyediakan dukungan untuk akses
perangkat secara eksklusif, dengan mengalokasikan proses ke device idle dan
membuang perangkat yang sudah tidak diperlukan lagi. Sistem operasi lainnya
memaksakan limit suatu berkas untuk menangani perangkat ini. Banyak sistem
operasi menyediakan fungsi yang membuat proses untuk menangani
koordinat exclusive akses diantara mereka sendiri.
Sebuah ketentuan umum, yaitu sebuah sistem M/K akan mengembalikan satu
bit informasi tentang status panggilan tersebut, yang akan menandakan apakah
98 Sistem Operasi
proses tersebut berhasil atau gagal. Sistem operasi pada UNIX menggunakan
integer tambahan yang dinamakan ERRNO untuk mengembalikan kode
kesalahan sekitar 1 dari 100 nilai yang mengindikasikan sebab dari kesalahan
tersebut. Sebaliknya, beberapa perangkat keras dapat menyediakan informasi
kesalahan yang detail, walaupun banyak sistem operasi yang tidak mendukung
fasilitas ini.
UNIX menyediakan akses sistem berkas untuk beberapa entiti, seperti berkas
pengguna, raw devices, dan alamat tempat proses. Walaupun tiap entiti ini
didukung sebuah operasi baca, semantiknya berbeda untuk tiap entiti. Seperti
untuk membaca berkas pengguna, kernel perlu memeriksa buffer cache
sebelum memutuskan apakah akan melaksanakan I/O disk. Untuk membaca
sebuah raw disk, kernel perlu untuk memastikan bahwa ukuran permintaan
adalah kelipatan dari ukuran sektor disk, dan masih terdapat di dalam batas
sektor. Untuk memproses citra, cukup perlu untuk mengkopi data ke dalam
memori. UNIX mengkapsulasikan perbedaan-perbedaan ini di dalam struktur
yang seragam dengan menggunakan teknik object oriented.
Sistem Operasi 99
overhead, dengan perbandingan dengan teknik prosedural yang membagi
struktur data, tetapi akan mennyederhanakan struktur dan design dari sistem
M/K tersebut dan menambah fleksibilitas.
I/O stream adalah suatu mekanisme pengiriman data secara bertahap dan
terus menerus melalui suatu aliran data dari proses ke peranti (begitu pula
sebaliknya).
7.15 Kinerja MK
M/K adalah faktor penting dalam kinerja sistem. M/K sering meminta CPU
untuk mengeksekusi device-driver code dan menjadual proses secara efisien
sewaktu memblock dan unblock. Hasil context switch men-stress ke CPU dan
hardware cache-nya. M/K juga memberitahukan ketidakefisienan mekanisme
penanganan interupsi dalam kernel, dan M/K me-load down memory bus saat
data copy antara pengendali dan memori fisik, dan juga saat copy antara kernel
buffers dan application data space. Mengkopi dengan semua permintaan ini
adalah salah satu kekhawatiran dalam arsitektur komputer.
Misalnya, sebuah hardware RAID controller mungkin saja tidak memberikan izin
kepada kernel untuk mempengaruhi urutan atau pun lokasi dari individual
block reads and writes, walaupun kernel memiliki informasi tertentu tentang
workload yang mampu membuat kernel meningkatkan kinerja M/K.
Overview
Tujuan
Struktur disk merupakan suatu hal yang penting bagi penyimpanan informasi.
Sistem komputer modern menggunakan Disk sebagai media penyimpanan
sekunder. Dulu pita magnetik digunakan sebelum penggunaan disk sebagai
media penyimpanan, sekunder yang memiliki waktu akses yang lebih lambat
dari disk. Sejak digunakan disk, tape digunakan untuk backup, untuk
menyimpan informasi yang tidak sering digunakan, sebagai media untuk
memindahkan informasi dari satu sistem ke sistem lain, dan untuk menyimpan
data yang cukup besar bagi sistem disk.
Bentuk penulisan Disk drive modern adalah array blok logika satu dimensi
yang besar. Blok logika merupakan satuan unit terkecil dari transfer. Ukuran
blok logika umumnya sebesar 512 bytes walaupun disk dapat diformat di level
rendah (low level formatted) sehingga ukuran blok logika dapat ditentukan,
misalnya 1024 bytes.
Array adalah blok logika satu dimensi yang dipetakan ke sektor dari disk secara
sekuensial. Sektor 0 merupakan sektor pertama dari track pertama yang
terletak di silinder paling luar (outermost cylinder). Proses pemetaan dilakukan
secara berurut dari Sektor 0, lalu ke seluruh track dari silinder tersebut, lalu
ke seluruh silinder mulai dari silinder terluar sampai silinder terdalam.
Kita dapat mengubah sebuah nomor blok logika dengan pemetaan menjadi
sebuah alamat disk yang terdiri atas nomor silinder, nomor track di silinder
tersebut, dan nomor sektor dari track tersebut. Dalam prakteknya, sulit
untuk menerapkan pengubahan tersebut karena ada dua alasan. Pertama,
kebanyakan disk memiliki sejumlah sektor yang rusak, tetapi pemetaan
menyembunyikan hal ini dengan mensubstitusikan dengan sektor lain yang
diambil dari suatu tempat di disk. Kedua, jumlah dari sektor tidak track tidak
konstan. Pada media yang menggunakan ketentuan Constant Linear Velocity
(CLV) kepadatan bit tiap track sama, jadi semakin jauh sebuah track dari
tengah disk, semakin besar panjangnya, dan juga semakin banyak sektor yang
dimilikinya. Trek di zona terluar memiliki 40% sektor lebih banyak
dibandingkan dengan track di zona terdalam. Untuk menjamin aliran data yang
sama, sebuah drive menaikan kecepatan putarannya ketika disk head bergerak
dari zona luar ke zona dalam. Metode ini digunakan dalam CD-ROM dan
DVD-ROM. Metode lain yang digunakan agar rotasi tetap konstan dan aliran
data juga konstan dikenal dengan metode CAV (Constant Angular Velocity).
Penjadualan disk merupakan salah satu hal yang sangat penting dalam
mencapai efisiensi perangkat keras. Bagi disk drives, efisiensi dipengaruhi oleh
kecepatan waktu akses dan besarnya disk bandwith. Waktu akses memiliki dua
komponen utama yaitu waktu pencarian dan waktu rotasi disk (rotational
latency). Waktu pencarian adalah waktu yang dibutuhkan disk arm untuk
menggerakkan head ke bagian silinder disk yang mengandung sektor yang
diinginkan. Waktu rotasi disk adalah waktu tambahan yang dibutuhkan untuk
menunggu perputaran disk agar head dapat berada di atas sektor yang
diinginkan. Disk bandwith adalah total jumlah bytes yang ditransfer dibagi
dengan total waktu dari awal permintaan transfer sampai transfer selesai. Kita
dapat meningkatkan waktu akses dan bandwidth dengan menjadualkan
permintaan dari M/K dalam urutan tertentu.
Apabila suatu proses membutuhkan pelayanan M/K dari atau menuju disk,
maka proses tersebut akan melakukan system call ke sistem operasi.
Permintaan tersebut membawa beberapa informasi, antara lain:
Pelayanan akan dilayani pada suatu proses apabila disk drive beserta pengendali
tersedia untuk proses tersebut. Apabila disk drive dan pengendali sedang sibuk
melayani proses lain, maka semua permintaan yang memerlukan pelayanan
disk tersebut akan diletakkan pada suatu antrian permintaan untuk disk
tersebut. Dengan demikian, jika suatu permintaan telah dilayani, maka sistem
operasi melayani permintaan dari antrian berikutnya.
Penjadualan disk FCFS melayani permintaan sesuai dengan antrian dari banyak
proses yang meminta layanan. Secara umum algoritma FCFS ini sangat adil
walaupun ada kelemahan dalam algoritma ini dalam hal kecepatannya yang
lambat. Sebagai contoh, antrian permintaan pelayanan disk untuk proses M/K
pada blok dalam silinder adalah sebagai berikut: 10, 45, 37, 56, 60, 25, 78, 48,
88, 70, 5, 20. Jika head pada awalnya berada pada 50, maka head akan
bergerak dulu dari 50 ke 10, kemudian 45, 37, 56, 60, 25, 78, 48, 88, 70, 5
dan terakhir 20, dengan total pergerakan head sebesar 362 silinder.
Pada algoritma ini disk arm bergerak menuju ke silinder paling ujung dari disk,
kemudian setelah sampai di silinder paling ujung, disk arm akan berbalik arah
geraknya menuju ke silinder paling ujung lainnya. Algoritma SCAN disebut
juga Algoritma lift/ elevator karena algoritma ini cara kerjanya sama seperti
algoritma yang umum dipakai oleh lift untuk melayani penggunanya, yaitu lift
akan melayani orang-orang yang akan naik ke atas dulu, setelah sampai di
lantai tertinggi, baru lift akan berbalik arah geraknya untuk melayani orang-
orang yang akan turun. Dalam pergerakannya yang seperti lift itu, disk arm
hanya dapat melayani permintaan-permintaan yang berada di depan arah
geraknya terlebih dahulu. Bila ada permintaan yang berada di belakang arah
geraknya, permintaan tersebut harus menunggu sampai disk arm mencapai
salah satu silinder paling ujung dari disk, kemudian berbalik arah geraknya
untuk melayani permintaan tersebut.
Contoh: (lihat Gambar, “Penjadualan SCAN”) Jika disk head sedang berada di
silinder 50, dan sedang bergerak menuju silinder 99, maka permintaan yang
Keunggulan dari algoritma SCAN adalah total pergerakan disk arm memiliki
batas atas, yaitu 2 kali dari jumlah total silinder pada disk. Tetapi di samping
itu masih ada beberapa kelemahan yang dimiliki oleh algoritma ini.
Contoh: (lihat Gambar, “Penjadualan LOOK”). Ketika disk head sudah selesai
melayani permintaan di silinder 88, algoritma ini akan "melihat" bahwa
ternyata di depan arah pegerakannya sudah tidak ada lagi permintaan yang
harus dilayani. Oleh karena itu disk arm dapat langsung berbalik arah geraknya
sehingga permintaan yang menunggu untuk dilayani dapat mendapatkan
pelayanan lebih cepat.
Dari seluruh algoritma yang sudah kita bahas di atas, tidak ada algoritma yang
terbaik untuk semua keadaan yang terjadi. SSTF lebih umum dan memiliki
prilaku yang lazim kita temui. SCAN dan C-SCAN memperlihatkan
kemampuan yang lebih baik bagi sistem yang menempatkan beban pekerjaan
yang berat kepada disk, karena algoritma tersebut memiliki masalah starvation
yang paling sedikit. SSTF dan LOOK sering dipakai sebagai algoritma dasar
pada sistem operasi.
Bentuk penulisan disk drive modern adalah array blok logika satu dimensi
yang besar. Ukuran blok logika dapat bermacam-macam. Array adalah blok
logika satu dimensi yang dipetakan dari disk ke sektor secara bertahap dan
berurut. Terdapat dua aturan pemetaan, yaitu:
Kepadatan bit setiap track sama, semakin jauh sebuah track dari
tengah disk, maka semakin besar panjangnya, dan juga semakin
banyak sektor yang dimilikinya. Digunakan pada CD-ROM dan DVD-
ROM.
Overview
Penting bagi kita untuk mengetahui tentang apa itu file. Hal ini disebabkan
nantinya dalam sistem operasi bekerja terdapat fileuntuk mengatur
komponen-komponen tersebut dan menyembunyikan kerumitannya bagi
pengembang aplikasi dan para pengguna akhir sistem operasi.
Tujuan
Berkas adalah sebuah unit tempat menyimpan informasi. Berkas ini dapat
diakses lebih dari satu proses, dapat dibaca, dan bahkan menulis yang baru.
Informasi yang disimpan dalam berkas harus persisten, dalam artian tidak
hilang sewaktu proses berhenti. Berkas-berkas ini diatur oleh sistem operasi,
bagaimana strukturnya, namanya, aksesnya, penggunaannya, perlindungannya,
dan implementasinya. Bagian dari sistem operasi yang mengatur masalah-
masalah ini disebut sistem berkas.
Untuk kebanyakan pengguna, sistem berkas adalah aspek yang paling terlihat
dari sebuah sistem operasi. Dia menyediakan mekanisme untuk penyimpanan
online dan akses ke data dan program. Sistem berkas terbagi menjadi dua
bagian yang jelas; koleksi berkas (masing-masing menyimpan data yang
berkaitan) dan struktur direktori (mengatur dan menyediakan informasi
mengenai semua berkas yang berada di sistem). Sekarang marilah kita
memperdalam konsep dari berkas tersebut.
9.2 Database
DBMS adalah suatu program yang mengelola suatu basisdata, dimana yang
membantu dalam pengelolaan, penyimpanan dan manipulasi suatu informasi.
Secara relasional DBMS merupakan kumpulan relasional. Sebagai pemakai kita
tidak langsung berinteraksi dengan penyimpan fisik. Dengan DBMS, kita dapat
penyederhanaan dan pemberian fasilitas yang nyaman untuk akses data.
1. File Data
2. Kamus Data
3. File Indeks
4. Data Statistik
Berkas adalah sebuah koleksi informasi berkaitan yang diberi nama dan
disimpan di dalam secondary storage. Biasanya sebuah berkas
merepresentasikan data atau program. Ada pun jenis-jenis dari berkas:
Executable file: adalah kumpulan dari bagian-bagian kode yang dapat dibawa ke
memori dan dijalankan oleh loader.
Salah satu atribut dari sebuah berkas yang cukup penting adalah jenis berkas.
Saat kita mendesain sebuah sistem berkas, kita perlu mempertimbangkan
bagaimana operating sistem akan mengenali berkas-berkas dengan jenis yang
berbeda. Apabila sistem operasi dapat mengenali, maka menjalankan berkas
tersebut bukan suatu masalah. Seperti contohnya, apabila kita hendak
mengeprint bentuk binary-object dari sebuah program, yang didapat biasanya
adalah sampah, namun hal ini dapat dihindari apabila sistem operasi telah
diberitahu akan adanya jenis berkas tersebut.
Fungsi dari berkas adalah untuk menyimpan data dan mengizinkan kita
membacanya. Dalam proses ini ada beberapa operasi yang dapat dilakukan
berkas. Ada pun operasi-operasi dasar yang dilakukan berkas, yaitu:
Berkas dapat di struktur dalam beberapa cara. Cara yang pertama adalah
sebuah urutan bytes yang tidak terstruktur. Akibatnya sistem operasi tidak
Cara berikutnya, adalah dengan record sequence. Dalam model ini, sebuah
berkas adalah sebuah urutan dari rekaman-rekaman yang telah ditentukan
panjangnya, masing-masing dengan beberapa struktur internal. Artinya adalah
bahwa sebuah operasi read membalikan sebuah rekaman dan operasi write
menimpa atau menambahkan suatu rekaman.
Struktur berkas yang ketiga, adalah menggunakan sebuah tree. Dalam struktur
ini sebuah berkas terdiri dari sebuah tree dari rekaman-rekaman tidak perlu
dalam panjang yang sama, tetapi masing-masing memiliki sebuah field key
dalam posisi yang telah ditetapkan dalam rekaman tersebut. Tree ini disort
dalam field key dan mengizinkan pencarian yang cepat untuk sebuah key
tertentu.
o Akses Sekuensial
Akses ini merupakan yang paling sederhana dan paling umum
digunakan. Informasi di dalam berkas diproses secara berurutan.
Sebagai contoh, editor dan kompilator biasanya mengakses berkas
dengan cara ini.
o Akses Langsung
Metode berikutnya adalah akses langsung atau dapat disebut relative access.
Sebuah berkas dibuat dari rekaman-rekaman logical yang panjangnya sudah
ditentukan, yang mengizinkan program untuk membaca dan menulis rekaman
secara cepat tanpa urutan tertentu.
Record
Field
9.10 File
- Karakteristik Umum
1. Persistance (bertahan lama)
kemampuan untuk dapat diakses di masa datang
2. Sharability
dapat digunakan secara bersama oleh beragam
user dan program
3. Size
mempunyai ukuran relatif lebih besar daripada
Main Memory
- Karakterisrik khusus
1. File dapat diciptakan dan dihapus
2. File mempunyai nama yang unik
3. File mempunyai parameter perangkat,karena terdapat
banyak perangkat dalam 1 sistem
9.11 Record
1. Fixed Length Record -> punya panjang field yang tetap
2. Variable Length record -> field di record mempunyai panjang beda-
beda.
9.12 Field
1. Fixed Length Field -> menyebabkan rekord berukuran tetap
2. Variable Length record -> menyebabkan rekord berukuran beragam.
9.15 Pile
Karakteristik dari Pile adalah :
1. Data tersusun berdasarkan kedatangannya/ kronologis.
2. Record-record dapatr variable Length dan tak perlu memiliki
sekupulan elemen data yang sama
3. Tak ada keterkaitan antara ukuran file, record dan blok.
4. Data harus disimpan secara lengkap beserta nama atributnya. ( Tak
cuma nilai atributnya). Jadi Record terdiri dari sepasang nama field
dan nilainya.
5. Komponen PILE adalah file yang berisi data.
Berkas adalah sebuah unit tempat menyimpan informasi. Berkas ini dapat
diakses lebih dari satu proses, dapat dibaca, dan bahkan menulis yang baru.
Informasi yang disimpan dalam berkas harus persisten, dalam artian tidak
hilang sewaktu proses berhenti. Berkas-berkas ini diatur oleh sistem operasi,
bagaimana strukturnya, namanya, aksesnya, penggunaannya, perlindungannya,
dan implementasinya. Bagian dari sistem operasi yang mengatur masalah-
masalah ini disebut sistem berkas.
Latihan
Overview
Tujuan
o Mencari Berkas
Mencari lewat struktur direktori untuk dapat menemukan entri
untuk suatu berkas tertentu. berkas-berkas dengan nama yang
simbolik dan mirip, mengindikasikan adanya keterkaitan diantara
berkas-berkas tersebut. Oleh karena itu, tentunya perlu suatu cara
untuk menemukan semua berkas yang benar-benar memenuhi
kriteria khusus yang diminta.
o Membuat berkas
berkas-berkas baru perlu untuk dibuat dan ditambahkan ke dalam
direktori.
o Menghapus berkas
Saat suatu berkas tidak diperlukan lagi, berkas tsb perlu dihapus dari
direktori.
o Menampillkan isi direktori
Menampilkan daftar berkas-berkas yang ada di direktori, dan semua
isi direktori dari berkas-berkas dalam daftar tsb.
o Mengubah nama berkas
Nama berkas mencerminkan isi berkas terhadap pengguna. Oleh
karena itu, nama berkas harus dapat diubah-ubah ketika isi dan
kegunaannya sudah berubah atau tidak sesuai lagi. Mengubah nama
berkas memungkinkan posisinya berpindah dalam struktur direktori.
o Akses Sistem berkas
Mengakses tiap direktori dan tiap berkas dalam struktur direktori.
Sangatlah dianjurkan untuk menyimpan isi dan stuktur dari
keseluruhan sistem berkas setiap jangka waktu tertentu. Menyimpan
juga dapat berarti menyalin seluruh berkas ke pita magnetik. Teknik
ini membuat suatu cadangan salinan dari berkas tersebut jika terjadi
kegagalan sistem atau jika berkas itu tidak diperlukan lagi.
o Membuka direktori
o Menutup direktori
Direktori Dua Tingkat (Two Level Directory) membuat direktori yang terpisah
untuk tiap pengguna, yang disebut User File Directory (UFD). Ketika pengguna
login, master directory berkas dipanggil. MFD memiliki indeks berdasarkan
Meski pun begitu, struktur ini masih memiliki kerugian, terutama bila
beberapa pengguna ingin mengerjakan tugas secara kerjasama dan ingin
mengakses berkas dari salah satu pengguna lain. Beberapa sistem secara
sederhana tidak mengizinkan berkas seorang pengguna diakses oleh pengguna
lain
Bila siklus diperbolehkan dalam direktori, tentunya kita tidak ingin mencari
sebuah berkas 2 kali. Algoritma yang tidak baik akan menghasilkan infinite loop
dan tidak pernah berakhir. Oleh karena itu diperlukan skema pengumpulan
sampah (garbage-collection scheme).
Bfr = (B -1/2R)/(R+P)
Kita sering mendengar tentang direktori, direktori yang biasa kita ketahui
adalah hanya suatu wadah untuk menyimpan file. Tetapi secara detail
direktori mempunyai tingkatan-tingkatan, seperti dengan satu tingka, dua
tingkat, berupa tree maupun berupa graf.
Terdapat suatu metode dalam memblocked suatu record yang semuanya
talah dijelaskan pada bab ini.
Diharapkan mahasiswa dapat mengetahui lebih jelas apa yang dimaksud
dengan direktori.
Latihan
1. Jelaskan apa yang dimaksud dengan direktori satu dan dua tingkat.
2. Sebutkan dan jelaskan metode blocking
Overview
Tujuan
o Data dapat ditulis ulang di disk tersebut, hal ini memungkinkan untuk
membaca, memodifikasi, dan menulis di disk tersebut.
o Dapat diakses langsung ke setiap blok di disk. Hal ini memudahkan
untuk mengakses setiap berkas baik secara berurut maupun tidak
berurut, dan berpindah dari satu berkas ke berkas lain dengan hanya
mengangkat head disk dan menunggu disk berputar.
o I/O control, terdiri atas driver device dan interrupt handler. Driver
device adalah perantara komunikasi antara sistem operasi dengan
perangkat keras. Input didalamnya berisikan perintah tingkat tinggi
seperti "ambil blok 133", sedangkan output-nya adalah perintah
tingkat rendah, instruksi spesifik perangkat keras yang digunakan
oleh controller perangkat keras.
o Basic file system, diperlukan untuk mengeluarkan perintah generic ke
device driver untuk read dan write pada suatu blok dalam disk.
o File-organization module, informasi tentang alamat logika dan alamat
fisik dari berkas tersebut. Modul ini juga mengatur sisa disk dengan
melacak alamat yang belum dialokasikan dan menyediakan alamat
tersebut saat pengguna ingin menulis berkas ke dalam disk. Di dalam
File-organization module juga terdapat free- space manager.
o Logical file-system, tingkat ini berisi informasi tentang simbol nama
berkas, struktur dari direktori, dan proteksi dan sekuriti dari berkas
tersebut. Sebuah File Control Block (FCB) menyimpan informasi
tentang berkas, termasuk kepemilikan, izin dan lokasi isi berkas.
Di bawah ini merupakan contoh dari kerja struktur berlapis ini ketika suatu
program mau membaca informasi dari disk. Urutan langkahnya:
Keefisiensian penyimpanan dan waktu akses blok data adalah kriteria yang
penting dalam memilih metode yang cocok untuk sistem operasi untuk
mengimplementasikan sesuatu. Sebelum memilih sebuah metode alokasi, kita
butuh untuk menentukan bagaimana sistem ini akan digunakan.
Struktur on-disk:
Struktur in-memory:
Untuk membuat suatu berkas baru, program aplikasi memanggil logical file
system. Logical file system mengetahui format dari struktur direktori. Untuk
membuat berkas baru, logical file system akan mengalokasikan FCB, membaca
direktori yang benar ke memori, memperbaharui dengan nama berkas dan
FCB yang baru dan menulisnya kembali ke dalam disk.
Setiap partisi dapat merupakan raw atau cooked. Raw adalah partisi yang tidak
memiliki sistem berkas dan cooked sebaliknya. Raw disk digunakan jika tidak
ada sistem berkas yang tepat. Raw disk juga dapat menyimpan informasi yang
dibutuhkan oleh sistem disk RAID dan database kecil yang menyimpan
informasi konfigurasi RAID.
Root partition yang mengandung kernel sistem operasi dan sistem berkas yang
lain, di-mount saat boot. Partisi yang lain di-mount secara otomatis atau manual
(tergantung sistem operasi). Sistem operasi menyimpan dalam struktur tabel
mount dimana sistem berkas di-mount dan jenis dari sistem berkas.
Pada UNIX, sistem berkas dapat di-mount di direktori mana pun. Ini
diimplementasikan dengan mengatur flag di salinan in-memory dari jenis
direktori itu. Flag itu mengindikasikan bahwa direktori adalah puncak mount.
Interface sistem berkas: perintah open, read, write, close dan file
descriptor.
Virtual File System(VFS)
Virtual file system adalah suatu lapisan perangkat lunak dalam kernel
yang menyediakan antar muka sistem berkas untuk program
userspace. VFS juga menyediakan suatu abstraksi dalam kernel yang
mengijinkan implementasi sistem berkas yang berbeda untuk muncul.
Sebelum sebuah berkas dapat dibaca, berkas tersebut harus dibuka terlebih
dahulu. Saat berkas tersebut dibuka, sistem operasi menggunakan path name
yang dimasukkan oleh pengguna untuk mengalokasikan direktori entri yang
menyediakan informasi yang dibutuhkan untuk menemukan block disk tempat
berkas itu berada. Tergantung dari sistem tersebut, informasi ini dapat berupa
alamat disk dari berkas yang bersangkutan (contiguous allocation), nomor dari
blok yang pertama (kedua skema linked list), atau nomor dari inode. Dalam
semua kasus, fungsi utama dari direktori entri adalah untuk memetakan nama
ASCII dari berkas yang bersangkutan kepada informasi yang dibutuhkan untuk
mengalokasikan data.
Proses:
Kelemahan:
Pencarian secara linier (linier search) untuk mencari sebuah berkas, sehingga
implementasi sangat lambat saat mengakses dan mengeksekusi berkas.
Linear List menyimpan direktori entri, tetapi sruktur data hash juga digunakan.
Hash table mengambil nilai yang dihitung dari nama berkas dan
mengembalikan sebuah penunjuk ke nama berkas yang ada di linier list.
Kelemahan:
Ukuran tetap:
Adanya ketergantungan fungsi hash dengan ukuran hash table
Alternatif:
Chained-overflow hash table yaitu setiap hash table mempunyai linked list dari
nilai individual dan crash dapat diatasi dengan menambah tempat pada linked
list tersebut. Namun penambahan ini dapat memperlambat.
Dalam MS-DOS, direktori dapat berisi direktori lain, tergantung dari hirarki
sistem berkas. Dalam MS-DOS, program aplikasi yang berbeda dapat dimulai
oleh setiap program dengan membuat direktori dalam direktori root, dan
menempatkan semua berkas yang bersangkutan di dalam sana. Jadi antar
aplikasi yang berbeda tidak dapat terjadi konflik.
Saat berkas dibuka, sistem berkas harus mengambil nama berkas dan
mengalokasikan block disk yang bersangkutan, sebagai contoh, nama path
/usr/ast/mbox dicari, dan kita menggunakan UNIX sebagai contoh, tetapi
algoritma yang digunakan secara dasar sama dengan semua hirarki sistem
direktori sistem.
Nama path dilihat dengan cara yang relatif sama dengan yang absolut. Dimulai
dari direktori yang bekerja sebagai pengganti root directory. Setiap direktori
mempunyai entri untuk. dan ''..'' yang dimasukkan ke dalam saat direktori
dibuat. Entri ''.'' mempunyai nomor inode yang menunjuk ke direktori di
atasnya/orangtua (parent), ''.'' kemudian melihat ../dick/prog.c hanya melihat
tanda ''..'' dalam direktori yang bekerja, dengan menemukan nomor inode
dalam direktori di atasnya/parent dan mencari direktori disk. Tidak ada
mekanisme spesial yang dibutukan untuk mengatasi masalah nama ini. Sejauh
masih didalam sistem direktori, mereka hanya merupakan ASCII string yang
biasa.
Latihan
Overview
Tujuan
Berkas yang dialokasikan dengan metode ini akan mudah diakses, karena
pengaksesan alamat a + 1 setelah alamat a tidak diperlukan perpindahan head,
jika diperlukan pemindahan head, maka head tersebut akan hanya akan
berpindah satu track. Hal tersebut menjadikan metode ini mendukung
pengaksesan secara berurutan, tapi metode ini juga mendukung pengaksesan
secara langsung, karena bila ingin mengakses blok ke i berarti kita akan
mengakses blok a + i.
Untuk penentuan ruang kita tidak boleh terlalu kecil atau terlalu besar, bila
kita menentukannya terlalu kecil maka ada saatnya berkas tersebut tidak
Paling penting dalam metode ini adalah menggunakan file-allocation table (FAT).
Tabel tersebut menyimpan setiap blok yang ada di disk dan diberi nomor
sesuai dengan nomor blok. Jadi, direktori hanya menyimpan alamat dari blok
pertama saja, dan untuk selanjutnya dilihat dari tabel tersebut yang
menunjukkan ke blok berikutnya. Jika kita memakai metode ini, akan
menyebabkan mudahnya untuk membuat berkas baru atau mengembangkan
berkas sebelumnya. Mencari tempat kosong untuk berkas baru lebih mudah,
karena kita hanya mencari angka 0 yang pertama dari isi tabel tersebut. Dan
bila kita ingin mengembangkan berkas sebelumnya carilah alamat terakhirnya
yang memiliki ciri tertentu dan ubahlah isi dari tabel tersebut dengan alamat
blok penambahan. Alamat terakhir berisi hal yang unik, sebagai contoh ada
yang menuliskan -1, tapi ada juga yang menuliskannya EOF (End Of File).
Metode yang satu ini memecahkan masalah fragmentasi eksternal dari metode
contiguous allocation dan ruang yang cuma-cuma untuk petunjuk pada metode
linked allocation, dengan cara menyatukan semua petunjuk kedalam blok
indeks yang dimiliki oleh setiap berkas. Jadi, direktori hanya menyimpan
alamat dari blok indeks tersebut, dan blok indeks tersebut yang menyimpan
alamat dimana blok-blok berkas berada. Untuk berkas yang baru dibuat, maka
blok indeksnya di set dengan null.
Metode ini mendukung pengaksesan secara langsung, bila kita ingin mengakses
blok ke-i, maka kita hanya mencari isi dari blok indeks tersebut yang ke-i
untuk dapatkan alamat blok tersebut.
Metode indexed allocation tidak menyia-nyiakan ruang disk untuk petunjuk,
karena dibandingkan dengan metode linked allocation, maka metode ini lebih
Metode ini juga memiliki masalah. Masalah itu timbul disaat berkas
berkembang menjadi besar dan blok indeks tidak dapat menampung petunjuk-
petunjuknya itu dalam satu blok. Salah satu mekanisme dibawah ini dapat
dipakai untuk memecahkan masalah yang tersebut. Mekanisme-mekanisme itu
adalah:
00111100111111000110000011100000...
Bagaimana pun, skema ini tidak efisien untuk mengakses daftar tersebut, kita
harus membaca setiap blok, yang membutuhkan tambahan waktu M/K.
Untungnya, mengakses daftar kosong tersebut itu tidak eksekusi yang teratur.
Biasanya, sistem operasi tersebut membutuhkan sebuah blok kosong supaya
sistem operasi dapat mengalokasikan blok tersebut ke berkas, lalu blok yang
pertama di daftar kosong digunakan.
12.3 Grouping
Sebuah modifikasi dari pendekatan daftar-kosong adalah menyimpan alamat-
alamat dari n blok-blok kosong di blok kosong yang pertama. n-1 pertama
12.4 Counting
Daripada menyimpan daftar dari n alamat-alamat disk kosong, kita dapat
menyimpan alamat dari blok kosong yang pertama tersebut dan angka n dari
blok contiguous kosong yang diikuti blok yang pertama. Setiap masukan di
daftar ruang-kosong lalu mengandung sebuah alamat disk dan sebuah jumlah.
Meski pun setiap masukan membutuhkan ruang lebih daripada alamat-alamat
disk yang sederhana, daftar kesemuanya akan lebih pendek, selama jumlahnya
rata-rata lebih besar daripada 1.
12.5.1 Efisiensi
Penggunaan yang efisien dari ruang disk sangat tergantung pada alokasi disk
dan algoritma direktori yang digunakan. Sebagai contoh, UNIX
mengembangakan kinerjanya dengan mencoba untuk menyimpan sebuah blok
data berkas dekat dengan blok inode berkas untuk mengurangi waktu
pencarian.
Tipe dari data normalnya disimpan di masukan direktori berkas (atau inode)
juga membutuhkan pertimbangan. Biasanya, tanggal terakhir penulisan
direkam untuk memberikan informasi kepada pengguna dan untuk
menentukan jika berkas ingin di back up. Beberapa sistem juga menyimpan
sebiuah "last access date", supaya seorang pengguna dapat menentukan kapan
berkas terakhir dibaca. Hasil dari menyimpan informasi ini adalah ketika
berkas sedang dibaca, sebuah field di struktur direktori harus ditulisi.
Prasyarat ini dapat tidak efisien untuk pengaksesan berkas yang berkala.
12.5.2 Kinerja
Sekali algoritma sistem berkas dipilih, kita tetap dapat mengembangkan
kinerja dengan beberapa cara. Kebanyakan dari disk controller mempunyai
memori lokal untuk membuat on-board cache yang cukup besar untuk
menyimpan seluruh tracks dengan sekejap.
Beberapa sistem membuat seksi yang terpisah dari memori utama untuk
digunakan sebagai disk cache, dimana blok-blok disimpan dengan asumsi
mereka akan digunakan lagi dengan secepatnya. Sistem lainnya menyimpan
data berkas menggunakan sebuah page cache. Page cache tersebut
menggunakan teknik memori virtual untuk menyimpan data berkas sebagai
halaman-halaman daripada sebagai blok-blok file-system-oriented. Menyimpan
Latihan
Overview
Tujuan
o Day 1:
o Menduplikat ke sebuah medium back up semua berkas ke disk. Ini
disebut sebuah full backup.
o Day 2:
o Menduplikat ke medium lainnya semua berkas yang dirubah sejak
hari pertama. Ini adalah incremental backup.
o Day 3:
o Menduplikat ke medium lainnya semua berkas yang dirubah sejak
hari ke-2.
o Day N:
o Menduplikat ke medium lainnya semua berkas yang dirubah sejak
hari ke N-1.
Perputaran baru dapat mempunyai backupnya ditulis ke semua set
sebelumnya, atau ke set yang baru dari media backup. N yang terbesar, tentu
saja memerlukan tape atau disk yang lebih untuk dibaca untuk penyimpanan
yang lengkap. Keuntungan tambahan dari perputaran backup ini adalah kita
dapat menyimpan berkas apa saja yang tidak sengaja terhapus selama
perputaran dengan mengakses berkas yang terhapus dari backup hari
sebelumnya.
Pemanggilan kembali yang mengenai struktur data sistem berkas pada disk--
seperti struktur-struktur direktori, penunjuk-penunjuk blok-kosong,
penunjuk-penunjuk FCB kosong--dapat menjadi tidak konsisten dikarenakan
adanya system crash. Sebelum penggunaan dari teknik log-based di sisitem
operasi, perubahan biasanya dipakaikan pada struktur ini. Perubahan-
perubahan tersebut dapat diinterupsi oleh crash, dengan hasil strukturnya
tidak konsisten.
1. File
File adalah sesuatu yang dapat dibaca dan ditulis. File ditempatkan
pada memori. Penempatan pada memori tersebut sesuai dengan
konsep file deskriptor yang dimiliki unix.
2. Inode
Inode merepresentasikan obyek dasar dalam file sistem. Inode bisa
saja file biasa, direktori, simbolik link dan lain sebagainya. Virtual file
sistem tidak memiliki perbedaan yang jelas di antara obyek, tetapi
mengacu kepada implementasi file sistem yang menyediakan perilaku
yang sesuai. Kernel tingkat tinggi menangani obyek yang berbeda
secara tidak sama. File dan inode hampir mirip diantara keduanya.
Tetapi terdapat perbedaan yang penting diantara keduanya. Ada
sesuatu yang memiliki inode tetapi tidak memiliki file, contohnya
adalah simbolik link. Ada juga file yang tidak memiliki inode seperti
pipes dan socket.
3. File sistem
File system adalah kumpulan dari inode-inode dengan satu inode
pembeda yaitu root. Inode lainnya diakses mulai dari root inode dan
pencarian nama file untuk menuju ke inode lainnya. File sistem
mempunyai beberapa karakteristik yang mencakup seluruh inode
dalam file sistem. Salah satu yang terpenting adalah blocksize.
Latihan
1. Sebutkan dan jelaskan objek dasar dalam layer virtual file system
2. Mengapa perlu adanya recovery dan backup
3. Apa yang dimaksud dengan teknik log-based-recovery.
Overview
Tujuan
1. Tujuan 1
2. Tujuan 2
c. Replication Transparency
Memungkinkan banyak informasi yang digunakan untuk meningkatkan
kehandalan dan kinerja tanpa program. Pengguna tidak terpengaruh
apakah ia mengakses data orsinil atau replikasi.
d. Failure Tranparancy
Memungkinkan program atau pemakai menyelesaikan tugasnya tanpa
terganggu atau mengetahui terjadinya kegagalan komponen hardware
dan software.
e. Migration Transparancy
Memungkinkan perpindahan objek di sistem tanpa mempengaruhi
operasi program
f. Performance Transparancy
Memungkinkan sistem mengkonfigurasi ulang sendiri untuk
meningkatkan kinerja ketika beban kerja bertambah.
g. Scalling Transparancy
Memungkinkan sistem dan aplikasi diperluas (upgrade) tanpa
merubah struktur sistem atau program aplikasi.
Dengan demikian sistem operasi tersebar adalah program yang
mengelola sumber daya-sumber daya di sistem tersebar dan
Ada beberapa tipe jaringan client server yang sudah umum dikenal, yaitu:
Aplikasi
Informasi
` Server Groupware
Client1
Permintaan
Client2 Aplikasi
Remote berarti sumber daya yang tidak terhubung secara langsung dengan
komputer. Sumber daya yang terdapat dalam komputer disebut lokal
Keterangan:
a. Client mengirimkan permintaan berupa objek yang diterima oleh
objek local
b. ORB lokal mendeteksi bahwa proses memerlukan objek remote
sehingga ia mengirimkan objek ke ORB remote
c. ORB remote menghasilkan suatu metoda yang berisikan sekumpulan
objek yang diperlukan dengan berdasar pada objek yang dikirimkan
ORB lokal. Metoda tersebut kemudian dikirim ORB melalui remote
ke server.
d. Server memanggil objek-objek yang diperlukan oleh metoda yang
dikirim oleh ORB remote dan menjalankan metoda tersebut.
e. Setelah proses selesai, objek hasil proses kembali ke ORB remote.
f. ORB remote mengirimkan objek hasil proses kembali ke ORB lokal
dari client yang meminta layanan.
g. ORB lokal menghasilkan suatu metoda berdasarkan objek yang
dikirimkan oleh server.
6. Server Web (Web Server) - Merupakan jaringan dimana layanan
yang diberikan server berupa pengelolaan dan pemakaian data
bersama dokumen-dokumen yang saling terhubung.
Keterangan :
a. Client meminta layanan ke server melalui protokol tertentu
Latihan
Overview
Tujuan
Latihan
1. Apa yang anda ketahui tentang RPC dan RMI dan sebutkan
perbedaanya
2. Sebutkan teknologi cluster yang anda ketahui
3. Apa yang dimaksud dengan sistem prosesor jamak.
4. Carilah di internet tentang Beowulf dan Open Mosix
Overview
Keamanan bukan saja terdapat dalam level aplikasi, tetapi perlu juga
diperhatikan keamanan terhadap suau system yang kita pakai, misalnya
keamanan terhadapa virus yang sekarang ini merupakan suatu ancaman yang
sangat meresahkan.
Tujuan
1. Interupsi
Sumber daya sistem computer dihancurkan atau menjadi tidak
tersedia atau tak berguna. Interupsi adalah ancaman terhadap aset
Sum ber T u ju a n
In fo r m a s i In fo rm a s i
Sum ber T u ju a n
In fo r m a s i In fo rm a s i
2. Intersepsi
Pihak yang tidak berhak melakukan akses terhadap aset sistem
(ancaman terhadap secrecy). Intersepsi adalah ancaman terhadap
kerahasiaan. Pihak tak diotorisasi dapat berupa orang atau program
computer.
Contoh :
- Penyadapan untuk mengambil data rahasia.
- Mengkopi file tanpa diotorisasi.
T u ju a n
In fo rm a s i
3. Modifikasi
Pihak yang tidak berhak tidak hanya melakukan akses terhadap aset
sistem tetapi juga melakukan modifikasi (ancaman terhadap
integrity). Modifikasi merupakan ancaman terhadao integritas.
Contoh :
- Mengubah nilai-nilai file data.
- Mengubah program sehingga bertindak secara berbeda.
- Memodifikasi pesan-pesan yang ditransmisikan pada
S u m b e r T u ju a n
In fo r m a s i In fo r m a s i
T u ju a n
In fo r m a s i
jaringan.
4. Fabrikasi
Pihak yang tidak berhak menyisipkan objek tertentu pada sistem
(ancaman terhadap integrity) ). Fabrikasi merupakan ancaman
terhadao integritas.
Contoh :
- Memasukan pesan-pesan palsu ke jaringan.
- Penambahan record ke file.
S um ber T u ju a n
In fo r m a s i In fo rm a s i
T u ju a n
In fo rm a s i
16.9 Enkripsi
Enkripsi merupakan suatu cara untuk menjaga data tetap aman di lingkungan
yang tidak aman. Enkripsi digunakan untuk proteksi:
Program
Basis data
Jaringan
Komunikasi elektronik
Namun enkripsi yang lemah hanya memberi ilusi proteksi karena dapat
dengan mudah didekripsi.
Terminologi enkripsi meliputi hal-hal sebagai berikut :
Jika S (Sender) mengirim pesan ke R (Receiver) via T maka T disebut
media transmisi
Jika O (Outsider) menginginkan pesan tsb dan mencoba
mengaksesnya maka O disebut interceptor/intruder
O mencoba mengakses pesan melalui:
– Pemblokiran
– Intersepsi
– Modifikasi
– Fabrikasi
Perlu
Independen
Program Inang
Logic Trojan
Trapdoor Virus Bacteria Worm
bomb horse
1. Bacteria
Bacteria adalah program yang mengkonsumsi sumber daya sistem
dengan mereplikasi dirinya sendiri.
Bacteria tidak secara eksplisit merusak file. Tujuan program ini hanya
satu yaitu mereplikasi dirinya. Program bacteria yang sederhana bias
hanya mengeksekusi dua salinan dirinya secara simultan pada sistem
multiprogramming atau menciptakan dua file baru, masing-masing
adalah salinan file program bacteria. Kedua salinan ini kemudian
mengkopi dua kali, dan seterusnya.
Bacteria berproduksi secara eksponensial, dengan cepat mengambil
alih seluruh kapasitas pemroses, memori atau ruang disk,
mengakibatkan penolakan pengaksesan pemakaian ke sumber daya
2. Logic Bomb
Logic Bomb adalah logic yang ditempelkan pada program komputer
agar memeriksa suatau kumpulan kondisi di sistem. Ketika kondisi-
kondisi yang dimaksud ditemuai, logika mengeksekusi suatu fungsi
yang menghasilkan aksi-aksi tak diotorisasi.
Logic Bomb menempel pada suatu program resmi yang di-set
“meledak” ketika kondisi-kondisi tertentu dipenuhi. Contoh
kondisi-kondisi untuk memicu logic bomb adalah ada atau tidak
adanya file-file tertentu, hari tertentu dari minggu atau tanggal, atau
pemakai menjalankan aplikasi tertentu. Begitu terpicu, bomb
mengubah atau menghapus data atau seluruh file, menyebabkan
mesin berhenti, atau mengerjakan perusakan lain
6. Worm
Worm adalah program yang dapat mereplikasi dirinya dan mengirim
salinan-salinan dari komputer ke komputer lewat hubungan jaringan.
Begitu tiba, worm diaktifkan untuk mereplikasi dan propagasi kembali.
Selain hanya propagasi, worm biasanya melakukan fungsi yang tak
diinginkan.
Network Worm menggunakan hubungan jaringan untuk menyebar dari
sistem ke sistem lain. Sekali aktif di suatu sistem, network worm dapat
berlaku seperti virus atau bacteria, atau menempelkan program Trojan
horse atau melakukan sejumlah aksi menjengkelkan atau menghancurkan.
Untuk mereplikasi dirinya, network worm menggunakan suatu
layanan jaringan, seperti :
Fasilitas surat elektronik (electronic mail facility), yaitu worm
mengirimkan salinan dirinya ke sistem-sistem lain.
Kemampuan eksekusi jarak jauh (remote login capability), yaitu
worm mengeksekusi salinan dirinya di sistem lain.
1. Deteksi
Begitu infeksi telah terjadi, tentukan apakah infeksi memang telah
terjadi dan cari lokasi virus.
2. Identifikasi
Begitu virus terdeteksi maka identifikasi virus yang menginfeksi
program.
Latihan