Anda di halaman 1dari 237

SISTEM OPERASI

Muhammad Wali, St

No part of this document may be copied, reproduced, printed, distributed, modified,


removed and amended in any form by any means without prior written
authorization.

i
DAFTAR ISI

KATA PENGANTAR ................... ERROR! BOOKMARK NOT DEFINED.


DAFTAR ISI ..............................................................................................II
1 TINJAU ULANG SISTEM KOMPUTER ..........................................1
1.1 PENDAHULUAN ..............................................................................2
1.2 ELEMEN DASAR KOMPUTER ...........................................................2
1.3 PROSESOR ......................................................................................3
1.4 REGISTER ......................................................................................3
1.4.1 Register Data.........................................................................3
1.4.2 Register Alamat .....................................................................4
1.4.3 Register untuk Alamat dan Buffer ...........................................4
1.4.4 Register untuk Eksekusi Instruksi............................................4
1.4.5 Register untuk Informasi Status ..............................................4
1.5 MEMORI ........................................................................................4
1.6 MODUL I/O ....................................................................................5
1.7 INTERKONEKSI ANTAR KOMPONEN .................................................7
1.8 EKSEKUSI INSTRUKSI......................................................................8
1.8.1 Mekanisme Eksekusi ..............................................................8
1.8.2 Mode Eksekusi Instruksi .........................................................8
2 PENGENALAN SISTEM OPERASI................................................ 11
2.1 FUNGSI DAN SASARAN SISTEM OPERASI........................................ 12
2.2 SISTEM OPERASI SEBAGAI PENGELOLA SUMBER DAYA .................. 12
2.3 SISTEM OPERASI SEBAGAI E XTENDED MACHINE/VIRTUAL MACHINE
13
2.4 SISTEM KOMPUTER DALAM BERAGAM SUDUT PANDANG ............... 14
2.5 EVOLUSI SISTEM OPERASI ............................................................ 15
3 PROSES DAN THREAD .................................................................. 21
3.1 PENGENALAN KONSEP PROSES ..................................................... 22
3.2 KONDISI / KEADAAN PROSES ........................................................ 23
3.3 DESKRIPSI PROSES ....................................................................... 28

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

Sebelum memulai mempelajari sistem operasi penting bagi kita untuk


mengetahui komponen-komponen yang menjadi bagian dari sebuah sistem
komputer disertai cara kerjanya. Hal ini disebabkan nantinya sistem operasi
bekerja untuk mengatur komponen-komponen tersebut dan
menyembunyikan kerumitannya bagi pengembang aplikasi dan para pengguna
akhir sistem operasi.

Tujuan

1. Mahasiswa mengetahui komponen-komponen yang membangun sebuah


sistem komputer.
2. Mahasiswa mengetahui bagaimana komponen-komponen itu bekerja dan
saling bekerja sama untuk memenuhi kebutuhan aplikasi dan pengguna
akhir.

Sistem Operasi 1
1.1 Pendahuluan

Sebuah sistem operasi memberikan segala layanan yang mengeksploitasi


sumberdaya yang dibutuhkan satu atau lebih proses kepada pengguna.
Sumberdaya tersebut berkaitan erat dengan sistem komputer. Hal ini
dikarenakan sistem operasi mengatur komponen-komponen pendukung
sistem komputer seperti memori, I/O modul ataupun I/O device dan
komponen pembentuk lainnya sehingga terselenggaranya ekseskusi proses
dan menyembunyikan kerumitan pengaturan perangkat keras dari pengguna
dan pembuat aplikasi. Hal tersebut menyebabkan perlunya memahami
bagaimana sistem komputer bekerja untuk mengetahui bagaimana sistem
operasi melaksanakan tugasnya.

1.2 Elemen Dasar Komputer


Pada level atas, sebuah komputer terdiri dari empat komponen. Komponen-
komponen ini saling berinteraksi untuk menghasilkan fungsi dari tujuan sistem
komputer yaitu eksekusi program atau komputasi. Keempat komponen atau
elemen struktur utama yaitu:
1. Prosesor
Prosesor berfungsi mengendalikan operasi komputer dan melakukan
fungsi pemrosesan data. Prosesor terdiri dari:
a. Aritmetic Logic Unit (ALU), bagian untuk komputasi yang
berhubungan dengan aritmatika dan logika
b. Control Unit (CU), sebagai pengendali utama operasi yang
dilaksanakan.
Register, berfungsi sebagai memori yang sangat cepat yang biasanya
digunakan sebagai tempat operan-operan suatu operasi yang akan
dilaksanakan. Register membantu pelaksanan operasi yang dilakukan oleh
prosesor.
2. Memori Utama
Memori berfungsi menyimpan data dan program. Memori utama
biasanya volatile, yaitu tidak dapat mempertahankan data dan
program yang disimpan begitu sumber daya energi listrik dihentikan
3. Modul I/O
Modul I/O atau perangkat masukan/keluaran berfungsi memindahkan
data antara komputer dan lingkungan eksternalnya. Lingkungan
eksternal dapat diantarmuka/interface oleh beragam peralatan
eksternal seperti: media penyimpan sekunder, peralatan komunikasi
dan sebagainya.

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.

1.4.1 Register Data


Register dapat diberi nilai untuk beragam keperluan pemakai. Register data
terdiri dari dua macam, yaitu: General purpose register dan Special purpose
register.

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.4.3 Register untuk Alamat dan Buffer


Register untuk Alamat dan Buffer terdiri dari:
- MAR (Memory Address Register), digunakan untuk mencatat alamat
memori yang akan diakses (read/write).
- MBR (Memory Buffer Register), digunakan untuk menapung data yang
akan dituliskan ke memori yang alamatnya ditunjuk oleh MAR.
I/O AR (I/O Address Register), digunakan untuk menampung data yang akan
dituliskan ke port yang alamatnya ditunjuk oleh I/O AR

1.4.4 Register untuk Eksekusi Instruksi


Register untuk Eksekusi Instruksi terdiri dari:
- PC (Program Counter), mencatat alamat memori dimana instruksi
yang terdapat di dalamnya akan dieksekusi.
- IR (instruction Register), menampung instruksi yang akan
dilaksanakan.

1.4.5 Register untuk Informasi Status


Register ini dapat berupa satu register atau kumpulan register. Register atau
kumpulan register ini disebut PSW (Program Status Word). PSW biasanya
berisi kode-kode kondisi pemroses ditambah informasi-informasi status
lainnya

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

Setiap kali prosesor melakukan eksekusi, pemroses harus membaca instruksi


dari memori utama. Agar eksekusi dapat dilakukan secara cepat maka harus
diusahakan instruksi tersedia di memori pada hirarki berkecepatan akses lebih
tinggi. Kecepatan eksekusi ini akan meningkatkan kinerja sistem. Untuk itu
terdapat konsep memori dua level, yaitu ditampung dulu sementara di
memori pada hirarki lebih tinggi.
Konsep ini diimplementasikan antara lain berupa:
- Chace memory, memori berkapasitas terbatas, berkecepatan tinggi
yang lebih mahal daripada memori utama. Chace memori ada di
antara memori utama dan register pemroses, berfungsi agar
pemroses tidak langsung mengacu memori utama agar kinerja dapat
ditingkatkan.
Buffering, bagian memori utama yang dialokasikan untuk menampung data
yang akan ditransfer dari atau ke penyimpan sekunder. Buffering dapat
mengurangi frekuensi pengaksesan ke perangkat penyimpan sekunder
sehingga meningkatkan kinerja sistem

1.6 Modul I/O


Klasifikasi perangkat I/O berdasarkan aliran datanya dapat dibagi dua, antara
lain:
1. Block Oriented Device, peralatan ini menyimpan informasi sebagai
blok-blok berukuran tetap. Ciri utama peralatan ini adalah
dimungkinkan membaca atau menulis blok-blok secara indenpenden
dengan cara direct access. Contoh peralatan antara lain: disk, optical
disk, tape dan sebagainya.
2. Character Stream Oriented Device, peralatan ini mengantarkan atau
menerima aliran karakter tanpa peduli dengan suatu struktur blok.
Contoh peralatan ini antara lain: terminal, line printer, interface
jaringan, dan lain-lain.

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

Setelah mengirim informasi ke DMA, prosesor dapat melakukan kerja


lain. Prosesor mendelegasikan operasi I/O ke DMA. DMA mentransfer
seluruh data yang diminta secara langsung dari memori tanpa melewati
prosesor. Ketika transfer data selesai, DMA mengirim sinyal interupsi ke
prosesor. Prosesor hanya dilibatkan pada awal dan akhir tranfer data
perangkat I/O.
Operasi transfer anatara perangkat dan memori utama dilakukan sepenuhnya
oleh DMA. DMA yang menangani akses disk, dilakukan oleh DMA controller
yang lepas dari prosesor dan hanya melakukan interupsi bila operasi telah
diselesaikan.

1.7 Interkoneksi antar Komponen


Interkoneksi antar komponen disebut bus. Bus terdiri dari 3 macam, yaitu:
- Address Bus, Bus yag mengirim alamat lokasi memori atau port
yang ingin ditulis/dibaca. Jumlah lokasi memori yang dapat dialamati
CPU ditentukan oleh jumlah jalur alamat.Jika CPU memilki N jalur
alamat maka dapat secara langsung mengalamati 2N lokasi memori.
- Data Bus, Bus data ini Bidirectional berarti dapat baca dan kirim
dari/ke memori atau port. Bus data berhubungan dengan transfer ata
pembacaan data dari/ke memori dengan peralatan-peralatan.
- Control Bus, Bus yang digunakan CPU dengan dikirimi sinyal untuk
memrintahkan memori atau port I/O.

Sistem Operasi 7
1.8 Eksekusi Instruksi

1.8.1 Mekanisme Eksekusi


Tahap Pemrosesan instruksi berisi 2 tahap yaitu:
a. Fetch, Prosesor membaca instruksi dari memori
b. Execute, Prosesor mengeksekusi instruksi
Eksekusi program berisi pengulangan proses fetch dan execute. Eksekusi
instruksi (Tahap Execute) dapat melibatkan beberapa operasi lebih dasar dan
bergantung pada sifat instruksi itu. Proses satu instruksi disebut satu siklus
instruksi (instruction cycle). Siklus Eksekusi instruksi dpat dilihat pada
gambar 1-1

START Fetch Eksekusi HALT


Insruksi Instruksi

Fetch Cycle Execute Cycle

Gambar 1-1 Siklus Eksekusi instruksi

1.8.2 Mode Eksekusi Instruksi


Prosesor mempunyai beragam mode eksekusi, biasanya dikaitkan dengan
program Sistem Operasi dan program pemakai. Instruksi-instruksi tertentu
hanya dapat dieksekusi dalam suatu mode yang berkewenangan lebih tinggi.
Mode dengan kewenangan rendah biasa disebut user mode karena program
pemakai biasa dieksekusi dalam mode ini.
Mode dengan kewenangan tinggi disebut system mode, control mode,
supervisor mode atau kernel mode, karena biasanya rutin-rutin sistem atau
kendali atau kernel dieksekusi dengan mode ini

8 Sistem Operasi
Rangkuman

Sebuah sistem operasi memberikan segala layanan yang


mengeksploitasi sumberdaya yang dibutuhkan satu atau lebih proses kepada
pengguna. Sumberdaya tersebut berkaitan erat dengan sistem komputer. Hal
ini dikarenakan sistem operasi mengatur komponen-komponen pendukung
sistem komputer seperti memori, I/O modul ataupun I/O device dan
komponen pembentuk lainnya sehingga terselenggaranya ekseskusi proses
dan menyembunyikan kerumitan pengaturan perangkat keras dari pengguna
dan pembuat aplikasi.
sebuah komputer terdiri dari empat komponen. Komponen-
komponen ini saling berinteraksi untuk menghasilkan fungsi dari tujuan sistem
komputer yaitu eksekusi program atau komputasi. Keempat komponen atau
elemen struktur utama yaitu prosesor, memori, modul I/O dan interkoneksi
antar computer.
Prosesor berfungsi mengendalikan operasi komputer dan melakukan
pemrosesan data. Di dalam prosesor terdapat sekumpulan register yang
berfungsi sebagai memori yang sangat cepat dan kecil kapasitasnya. Memori
berfungsi untuk menyimpan data dan program. Maka dapat disimpulkan
bahwa computer tidak dapat berdiri sendiri tetapi terdapat suatu bagian yang
saling bergantung dan saling bekerja sama sehingga komputer akan berjalan
dengan sebenarnya

Sistem Operasi 9
Soal Latihan

1. Sebutkan dan jelaskan bagian dari computer


2. Fungsi dari memori dan prosesor
3. Apa perbedaan dari memori dan register
4. Jelaskan Klasifikasi perangkat I/O berdasarkan aliran datanya
5. Sebutkan dan jelaskan tiga teknik cara berhubungan perangkat I/O
6. Fungsi dari DMA
7. Gambarkan bagian utama dari computer yang terdiri dari empat
komponen yang sangat penting bagi computer
8. Sebutkan dan jelaskan tahap pemrosesan instruksi

10 Sistem Operasi
2 Pengenalan Sistem Operasi

Overview

Mempelajari sistem operasi dimulai dengan mengenali komponen-komponen


yang pada umumnya terdapat dalam sebuah sistem operasi dan mengenal
tugas atau fungsi dari masing-masing komponen tersebut.

Tujuan

1. Mahasiswa mengetahui komponen-komponen yang membangun


sebuah sistem operasi.
2. Mahasiswa mengetahui bagaimana komponen-komponen itu bekerja
dan saling bekerja sama untuk memenuhi kebutuhan aplikasi dan
pengguna akhir.

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.

Menurut Stalling, sistem operasi mempunyai tiga sasaran, antara lain:


1. Kenyamanan, yaitu sistem operasi harus membuat komputer menjadi
lebih nyaman saat digunakan pemakai.
2. Efisiensi, yaitu sistem operasi mejadikan sumber daya sistem
komputer dapat digunakan secara efisien.
3. Mampu berevolusi, yaitu sistem operasi harus dibangun sehingga
memungkinkan dan memudahkan pengembangan, pengujian dan
pengajuan fungsi-fungsi sistem yang baru tanpa pada waktu yang sama
mengganggu layanan yang dijalankan sistem komputer yang
menjalankan sistem operasi itu.

2.2 Sistem Operasi sebagai Pengelola Sumber Daya


Sistem komputer adalah sekumpulan sumber daya untuk memindah,
menyimpan, dan memroses data, serta untuk mengendalikan fungsi-fungsi
ini. Sistem operasi bertanggung-jawab mengelola sumber daya-sumber
daya ini.
Sumber daya pada sistem komputer antara lain:
1. Perangkat keras
- prosesor
- penyimpan primer
- penyimpan sekunder
- peralatan masukan/keluaran
2. Perangkat lunak
- data
- proses
3. Peralatan komunikasi dan jaringan

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

2.3 Sistem Operasi sebagai Extended Machine/Virtual


Machine
Sistem operasi sebagai extended machine/virtual machine berfungsi sebagai
berikut:
- Memberi pemakai suatu abstraksi mesin tingkat tinggi sederhana dan
menyembunyikan kerumitan perangkat keras. Sistem operasi
menyediakan system call (API = Application programming
interface) yang merupakan abstraksi tingkat tinggi mengenai mesin
untuk pemrograman. Berfungsi menghindarkan kompleksitas
pemrograman dengan memberikan sekumpulan instruksi yang mudah
dan nyaman yaitu system calls.
- Basis untuk program lain.
Program aplikasi dijalankan di atas sistem operasi. Program-program
tersebut dalam melakukan tugasnya mengendalikan dan
Sistem Operasi 13
memanfaatkan sumber daya sistem komputer adalah dengan
meminta layanan sistem operasi untuk mengendalikan sumber daya
untuk aplikasi itu agar pemanfaatan sumber daya komputer benar
dan efisien.
Stalling merinci layanan-layanan yang harus disediakan sistem operasi antara
lain:
1. Pembuatan program
2. Eksekusi program
3. Pengaksesan perangkat masukan/keluaran
4. Pengaksesan terkendali terhadap berkas
5. Pengaksesan sistem
6. Deteksi dan memberi tanggapan terhadap kesalahan
7. Akunting

2.4 Sistem Komputer dalam Beragam Sudut Pandang


Pandangan ke Pemakai sistem komputer dapat dikelompokkan menjadi tiga,
yaitu:
- Pemakai awam (end user) dan administrator sistem
- Pemrogram.
- Perancang Sistem Operasi
Pemakai awam menggunakan suatu aplikasi di sistem komputer, biasanya tidak
berkepentingan dengan arsitektur komputer. Pemakai memandang sistem
komputer dalam bentuk aplikasi yang dihadapinya. Aplikasi tersebut
dikembangkan oleh pemrogram aplikasi.Administrator bertugas agar sistem
berfungsi secara benar dan optimal.
Pemrogram aplikasi yang mengembangkan aplikasi dengan menggunakan
kumpulan instruksi mesin secara langsung, maka pemrogram bertanggung
jawab sepenuhnya mengendalikan perangkat keras komputer. Tugas ini sangat
amat kompleks. Untuk mempermudah pemrogram, sekumpulan fasilitas-
fasilitas disediakan sistem operasi. Pemrogram menggunakan fasilitas-fasilitas
ini dalam mengembangkan aplikasi, mengelola berkas, dan mengendalikan
masukan/keluaran, tak perlu menulis atau membuatnya sendiri untuk aplikasi-
aplikasi yang dibuatnya.

14 Sistem Operasi
Gambar 2-2 Lapisan-lapisan dari sebuah computer

Perancang sistem operasi harus membuat sistem operasi yang dapat


mempermudah dan menyamankan terutama untuk pemrogram aplikasi
membuat aplikasi-aplikasi.
Sistem operasi menyembunyikan rincian-rincian pengoperasian perangkat
keras dari pemrogram dan menyediakan interface yang nyaman untuk
menggunakan perangkat tersebut. Sistem operasi bertindak sebagai mediator,
mempermudah pemrogram serta program aplikasi mengakses serta
menggunakan fasilitas-fasilitas dan layanan-layanan sistem komputer

2.5 Evolusi Sistem Operasi


Sistem Operasi telah berevolusi sejak pertama kali komputer diciptakan.
Perkembangan sistem komputer melibatkan perkembangan sistem hardware
dan software. Perkembangan sistem operasi dapat dijabarkan sebagai berikut:
- Generasi Pertama (1945 – 1955)
Awal dari pengembangan sistem komputasi elektronik, menggantikan
ide-ide mesin-mesin komputaasi mekanis.
- Generasi Ke-dua (1955 – 1965)
Terdapat Batch System, Job dikumpulkan dalam satu rangkaian
kemudian diekskusi secara berurutan

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

- Generasi Ke-tiga (1965 – 1980)


Terdapat :
– Sistem multiprogramming, Saat satu job menunggu operasi
input/output selesai job lain dapat menggunakan prosesor
– Spooling, membuat periperal dapat diakses secara simultan,
yaitu dengan cara menyediakan beberapa partisi memori. Saat
terdapat permintaan layanan periperal, langsung diterima dan
data disimpan lebih dulu di memori yang disediakan berupa
antrian, kemudian dijadwalkan agar secara nyata dilayani oleh
periperal
– Time Sharing, varian dari sistem multiprogramming, di mana
tiap pemakai mempunyai satu terminal on-line dengan prosesor
hanya memberi layanan pada pemakai yang aktif.

Pada sistem uniprogamming prosesor harus menunggu dan berproses setelah


instruksi I/O berproses sampai selesai sedangkan pada sistem multi
programming Selama satu job membutuhkan untuk menunggu proses I/O,
prosesor dapat memilih (switch) job lain untuk berproses walaupun proses
sebelumnya belum selesai

(a) uniprogramming

16 Sistem Operasi
(b) multiprogramming dengan dua proses

(c) multiprogramming dengan tiga proses

Gambar 2-3 Perbandingan eksekusi perintah antara sistem uniprogramming


dengan multiprogramming

Sistem Operasi 17
Gambar 2-4 Perbandingan utilisasi sumber daya komputer antara sistem
uniprogramming dan multiprogramming

Contoh perbandingan antar-proses dan utilisasi sumber daya komputer


dengan beberapa job dapat dilihat pada tabel di bawah ini:
JOB1 JOB2 JOB3
Type of job Heavy compute Heavy I/O Heavy I/O
Duration 5 min. 15 min. 10 min.
Memory required 50K 100 K 80 K
Need disk? No No Yes
Need terminal No Yes No
Need printer? No No Yes

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.

- Generasi Ke-empat (1980 – Sekarang)


Terdapat :
– Network O/S, Sistem operasi diperuntukkan jaringan
komputer dimana pemakai menyadari keberadaan
komputer yang terhubung.
Distributed O/S, Sistem operasi untuk jaringan komputer, dengan user tak
perlu menyadari keberadaan komputer-komputer yang terhubung, dimana
alokasi kerja sudah secara otomatis dilaksanakan oleh sistem operasi.

Sistem Operasi 19
Rangkuman

Sistem operasi adalah program yang mengendalikan eksekusi program aplikasi


dan bertindak sebagai antarmuka antara pemakai dan perangkat keras
komputer. Sistem operasi harus mampu berevolusi, yaitu sistem operasi
harus dibangun sehingga memungkinkan dan memudahkan pengembangan,
pengujian dan pengajuan fungsi-fungsi sistem yang baru tanpa pada waktu yang
sama mengganggu layanan yang dijalankan sistem komputer yang menjalankan
sistem operasi itu

Soal Latihan

1. Sebutkan layanan system operasi yang harus ada menurut Stalling


2. Pandangan ke Pemakai sistem komputer dapat dikelompokkan
menjadi tiga. Sebutkan
3. Sebutkan sumber daya pada sistem komputer dan jelaskan
4. Jelaskan fungsi dari Sistem operasi sebagai extended machine/virtual
machine

20 Sistem Operasi
3 Proses dan Thread

Overview

Salah satu fitur penting sistem operasi modern adalah kemampuan


multitasking dan multiprogramming. Kedua fitur ini dimungkinkan melalui
mekanisme penanganan banyak proses dan thread yang dimiliki oleh sistem
operasi. Pada bab ini akan dibahas mengenai dasar-dasar dari proses, thread,
dan bagaimana sistem operasi mengelola mereka untuk mewujudkan fitur
multitasking dan multi programming

Tujuan

1. Mahasiswa mengetahui komponen-komponen yang membangun


sebuah sistem komputer.
2. Mahasiswa mengetahui bagaimana komponen-komponen itu bekerja
dan saling bekerja sama untuk memenuhi kebutuhan aplikasi dan
pengguna akhir.

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.

Informasi-informasi di atas setidaknya cukup lengkap bagi sistem operasi


untuk menginterupsi/menunda pengeksekusian sebuah proses untuk
mengeksekusi proses lain kemudian kembali lagi mengeksekusi proses
pertama seakan-akan interupsi tidak pernah terjadi

3.2 Kondisi / Keadaan Proses


Dari sudut pandang prosesor eksekusi sebuah proses berarti mengeksekusi
instruksi-instruksi dari proses tersebut berdasarkan urutan tertentu. Urutan
eksekusi ini dikendalikan lewat perubahan nilai pada register program
counter yang berupa penunjuk ke suatu lokasi yang berisi instruksi dari
proses.
Isi dari program counter ini pada suatu saat bisa berubah menjadi penunjuk ke
instruksi yang dimiliki oleh proses lain. Hal ini terjadi ketika sebuah program
kecil bernama dispatcher yang dieksekusi secara periodik oleh prosesor.
Sebuah daftar yang berisi urutan instruksi yang dieksekusi untuk suatu proses
yang dibuat untuk mengetahui kelakuan dari sebuah proses individual dikenal
sebagai trace. Gambar-gambar 3-1 dan 3-2 dapat menjelaskan posisi proses
dan dispatcher serta trace dari beberapa proses ketika dijalankan.
Untuk mengatur eksekusi dari proses termasuk mengatur pergantian eksekusi
antar proses dan mengalokasikan sumber daya komputer yang dibutuhkan
proses yang akan dieksekusi sistem operasi perlu mengetahui kondisi yang
sedang dialami sebuah proses dan menentukan tindakan apa yang harus
diambil terhadap proses tersebut pada kondisi tertentu.
Ada beberapa model dari kondisi-kondisi yang dialami sebuah proses dimulai
dari model yang sederhana yang terdiri dari hanya dua kondisi hingga
berkembang menjadi model yang memiliki lebih dari lima kondisi.

Model Dua Kondisi


Model yang pertama dan paling sederhana adalah model 2 kondisi (2 state)
yang terdiri dari kondisi running dan not running seperti dijelaskan oleh
gambar 3-3. Pada saat pertama kali proses dibuat proses tersebut akan
memasuki kondisi not running dan akan memasuki sebuah antrian untuk
proses-proses yang menunggu untuk dieksekusi oleh prosesor. Proses yang
sedang dieksekusi berada dalam kondisi running dan pada suatu saat akan
berhenti dieksekusi apakah karena telah selesai atau gilirannya telah habis dan
prosesor akan mengeksekusi dispatcher yang akan menaruh proses barusan

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.

Model dengan Suspended State


Model 2 kondisi dan 5 kondisi sebelumnya berlaku pada sistem operasi yang
tidak memerlukan swapping. Swapping berlaku pada sistem operasi yang

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.

Kondisi Apapun  Exit: biasanya proses diterminasi dalam kondisi berjalan


karena telah selesai atau ada kesalahan tertentu namun pada beberapa sistem
operasi proses dapat diterminasi oleh proses yang menjadi induknya atau
ketika proses induknya diterminasi. Jika hal tersebut diperbolehkan maka
semua kondisi dapat segera berubah menjadi kondis exit.

3.3 Deskripsi Proses


Seperti yang telah disebutkan sebelumnya sistem operasi bertugas untuk
mengelola proses-proses dan sumber daya komputer yang digunakan proses-
proses tersebut. Untuk melaksanakan tugas tersebut sistem operasi
memerlukan beberapa informasi mengenai proses-proses yang ada dan
sumber daya komputer yang ada
Struktur Kendali Sistem Operasi
Sistem operasi membuat dan memelihara beberapa tabel berisi informasi
mengenai sumber daya komputer dan proses yang ada. Tabel-tabel tersebut
antara lain:
1. Tabel memori
Tabel ini digunakan untuk mengelola memori utama dan memori
virtual. Tabel ini berisi, antara lain:
a. Alokasi memori utama untuk proses
b. Alokasi memori virtual untuk proses
c. Atribut-atribut yang digunakan untuk keperluan proteksi
blok-blok memori yang digunakan pada memori utama
d. Informasi apa saja yang digunakan untuk mengelola memori
virtual.
2. Tabel I/O
Tabel ini digunakan untuk mengelola peralatan-peralatan dan saluran-
saluran I/O. Ketika terjadi suatu operasi yang berhubungan dengan

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

Struktur Kendali Proses


Untuk dapat memanajemen proses sistem operasi minimal harus mengetahui
letak dan kondisi dari proses-proses yang ada.

3.3.1 Lokasi Proses


Secara umum sebuah proses terdiri dari program atau sekumpulan program
yang akan dieksekusi disertai data jika diperlukan. Selain itu terdapat juga
struktur data stack yang digunakan untuk mengatur pemanggilan prosedur
dan pertukaran parameter antar prosedur dan beberapa atribut yang disebut
sebagai process control block. Keseluruhan dari program, data, stack, dan
process control block ini dapat disebut sebagai process image.
Lokasi dari process image ini bervariasi bergantung kepada kebijakan
penggunaan memori yang digunakan oleh sistem operasi. Sederhananya
process image ini disimpan dalam blok ruang memori yang kontinu di memori
utama ataupun di memori virtual.

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.

3.4 Kendali Proses


Mode Eksekusi
Kebanyakan prosesor yang dibuat saat ini mendukung dua mode eksekusi,
yaitu mode user dan mode kernel atau mode sistem. Pembedaan mode ini
dilakukan untuk membatasi hak akses proses-proses milik user agar tidak
mengganggu jalannya seluruh sistem komputer. Beberapa hal hanya boleh
dilakukan oleh sistem operasi pada mode kernel seperti: menjalankan
instruksi-instruksi I/O primitif, menjalankan instruksi-instruksi yang
berhubungan dengan manajemen memori. Sebagai tambahan ada beberapa
bagian dari memori yang hanya dapat diakses oleh proses yang berjalan pada
mode khusus dengan hak istimewa.
Bagaimana sistem operasi dapat mengetahui bahwa suatu bagian dari proses
harus dieksekusi dalam mode tertentu? Biasanya hal ini dilakukan dengan
menambahkan informasi khusus dalam bagiaan program yang disebut sebagai
program status word yang menentukan mode eksekusi dari program.

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.

3.4.1 Kapan Mengganti Eksekusi Proses


Ada beberapa hal yang dapat menjadi pemicu terjadinya pergantian eksekusi
proses di prosesor, di antaranya:
1. Interrupt: disebabkan oleh suatu kejadian yg berada di luar lingkup
eksekusi instruksi dan digunakan untuk memberikan reaksi terhadap
kejadian luar secara asinkron.
2. Trap: disebabkan oleh kejadian yang berhubungan dengan eksekusi
intruksi dan digunakan untuk menangani eror atau eksepsi tertentu.
3. Supervisor call: disebabkan oleh permintaan suatu pihak secara
eksplisit kepada sistem operasi dan digunakan untuk memanggil
fungsi yang disediakan oleh sistem operasi.

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.

3.4.2 Pergantian Mode


Interrupt stage merupakan bagian dari siklus eksekusi instruksi. Pada tahap
tersebut prosesor memeriksa ada tidaknya interrupt yang diindikasikan melalui
adanya sinyal interupsi. Jika tidak ada sinyal interupsi maka prosesor akan
mengambil instruksi berikutnya namun jika terdapat sinyal interupsi maka
prosesor akan melakukan hal sebagai berikut:
1. Prosesor mengubah nilai program counter menunjuk ke alamat awal
dari program yang menangani interrupt (interrupt handler)
2. Prosesor mengubah dari mode user menjadi mode kernel sehingga
program yang menangani interrupt dapat mengeksekusi instruksi yang
membutuhkan hak khusus.

3.4.3 Perubahan Kondisi Proses


Perubahan state atau kondisi proses berbeda dengan perubahan mode
eksekusi proses. Sebuah perubahan mode dapat terjadi tanpa perubahan
kondisi proses yang sedang berada dalam keadaan running sedangkan ketika
32 Sistem Operasi
terjadi perubahan kondisi proses maka sistem operasi harus melakukan
perubahan pada lingkungannya dengan tahap-tahap sebagai berikut:
1. Simpan konteks dari prosesor termasuk program counter dan
register lainnya
2. Perbarui PCB dari proses yang dalam kondisi running.
3. Pindahkan PCB proses ke antrian yang tepat (Ready, Blocked on
Event, atau Ready/Suspend).
4. Pilih proses lain untuk eksekusi dan perbarui PCB proses yang akan
dieksekusi termasuk kondisinya menjadi running.
5. Perbarui struktur data yang digunakan untuk manajemen memori
6. Kembalikan konteks prosesor ke bagian terakhir ketika proses
dipindahkan dari kondisi running dengan memasukkan nilai-nilai
program counter dan register lainnya

Proses dan Thread


Ada dua hal mengenai proses yang menjadi fokus sistem, yaitu:
3.1.1 Kepemilikan sumber daya (resource ownership)
Masing-masing proses memiliki sumber daya (memory, saluran I/O,
berkas, dll) yang dilindungi oleh sistem operasi dari interferensi yang
tidak diinginkan oleh proses lain.
3.1.2 Penjadwalan/eksekusi
Banyak proses dapat dieksekusi secara bergantian sehingga proses
memiliki atribut kondisi eksekusi dan prioritas eksekusi yang menentukan
penjadwalan eksekusi proses-proses tersebut.
Dua karekteristik di atas ternyata bersifat independen sehingga dapat
ditangani secara terpisah oleh sistem operasi. Penanganan pergantian eksekusi
proses oleh sistem operasi berkaitan melibatkan satuan terkecil bagian yang
dapat dipergantikan yang disebut thread atau lightweight process sedangkan
penanganan kepemilikan sumber daya berkaitan dengan proses.

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

Gambar 3-1 Thread

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

3.4.4 User Level Thread


User-level thread adalah konsep sedemikian sehingga kernel tidak menyadari
adanya thread karena manajemen thread dilakukan di tingkat aplikasi dengan
menggunakan pustaka thread yang berisi rutin untuk memanajemen thread

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.

3.4.5 Kernel Level Thread


Kernel-level thread merupakan konsep sedemikian sehingga manajemen thread
dilakukan oleh kernel dan diakses aplikasi melalui API (Application Programming
Interface).

Kentungan penggunaan kernel-level thread:


6. Kernel dapat menjadwalkan banyak thread dari satu proses
pada banyak processor dan
7. blocking satu thread dalam proses tidak menghalangi thread
dari proses yang sama dijadwalkan untuk suatu processor
Kekurangan dari kernel-level thread adalah alih kendali dari satu thread ke
thread yang lain membutuhkan peralihan ke mode kernel yang menyebabkan
overhead waktu yang cukup siginifikan
Konsep lainnya adalah menggabungkan kedua konsep di atas sedemikian
sehingga user-level thread dari suatu aplikasi dipetakan pada beberapa kernel-
level thread. Jumlah kernel-level thread yang digunakan dapat disesuaikan sesuai
kebutuhan oleh programmer.

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

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.
Dari sudut pandang prosesor eksekusi sebuah proses berarti
mengeksekusi instruksi-instruksi dari proses tersebut berdasarkan urutan
tertentu. Urutan eksekusi ini dikendalikan lewat perubahan nilai pada register
program counter yang berupa penunjuk ke suatu lokasi yang berisi instruksi
dari proses.
Untuk dapat memanajemen proses sistem operasi minimal harus
mengetahui letak dan kondisi dari proses-proses yang ada.

Soal Latihan

1. Apa yang dimaksud thread dan multithread, multithreading


2. Sebutkan dan jelaskan 2 bagian terpenting dari sebuah proses
3. Kapan akan dilakukan penggantian proses
4. Buatlah program sederhana untuk membuat thread baik satu thread
ataupun multithreading
5. Sebutkan contoh nyata dari penggunaan thead di dunia nyata.

40 Sistem Operasi
4 Konkurensi

Overview

Sebelum memulai mempelajari sistem operasi penting bagi kita untuk


mengetahui komponen-komponen yang menjadi bagian dari sebuah sistem
komputer disertai cara kerjanya. Hal ini disebabkan nantinya sistem operasi
bekerja untuk mengatur komponen-komponen tersebut dan
menyembunyikan kerumitannya bagi pengembang aplikasi dan para pengguna
akhir sistem operasi.

Tujuan

1. Mahasiswa mengetahui komponen-komponen yang membangun sebuah


sistem komputer
2. Mahasiswa mengetahui bagaimana komponen-komponen itu bekerja dan
saling bekerja sama untuk memenuhi kebutuhan aplikasi dan pengguna
akhir

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.

4.2 Prinsip-prinsip Konkurensi


Pada komputer yang menjalankan multiprogramming proses-proses dijalankan
bergantian dengan cepat oleh prosesor sehinga tampak seolah-olah berjalan
bergantian. Ketika hal ini dilakukan timbul beberapa masalah, yaitu:
1. Berbagi pakai sumber daya memiliki resiko tinggi.
Contohnya ketika dua buah proses mengakses variabel yang sama
dan melakukan operasi penulisan dan pembacaan maka urutan
eksekusi pembacaan dan penulisan masing-masing proses menjadi hal
yang perlu diperhatikan dan bersifat kritikal.
2. Sulit bagi sistem operasi untuk memanajemen alokasi
sumber daya komputer secara optimal. Contohnya jika sebuah
proses mengakses suatu file atau I/O kemudian ditunda eksekusinya
maka proses lain yang hendak mengakses file atau I/O tersebut akan
ditolak hingga proses pertama selesai mengakses file atau I/O
tersebut.
3. Sulit untuk melacak kesalahan pada program. Hal ini
dikarenakan hasil yang sama tidak determinisitik dan sulit diproduksi
ulang.

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.

Pada jenis interaksi pertama proses-proses yang berjalan berbarengan


mengalami konflik ketika mencoba mengakses sumber daya yang sama pada
waktu yang bersamaan. Jika salah satu proses telah mengakses sumber daya
tersebut maka proses lain harus menunggu hingga proses tersebut selesai
menggunakan sumber daya tersebut sebelum dapat menggunakannya. Hal ini
menyebabkan eksekusi proses menjadi tertunda dan bahkan pada beberapa
kasus proses lain tidak pernah mendapat kesempatan untuk mengakses
sumber daya tersebut dan akhirnya tidak pernah selesai dengan sukses.
Untuk mengendalikan proses-proses yang saling berkompetisi setidaknya ada
tiga masalah yang dihadapi, yaitu:
1. Mutual exclusion
2. Deadlock
3. Starvation

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

4.2.1 Persayaratan untuk mutual exclusion


Untuk menerapkan mutual exclusion sebuah sistem harus memenuhi
kebutuhan-kebutuhan sebagai berikut:
1. Mutual exclusion harus dapat dipaksakan
2. Proses yang berhenti sementara pada bagian non critical harus dapat
berhenti tanpa mengganggu proses yang lain
3. Tidak boleh terjadi sebuah proses tertahan dari memasuki critical
section dalam waktu yang tidak pasti: tidak boleh ada deadlock dan
starvation
4. Ketika tidak ada proses yang memasuki critical section pada suatu
critical resource maka proses lain yang hendak memasuki cirtical
sectionnya harus diizinkan mengakses critical resource tersebut
tanpa waktu tunda
5. Tidak asumsi yang dibuat mengenai kecepatan proses dan jumlah
prosesor

Sebuah proses berada dalam critical section untuk waktu yang terbatas.

4.2.2 Dukungan Perangkat Keras untuk Mewujudkan Mutual


Exclusion

4.2.3 Interrupt Disabling


Apabila sebuah proses yang memasuki critical section dapat diinterupsi
eksekusinya maka mutual exclusion menjadi tidak terjamin penerapannya.
Kemampuan untuk mencegah suatu proses diinterupsi di tengah critical section

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 */;
}

Sebelum proses memasuki critical section proses memanggil rutin primitif


untuk mematikan fasilitas interupsi dan proses memanggil rutin untuk
mengembalikan fungsi interupsi. Dikarenakan critical section tidak dapat
diinterupsi maka mutual exclusion menjadi terjamin penerapannya. Cara ini
memiliki biaya yang mahal dikarenakan akan membatasi fleksibilitas prosesor
dalam mengubah proses yang dieksekusi. Selain itu solusi ini tidak bekerja
pada lingkungan multiprosesor di mana beberapa proses dapat dijalankan
bersamaan masing-masing dengan prosesor yang berbeda.

4.2.4 Instruksi-instruksi Mesin Khusus


Interrupt disabling tidak dapat digunakan pada mesin dengan banyak prosesor
dikarenakan tidak ada mekanisme untuk melakukan interupsi antar prosesor.
Pada lingkungan seperti ini yang mengkaitkan prosesor satu dan lainnya adalah
mereka sama-sama mengakses satu main memory yang sama dan pada
tingkatan perangkat keras akses ke lokasi tertentu main memory berarti
menghalangi prosesor lain mengakses lokasi yang sama. Dengan menggunakan
kondisi ini para disainer prosesor mencoba untuk mengaplikasikan mutual
exclusion melalui instruksi mesin yang dalam satu putaran melakukan dua
pekerjaan yang bersifat atomik seperti reading dan writing, atau reading dan
testing. Dua bentuk instruksi yang diimplementasi antara lain:
1. Instruksi test and set
2. Instruksi exchange

4.2.5 Instruksi Test and Set


Instruksi test and set dapat didefinisikan seperti di bawah ini:
boolean testset (int i)

46 Sistem Operasi
{
if(i==0)
{
i=1;
return true;
}
else
{
return false;
}
}

Instruksi ini memeriksa apakah parameter i bernilai. Jika i bernilai 0 maka


instruksi ini akan mengganti nilainya menjadi 1 dan mengembalikan nilai
boolean true. Sebaliknya jika bernilai 1 maka instruksi ini akan mengembalikan
nilai false.
Tabel di bawah memperlihatkan bagaimana mutual exclusion dapat
diimplementasi melalui mekanisme instruksi ini. Prosedur parBegin(P1,P2, …,
Pn) sendiri bekerja dengan cara sebagai berikut: tahan (suspend) ekseskusi
dari program utama (main program) kemudian siapkan/inisiasi eksekusi secara
konkuren prosedur P1, P2, …, Pn. Jika prosedur-prosedur tersebut telah
selesai lanjutkan kembali program utama. Sebuah variabel yang dibagi pakai
bernama bolt diinisialisasi bernilai 0. Proses yang dapat memasuki critical
section hanyalah proses yang mendapati bahwa nilai bolt adalah 0. Proses
lainnya akan tertahan dari memasuki critical section dan mengalami bussy
waiting atau spin waiting. Bussy waiting adalah suatu teknik sedemikian sehingga
proses tidak dapat memasuki critical section dan terus-menerus memeriksa
kondisi tertentu yang membolehkan proses tersebut memasuki critical section.
Setelah proses keluar dari critical section proses tersebut akan mengubah nilai
bolt kembali menjadi 0.

/*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

4.2.6 Instruksi Exchange


Instruksi exchange dapat didefinisikan seperti di bawah ini:
void exchange (int register, int memory)
{
int temp;
temp=memory;
memory=register;
register=temp;
}

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.

4.2.7 Sifat-sifat Pendekatan Instruksi Mesin


Keuntungannya:
1. dapat digunakan pada lingkungan satu (uni) atau banyak (multi)
prosesor yang berbagi pakai main memory
2. Sederhana dan mudah dipastikan
3. Dapat mendukung beberapa critical section dengan menggunakan
variabel tersendiri untuk setiap critical section

48 Sistem Operasi
Kerugiannya:
1. Terdapat busy waiting yang menghabiskan waktu prosesor
2. Memungkinkan terjadinya starvation.
3. Memungkinkan terjadinya deadlock

4.3 Fasilitas Perangkat Lunak untuk Mewujudkan Mutual


Exclusion
Melihat kekurangan dari pendekatan instruksi mesin pendekatan alternatif
dirasa perlu. Sistem operasi dan bahasa pemrograman dapat menyediakan
mekanisme untuk mewujudkan mutual exclusion. Beberapa di antaranya
adalah:
1. Semaphore,
2. Monitor, dan
3. Message passing

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.

Bentuk semaphore yang pertama sering pula disebut sebagai counting


semaphore atau general semaphore.
Kebijakan yang digunakan untuk mengeluarkan proses dari antrian proses
yang diblok pada semaphore dapat bermacam-macam bentuknya. Bentuk yang
paling adil adalah First In First Out (FIFO). Proses yang paling lama diblok
adalah yang keluar paling awal. Semaphore yang mendefinisikan kebijakan
melepas proses dari antrian dikenal sebagai strong semaphore sedangkan
yang tidak mendefinisikannya disebut sebagai weak semaphore.
Contoh dari mekanisme semaphore dapat dilihat pada gambar 4-1 dengan
kondisi awal terdapat proses A, B, C, dan D dengan keterhubungan
sedemikan sehingga proses A, B, dan C bergantung pada hasil yang
dikeluarkan proses D. Urutan kejadian pada gambar dapat dijelaskan sebagai
berikut:

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.

Strong semaphore menjamin terbebas dari starvation sedangkan weak


semaphore tidak. Pada umumnya sistem operasi menyediakan fasilitas untuk
strong semaphore.

Sistem Operasi 51
Prosesor
A
1
s=1 C D B

Blocked queue Semaphore Ready queue


Prosesor
B
2
s=0 A C D

Blocked queue Semaphore Ready queue


Prosesor
D
3
B s=-1 A C

Blocked queue Semaphore Ready queue


Prosesor
D
4
s=0 B A C

Blocked queue Semaphore Ready queue


Prosesor
C
5
s=0 D B A

Blocked queue Semaphore Ready queue


Prosesor
D
6
B A C s=-3

Blocked queue Semaphore Ready queue


Prosesor
D
7
B A s=-2 C

Blocked queue Semaphore Ready queue


Gambar 4-1 Contoh dari mekanisme semaphore
52 Sistem Operasi
Monitor diajukan sebagai solusi dari masalah yang dimiliki semaphore.
Monitor sendiri adalah sebuah modul program yang memiliki satu atau
beberapa prosedur, urutan inisialisasi, dan data lokal. Monitor memiliki
karakteristik sebagai berikut:
1. Data lokal hanya bisa diakses oleh prosedur yang ada di dalam
monitor.
2. Sebuah proses memasuki monitor dengan memanggil salah satu
prosedur di dalam monitor tersebut.
3. Pada satu saat hanya ada satu proses yang bisa menggunakan
prosedur di dalam monitor. Proses lain yang hendak mengakses pada
waktu yang bersamaan harus menunggu proses pertama selesai.

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

4.3.2 Message Passing


Message passing adalah sebuah teknik untuk melakukan sinkronisasi dan
komunikasi antara proses-proses yang salin berinteraksi. Message passing
dapat diimplementasikan dengan beberapa cara namun yang dibahas kali ini
adalah dengan menggunakan sepasang prosedur primitive yaitu:
1. Send (tujuan, pesan)
2. Receive(sumber, pesan)

Sebuah proses mengirim informasi kepada proses lain melalui pemanggilan


prosedur send sedangkan proses menerima informasi melalui pemanggilan
prosedur receive.

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

Proses dengan nonblocking send memiliki kelebihan proses dapat terus


berlanjut tanpa menunggu adanya konfirmasi bahwa pesan telah diterima
namun di sisi lain jika proses mengalami kesalahan dan terus menerus
mengirimkan pesan maka sumber daya komputer dapat terkuras oleh proses
tersebut. Selain itu pemrogram aplikasi juga harus membuat sendiri
mekanisme untuk menentukan apakah pesan sudah diterima atau belum.
Pada prosedur primitive receive versi blocking proses yang meminta pesan
akan menunggu hingga pesan yang dimaksud diterima. Saat pesan tidak juga
diterima proses dapat menunggu terus tanpa kepastian. Non blocking receive
menyelesaikan masalah ini namun sisi buruknya adalah pesan dapat hilang
ketika prosedur receive dipanggil sebelum pesan sampai.
54 Sistem Operasi
4.3.4 Pengalamatan (Addressing)
Pada direct addressing prosedur send memerlukan penanda/identitas dari
proses yang menjadi tujuan pesan sedangkan prosedur receive akan menangani
dua kemungkinan:
1. Prosedur receive memerlukan identitas proses yang akan
mengirimkan pesan. Konsekuensinya proses yang memanggil receive
perlu mengetahui identitas dari proses yang akan mengirimkan
pesan. Cara ini efektif untuk mengendalikan dua proses konkuren
yang saling bekerja sama.
2. Proses yang menerima pesan tidak dapat menentukan proses mana
yang menjadi sumber pesan. Contohnya pada proses yang menangani
printer. Proses tersebut menerima pesan dari proses-proses lain
yang memerlukan layanan printer. Pada kasus seperti ini lebih tepat
jika menggunakan indirect addressing.

Pada metode indirect addressing pesan tidak langsung dikirimkan kepada


proses tujuan melainkan disimpan terlebih dahulu pada penyimpanan
sementara (mailbox). Cara ini dipandang lebih baik karena ketergantungan
antar proses menjadi lebih rendah dan komunikasi dapat menjadi lebih
fleksibel.
Terdapat empat jenis komunikasi dengan metode indirect ini bergantung
kepada banyaknya proses pengirim dan penerima, yaitu:
1. Satu pengiri ke satu penerima
2. Banyak pengirim ke satu penerima
3. Satu pengirim ke banyak penerima
4. Banyak pengirim ke banyak penerima

Yang menjadi persoalan adalah kepemilikan mailbox tempat menyimpan


pesan. Mailbox bisa dimiliki oleh proses penerima pesan dan ketika proses
mati begitu juga mailbox akan dihapus. Cara lain adlah sistem operasi
menyediakan layanan mailbox dan mailbox dapat dipesan oleh proses
tertentu. Pada cara ke-dua mailbox dapat dipandang dimiliki oleh proses yang
memintanya dan akan dihilangkan ketika proses tersebut selesai atau tetap
dimiliki oleh sistem operasi penghapusan nantinya dilakukan oleh sistem
operasi.

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.

4.3.6 Aturan Antrian


Aturan antrian yang paling sederhana adalah FIFO (first in first out) tetapi
mungkin tidak cukup jika terdapat beberapa pesan yang penting dan perlu
untuk segera disampaikan dibandingkan pesan-pesan lainnya. Alternatifnya
ialah dengan menyediakan fasilitas prioritas pada pesan atau membolehkan
penerima pesan memeriksa antrian untuk mengambil pesan.

56 Sistem Operasi
Rangkuman

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. Pada komputer yang menjalankan
multiprogramming proses-proses dijalankan bergantian dengan cepat oleh
prosesor sehinga tampak seolah-olah berjalan bergantian.
Fitur-fitur utama dari sistem operasi modern yang paling menonjol
adalah kemampuan sistem operasi untuk melakukan Multiprogramming,
multiprosesing dan distributed prosesing.

Soal Latihan

1. Apa yang harus diperhatikan dalam hal konkurensi


2. Apa yang dimaksud dengan konkurensi dan sebutkan contoh dari
konkurensi
3. Apa yang dimaksud dengan semaphore, sinkronisasi, message passing
dalam hal konkurensi
4. Jelaskan persyaratan untuk mutual exclusion
5. Sebutkan menurut yang anda ketahui tentang algoritma antrian.

Sistem Operasi 57
5 Penjadwalan

Overview

Sebelum memulai mempelajari sistem operasi penting bagi kita untuk


mengetahui komponen-komponen yang menjadi bagian dari sebuah sistem
komputer disertai cara kerjanya. Hal ini disebabkan nantinya sistem operasi
bekerja untuk mengatur komponen-komponen tersebut dan
menyembunyikan kerumitannya bagi pengembang aplikasi dan para pengguna
akhir sistem operasi.

Tujuan

1. Mahasiswa mengetahui komponen-komponen yang membangun


sebuah sistem komputer
2. Mahasiswa mengetahui bagaimana komponen-komponen itu bekerja
dan saling bekerja sama untuk memenuhi kebutuhan aplikasi dan
pengguna akhir.

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.

5.2 Tipe penjadwalan Prosesor


Aktivitas penjadwalan dapat dirinci sebagai berikut:
1. Apakah masih akan menerima program baru client untuk masuk ke pool
process? Ini disebut long-term scheduling.
2. Apakah program di pool process akan dimasukkan ke memori? Ini
disebut medium-term scheduling.
3. Dari program-program yang ada di memori utama, yang mana yang akan
dijalankan oleh Prosesor? Ini disebut short-term scheduling.
Dari process-process yang menunda permintaan IO yang mana yang akan
ditangani oleh piranti IO yang tersedia? Ini disebut I/O scheduling.

New
Long term Long term

Medium Medium term


term
Ready/ Ready
Running Exit
suspend
Medium
term
Blocked/ Blocked
suspend

Gambar 5-1 Penjadwalan dan Perpindahan Status Process

5.3 Kriteria Penjadwalan


Ada beberapa cara untuk menjadwalkan process. Ada kriteria pemilihannya,
apakah dari sudut pandang pengguna atau dari sudut pandang sistem.

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.

5.4 Algoritma Penjadwalan


Bagaimana memilih program di memori utama yang akan dijalankan oleh
Prosesor? Ada beberapa algoritma :
1. First Come First Served (FCFS), program yang pertama kali datang
pertama kali dilayani hingga selesai.
2. Round Robin, mirip FCFS, dilayani dalam waktu yang terbatas (dikenal
dengan istilah time quantum, kuantum waktu atau time slice, potongan
waktu), jika belum selesai diantrikan lagi.
3. Shortest Process Next (SPN), disebut juga Shortest Job First (SJF),
process dengan prediksi waktu eksekusi terpendek akan dipilih,
dilayani hingga selesai.

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

Process Waktu kedatangan Waktu layan


A 0 3
B 2 6
C 4 4
D 6 5
E 8 2
Urutan eksekusi process-process ini pada masing-masing algoritma di atas
ditunjukkan dalam Gambar 5-2
0 5 10 15 20
FCFS A
B
C
D
E
Round Robin A
(q=1) B
C
D
E

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

Gambar 5-3 Perbandingan Algoritma Penjadwalan (lanjutan)

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.

Karakteristik enam algoritma penjadwalan secara keseluruhan ditunjukkan


dalam Tabel 5-3

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

Algoritma FCFS RR SPN SRT HRRN Feedback


Fungsi max[w] constant min[s] min[s-e] max((w+s)/s) Lihat
seleksi text
Mode Nonpre- Pre- Nonpre- Pre- Nonpre- Pre-
keputusan emptive emptive emptive emptive emptive emptive
(pada (saat (pada
kuantum kedatangan) kuantum
waktu) waktu)
Throughput Tidak Kecil Tinggi Tinggi Tinggi Tidak
dapat jika dapat
dinyata- quantum dinyata-
kan waktu kan
kecil
Response Mungkin Bagus Bagus Bagus Bagus Tidak
Time tinggi jika untuk untuk dapat
waktu process- process- dinyata-
eksekusi process process kan
bervariasi pendek pendek
Overhead Kecil Kecil Dapat Dapat tinggi Dapat tinggi Dapat
tinggi tinggi
Efek pada Process Adil Process Process Seimbang Bisa
process pendek panjang panjang bisa utamakan
atau yang bisa lama process
menunggu lama terkait
I/O bisa I/O
lama;
Penundaan Tidak Tidak Bisa Bisa Tidak Bisa
tanpa batas
w = waiting time , waktu tunggu
e = executing time, waktu eksekusi, selama ini
s = total service time, waktu layan total

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

Ukuran Deskripsi Interval


Grain Sinkronisasi
(Instruksi)
Fine Paralelisme ada di dalam stream instruksi < 20
tunggal
Medium Pemrosesan paralel atau multitasking dalam 20 – 200
suatu aplikasi tunggal
Coarse Multiprocessing dari proses-proses konkuren 200-2000
dalam lingkungan multiprogramming
Very coarse Pemrosesan tersebar sepanjang node-node 2000-1M
jaringan untuk membentuk lingkungan
komputasi tunggal.
Independent Banyak proses tak terkait (N/A)

Dalam komputer dual-core, Prosesornya dua. Dalam sistem multiProsesor,


Prosesornya banyak. Bagaimana menjalankan program-program pengguna
dalam komputer multiProsesor? Bagaimana jika programnya sendiri terdiri
dari beberapa thread? Ada empat pendekatan dapat dipilih :
1. load sharing : berbagi beban, semua program diantrikan dalam
antrian, Prosesor yang menganggur akan mengambil antrian terdepan
dan menjalankannya.
2. gang scheduling : sekumpulan thread yang saling terkait
diantrikan pada sekumpulan Prosesor pada saat yang sama, satu
thread satu Prosesor.
3. dedicated Prosesor assignment : pada sebuah program
diberikan sejumlah Prosesor sebanyak thread yang ada dalam
program itu.
4. dynamic scheduling : jumlah thread yang diaktifkan dari suatu
program dapat diubah-ubah.

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.

preemptive smallest number of threads first : mirip sebelumnya, jika


sebelumnya dikerjakan sampai selesai, disini dapat dihentikan dulu untuk
melayani program baru dengan jumlah thread lebih sedikit.

5.7 Penjadwalan Real-Time


Komputasi real time adalah tipe komputasi yang kebenarannya tidak hanya
ditentukan oleh hasil lojik komputasi tetapi juga waktu hasil itu diperoleh.
Disebut hard real time, jika tugas harus selesai dalam deadline. Disebut
soft real time, jika tidak ada keharusan selesai dalam deadline.
Bagaimana menjadwal program-program dalam sistem seperti ini? Ada
beberapa pilihan :
 static table-driven approaches : disini dijalankan analisis statis
dari tugas-tugas mana yang antri, deadline mana yang terdekat, itu
yang dijadwal duluan. Program baru, jika datang pada saat jadwal
dijalankan, akan diperhatikan untuk jadwal berikutnya.
 static priority-driven preemptive approaches : tugas-tugas
diprioritaskan berdasarkan batasan waktu mereka. Pada saat
dijalankan, jika ada tugas dengan prioritas lebih tinggi, tugas yang
sedang dijalankan dapat dihentikan.
 dynamic planning-based approaches : tugas-tugas sudah
direncanakan untuk dijalankan, hanya jika ada tugas baru datang dan
memungkinkan untuk dijalankan, maka akan diterima untuk
dijalankan.
 dynamic best effort approaches : jalankan semua tugas yang
datang, jika deadline tidak terpenuhi, batalkan.

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

Tugas Waktu Datang Waktu Eksekusi Deadline


A(1) 0 10 20
A(2) 20 10 40
A(3) 40 10 60
A(4) 60 10 80
A(5) 80 10 100

B(1) 0 25 50
B(2) 50 25 100

Dengan memperhatikan kapan harus selesai, tugas-tugas ini akan dijadwalkan


seperti pada Gambar 5.4.
0 25 50 75
100
A1 A2 A3 A4 A5
Earliest deadline A
scheduling B
B1’ B1’ B2’ B2’
A1 A2 A3 A4 A5
Fixed-priority A
scheduling: B
diprioritaskan A B1’ B1’ B2’ B2’ B2’
B1’ gagal
A1 gagal A4 gagal
A2 A3 A5
Fixed-priority A
scheduling: B
diprioritaskan B B1 B2
Gambar 5-4 Penjadwalan tugas 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

1. Tidak hanya menjadwal eksekusi program di memori utama yang ditangani


dalam penjadwalan Prosesor. Sebutkan yang lain.
2. Apa beda turnaround time dengan response time?
3. Apa beda penjadwalan preemptive dengan nonpreemptive?
4. Program dijalankan dari yang pertama datang, tidak dikerjakan sampai
selesai, tetapi hanya sebatas kuantum waktu. Apa nama penjadwalan ini?
5. Program dijalankan dari yang memiliki prediksi waktu eksekusi terpendek,
tidak dikerjakan sampai selesai, tetapi hanya sebatas kuantum waktu. Apa
nama penjadwalan ini?
6. Pemrosesan paralel atau multitasking dalam suatu aplikasi tunggal, pada
ukuran grain termasuk dalam level ….
7. Yang mirip dengan penjadwalan Shortest Process Next pada versi load
sharing adalah ….
8. Apa beda tugas periodic dan aperiodic dalam sistem real time?
9. Perhatikan kumpulan process berikut.

Process Waktu kedatangan Waktu layan


A 0 3
B 1 5
C 3 2
D 9 5
E 12 5
Lakukan analisa seperti pada Gambar 5.2 dan Tabel 5.3.

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

1. Mahasiswa mengetahui bagaimana sistem operasi memanajemen


memori utama.
2. Mahasiswa mengetahui teknik pembagian memori utama oleh sistem
operasi.
3. Mahasiswa mengerti konsep memori maya (virtual memory).

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.

6.2 Kebutuhan Manajemen Memori


Memori utama perlu dikelola untuk memenuhi lima kebutuhan berikut:
- relocation
- protection
- sharing
- logical organization
- physical organization

Saat program pengguna dating, ia tidak akan langsung dijalankan, ia diantrikan


di disk. Ketika tiba gilirannya dijalankan, ia akan dibawa ke memori utama.
Ketika ia menunggu aktivitas I/O, ia akan di-block, dibawa kembali ke disk.
Ketika aktivitas I/O selesai dan ia siap dijalankan lagi, maka tidak harus ia
ditempatkan di memori utama di tempat semula. Ada kebutuhan untuk
menempatkan di tempat lain. Hal ini disebut relocation.
Setiap process yang berada di memori utama harus aman dari interferensi
process lain, sengaja atau tidak sengaja. Hal ini disebut protection. Juga,
program pengguna tidak boleh mengakses bagian memori untuk sistem
operasi. Dan sebaiknya proteksi ini dilakukan oleh hardware, bukan software
sistem operasi.
Meskipun ada tuntutan proteksi, namun tidak menutup kemungkinan bagi
process-process untuk berbagi memori utama, lokasi yang sama diakses oleh
semua. Hal ini disebut sharing.
Meski penyimpanan di memori utama, juga di memori sekunder, dilakukan
secara linier, urutan byte atau word, namun ada kebutuhan bagi program
untuk (dibuat dan) disimpan dalam bentuk modul-modul. Fisik boleh linier,
tetapi lojik modular. Hal ini yang disebut logical organization.
Tugas mengantrikan program pengguna di memori sekunder, atau
mengambilnya ke memori utama adalah tugas sistem operasi. Disimpan di
lokasi disk yang mana, modul mana yang diaktifkan dulu yang mana yang
berikutnya merupakan kebutuhan phyisical organization.

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.

6.3.1 Fixed Partitioning


Pada fixed partitioning, memori utama (selain yang digunakan untuk sistem
operasi) dibagi dalam ukuran yang sudah disediakan, mungkin sama, mungkin
berbeda. Untuk memori utama berukuran 64 M, ukuran partisi mungkin
sama: 8 x 8M, 1 bagian untuk sistem operasi, 7 bagian yang lain untuk
program pengguna. Ukuran partisi mungkin bervariasi :
8 M untuk sistem operasi, dan 2 M, 4 M, 6 M, 8 M, 8 M, 12 M dan 16 M
untuk program pengguna. Program pengguna harus lebih kecil atau sama
dengan ukuran partisi itu.
Bagaimana jika ukuran program lebih besar daripada ukuran memori yang
disediakan? Program harus dipecah-pecah ke dalam modul berukuran tidak
lebih besar dari ukuran partisi. Modul yang dibutuhkan akan dibawa ke partisi
terkait dan menghapus (overlay) apapun yang ada di partisi itu.
Bagaimana jika ukuran program terlalu kecil? Ya, itulah lemahnya. Borosnya
ruang partisi yang tak terpakai akibat ukuran program terlalu kecil ini disebut
internal fragmentation. Dan masalah ini diselesaikan dengan membuat
ukuran partisi yang bervariasi.
Bagaimana menempatkan program dalam partisi fix yang ukurannya bervariasi?
Pilihlah ukuran partisi terkecil yang sanggup menampung program. Untuk
antrian programnya ada pilihan: dibuatkan antrian sebanyak partisi, atau
antrian tunggal untuk semua partisi.

6.3.2 Dynamic Partitioning


Dalam dynamic partitioning, jumlah partisi dan ukurannya bervariasi. Program
diberi ruang memori utama sebanyak yang ia butuhkan. Misalkan ukuran
memori utama 64 M, dengan 8 M dipakai untuk sistem operasi. Tiga program
P1, P2, P3 masing-masing berukuran 20 M, 14 M dan 18 M. Kemudian P2
habis jatah waktunya, dan masuk P4 dengan ukuran 8 M. Kemudian P1 selesai,
dan P2 harus dijalankan lagi. Bagaimana perjalanan keadaan memori
ditunjukkan pada Gambar 6.1
Awal-awalnya bagus, namun makin lama akan makin banyak lubang kecil dalam
memori. Jika kasus lubang pada fix partition disebut internal fragmentation, pada

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.

Operating Operating Operating


System (8 M) System (8 M) System (8 M)

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

A request 100K A 128K 256K 512K

B request 240K A 128K B 512K

C request 64K A C 64K B 512K

D request 256K A C 64K B D


256K
Release B A C 64K 256K D
256K
Release A 128K C 64K 256K D
256K
E request 75K E C 64K 256K D 256K

Release C E 128K 256K D


256K
Release E

Release D
512K D
256K
1M

Gambar 6-3 Contoh Buddy System

Bagaimana agar relokasi program mudah dilakukan? Setiap lokasi di memori


utama memiliki physical address, alamat fisik. Sebuah program biasanya
terdiri dari data-data yang ia olah dan kode program untuk menjalankannya.
Data-data dan kode program itu diberi logical address, alamat lojik yang
masih harus diterjemahkan ke dalam alamat fisik ketika akan di-load ke
memori. Data dan kode program mungkin ditandai dengan relative
address, alamat relatif masing-masing terhadap alamat awal.
Dukungan hardware untuk relokasi ditunjukkan pada Gambar 6.4

Sistem Operasi 75
Relative address

Process control block


Base register
Adder
Absolute Program
address
Bounds register Comparator
Data
Interupsi ke S.O.

Stack

di memori utama

Sebuah program
di memori utama

Gambar 6-4 Dukungan hardware untuk relokasi

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

Gambar 6-6 Tabel page setiap process terkait Gambar 6-5

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

1. Kebutuhan apa saja yang harus dipenuhi pada manajemen memori?


2. Mengapa dua atau lebih program diijinkan untuk berbagi memori bersama?
3. Apa keuntungan partisi yang ukurannya tidak sama dalam fix partition?
4. Apa perbedaan fragmentasi internal dan fragmentasi eksternal?
5. Apa perbedaaan alamat logik, alamat relatif dan alamat fisik?
6. Apa perbedaan page dan frame?
7. Apa perbedaan page dan segment?
8. Cara lain algoritma penempatan program dalam partisi dinamis adalah
worst-fit, pilih lokasi memori terbesar untuk program baru. Apa kelebihan
cara ini dibanding cara best-fit, first-fit dan next-fit.
9. Diketahui daftar lokasi bebas di memori untuk partisi dinamis sebagai
berikut : 20M, 60M, 10M, 40M, 30M, 40M. Tiga program baru masing-masing
berukuran 40M, 20M, dan 10M akan masuk. Dimana program baru ini akan
ditempatkan jika menggunakan algoritma penempatan:
a. First-fit
b. Best-fit
c. Next-fit (pointer ada di awal memori)
d. Worst-fit
10. Memori 1Mb dipakai untuk buddy system. Berturut-turut ada permintaan
berikut : A 70Kb, B 35Kb, C 80Kb, A bebas, D 60Kb, B bebas, D bebas, C
bebas.

80 Sistem Operasi
7 Manajemen Perangkat I/O

Overview

Segala hal tentang 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.

Secara umum, terdapat beberapa jenis perangkat M/K, seperti perangkat


penyimpanan (disk, tape), perangkat transmisi (network card, modem), dan
perangkat antarmuka dengan pengguna (screen, keyboard, mouse). Perangkat
tersebut dikendalikan oleh instruksi M/K. Alamat-alamat yang dimiliki oleh
perangkat akan digunakan oleh direct I/O instruction dan memory-mapped I/O.

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.

Langkah yang ditentukan untuk perangkat ialah command-ready, busy, dan


error. Host mengeset command-ready ketika perintah telah siap untuk
dieksekusi oleh pengendali. Pengendali mengeset busy ketika sedang
mengerjakan sesuatu, dan men-clear busy ketika telah siap untuk menerima
perintah selanjutnya. Error diset ketika terjadi kesalahan.

Menurut William Stalling, Perangkat eksternal (I/O) yang dapat berhubungan


dengan sistem komputer, dapat dikategorikan sebagai berikut:
1. Human Readable, peralatan yang sesuai untuk komunikasi dengan
user computer seperti monitor, keyboard, mouse, & printer
2. Machine Readable, peralatan yang sesuai untuk komunikasi
dengan peralatan elektronik seperti sensor, dan kontroller

82 Sistem Operasi
3. Communication, peralatan yang sesuai untuk komunikasi dengan
peralatan jarak jauh (remote device) seperti remote control, &
modem

Antar perangkat I/O saling mempunyai perbedaan berdasar pada:


1.Data rate, terdapat perbedaan urutan pokok antar perhitungan
transfer data masing-masing peralatan
2. Application, penggunaan sebuah peralatan mempengaruhi
penggunaan perangkat lunak dan aturan dalam system operasi dan
penggunaan utilitas lainnya
3. Kompleksitas pengendali, kompleksitas modul I/O dalam mengontrol
peralatan, membuat perbedaan system operasi dalam menanganinya
4. Kuantitas pengiriman data (satuan), Data dapat ditransfer sebaga
aliran byte atau karakter atau dalam bentuk blok yang lebih besar.
5. Representasi data, Perbedaan Skema Encoding data membuat
perbedaan peralatan yang digunakan
Penanganan error, kesalahan, cara melaporkan kesalahan dan segala
konsekuensinya membedakan respon dari peralatan satu dengan yang lain.

7.2 Perangkat M/K (I/O Device)


Pendapat orang-orang mengenai M/K berbeda-beda. Seorang insinyur
mungkin akan memandang perangkat keras M/K sebagai kumpulan chip-chip,
kabel-kabel, catu daya, dan komponen fisik lainnya yang membangun
perangkat keras ini. Seorang programer akan memandangnya sebagai
antarmuka yang disediakan oleh perangkat lunak -- perintah yang diterima
perangkat keras, fungsi yang dikerjakannya, dan error yang ditimbulkan.

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.

Tipe lain perangkat M/K ialah perangkat karakter. Perangkat karakter


mengirim atau menerima sebarisan karakter, tanpa menghiraukan struktur

Sistem Operasi 83
blok. Tipe ini tidak memiliki alamat, dan tidak memiliki kemampuan mencari
(seek). Printer dan antarmuka jaringan merupakan contoh perangkat jenis ini.

Pembagian ini tidaklah sempurna. Beberapa perangkat tidak memenuhi


kriteria tersebut. Contohnya: clock yang tidak memiliki alamat dan juga tidak
mengirim dan menerima barisan karakter. Yang ia lakukan hanya
menimbulkan interupsi dalam jangka waktu tertentu.

7.3 Organisasi Fungsi I/O


Terdapat teknik pada pemrograman I/O yaitu:

1. Programmed I/O, Prosesor mengurusi perintah I/O dalam perilaku


proses ang mengerjakan modul I/O , dimana proses-proses itu
kemudian beroperasi dengan cara busy-wait sebelum melakukan
proses sampai selesai eksekusi.
2. Interrupt-driven I/O, prosesor mengurusi perintah I/O dalam
perilaku proses, degan meneruskan eksekusi aliran instruki dan
dapat diintrupsi oleh modul I/O sehingga suatu proses untuk
sementara dalam keadaan suspend dan kemudian dapat dilanjut
kembali sampai selesai.

Direct Memory Access (DMA), Terdapat sebuah modul DMA yang


mengontrol erubahan data antara main memori dan modul I/O. Prosesor
mengirimkan sebuah request pada mekanisme transfer sebuah blok data ke
modul DMA dan diinterupsi hanya setelah semua blok data telah ditransfer.

7.3.1 Pengendali Perangkat


Unit M/K mengandung komponen mekanis dan elektronis. Komponen
elektronis ini disebut pengendali perangkat (device controllers) atau adapter.
Pada komputer personal (PC), komponen ini biasanya berupa kartu sirkuit
yang dapat dimasukkan ke dalam slot pada motherboard komputer. Perangkat
mekanis berupa perangkat itu sendiri.

Kartu pengendali biasanya memiliki sebuah penghubung. Beberapa pengendali


dapat menangani dua, empat, atau bahkan delapan perangkat yang sejenis.
Sistem operasi hampir selalu berhubungan dengan pengendali, bukan dengan
perangkat secara langsung. Sebagian besar komputer yang berukuran kecil
menggunakan model bus tunggal seperti pada Gambar “Model Bus Tunggal”

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.

Gambar 7-1 Sebuah model untuk menghubungkan CPU, memori,


pengendali, dan perangkat M/K

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

7.3.3.1 Mekanisme Dasar Interupsi


Ketika CPU mendeteksi bahwa sebuah pengendali telah mengirimkan sebuah
sinyal ke interrupt request line (membangkitkan sebuah interupsi), CPU
kemudian menjawab interupsi tersebut (juga disebut menangkap interupsi)
dengan menyimpan beberapa informasi mengenai keadaan terkini CPU--
contohnya nilai instruksi pointer, dan memanggil interrupt handler agar handler
tersebut dapat melayani pengendali atau alat yang mengirim interupsi
tersebut.

Sistem Operasi 85
Gambar 7-2 Contoh proses polling yang tipikal

7.3.3.2 Fitur Tambahan pada Komputer Modern


Pada arsitektur komputer modern, tiga fitur disediakan oleh CPU dan
pengendali interupsi (pada perangkat keras) untuk dapat menangani interrupsi
dengan lebih bagus. Fitur-fitur ini antara lain ialah kemampuan menghambat
sebuah proses penanganan interupsi selama proses berada dalam critical state,
efisiensi penanganan interupsi sehingga tidak perlu dilakukan polling untuk
mencari perangkat yang mengirimkan interupsi, dan fitur yang ketiga ialah
adanya sebuah konsep interupsi multilevel sedemikian rupa sehingga terdapat
prioritas dalam penanganan interupsi (diimplementasikan dengan interrupt
priority level system).
Interrupt Request Line
Pada peranti keras CPU terdapat kabel yang disebut interrupt request line,
kebanyakan CPU memiliki dua macam interrupt request line, yaitu nonmaskable
interrupt dan maskable interrupt. Maskable interrupt dapat dimatikan/dihentikan
oleh CPU sebelum pengeksekusian deretan critical instruction (critical instruction
sequence) yang tidak boleh diinterupsi. Biasanya, interrupt jenis ini digunakan
oleh pengendali perangkat untuk meminta pelayanan CPU.

Interrupt Vector dan Interrupt Chaining


Sebuah mekanisme interupsi akan menerima alamat interrupt handling routine
yang spesifik dari sebuah set, pada kebanyakan arsitektur komputer yang ada
sekarang ini, alamat ini biasanya berupa sekumpulan bilangan yang menyatakan
offset pada sebuah tabel (biasa disebut vektor interupsi). Tabel ini menyimpan
alamat-alamat interrupt handler spesifik di dalam memori. Keuntungan dari
pemakaian vektor ialah untuk mengurangi kebutuhan akan sebuah interrupt

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.

7.4 Direct Memory Access (DMA)


DMA ialah sebuah prosesor khusus (special purpose processor) yang berguna
untuk menghindari pembebanan CPU utama oleh program M/K (PIO).

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.

Pada dasarnya, DMA mempunyai dua metode yang berbeda dalam


mentransfer data. Metode yang pertama ialah metode yang sangat baku dan
sederhana disebut HALT, atau Burst Mode DMA, karena pengendali DMA
memegang kontrol dari sistem bus dan mentransfer semua blok data ke atau
dari memori pada single burst. Selagi transfer masih dalam prosres, sistem
mikroprosessor di-set idle, tidak melakukan instruksi operasi untuk menjaga
internal register. Tipe operasi DMA seperti ini ada pada kebanyakan
komputer.

Metode yang kedua, mengikut-sertakan pengendali DMA untuk memegang


kontrol dari sistem bus untuk jangka waktu yang lebih pendek pada periode
dimana mikroprosessor sibuk dengan operasi internal dan tidak
membutuhkan akses ke sistem bus. Metode DMA ini disebut cycle stealing
mode. Cycle stealing DMA lebih kompleks untuk diimplementasikan
dibandingkan HALT DMA, karena pengendali DMA harus mempunyai
kepintaran untuk merasakan waktu pada saat sistem bus terbuka.

Menurut Stalling terdapat 3 kemunginan konfigurasi DMA, yaitu:


1. Bus tunggal, DMA terhubung
2. Bus tunggal, DMA terintegrasi dengan I/O
3. Bus I/O

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

a. Bus Tunggal, DMA terhubung

Modul Modul
CPU Memori
DMA DMA

I/O

I/O I/O

b. Bus Tunggal, DMA terintegrasi dengan I/O


Bus Sistem

Modul
CPU Memori
DMA

Bus I/O

I/O I/O I/O

c. Bus I/O

pengendali perangkat mengirimkan data yang dimaksud dan mematikan sinyal


pada DMA-request.

Gambar 7-3 kemungkinan konfigurasi DMA

Hal ini berlangsung berulang-ulang sehingga disebut handshaking. Pada saat


pengendali DMA mengambil alih memori, CPU sementara tidak dapat
mengakses memori (dihalangi), walaupun masih dapat mengaksees data pada
cache primer dan sekunder. Hal ini disebut cycle stealing, yang walaupun
memperlambat komputasi CPU, tidak menurunkan kinerja karena
memindahkan pekerjaan data transfer ke pengendali DMA meningkatkan
performa sistem secara keseluruhan

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

7.5 Subsistem Masukan/Keluaran Kernel

7.5.1 Aplikasi Antarmuka M/K


Bagian ini akan membahas bagaimana teknik dan struktur antarmuka yang
memungkinkan M/K (I/O) diperlakukan secara seragam. Salah satu contohnya
adalah ketika suatu aplikasi ingin membuka data yang ada dalam suatu disk
tanpa mengetahui jenis disk apa yang akan diaksesnya. Untuk mempermudah
pengaksesan, sistem operasi melakukan standarisasi pengaksesan pada
perangkat M/K. Pendekatan inilah yang dinamakan aplikasi antarmuka
M/K.

Seperti layaknya permasalahan dari software-engineering yang rumit lainnya,


aplikasi antarmuka M/K melibatkan abstraksi, enkapsulasi, dan software
layering. Abstraksi dilakukan dengan membagi-bagi detail perangkat-perangkat
M/K ke dalam kelas-kelas yang lebih umum. Dengan adanya kelas-kelas yang
umum ini, maka akan lebih mudah bagi fungsi-fungsi standar (antarmuka)
untuk mengaksesnya. Selanjutnya, keberadaan device driver pada masing-
masing peralatan M/K akan berfungsi meng-enkapsulasi perbedaan-perbedaan
yang ada dari setiap anggota kelas-kelas yang umum tadi.

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

Sayangnya untuk manufaktur perangkat keras, masing-masing sistem operasi


memiliki standarnya sendiri untuk device driver antarmukanya. Karakteristik

90 Sistem Operasi
dari perangkat-perangkat tersebut sangat bervariasi, beberapa yang dapat
membedakannya adalah dari segi.

Gambar 7-4 Struktur kernel. Gambar ini diadaptasi dari [Silberschatz2002,


halaman 467]

1. Character-stream atau block: Sebuah stream karakter


memindahkan per satu bytes, sedangkan blok memindahkan
sekumpulan bytes dalam 1 unit.
2. Sequential atau Random-access: Sebuah perangkat yang
sekuensial memindahkan data dalam susunan yang sudah pasti
seperti yang ditentukan oleh perangkat, sedangkan pengguna akses
random dapat meminta perangkat untuk mencari ke seluruh lokasi
penyimpanan data yang tersedia.
3. Synchronous atau asynchronous: perangkat yang synchronous
menampilkan data-data transfer dengan waktu reaksi yang dapat
diduga, sedangkan perangkat yang asynchronous menampilkan waktu
reaksi yang tidak dapat diduga.
4. Sharable atau dedicated: perangkat yang dapat dibagi dapat
digunakan secara bersamaan oleh beberapa prosesor atau thread,
sedangkan perangkat yang dedicatedtidak dapat.
5. Speed of operation: Rentangan kecepatan perangkat dari beberapa
bytes per detik sampai beberapa gigabytes per detik.
6. Read-write, read only, atau write only: Beberapa perangkat
memungkinkan baik input-output dua arah, tapi beberapa lainnya
hanya menunjang data satu arah.

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.

7.6 Peralatan Blok dan Karakter


Peralatan blok diharapkan dapat memenuhi kebutuhan akses pada berbagai
macam disk drive dan juga peralatan blok lainnya, memenuhi/mengerti
perintah baca, tulis dan juga perintah pencarian data pada peralatan yang
memiliki sifat random-access.

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

7.7 Peralatan Jaringan

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.

Socket berfungsi untuk menghubungkan komputer ke jaringan. System call


pada socket interface dapat memudahkan suatu aplikasi untuk membuat local
socket, dan menghubungkannya ke remote socket. Dengan menghubungkan
komputer ke socket, maka komunikasi antar komputer dapat dilakukan.

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.

Perangkat keras yang mengukur waktu dan melakukan operasi trigger


dinamakan programmable interval timer. Dia dapat diatur untuk menunggu
waktu tertentu dan kemudian melakukan interupsi. Contoh penerapannya
ada pada scheduler, dimana dia akan melakukan interupsi yang akan
memberhentikan suatu proses pada akhir dari bagian waktunya.

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.

7.9 Blocking dan Nonblocking I/O


Ketika suatu aplikasi menggunakan sebuah blocking system call, eksekusi
aplikasi itu akan dihentikan sementara lalu dipindahkan ke wait queue. Setelah
system call tersebut selesai, aplikasi tersebut dikembalikan ke run queue,
sehingga pengeksekusiannya akan dilanjutkan. Physical action dari peralatan
M/K biasanya bersifat asynchronous. Akan tetapi, banyak sistem operasi yang
bersifat blocking, hal ini terjadi karena blocking application lebih mudah
dimengerti dari pada nonblocking application.

7.9.1 Penjadualan M/K

Kernel menyediakan banyak layanan yang berhubungan dengan M/K. Pada


bagian ini, kita akan mendeskripsikan beberapa layanan yang disediakan oleh
subsistem kernel M/K, dan kita akan membahas bagaimana caranya membuat
infrastruktur perangkat keras dan device driver. Layanan-layanan yang akan kita
bahas adalah penjadualan M/K, buffering, caching, spooling, reservasi perangkat,
error handling.

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.

Berikut adalah contoh sederhana untuk menggambarkan definisi di atas. Jika


sebuah arm disk terletak di dekat permulaan disk, dan ada tiga aplikasi yang
memblokir panggilan untuk membaca disk tersebut. Aplikasi pertama
meminta sebuah blok dekat akhir disk, aplikasi kedua meminta blok yang
dekat dengan awal, dan aplikasi tiga meminta bagian tengah dari disk. Sistem
operasi dapat mengurangi jarak yang harus ditempuh oleh arm disk dengan
melayani aplikasi tersebut dengan urutan 2, 3, 1. Pengaturan urutan pekerjaan
kembali seperti ini merupakan inti dari penjadualan M/K.

Pengembang sistem operasi mengimplementasikan penjadualan dengan


mengatur antrian permintaan untuk tiap perangkat. Ketika sebuah aplikasi
meminta sebuah blocking sistem M/K, permintaan tersebut dimasukkan ke
dalam antrian untuk perangkat tersebut. Scheduler M/K mengurutkan kembali
antrian untuk meningkatkan efisiensi dari sistem dan waktu respon rata-rata
yang harus dialami oleh aplikasi. Sistem operasi juga mencoba untuk bertindak
secara adil agar tidak ada aplikasi yang menerima layanan yang lebih sedikit,
atau dapat memberikan prioritas layanan untuk permintaan penting yang
ditunda. Contohnya, pemintaan dari sub sistem mungkin akan mendapatkan
prioritas lebih tinggi daripada permintaan dari aplikasi. Beberapa algoritma
penjadualan untuk I/O disk akan dijelaskan pada bagian Penjadualan Disk.

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:

1. Mengatasi perbedaan kecepatan antara produsen dengan konsumen


dari sebuah stream data.

Contoh, sebuah berkas sedang diterima melalui modem dan akan


disimpan di hard disk. Kecepatan modem tersebut ribuan kali lebih
lambat daripada hard disk, sehingga buffer dibuat di dalam memori
utama untuk mengumpulkan jumlah byte yang diterima dari modem.
Ketika keseluruhan data di buffer sudah sampai, buffer tersebut dapat
ditulis ke disk dengan operasi tunggal.

Karena penulisan disk tidak terjadi dengan seketika dan modem


masih memerlukan tempat untuk menyimpan data yang berdatangan,
maka dua buah buffer digunakan untuk melakukan operasi ini. Setelah
modem memenuhi buffer pertama, akan terjadi permintaan untuk
menulis di disk. Modem kemudian mulai memenuhi buffer kedua
sementara buffer pertama dipakai untuk penulisan ke disk. Seiring
modem sudah memenuhi buffer kedua, penulisan ke disk dari buffer
pertama seharusnya sudah selesai, jadi modem akan berganti kembali
memenuhi buffer pertama sedangkan buffer kedua dipakai untuk
menulis. Metode double buffering ini membuat pasangan ganda antara
produsen dan konsumen sekaligus mengurangi kebutuhan waktu
diantara mereka.

2. Untuk menyesuaikan perangkat-perangkat yang mempunyai


perbedaan dalam ukuran transfer data.

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.

3. Untuk mendukung copy semantics untuk aplikasi M/K. Sebuah contoh


akan menjelaskan apa arti dari copy semantics. Jika ada sebuah aplikasi
yang buffer data yang ingin dituliskan ke disk, aplikasi tersebut akan

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.

7.10 Spooling dan Reservasi Perangkat

Gambar 7-5 Gambar Spooling

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.

Di dalam beberapa sistem operasi, spooling ditangani oleh sebuah sistem


proses daemon. Pada sistem operasi yang lain, sistem ini ditangani oleh in-

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.

7.11 Error Handling

Sebuah sistem operasi yang menggunakan protected memory dapat menjaga


banyak kemungkinan error akibat perangkat keras maupun aplikasi. Perangkat
dan transfer M/K dapat gagal dalam banyak cara, dapat karena alasan
transient, seperti overloaded pada jaringan, maupun alasan permanen yang
seperti kerusakan yang terjadi pada disk controller. Sistem operasi seringkali
dapat mengkompensasikan untuk kesalahan transient. Seperti, sebuah
kesalahan baca pada disk akan mengakibatkan pembacaan ulang kembali dan
sebuah kesalahan pengiriman pada jaringan akan mengakibatkan pengiriman
ulang apabila protokolnya diketahui. Akan tetapi untuk kesalahan permanen,
sistem operasi pada umumnya tidak akan dapat mengembalikan situasi seperti
semula.

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.

Sebagai contoh, kesalahan pada perangkat SCSI dilaporkan oleh protokol


SCSI dalam bentuk sense key yang mengindentifikasi kesalahan yang umum
seperti error pada perangkat keras atau permintaan yang ilegal; sebuah
additional sense code yang mengkategorikan kesalahan yang muncul, seperti
kesalahan parameter atau kesalahan self-test; dan sebuah additional sense
code qualifier yang memberitahukan kesalahan secara lebih mendalam dan
mendetil, seperti parameter yang error.

7.12 Struktur Data Kernel

Kernel membutuhkan informasi keadaan tentang penggunakan komponen


M/K. Kernel menggunakan banyak struktur yang mirip untuk melacak koneksi
jaringan, komunikasi perangkat karakter, dan aktivitas M/K lainnya.

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.

Beberapa sistem operasi bahkan menggunakan metode object oriented secara


lebih ekstensif. Sebagai contoh, Windows NT menggunakan implementasi
message-passing untuk M/K. Sebuah permintaan I/O akan dikonversikan ke
sebuah pesan yang dikirim melalui kernel kepada M/K manager dan kemudian
ke device driver, yang masing-masing dapat mengubah isi pesan. Untuk output,
isi message adalah data yang akan ditulis. Untuk input, message berisikan
buffer untuk menerima data. Pendekatan message-passing ini dapat menambah

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.

Kesimpulannya, subsistem M/K mengkoordinasi kumpulan-kumpulan service


yang banyak sekali, yang tersedia dari aplikasi maupun bagian lain dari kernel.
Subsistem M/K mengawasi:

1. Managemen nama untuk berkas dan perangkat.


2. Kontrol akses untuk berkas dan perangkat.
3. Kontrol operasi, contoh: model yang tidak dapat dikenali.
4. Alokasi tempat sistem berkas.
5. Alokasi perangkat.
6. Buffering, caching, spooling.
7. Penjadualan M/K
8. Mengawasi status perangkat, error handling, dan kesalahan dalam
recovery.
9. Konfigurasi dan utilisasi driver device

7.13 Penanganan Permintaan M/K

Di bagian sebelumnya, kita mendeskripsikan handshaking antara device driver


dan pengendali perangkat, tapi kita tidak menjelaskan bagaimana Sistem
Operasi menyambungkan permintaan aplikasi untuk menyiapkan jaringan
menuju sektor disk yang spesifik.

Sistem Operasi yang modern mendapatkan fleksibilitas yang signifikan dari


tahapan-tahapan tabel lookup di jalur diantara permintaan dan pengendali
perangkat physical. Kita dapat mengenalkan perangkat dan driver baru ke
komputer tanpa harus meng-compile ulang kernelnya. Sebagai fakta, ada
beberapa sistem operasi yang mampu untuk me-load device drivers yang
diinginkan. Pada waktu boot, sistem mula-mula meminta bus perangkat keras
untuk menentukan perangkat apa yang ada, kemudian sistem me-load ke
dalam driver yang sesuai; baik sesegera mungkin, maupun ketika diperlukan
oleh sebuah permintaan M/K.

Sistem V UNIX mempunyai mekanisme yang menarik, yang disebut streams,


yang membolehkan aplikasi untuk men-assemble pipeline dari kode driver
secara dinamis. Sebuah stream adalah sebuah koneksi full duplex antara sebuah
100 Sistem Operasi
device driver dan sebuah proses user-level. Stream terdiri atas sebuah stream
head yang merupakan antarmuka dengan user process, sebuah driver end yang
mengontrol perangkat, dan nol atau lebih stream modules di antara mereka.
Modules dapat didorong ke stream untuk menambah fungsionalitas di sebuah
layered fashion. Sebagai gambaran sederhana, sebuah proses dapat membuka
sebuah alat port serial melalui sebuah stream, dan dapat mendorong ke sebuah
modul untuk memegang edit input. Stream dapat digunakan untuk interproses
dan komunikasi jaringan. Faktanya, di Sistem V, mekanisme soket
diimplementasikan dengan stream.

Berikut dideskripsikan sebuah lifecycle yang tipikal dari sebuah permintaan


pembacaan blok:

1. Sebuah proses mengeluarkan sebuah blocking read system call ke


sebuah berkas deskriptor dari berkas yang telah dibuka sebelumnya.
2. Kode system-call di kernel mengecek parameter untuk kebenaran.
Dalam kasus input, jika data telah siap di buffer cache, data akan
dikembalikan ke proses dan permintaan M/K diselesaikan.
3. Jika data tidak berada dalam buffer cache, sebuah physical M/K akan
bekerja, sehingga proses akan dikeluarkan dari antrian jalan (run
queue) dan diletakkan di antrian tunggu (wait queue) untuk alat, dan
permintaan M/K pun dijadualkan. Pada akhirnya, subsistem M/K
mengirimkan permintaan ke device driver. Bergantung pada sistem
operasi, permintaan dikirimkan melalui call subrutin atau melalui
pesan in-kernel.
4. Device driver mengalokasikan ruang buffer pada kernel untuk
menerima data, dan menjadualkan M/K. Pada akhirnya, driver
mengirim perintah ke pengendali perangkat dengan menulis ke
register device control.
5. Pengendali perangkat mengoperasikan perangkat keras perangkat
untuk melakukan transfer data.
6. Driver dapat menerima status dan data, atau dapat menyiapkan
transfer DMA ke memori kernel. Kita mengasumsikan bahwa
transfer diatur oleh sebuah DMA controller, yang menggunakan
interupsi ketika transfer selesai.
7. Interrupt handler yang sesuai menerima interupsi melalui tabel
vektor-interupsi, menyimpan sejumlah data yang dibutuhkan,
menandai device driver, dan kembali dari interupsi.

Sistem Operasi 101


8. Device driver menerima tanda, menganalisa permintaan M/K mana
yang telah diselesaikan, menganalisa status permintaan, dan menandai
subsistem M/K kernel yang permintaannya telah terselesaikan.
9. Kernel mentransfer data atau mengembalikan kode ke ruang alamat
dari proses permintaan, dan memindahkan proses dari antrian
tunggu kembali ke antrian siap.

Proses tidak diblok ketika dipindahkan ke antrian siap. Ketika penjadual


(scheduler) mengembalikan proses ke CPU, proses meneruskan eksekusi pada
penyelesaian dari system call.

7.14 I/O Streams

I/O stream adalah suatu mekanisme pengiriman data secara bertahap dan
terus menerus melalui suatu aliran data dari proses ke peranti (begitu pula
sebaliknya).

I/O Stream terdiri dari:

1. stream head yang berhubungan langsung dengan proses.


2. driver ends yang mengatur peranti-peranti
3. stream modules yang berada di antara stream head dan driver end,
yang bertugas menyampaikan data ke driver end melalui write queue,
maupun menyampaikan data ke proses melalui read queue dengan
cara message passing.

Untuk memasukkan ke dalam stream digunakan ioctl() system call, sedangkan


untuk menuliskan data ke peranti digunakan write()/ putmsg() system calls, dan
untuk membaca data dari peranti digunakan read()/ getmsg() system calls.

102 Sistem Operasi


Gambar 7-6 Struktur Stream

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.

Walaupun komputer modern dapat menangani beribu-ribu interupsi per


detik, namun penanganan interupsi adalah pekerjaan yang sulit. Setiap
interupsi mengakibatkan sistem melakukan perubahan status, mengeksekusi
interrupt handler lalu mengembalikan statusnya kembali. M/K yang terprogram
dapat lebih efisien dibanding interrupt-driven I/O, jika waktu cycle yang
dibutuhkan untuk busy-waiting tidak berlebihan. M/K yang sudah selesai
biasanya meng-unblock sebuah proses lalu membawanya ke full overhead of
context switch.

Sistem Operasi 103


Network traffic juga dapat menyebabkan high context-switch rate. Coba
diperhatikan, misalnya sebuah remote login dari sebuah mesin ke mesin
lainnya. Setiap karakter yang diketikkan pada local machine harus dikirim ke
remote machine. Pada local machine karakter akan diketikkan, lalu keyboard
interrupt dibuat, dan karakter melewati interrupt handler menuju device-driver
lalu ke kernel, setelah itu ke proses. Proses memanggil network I/O system call
untuk mengirim karakter ke remote machine. Karakter lalu melewati local
kernel, menuju ke lapisan-lapisan network yang membuat paket network, lalu
ke network device driver. Network device driver mengirim paket itu ke network
controller, yang mengirim karakter dan membuat interupsi. Interupsi kemudian
dikembalikan ke kernel supaya I/O system call dapat selesai.

Sekarang remote system's network hardware sudah menerima paket, dan


interupsi dibuat. Karakter di-unpack dari network protocol dan dikirim ke
network daemon yang sesuai. Network daemon mengidentifikasi remote login
session mana yang terlibat, dan mengirim paket ke subdaemon yang sesuai
untuk session itu. Melalui alur ini, ada context switch dan state switch (lihat
Gambar, “Gambar Komunikasi Interkomputer”). Biasanya, penerima
mengirim kembali karakter ke pengirim.

Gambar 7-7 Gambar Komunikasi Interkomputer

Gambar ini diadaptasi dari [Silberschatz2002, halaman 484].

Developer Solaris mengimplementasikan kembali telnet daemon


menggunakan kernel-thread untuk menghilangkan context switch yang terlibat
dalam pemindahan karakter dari daemon ke kernel. Sun memperkirakan
bahwa perkembangan ini akan menambah jumlah maksimum network logins
dari beberapa ratus hingga beberapa ribu (pada server besar).

104 Sistem Operasi


Sistem lain menggunakan front-end processor yang terpisah untuk terminal
M/K, supaya mengurangi beban interupsi pada main CPU. Misalnya, sebuah
terminal concentrator dapat mengirim sinyal secara bersamaan dari beratus-
ratus terminal ke satu port di large computer. Sebuah I/O channel adalah
sebuah CPU yang memiliki tujuan khusus yang ditemukan pada mainframe dan
pada sistem high-end lainnya. Kegunaan dari I/O channel adalah untuk meng-
offload I/O work dari main CPU. Prinsipnya adalah channel tersebut menjaga
supaya lalu lintas data lancar, sehingga main CPU dapat bebas memproses
data. Seperti device controller dan DMA controller yang ada pada smaller
computer, sebuah channel dapat memproses program-program yang umum
dan kompleks, jadi channel dapat digunakan untuk workload tertentu.

Kita dapat menggunakan beberapa prinsip untuk menambah efisiensi M/K:

1. Mengurangi context switch.


2. Mengurangi jumlah pengsalinan data dalam memori sewaktu
pengiriman antara peranti dan aplikasi.
3. Mengurangi jumlah interupsi dengan menggunakan transfer besar-
besaran, smart controller, dan polling (jika busy-waiting dapat
diminimalisir).
4. Menambah konkurensi dengan menggunakan pengendali atau channel
DMA yang sudah diketahui untuk meng-offload kopi data sederhana
dari CPU.
5. Memindahkan processing primitives ke perangkat keras, supaya
operasi pada device controller konkuren dengan CPU dan operasi bus.
6. Keseimbangan antara CPU, memory subsystem, bus dan kinerja M/K,
karena sebuah overload pada salah satu area akan menyebabkan
keterlambatan pada yang lain.

Kompleksitas peranti berbeda-beda, misalnya mouse. Mouse adalah peranti


yang sederhana. Pergerakan mouse dan button click diubah menjadi nilai
numerik yang dikirim dari perangkat keras (melalui mouse device driver)
menuju aplikasinya. Kebalikan dari mouse, fungsionalitas yang disediakan NT
disk device driver sangatlah kompleks. NT disk device driver tidak hanya
mengatur individual disk, tapi juga mengimplementasikan RAID array. Untuk
dapat melakukannya, NT disk device driver mengubah read atau pun write
request dari aplikasi menjadi coordinated set of disk I/O operations. Terlebih lagi,
NT disk device driver mengimplementasikan penanganan error dan algoritma
data-recovery, lalu mengambil langkah-langkah untuk mengoptimalkan kinerja

Sistem Operasi 105


disk, karena kinerja penyimpanan sekunder adalah hal penting untuk
keseluruhan kinerja sistem.

Kapan fungsionalitas M/K dapat diimplementasikan? Pada device hardware,


device driver, atau pada aplikasi perangkat lunak?

Mula-mula kita implementasikan eksperimen algoritma M/K pada application


level, karena application code lebih fleksibel, dan application bug tidak membuat
sistem crash. Terlebih lagi dengan mengembangkan kode pada application level,
kita dapat menghindari reboot atau pun reload device driver setiap mengganti
kode. Bagaimana pun juga sebuah implementasi pada application level dapat
tidak efisien, karena overhead of context switch, dan karena aplikasi tidak dapat
menerima kemudahan dari internal kernel data structure dan fungsionalitas
kernel (seperti internal kernel messaging, threading, dan locking yang efisien).

Ketika algoritma application level memperlihatkan kegunaannya, kita dapat


mengimplementasikan kembali kernel, sehingga dapat menambah kinerja.
Akan tetapi, usaha pengembangan sulit dilakukan karena sistem operasi
kernel adalah sistem perangkat lunak yang besar dan kompleks.

Terlebih lagi, dalam pengimplementasian internal kernel harus di-debug secara


hati-hati untuk menghindari data corrupt dan sistem crash.

Kinerja tertinggi dapat didapatkan dengan cara implementasi spesial dalam


perangkat keras, baik dalam peranti atau pun pengendali. Kerugian dari
implementasi perangkat keras termasuk kesulitan dan pengorbanan dari
membuat kemajuan atau dari pembetulan bug, dan bertambahnya development
time (dalam satuan bulan, bukan hari), dan berkurangnya fleksibilitas.

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.

106 Sistem Operasi


Rangkuman

Subsistem kernel M/K menyediakan layanan yang berhubungan


langsung dengan perangkat keras. Layanan Penjadualan M/K mengurutkan
antrian permintaan pada tiap perangkat dengan tujuan untuk meningkatkan
efisiensi dari sistem dan waktu respon rata-rata yang harus dialami oleh
aplikasi.

Ada tiga alasan melakukan layanan Buffering, yaitu menyangkut


perbedaan kecepatan produsen-konsumen, perbedaan ukuran transfer data
dan dukungan copy semantics untuk aplikasi M/K. Fungsi buffering dan caching
memiliki perbedaan dalam hal tujuan. Caching menyimpan salinan data asli
pada area memori dengan tujuan agar bisa diakses lebih cepat, sedangkan
buffering menyalin data asli agar dapat menyimpan satu-satunya informasi
data.

Subsistem M/K mengkoordinasi kumpulan-kumpulan sevice yang


banyak sekali, yang tersedia dari aplikasi atau bagian lain dari kernel.
Penanganan permintaan M/K dilakukan dengan suatu mekanisme yang
dideskripsikan sebagai sebuah life cycle.

Layanan I/O Streams menggunakan suatu mekanisme pengiriman


data secara bertahap dan terus menerus melalui suatu aliran data dari piranti
ke proses

Sistem Operasi 107


Latihan

1. Apa yang dimaksud dengan DMA dan RAID


2. Jelaskan mekanisme dasar interupsi
3. Sebutkan dan jelaskan teknik pemrograman I/O yang anda ketahui
4. Apa yang dimaksud dengan buffer dan buffering
5. Apa yang dimaksud dengan kernel

108 Sistem Operasi


8 Manajemen Disk

Overview

Sebelum memulai mempelajari sistem operasi penting bagi kita untuk


mengetahui komponen-komponen yang menjadi bagian dari sebuah disk
disertai cara kerjanya. Hal ini disebabkan nantinya disk bekerja untuk
mengatur komponen-komponen tersebut.

Tujuan

1. Mahasiswa mengetahui struktur dari disk


2. Mahasiswa mengetahui penjadwalan yang terjadi pada suatu disk

Sistem Operasi 109


8.1 Struktur Disk

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).

110 Sistem Operasi


CAV memungkinkan aliran data yang konstan karena kepadatan bit dari zona
terdalam ke zona terluar semakin berkurang, sehingga dengan kecepatan
rotasi yang konstan diperoleh aliran data yang konstan.

8.2 Penjadwalan Disk

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:

1. Apakah operasi input atau output.


2. Alamat disk untuk proses tersebut.
3. Alamat memori untuk proses tersebut
4. Jumlah bytes yang akan ditransfer

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.

Sistem Operasi 111


8.3 Macam-macam Penjadwalan Disk

8.3.1 Penjadwalan FCFS

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.

Dari contoh diatas, kita dapat melihat permasalahan dengan menggunakan


penjadualan jenis ini yaitu pergerakan dari 78 ke 48 dan kembali lagi ke 88.
Jika permintaan terhadap silinder 88 dapat dilayani setelah permintaan 78,
setelah selesai baru melayani permintaan 48, maka pergerakan total head
dapat dikurangi, sehingga dengan demikian pendayagunaan akan meningkat.

Gambar 8-1 Penjadwalan FCFS (Gambar ini diadaptasi dari


[Silberschatz2002, halaman 494].)

112 Sistem Operasi


8.3.2 Penjadwalan SSTF

Shortest-Seek-Time-First (SSTF) merupakan algoritma yang melayani permintaan


berdasarkan waktu pencarian atau waktu pencarian paling kecil dari posisi
head terakhir. Karena waktu pencarian meningkat seiring dengan jumlah
silinder yang dilewati oleh head, maka SSTF memilih permintaan yang paling
dekat posisinya di disk terhadap posisi head terakhir. Pergerakan dari contoh
diatas yaitu 50 ke 48, lalu ke 45, 37, 25, 20, 10, 5, 56, 60, 70, 78, 88.

Perhatikan contoh antrian permintaan yang kita sajikan pada penjadualan


FCFS, permintaan paling dekat dengan posisi head saat itu (50) adalah silinder
48. Jika kita penuhi permintaan 48, maka yang terdekat berikutnya adalah
silinder 45. Dari 45, silinder 37 letaknya lebih dekat ke 45 dibandingkan
silinder 56,jadi 37 dilayani duluan. Selanjutnya, dilanjutkan ke silinder 25, 20,
10, 5, 56, 60, 70, 78 dan terakhir adalah 88.

Metode penjadualan ini hanya menghasilkan total pergerakan head sebesar


128 silinder -- kira-kira sepertiga dari yang dihasilkan penjadualan FCFS.
Algoritma SSTF ini memberikan peningkatan yang cukup signifikan dalam hal
pendayagunaan atau kinerja sistem.

Penjadualan SSTF merupakan salah satu bentuk dari penjadualan shortest-job-


first (SJF), dan karena itu maka penjadualan SSTF juga dapat mengakibatkan
starvation pada suatu saat tertentu. Hal ini dapat terjadi bila ada permintaan
untuk mengakses bagian yang berada di silinder terdalam. Jika kemudian
berdatangan lagi permintaan-permintaan yang letaknya lebih dekat dengan
permintaan terakhir yang dilayani maka permintaan dari silinder terluar akan
menunggu lama dan sebaliknya. Walaupun algoritma SSTF jauh lebih cepat
dibandingkan dengan FCFS, namun untuk keadilan layanan SSTF lebih buruk
dari penjadualan FCFS.

Sistem Operasi 113


Gambar 8-2 Penjadwalan SSTF .Gambar ini diadaptasi dari
[Silberschatz2002, halaman 494]

8.3.3 Penjadwalan SCAN

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

114 Sistem Operasi


dapat dilayani berikutnya adalah yang terdekat dengan silinder 50, tetapi
masih berada di depan arah geraknya, yaitu: silinder 56. Begitu seterusnya disk
arm melayani permintaan yang berada di depannya sampai disk arm mencapai
silinder 99 dan berbalik arah gerak menuju ke silinder 0. Maka setelah disk
arm berbalik arah gerak, permintaan di silinder 45 baru dapat dilayani.

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.

Dari contoh Gambar, “Penjadualan SCAN” terlihat salah satu kelemahan


algoritma SCAN: permintaan di silinder 88 sebenarnya sudah merupakan
permintaan yang paling ujung, tetapi disk arm harus bergerak sampai silinder
99 dulu, baru kemudian dapat berbalik arah geraknya. Bukankah hal seperti
itu sangat tidak efisien? Mengapa disk arm tidak langsung berbalik arah
geraknya sesudah sampai di silinder 88? Kelemahan ini akan dijawab oleh
algoritma LOOK yang akan dibahas pada sub-bab berikutnya.

Kelemahan lain dari algoritma SCAN yaitu dapat menyebabkan terjadinya


starvation. Begitu disk arm berbalik arah geraknya dari silinder 99, maka
silinder yang berada dekat di depan arah gerak disk arm baru saja dilayani,
sedangkan silinder-silinder yang dekat dengan silinder 0 sudah lama menunggu
untuk dilayani. Bila kemudian bermunculan permintaan-permintaan baru yang
dekat dengan silinder 99 lagi, maka permintaan-permintaan baru itulah yang
akan dilayani, sehingga permintaan-permintaan yang dekat dengan silinder 0
akan semakin "lapar". Karena kelemahan yang kedua inilah muncul modifikasi
dari algoritma SCAN, yaitu C-SCAN yang akan kita bahas berikutnya.

Sistem Operasi 115


Gambar 8-3 Penjadwalan SCAN

8.3.4 Penjadwalan C-SCAN

Algoritma Circular SCAN (C-SCAN) merupakan hasil modifikasi algoritma


SCAN untuk mengurangi kemungkinan starvation yang dapat terjadi pada
SCAN. Perbedaan C-SCAN dengan SCAN hanya pada bagaimana pergerakan
disk arm setelah sampai ke salah satu silinder paling ujung. Pada algoritma
SCAN, disk arm akan berbalik arah menuju ke silinder paling ujung yang lain
sambil tetap melayani permintaan yang berada di depan arah pergerakan disk
arm, sedangkan pada algoritma C-SCAN sesudah mencapai silinder paling
ujung, maka disk arm akan bergerak cepat ke silinder paling ujung lainnya
tanpa melayani permintaan.

Contoh: (lihat Gambar, “Penjadualan C-SCAN”) Setelah sampai di silinder 99,


disk arm akan bergerak dengan cepat ke silinder 0 tanpa melayani permintaan
selama dalam perjalanannya. Kemudian setelah sampai di silinder 0, baru disk
arm akan bergerak ke arah silinder 99 lagi sambil melayani permintaan.

Dengan pergerakan yang seperti demikian, seolah-olah disk arm hanya


bergerak 1 arah dalam melayani permintaan. Tetapi dalam algoritma C-SCAN
masih terkandung kelemahan yang juga dimiliki oleh algoritma SCAN, yaitu
disk arm harus sampai di silinder 99 atau silinder 0 terlebih dahulu sebelum

116 Sistem Operasi


dapat berbalik arah. Untuk itulah dibuat algoritma LOOK yang akan kita
bahas berikutnya.

Gambar 8-4 Penjadwalan C-SCAN

8.3.5 Penjadwalan LOOK

Sesuai dengan namanya, algoritma ini seolah-olah seperti dapat "melihat".


Algoritma ini memperbaiki kelemahan SCAN dan C-SCAN dengan cara
melihat apakah di depan arah pergerakannya masih ada permintaan lagi atau
tidak. Bila tidak ada lagi permintaan di depannya, disk arm dapat langsung
berbalik arah geraknya. Penjadualan LOOK seperti SCAN yang lebih "pintar".

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.

Kelemahan algoritma ini sama seperti kelemahan algoritma SCAN bahwa


dapat terjadi starvation untuk situasi yang sama pula dengan yang
menyebabkan terjadinya starvationpada algoritma SCAN. Oleh karena itulah
dibuat lagi suatu algoritma yang lebih baik untuk memperbaiki algoritma ini,
yaitu: C-LOOK.

Sistem Operasi 117


Gambar 8-5 Penjadwalan LOOK

8.3.6 Penjadwalan C-LOOK


Algoritma ini berhasil memperbaiki kelemahan-kelemahan algoritma SCAN,
C-SCAN, dan LOOK. Algoritma C-LOOK memperbaiki kelemahan LOOK
sama seperti algoritma C-SCAN memperbaiki kelemahan SCAN, yaitu pada
cara pergerakan disk arm setelah mencapai silinder yang paling ujung.

Gambar 8-6 Penjadwalan C-LOOK

118 Sistem Operasi


Contoh: (lihat Gambar, “Penjadualan C-LOOK”) dengan memiliki
kemampuan "melihat" algoritma LOOK, setelah melayani permintaan di
silinder 88, disk arm akan bergerak dengan cepat ke silinder 5, yaitu
permintaan di silinder yang terletak paling dekat dengan silinder 0.

Dengan cara pergerakan disk arm yang mengadaptasi keunggulan dari C-


SCAN dan LOOK, algoritma ini dapat mengurangi terjadinya starvation,
dengan tetap menjaga efektifitas pergerakan disk arm.

8.4 Pemilihan Algoritma Penjadwalan Disk

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.

Dengan algoritma penjadualan yang mana pun, kinerja sistem sangat


tergantung pada jumlah dan tipe permintaan. Sebagai contoh, misalnya kita
hanya memiliki satu permintaan, maka semua algoritma penjadualan akan
dipaksa bertindak sama. Sedangkan permintaan sangat dipengaruhi oleh
metode penempatan berkas. Karena kerumitan inilah, maka algoritma
penjadualan disk harus ditulis dalam modul terpisah dari sistem operasi, jadi
dapat saling mengganti dengan algoritma lain jika diperlukan.

Namun perlu diingat bahwa algoritma-algoritma di atas hanya


mempertimbangkan jarak pencarian, sedangkan untuk disk modern, rotational
latency dari disk sangat menentukan. Tetapi sangatlah sulit jika sistem operasi
harus memperhitungkan algoritma untuk mengurangi rotational latency karena
disk modern tidak memperlihatkan lokasi fisik dari blok-blok logikanya. Oleh
karena itu para produsen disk telah mengurangi masalah ini dengan
mengimplementasikan algoritma penjadualan disk di dalam pengendali
perangkat keras, sehingga kalau hanya kinerja M/K yang diperhatikan, maka
sistem operasi dapat menyerahkan algoritma penjadualan disk pada perangkat
keras itu sendiri.

Sistem Operasi 119


Rangkuman

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:

1. Constant Linear Velocity (CLV)

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.

2. Constant Angular Velocity (CAV)

Kepadatan bit dari zona terdalam ke zona terluar semakin


berkurang, kecepatan rotasi konstan sehingga aliran data pun
konstan.

Penjadualan disk sangat penting dalam hal meningkatkan efisiensi


penggunaan perangkat keras. Efisiensi penggunaan disk terkait
dengan kecepatan waktu akses dan besarnya disk bandwith. Untuk
meningkatkan efisiensi tersebut dibutuhkan algoritma penjadualan
yang tepat dalam penggunaan disk.

Terdapat berbagai macam algoritma penjadualan disk, yaitu:

1. FCFS (First Come First Serve)


2. SSTF (Shortest-Seek-Time-First)
3. SCAN
4. C-SCAN (Circular SCAN)
5. LOOK
6. C-LOOK (Circular LOOK)

120 Sistem Operasi


Latihan

1. Sebutkan dan jelaskan macam-macam penjadwalan disk


2. Apa yang dimaksud metode CAV (Constant Angular Velocity)
3. Yang dimaksud dengan array?
4. Bagaimana memilih metode penjadwalan yang terbaik.

Sistem Operasi 121


9 Manajemen File

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

1. Mahasiswa mengetahui apa yang disebut dengan File


2. Mahasiswa mengetahui manajemen file dalam sistem berkas.

122 Sistem Operasi


9.1 Pendahuluan

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

Suatu database merupakan data-data yang berelasi atau berkaitan untuk


membentuk suatu entitas tertentu. Untuk mengetahui suatu database itu kita
dibantu dengan adanya Database Management System (DBMS) dan File
Management System (FMS).

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.

DBMS dalam berhubungan dengan level fisik berinteraksi dengan sistem


pengelolaan file yaitu File Management System (FMS) untuk transformasi
informasi level logik ke level fisik.

Sistem Operasi 123


Implementasi dari DBMS adalah :

1. File Data
2. Kamus Data
3. File Indeks
4. Data Statistik

9.3 Konsep Berkas

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:

o Text file: yaitu urutan dari karakter-karakter yang diatur menjadi


barisan dan mungkin halaman.
o Source file: yaitu urutan dari berbagai subroutine dan fungsi yang
masing-masing kemudian diatur sebagai deklarasi-deklarasi diikuti
oleh pernyataan-pernyataan yang dapat diexecute.
o Object file: yaitu urutan dari byte-byte yang diatur menjadi blok-blok
yang dapat dipahami oleh penghubung system.

Executable file: adalah kumpulan dari bagian-bagian kode yang dapat dibawa ke
memori dan dijalankan oleh loader.

9.4 Atribut Berkas

Selain nama dan data, sebuah berkas dikaitkan dengan informasi-informasi


tertentu yang juga penting untuk dilihat pengguna, seperti kapan berkas itu
dibuat, ukuran berkas, dan lain-lain. Kita akan sebut informasi-informasi
ekstra ini atribut. Setiap sistem mempunyai sistem atribusi yang berbeda-
beda, namun pada dasarnya memiliki atribut-atribut dasar seperti berikut ini:

o Nama: nama berkas simbolik ini adalah informasi satu-satunya yang


disimpan dalam format yang dapat dibaca oleh pengguna.
o Identifier: tanda unik ini yang biasanya merupakan sebuah angka,
mengenali berkas didalam sebuah sistem berkas; tidak dapat dibaca
oleh pengguna.

124 Sistem Operasi


o Jenis: informasi ini diperlukan untuk sistem-sistem yang mendukung
jenis berkas yang berbeda.
o Lokasi: informasi ini adalah sebuah penunjuk pada sebuah device dan
pada lokasi berkas pada device tersebut.
o Ukuran: ukuran dari sebuah berkas (dalam bytes, words, atau
blocks) dan mungkin ukuran maksimum dimasukkan dalam atribut ini
juga.
o Proteksi: informasi yang menentukan siapa yang dapat melakukan
read, write, execute, dan lainnya.

Waktu dan identifikasi pengguna: informasi ini dapat disimpan untuk


pembuatan berkas, modifikasi terakhir, dan penggunaan terakhir. Data-data
ini dapat berguna untuk proteksi, keamanan, dan monitoring penggunaan.

9.5 Jenis Berkas

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.

Cara yang paling umum untuk mengimplementasikan jenis berkas tersebut


adalah dengan memasukkan jenis berkas tersebut ke dalam nama berkas.
Nama berkas dibagi menjadi dua bagian. Bagian pertama adalah nama dari
berkas tersebut, dan yang kedua, atau biasa disebut extention adalah jenis dari
berkas tersebut. Kedua nama ini biasanya dipisahkan dengan tanda '.', contoh:
berkas.txt.

9.6 Operasi Berkas

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:

Sistem Operasi 125


o Membuat Berkas (Create):
Kita perlu dua langkah untuk membuat suatu berkas. Pertama, kita
harus temukan tempat didalam sistem berkas. Kedua, sebuah entri
untuk berkas yang baru harus dibuat dalam direktori. Entri dalam
direktori tersebut merekam nama dari berkas dan lokasinya dalam
sistem berkas.
o Menulis sebuah berkas (Write):
Untuk menulis sebuah berkas, kita membuat sebuah system call yang
menyebutkan nama berkas dan informasi yang akan di-nulis kedalam
berkas.
o Membaca Sebuah berkas (Read):
Untuk membaca sebuah berkas menggunakan sebuah system call
yang menyebut nama berkas yang dimana dalam blok memori
berikutnya dari sebuah berkas harus diposisikan.
o Memposisikan Sebuah Berkas (Reposition):
Direktori dicari untuk entri yang sesuai dan current-file-position diberi
sebuah nilai. Operasi ini di dalam berkas tidak perlu melibatkan M/K,
selain itu juga diketahui sebagai file seek.
o Menghapus Berkas (Delete):
Untuk menghapus sebuah berkas kita mencari dalam direktori untuk
nama berkas tersebut. Setelah ditemukan, kita melepaskan semua
spasi berkas sehingga dapat digunakan kembali oleh berkas-berkas
lainnya dan menghapus entry direktori.
o Menghapus Sebagian Isi Berkas (Truncate):
User mungkin mau menghapus isi dari sebuah berkas, namun
menyimpan atributnya. Daripada memaksa pengguna untuk
menghapus berkas tersebut dan membuatnya kembali, fungsi ini
tidak akan mengganti atribut, kecuali panjang berkas dan
mendefinisikan ulang panjang berkas tersebut menjadi nol.
Keenam operasi diatas merupakan operasi-operasi dasar dari sebuah berkas
yang nantinya dapat dikombinasikan untuk membentuk operasi-operasi baru
lainnya. Contohnya apabila kita ingin menyalin sebuah berkas, maka kita
memakai operasi create untuk membuat berkas baru, read untuk membaca
berkas yang lama, dan write untuk menulisnya pada berkas yang baru.

9.7 Struktur Berkas

Berkas dapat di struktur dalam beberapa cara. Cara yang pertama adalah
sebuah urutan bytes yang tidak terstruktur. Akibatnya sistem operasi tidak

126 Sistem Operasi


tahu atau peduli apa yang ada dalam berkas, yang dilihatnya hanya bytes. Ini
menyediakan fleksibilitas yang maksimum. User dapat menaruh apa pun yang
mereka mau dalam berkas, dan sistem operasi tidak membantu, namun tidak
juga menghalangi.

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.

9.8 Metode Akses

Berkas menyimpan informasi. Apabila sedang digunakan informasi ini harus


diakses dan dibaca melalui memori komputer. Informasi dalam berkas dapat
diakses dengan beberapa cara. Berikut adalah beberapa caranya:

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.

Sistem Operasi 127


9.9 Struktur Penyimpanan

Terdapat konsep-konsep pada penyimpanan secara fisik di Secondary Storage:


1. File
File
2. Record
3. Field

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

128 Sistem Operasi


4. File mempunyai parameter user dan direktori
Dalam sistem Multiuser, tiap user memiliki direktori
sendiri.
- Akses terhadap File
1. Pengambilan record
2. Pembaruan record -> update, delete record
3. Penambahan record ke file
4. Reorganisasi file -> rekonstruksi file u/ meningkatkan
kinerjanya
- Pengelompokan File
 Berdasarkan kegiatan :
1. Master File (File induk yang menjadi acuan utama
proses)
a. Tak boleh diperbarui selama proses
b. Selalu digunakan/diacu di siklus proses
c. Berisi info acuan terdiri dari sifat statis (Nama,
NIP) dan dinamis (Nilai ujian)
2. Transaction File ( File terbentuk akibat terjadinya
transaksi )
a. Dapat diperbarui ( sering terjadi)
b. Bersifat Temporary
c. Digunakan untuk memperbarui Master File
3. History File ( File hasil pengolahan masa lalu )
a. File tidak aktif selama kurun waktu tertentu
b. Data tersimpan secara kompak/padat
c. Kecepatan akses tidak terlalu penting

Sistem Operasi 129


4. Reference File ( File berisi data acuan )
-> Relatif bersifat statis (jarang diperbarui)
 Berdasarkan Kebutuhan Pemrosesan Data
1. File I/O
2. File Kerja (temporary) -> transaction file
3. Dump File, untuk security
4. File Pustaka. Untuk penunjang proses

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.13 Organisasi File dan Akses

9.13.1 Kriteria Umum


Kriteria umum kinerja struktur file (organizing data) menurut
Wiederhold adl:
1. Redundansi yang kecil (Little Redundancy )
2. Pengaksesan yang cepat ( Rapid Acces )
3. Kemudahan dalam memperbarui (Easy of update )
4. Pemeliharaan yang sederhana ( Simple maintenance )
5. Kehandalan yang tinggi (High Reliability )
Dalam memenuhi 1 kriteria dapat mengorbankan kriteria lain dan
kriteria-kriteria tersebut dapat saling bertentangan.
Contoh :
Redundansi yang besar , diperlukan akses yang cepat tapi berakibat operasi
update lebih rumit dan pemeliharaan lebih kompleks.

130 Sistem Operasi


9.13.2 Metriks
Merupakan suatu alat ukur (aturan atau rule) untuk mengevaluasi suatu
struktur file agar memenuhi tujuan/hasil harapan yang diinginkan.
Rule-rule tersebut adalah :
1. Simplicity (Kesederhanaan)
Jika sesuatu memp. alternatif dan semua yang lain memp tujuan
yang sama, harus memilih sesuatu itu yang paling sederhana.
Walaupun hal ini terlihat jelas, kadang-kadang mengabaikan
ketika suatu pekerjaan dilakukan dalam keadaan terburu-buru.
2. Reliability (Kehandalan)
Berhubungan dengan fungsi-fungsi dari sesuatu dan yang
berkenaan dengan pengeluaran saat terjadi kegagalan
pemakaian. Dalam pemilihan sebuah struktur file atau teknik
proses, kita ingin siap yang bekerja di bawah kendali keadaan.
Tapi kita biasanya tak dapat menjamin kehandalan atau
kebenaran program. Kita membuat pemilihan kehandalan yang
setaraf dgn aplikasi.
3. Programmability (Pemrograman)
Suatu program harus dapat memprogram algoritma proses
dalam sejumlah waktu yang layak. Jika tak dapat memenuhi, pilih
teknik lain.
4. Maintanability (Pemeliharaan)
Sewaktu teknik diprogram, dapat dimodifikasi atau di-update
secara mudah.
5. Storage Requirements or time complexity
Batasan-batasan penyimpanan yang sudah dibatasi untuk
memilih teknik.
6. Computational or time complexity.
 Performansi merupakan salah satu batasan yang paling
berperan dalam suatu sistem softwaredan suatu
kekurangan adalah penyebab utama dari kegagalan .
 Kompleksitas komputasional dari sebuah algoritma
mengukur berapa waktu proses yang akan dibutuhkan
ketika algoritma itu dijalankan sejumlah data.
Kompleksitas komputasi dan ruang merupakan pengukuran kuantitatif. Yang
berguna untuk melakukan pemilihan struktur file membuat rekayasa
perangkat lunak sebagai Saintis bukan seniman.

Sistem Operasi 131


9.14 Struktur File Dasar
Terdapat 6 struktur file dasar yaitu :
1. Pile
2. Sequential File (SF)
3. Indexed SF
4. Indexed File (File berindeks majemuk)
5. Directed Hashed File
6. Multiring File

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.

132 Sistem Operasi


Rangkuman

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

1. Sebutkan dan jelaskan rule yang harus dilaksanakan dalam untuk


mengevaluasi suatu struktur file agar memenuhi tujuan/hasil harapan
yang diinginkan?
2. Sebutkan dan jelaskan kriteria umum kinerja suatu struktur file
3. Fungsi dari berkas ?
4. Apa yang dimaksud dengan akses sekuensial dan akses langsung.
5. Sebutkan karakter khusus dari sebuah file

Sistem Operasi 133


10 Direktori

Overview

Beberapa sistem komputer menyimpan banyak sekali berkas-berkas dalam


disk, sehingga diperlukan suatu struktur pengorganisasian data-data agar lebih
mudah diatur. Makah hal itu yang sering disebut dengan direktori

Tujuan

1. Mahasiswa mengetahui operasi – operasi di dalam direktori


2. Mahasiswa mengetahui struktur dari direktori.

134 Sistem Operasi


10.1 Operasi Direktori

Silberschatz, Galvin dan Gagne mengkategorikan operasi-operasi terhadap


direktori sebagai berikut:

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.

Sedangkan Tanenbaum juga menambahkan hal-hal berikut sebagai operasi


yang dapat dilakukan terhadap direktori tersebut:

o Membuka direktori
o Menutup direktori

Sistem Operasi 135


o Menambah direktori
o Mengubah nama direktori
o Menghubungkan berkas-berkas di direktori berbeda.
o Menghapus hubungan berkas-berkas di direktori berbeda.

10.2 Jenis Direktori

10.2.1 Direktori Satu Tingkat


Direktori Satu Tingkat (Single Level Directory) ini merupakan struktur direktori
yang paling sederhana. Semua berkas disimpan dalam direktori yang sama.

Gambar 10-1 Direktori satu tingkat

Direktori satu tingkat memiliki keterbatasan, yaitu bila berkas bertambah


banyak atau bila sistem memiliki lebih dari satu pengguna. Hal ini disebabkan
karena tiap berkas harus memiliki nama yang unik.

10.2.2 Direktori Dua Tingkat

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

136 Sistem Operasi


nama pengguna dan setiap entri menunjuk pada UFD pengguna tersebut.
Maka, pengguna boleh memiliki nama berkas yang sama dengan berkas lain.

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

Gambar 10-2 Direktori Dua Tingkat

10.2.3 Direktori dengan Struktur Tree


Pada direktori dengan Struktur Tree (Tree-Structured Directory), setiap
pengguna dapat membuat subdirektori sendiri dan mengorganisasikan berkas-
berkasnya. Dalam penggunaan normal, tiap pengguna memiliki apa yang
disebut direktori saat ini. Direktori saat ini mengandung berkas-berkas yang
baru-baru ini digunakan oleh pengguna.
Terdapat dua istilah, path (lintasan) relatif dan lintasan mutlak. Lintasan relatif
adalah lintasan yang dimulai dari direktori saat ini, sedangkan lintasan mutlak
adalah path yang dimulai dari root directory.

Sistem Operasi 137


Gambar 10-3 Tree Structured Directory

10.2.4 Direktori dengan Struktur Graf Asiklik


Direktori dengan struktur tree melarang pembagian berkas/direktori. Oleh
karena itu, struktur graf asiklik (Acyclic-Structured Directory) memperbolehkan
direktori untuk berbagi berkas atau subdirektori. Jika ada berkas yang ingin
diakses oleh dua pengguna atau lebih, maka struktur ini menyediakan fasilitas
sharing.

138 Sistem Operasi


Gambar 10-4 Acyclic-Structured Directory

10.2.5 Direktori dengan Struktur Graf Umum

Masalah yang timbul dalam penggunaan struktur graf asiklik adalah


meyakinkan apakah tidak ada siklus. Bila kita mulai dengan struktur direktori
tingkat dua dan memperbolehkan pengguna untuk membuat subdirektori,
maka kita akan mendapatkan struktur direktori tree. Sangatlah mudah untuk
mempertahankan sifat pohon, akan tetapi, bila kita tambahkan sambungan
pada direktori dengan struktur pohon, maka sifat pohon akan musnah dan
menghasilkan struktur graf sederhana.

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).

Skema ini menyangkut memeriksa seluruh sistem berkas dengan menandai


tiap berkas yang dapat diakses. Kemudian mengumpulkan apa pun yang tidak
ditandai pada tempat yang kosong. Hal ini tentunya dapat menghabiskan
banyak waktu.

Sistem Operasi 139


Gambar 10-5 General Graph Directory

10.3 Record Blocking

10.3.1 Metode Blocking


 Record adalah unit u/ penyimpanan data di level logik atau file
 Ukuran Record (R) terdiri dari Fixed record danVariable Record
 Blocking Factor ( Bfr) adalah jumlah record yang diterapkan
dapat ditampung dalam 1 blok

10.3.2 Macam Metode Blocking


 Berdasar ukuran dan rentangan record, Blocking dibagi 3
metode :
1. Fixed Blocking
 berisi record yang memp panjang tetap
Bfr =  B/R 
Keuntungan :
2. Sederhana
3. Meningkatkan akses acak
Kerugian : Terjadi pemborosan di tiap blok
2. Variable Length Spanned Blocking

140 Sistem Operasi


 berisi record-record yang memp. Panjang variabel. Jika 1
record tak dapat dimuat di 1 blok, sebagian record
disimpan di blok lain

Bfr = (B – P)/( R + P ) ; P = Pointer blok


Keuntungan :
2. Fleksibel bagi user
3. Ukuran Record tak dibatasi ukuran Blok
4. Tak terjadi pemborosan di tiap blok
Kerugian :
1. Sulit diimplementasikan shg sulit dalam pemrograman
2. Mahal dalam operasi pencarian record dan sulit
diperbarui.
3. Variable Length Unspanned Blocking
 Record-record memp. Panjang tak tetap
 Setiap record harus dimuat di satu blok (Tak dipotong-
potong/direntangkan ke blok lain)

Bfr = (B -1/2R)/(R+P)

 Efektifitas Pengaksesan Acak -> ditentukan jumlah data


yang dapat diakses
 Track
1. Penggunaan Track yaitu
IF 1 track = 1 blok THEN panjang track = blok
terbesar yang dimungkinkan
ELSE panjang track = jumlah blok * ukuran
blok/track
2. Ukuran track = bit, byte/ word
 IBG
a. IBG u/ mekanisme penyimpan akses
berikutnya
b. IBG mengurangi kapasitas penyimpanan yang
sebenarnya
c. Blok berukuran kecil meningkatkan jumlah gap
(boros)
 P (Blok Pointer)
 Diidentifikasi o/ perangkat

Sistem Operasi 141


Rangkuman

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

142 Sistem Operasi


11 Implementasi Sistem Berkas

Overview

Disk yang merupakan tempat terdapatnya sistem berkas menyediakan


sebagian besar tempat penyimpanan dimana sistem berkas akan dikelola. Disk
memiliki dua karakteristik penting yang menjadikan disk sebagai media yang
tepat untuk menyimpan berbagai macam berkas.

Tujuan

1. Mahasiswa mengetahui implementasi dari system berkas di dunia nyata


2. Mahasiswa memahami kinerja dari sistem berkas

Sistem Operasi 143


11.1 Struktur Sistem Berkas

Disk yang merupakan tempat terdapatnya sistem berkas menyediakan


sebagian besar tempat penyimpanan dimana sistem berkas akan dikelola. Disk
memiliki dua karakteristik penting yang menjadikan disk sebagai media yang
tepat untuk menyimpan berbagai macam berkas, yaitu:

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.

Gambar 11-1 Disk Organization

144 Sistem Operasi


Untuk meningkatkan efisiensi I/O, pengiriman data antara memori dan disk
dilakukan dalam setiap blok. Setiap blok merupakan satu atau lebih sektor.
Setiap disk memiliki ukuran yang berbeda-beda, biasanya berukuran 512 bytes.

Sistem operasi menyediakan sistem berkas agar data mudah disimpan,


diletakkan dan diambil kembali dengan mudah. Terdapat dua masalah desain
dalam membangun suatu sistem berkas. Masalah pertama adalah definisi dari
sistem berkas. Hal ini mencakup definisi berkas dan atributnya, operasi ke
berkas, dan struktur direktori dalam mengorganisasikan berkas-berkas.
Masalah kedua adalah membuat algoritma dan struktur data yang memetakan
struktur logikal sistem berkas ke tempat penyimpanan sekunder.

Gambar 11-2 Layer File System

Sistem berkas dari sistem operasi yang sudah modern diimplementasikan


dengan menggunakan struktur berlapis. Keuntungan struktur berlapis ini
adalah fleksibilitas yang dimilikinya. Penggunaan dari struktur berlapis ini
memungkinkan adanya implementasi yang lebih dari satu secara bersamaan,
terutama pada I/O Control dan tingkatan organisasi berkas. Hal ini
memungkinkan untuk mendukung lebih dari satu implementasi sistem berkas.

Sistem Operasi 145


Lapisan struktur sistem berkas menghubungkan antara perangkat keras
dengan aplikasi program yang ada, yaitu (dari yang terendah):

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:

1. Application program memanggil sistem berkas dengan system call.


Contoh: read (fd, input, 1024) akan membaca section sebesar 1 Kb
dari disk dan menempatkannya ke variabel input.
2. Diteruskan ke system call interface.
System call merupakan software interrupt. Jadi, interrupt handler sistem
operasi akan memeriksa apakah system call yang menginterupsi.
Interrupt handler ini akan memutuskan bagian dari sistem operasi
yang bertanggung-jawab untuk menangani system call. Interrupt
handler akan meneruskan system call.
3. Diteruskan ke logical file system.
Memasuki lapisan sistem berkas. Lapisan ini menyediakan system call,
operasi yang akan dilakukan dan jenis berkas. Yang perlu ditentukan
selanjutnya adalah file organization module yang akan meneruskan
permintaan ini. File organization module yang akan digunakan
tergantung dari jenis sistem berkas dari berkas yang diminta.

146 Sistem Operasi


Contoh: Misalkan kita menggunakan LINUX dan berkas yang diminta
ada di Windows 95. Lapisan logical file system akan meneruskan
permintaan ke file organization module dari Windows 95.
4. Diteruskan ke file organization module.
File organization module yang mengetahui pengaturan (organisasi)
direktori dan berkas pada disk. Sistem berkas yang berbeda memiliki
organisasi yang berbeda. Windows 95 menggunakan VFAT-32.
Windows NT menggunakan format NTFS. Linux menggunakan
EXT2. Sistem operasi yang paling modern memiliki beberapa file
organization module sehingga dapat membaca format yang berbeda.
Pada contoh di atas, logical file system telah meneruskan permintaan
ke file organization module VFAT32. Modul ini menterjemahkan nama
berkas yang ingin dibaca ke lokasi fisik yang biasanya terdiri dari disk
antarmuka, disk drive, surface, cylinder, track, sector.
5. Diteruskan ke basic file system.
Dengan adanya lokasi fisik, kita dapat memberikan perintah ke
piranti keras yang dibutuhkan. Hal ini merupakan tanggung-jawab
basic file system. Basic file system ini juga memiliki kemampuan
tambahan seperti buffering dan caching.
Contoh: Sektor tertentu yang dipakai untuk memenuhi permintaan
mungkin saja berada dalam buffers atau caches yang diatur oleh basic
file system. Jika terjadi hal seperti ini, maka informasi akan didapatkan
secara otomatis tanpa perlu membaca lagi dari disk.
6. I/O Control
Tingkatan yang paling rendah ini yang memiliki cara untuk
memerintah/memberitahu piranti keras yang diperlukan.

11.2 Kinerja Sistem Berkas

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.

Untuk beberapa tipe akses, contiguous allocation membutuhkan hanya satu


akses untuk mendapatkan sebuah blok disk. Sejak kita dapat dengan mudah
menyimpan alamat inisial dari sebuah berkas di memori, kita dapat
menghitung alamat disk dari blok ke-i (atau blok selanjutnya) dengan cepat
dan membacanya dengan langsung.

Sistem Operasi 147


Untuk linked allocation, kita juga dapat menyimpan alamat dari blok selanjutnya
di memori dan membacanya dengan langsung. Metode ini bagus untuk akses
secara berurutan; untuk akses langsung, bagaimana pun, sebuah akses menuju
blok ke-i harus membutuhkan pembacaan disk ke-i. Masalah ini menunjukkan
mengapa alokasi yang berurutan tidak digunakan untuk aplikasi yang
membutuhkan akses langsung.
Sebagai hasilnya, beberapa sistem mendukung berkas-barkas yang diakses
langsung dengan menggunakan contiguous allocation dan yang diakses
berurutan dengan linked allocation. Di dalam kasus ini, sistem operasi harus
mempunyai struktur data yang tepat dan algoritma untuk mendukung kedua
metode alokasi.
Indexed allocation lebih komplek. Jika blok indeks sudah ada dimemori, akses
dapat dibuat secara langsung. Bagaimana pun, menyimpan blok indeks
tersebut di memori membutuhkan tempat yang dapat ditolerir. Dengan
begitu, kinerja dari indexed allocation tergantung dari struktur indeks, ukuran
file, dan posisi dari blok yang diinginkan.
Beberapa sistem menggabungkan contiguous allocation dengan indexed allocation
dengan menggunakan contiguous allocation untuk berkas-berkas yang kecil
(diatas tiga atau empat berkas), dan secara otomatis mengganti ke indexed
allocation jika berkas bertambah besar.

11.3 Implementasi Pemberkasan

Untuk mengimplementasikan suatu sistem berkas biasanya digunakan


beberapa struktur on-disk dan in-memory. Struktur ini bervariasi tergantung
pada sistem operasi dan sistem berkas, tetapi beberapa prinsip dasar harus
tetap diterapkan. Pada struktur on-disk, sistem berkas mengandung informasi
tentang bagaimana mem-boot sistem operasi yang disimpan, jumlah blok,
jumlah dan lokasi blok yang masih kosong, struktur direktori, dan berkas
individu.

Struktur on-disk:

o Boot Control Block


Informasi yang digunakan untuk menjalankan mesin mulai dari partisi
yang diinginkan untuk menjalankan mesin mulai dari partisi yang
diinginkan. Dalam UPS disebut boot block. Dalam NTFS disebut
partition boot sector.

148 Sistem Operasi


o Partition Block Control
Spesifikasi atau detil-detil dari partisi (jumlah blok dalam partisi,
ukuran blok, ukuran blok, dsb). Dalam UPS disebut superblock.
Dalam NTFS disebut tabel master file.
o Struktur direktori
Mengatur berkas-berkas.
o File Control Block (FCB)
Detil-detil berkas yang spesifik. Di UPS disebut inode. Di NTFS,
informasi ini disimpan di dalam tabel Master File.

Struktur in-memory:

o Tabel Partisi in-memory


Informasi tentang partisi yang di-mount.
o Struktur Direktori in-memory
Menyimpan informasi direktori tentang direktori yang paling sering
diakses.
o Tabel system-wide open-file
menyimpan open count (informasi jumlah proses yang
membuka berkas tsb)
menyimpan atribut berkas (pemilik, proteksi, waktu akses,
dsb), dan lokasi file blocks.
Tabel ini digunakan bersama-sama oleh seluruh proses.
o Tabel per-process open-file
menyimpan pointer ke entri yang benar dalam tabel open- file
menyimpan posisi pointer pada saat itu dalam berkas.
modus akses

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.

Beberapa sistem operasi, termasuk UNIX, memperlakukan berkas sebagai


direktori. Sistem operasi Windows NT mengimplementasi beberapa system
calls untuk berkas dan direktori. Windows NT memperlakukan direktori
sebagai sebuah kesatuan yang berbeda dengan berkas. Logical file system dapat
memanggil file-organization module untuk memetakan direktori I/O ke disk-

Sistem Operasi 149


block numbers, yang dikirimkan ke sistem berkas dasar dan I/O control system.
File- organization module juga mengalokasikan blok untuk penyimpanan data-
data berkas.

Setelah berkas selesai dibuat, mula-mula harus dibuka terlebih dahulu.


Perintah open dikirim nama berkas ke sistem berkas. Ketika sebuah berkas
dibuka, struktur direktori mencari nama berkas yang diinginkan. Ketika
berkas ditemukan, FCD disalin ke ke tabel system-wide open-file pada memori.
Tabel ini juga mempunyai entri untuk jumlah proses yang membuka berkas
tersebut.

Selanjutnya, entri dibuat di tabel per-process open-file dengan penunjuk ke entri


di dalam tabel system-wide open-file. Seluruh operasi pada berkas akan
diarahkan melalui penunjuk ini.

11.4 Partisi dan Mounting

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.

Informasi boot dapat disimpan di partisi yang berbeda. Semuanya mempunyai


formatnya masing-masing karena pada saat boot, sistem tidak punya sistem
berkas dari perangkat keras dan tidak dapat memahami sistem berkas.

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.

150 Sistem Operasi


11.5 Sistem Berkas Virtual

Suatu direktori biasanya menyimpan beberapa berkas dengan jenis-jenis yang


berbeda. Sistem operasi harus dapat menyatukan berkas-berkas berbeda itu
di dalam suatu struktur direktori. Untuk menyatukan berkas-berkas tersebut
digunakan metode implementasi beberapa jenis sistem berkas dengan menulis
di direktori dan file routine untuk setiap jenis.

Sistem operasi pada umumnya, termasuk UNIX, menggunakan teknik


berorientasi objek untuk menyederhakan, mengorganisir dan
mengelompokkannya sesuai dengan implementasinya. Penggunaan metode ini
memungkinkan berkas-berkas yang berbeda jenisnya diimplementasikan dalam
struktur yang sama.

Implementasi spesifiknya menggunakan struktur data dan prosedur untuk


mengisolasi fungsi dasar dari system call.

Implementasi sistem berkas terdiri dari 3 lapisan utama:

 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.

VFS ini memiliki 2 fungsi yang penting yaitu:

o Memisahkan operasi berkas generic dari implementasinya


dengan mendefinisikan VFS antar muka yang masih baru.
o VFS didasarkan pada struktur file-representation yang
dinamakan vnode, yang terdiri dari designator numerik untuk
berkas unik network-wide.

Sistem berkas lokal dan sistem berkas remote untuk jaringan.

Sistem Operasi 151


Gambar 11-3 Schematic View of Virtual File System

11.6 Implementasi Direktori

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.

Masalah berikutnya yang kemudian muncul adalah dimana atribut yang


dimaksud akan disimpan. Kemungkinan paling nyata adalah menyimpan secara
langsung di dalam direktori entri, dimana kebanyakan sistem
menggunakannya. Untuk sistem yang menggunakan inodes, kemungkinan lain

152 Sistem Operasi


adalah menyimpan atribut ke dalam inode, selain dari direktori entri. Cara
yang terakhir ini mempunyai keuntungan lebih dibandingkan menyimpan
dalam direktori entri.

Cara pengalokasian direktori dan pengaturan direktori dapat meningkatkan


efisiensi, performa dan kehandalan. Ada beberapa macam algoritma yang
dapat digunakan.

11.6.1 Algoritma Linear List

Metode paling sederhana. Menggunakan nama berkas dengan penunjuk ke


data blok.

Proses:

 Mencari (tidak ada nama berkas yang sama).


 Menambah berkas baru pada akhir direktori.
 Menghapus (mencari berkas dalam direktori dan melepaskan tempat
yang dialokasikan).

Penggunaan suatu berkas:

Memberi tanda atau menambahkan pada daftar direktori bebas.

Kelemahan:

Pencarian secara linier (linier search) untuk mencari sebuah berkas, sehingga
implementasi sangat lambat saat mengakses dan mengeksekusi berkas.

Solusi:Linked list dan Software Cache

11.6.2 Algoritma Hash Table

Linear List menyimpan direktori entri, tetapi sruktur data hash juga digunakan.

Sistem Operasi 153


Prose

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.

11.6.3 Direktori pada MS-DOS

Merupakan sistem dengan tree hierarchy directory. Mempunyai panjang 32


bytes, yang mencakup nama berkas, atribut, dan nomor dari block disk yang
pertama. Nomor dari block disk yang pertama digunakan sebagai indeks dari
tabel MS-DOS direktori entri. Dengan sistem rantai, semua blok dapat
ditemukan.

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.

11.7 Direktori pada UNIX


Struktur direktori yang digunakan dalam UNIX adalah struktur direktori
tradisional. Seperti yang terdapat dalam gambar direktori entri dalam UNIX,
setiap entri berisi nama berkas dan nomor inode yang bersangkutan. Semua
informasi dari jenis, kapasitas, waktu dan kepemilikan, serta block disk yang
berisi inode. Sistem UNIX terkadang mempunyai penampakan yang
berbeda,tetapi pada beberapa kasus, direktori entri biasanya hanya string
ASCII dan nomor inode.

154 Sistem Operasi


Gambar 11-4 Unix Directory Entry

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.

Pertama, sistem berkas mengalokasikan direktori root. Dalam UNIX inode


yang bersangkutan ditempatkan dalam tempat yang sudah tertentu dalam disk.
Kemudian, UNIX melihat komponen pertama dari path, usr dalam direktori
root menemukan nomor inode dari direktori /usr. Mengalokasikan sebuah
nomor inode adalah secara straight-forward, sejak setiap inode mempunyai
lokasi yang tetap dalam disk. Dari inode ini, sistem mengalokasikan direktori
untuk /usr dan melihat komponen berikutnya, dst. Saat dia menemukan entri
untuk ast, dia sudah mempunyai inode untuk direktori /ust/ast. Dari inode ini,
dia dapat menemukan direktorinya dan melihat mbox. Inode untuk berkas ini
kemudian dibaca ke dalam memori dan disimpan disana sampai berkas
tersebut ditutup.

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.

Sistem Operasi 155


Rangkuman

Sebagai implementasi direktori yang merupakan implementasi dari


Implementasi Sistem Berkas, implementasi direktori memiliki algoritma
seperti Linear List dan Hashtable. Direktori pada MS/Dos merupakan sistem
dengan direktori hirarki tree. Direktori pada UNIX merupakan struktur
direktori tradisional.

Sebagai implementasi direktori yang merupakan implementasi dari


Implementasi Sistem Berkas, implementasi direktori memiliki algoritma
seperti Linear List dan Hashtable. Direktori pada MS/Dos merupakan sistem
dengan direktori hirarki tree. Direktori pada UNIX merupakan struktur
direktori tradisional

Latihan

1. Sebutkan da jelaskan bagian dari sebuah disk


2. Jelaskan urutan langkah dalam membaca suatu data oleh suatu disk
3. Sebutkan struktur yang terdapat di disk
4. Jelaskan algoritma Linear List dan Hash table dan sebutkan aplikasi
dari kedua algoritma tersebut di dunia nyata.
5. Apa yang di maksd partisi dan mounting.

156 Sistem Operasi


12 Manajemen Penyimpan Sekunder

Overview

Selain kita mengetahui penyimpanan primer, juga terdapat tentang penyimpan


sekunder. Dalam bab ini akan dijelaskan mengenai manajemen penyimpan
sekunder, diharapkan mahasiswa dapat membedakan dengan penyimpan yang
primer

Tujuan

1. Mahasiswa dapat membedakan manajemen penyimpan primer dan


sekunder
2. Mahasiswa dapat mengetahui metode yang digunakan untuk manajemen
penyimpan sekunder

Sistem Operasi 157


12.1 Metode Alokasi
Kegunaan penyimpanan sekunder yang utama adalah menyimpan berkas-
berkas yang kita buat, karena sifat disk akan mempertahankan berkas
walaupun tidak ada arus listrik. Oleh karena itu, agar kita dapat mengakses
berkas-berkas dengan cepat dan memaksimalisasikan ruang yang ada di disk
tersebut, maka lahirlah metode-metode untuk mengalokasikan berkas ke
disk. Metode-metode yang akan dibahas lebih lanjut dalam buku ini adalah
contiguous allocation, linked allocation, dan indexed allocation. Metode-metode
tersebut memiliki beberapa kelebihan dan juga kekurangan. Biasanya sistem
operasi memilih satu dari metode diatas untuk mengatur keseluruhan berkas.

12.1.1 Contiguous Allocation


Metode ini akan mengalokasikan satu berkas kedalam blok-blok disk yang
berkesinambungan atau berurutan secara linier dari disk, jadi sebuah berkas
didenifinikan oleh alamat disk blok pertama dan panjangnya dengan satuan
blok atau berapa blok yang diperlukannya. Bila suatu berkas memerlukan n
buah blok dan blok awalnya adalah a, berarti berkas tersebut disimpan dalam
blok dialamat a, a + 1, a + 2, a + 3, ..., a + n - 1. Direktori mengindentifikasi
setiap berkas hanya dengan alamat blok pertama berkas tersebut disimpan
yang dalam contoh di atas adalah a, dan banyaknya blok yang diperlukan
untuk mengalokasikan berkas tersebut yang dalam contoh di atas adalah n.

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.

Metode contiguous allocation juga mempunyai beberapa masalah. Diantaranya


adalah mencari ruang untuk berkas baru, menentukan seberapa besar ruang
yang diperlukan untuk sebuah berkas. Untuk masalah mencari ruang untuk
berkas baru, akan di implementasikan oleh managemen ruang kosong.

Untuk penentuan ruang kita tidak boleh terlalu kecil atau terlalu besar, bila
kita menentukannya terlalu kecil maka ada saatnya berkas tersebut tidak

158 Sistem Operasi


dapat dikembangkan, tapi bila terlalu besar maka akan ada ruang yang sia-sia
bila berkas tersebut hanya memerlukan ruang yang kecil.

Metode ini dapat menimbulkan fragmentasi eksternal disaat ruang kosong


yang ada diantara berkas-berkas yang sudah terisi tidak cukup untuk mengisi
berkas baru. Hal ini terjadi karena blok pertama dari suatu berkas itu
ditentukan oleh sistem operasi, bila berkas pertama blok pertamanya itu di 1
dan memerlukan 9 blok untuk pengalokasiannya dan berkas kedua blok
pertamanya di 11 dan memerlukan 5 blok untuk pengalokasiannya, berarti
ruang-kosong diantara berkas tersebut ada 1 blok, yaitu dialamat 10. Blok
tersebut dapat untuk menyimpan berkas, tetapi hanya berkas yang berukuran
1 blok yang dapat disimpan di blok tersebut

Gambar 12-1Contiguous Allocation

Sistem Operasi 159


12.1.2 Linked Allocation
Metode ini dapat mengatasi masalah yang terjadi pada metode contiguous
allocation. Dalam metode ini setiap berkas diidentifikasikan dengan linked list
dari blok-blok, jadi blok-blok tersebut tidak harus berkesinambungan dengan
blok yang lain. Direktori hanya menyimpan alamat blok pertama dan alamat
blok terakhir. Jika kita ingin mengaksess blok kedua, maka harus melihat
alamatnya di blok pertama dan begitu seterusnya. Oleh karena itu, metode ini
hanya mendukung pengaksesan secara berurutan.

Gambar 12-2 Linked Allocation

Metode linked allocation memiliki beberapa kerugian, karena petunjuk ke blok


berikutnya memerlukan ruang. Bila ukuran petunjuknya 4 byte dari blok yang
ukurannya 512 byte, berarti 0,78% dari ruang disk hanya digunakan untuk
petunjuk saja. Hal ini dapat diminimalisasikan dengan menggunakan cluster

160 Sistem Operasi


yang menggabungkan 4 blok dalam satu cluster, jadi jumlah petunjuknya akan
berkurang dari yang tidak memakai cluster.

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 linked allocation yang menggunakan FAT akan mempersingkat waktu


yang diperlukan untuk mencari sebuah berkas. Karena bila tidak menggunakan
FAT, berarti kita harus ke satu blok tertentu dahulu dan baru diketahui
alamat blok selanjutnya. Dengan menggunakan FAT kita dapat melihat alamat
blok selanjutnya disaat kita masih menuju blok yang dimaksud. Tetapi
bagaimana pun ini belum dapat mendukung pengaksesan secara langsung.

12.1.3 Indexed Allocation

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

Sistem Operasi 161


efektif, kecuali bila satu berkas tersebut hanya memerlukan satu atau dua blok
saja.

Gambar 12-3 Indexed Allocation

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:

162 Sistem Operasi


o Linked scheme: Untuk mengatasi petunjuk untuk berkas yang
berukuran besar mekanisme ini menggunakan tempat terakhir dari
blok indeks untuk alamat ke blok indeks selanjutnya. Jadi, bila berkas
kita masih berukuran kecil, maka isi dari tempat yang terakhir dari
blok indeks berkas tersebut adalah null. Namun, bila berkas tersebut
berkas besar, maka tempat terakhir itu berisikan alamat untuk ke
blok indeks selanjutnya, dan begitu seterusnya.
o Indeks bertingkat: Pada mekanisme ini blok indeks itu bertingkat-
tingkat, blok indeks pada tingkat pertama akan menunjukkan blok-
blok indeks pada tingkat kedua, dan blok indeks pada tingkat kedua
menunjukkan alamat-alamat dari blok berkas, tapi bila dibutuhkan
dapat dilanjutkan kelevel ketiga dan keempat tergantung dengan
ukuran berkas tersebut. Untuk blok indeks 2 level dengan ukuran
blok 4.096 byte dan petunjuk yang berukuran 4 byte, dapat
mengalokasikan berkas hingga 4 GB, yaitu 1.048.576 blok berkas.
o Combined scheme: Mekanisme ini menggabungkan direct block dan
indirect block. Direct block akan langsung menunjukkan alamat dari
blok berkas, tetapi pada indirect block akan menunjukkan blok indeks
terlebih dahulu seperti dalam mekanisme indeks bertingkat. Single
indirect block akan menunjukkan ke blok indeks yang akan
menunjukkan alamat dari blok berkas, double indirect block akan
menunjukkan suatu blok yang bersifat sama dengan blok indeks 2
level, dan triple indirect block akan menunjukkan blok indeks 3 level.
Dimisalkan ada 15 petunjuk dari mekanisme ini, 12 pertama dari
petunjuk tersebut adalah direct block, jadi bila ukuran blok 4 byte
berarti berkas yang dapat diakses secara langsung didukung sampai
ukurannya 48 KB. 3 petunjuk berikutnya adalah indirect block yang
berurutan dari single indirect block sampai triple indirect block. Yang
hanya mendukung 32 bit petunjuk berkas berarti akan hanya
mencapai 4 GB, namun yang mendukung 64 bit petunjuk berkas
dapat mengalokasikan berkas berukuran sampai satuan terabyte.

12.2 Managemen Ruang Kosong


Sejak ruang disk terbatas, kita butuh menggunakan lagi ruang tersebut dari
berkas yang sudah dihapus menjadi berkas yang baru, jika memungkinkan.
Untuk menyimpan track dari ruang disk yang kosong, sistem membuat daftar
ruang-kosong. Daftar ruang-kosong tersebut merekam semua blok-blok disk
yang kosong itu semua tidak dialokasikan di beberapa berkas atau direktori.

Sistem Operasi 163


12.2.1 Bit Vector
Seringkali, daftar ruang yang kosong diimplementasikan sebagai sebuah bit
map atau bit vector. Setiap blok direpresentasikan dengan 1 bit. Jika bloknya
kosong, bitnya adalah 1; jika bloknya ditempati, bitnya adalah 0.
Sebagai contoh, mepertimbangkan sebuah disk dimana blok-blok 2, 3, 4, 5, 8,
9, 10, 11, 12, 13, 17, 18, 25, 26, dan 27 kosong, dan sisa dari blok-blok
tersebut ditempati. Bit map dari ruang-kosong yaitu

00111100111111000110000011100000...

Keuntungan utama dari pendekatan ini adalah relatif sederhana dan


keefisiensian dalam menemukan blok kosong yang pertama, atau blok-blok
kosong n yang berurutan di dalam disk. Sayangnya, bit vectors tidak efisien
kecuali seluruh vektor disimpan di memori utama (dan ditulis ke disk secara
rutin untuk kebutuhan recovery. Menyimpan vektor tersebut di memori utama
memungkinkan untuk disk-disk yang kecil, seperti pada microcomputers, tetapi
tidak untuk disk-disk yang besar.

12.2.2 Linked List

Pendekatan yang lainnya untuk managemen ruang-kosong adalah


menghubungkan semua blok-blok disk kosong, menyimpan sebuah penunjuk
ke blok kosong yang pertama di lokasi yang khusus di disk dan menyimpannya
di memori. Blok pertama ini mengandung sebuah penunjuk ke blok disk
kosong selanjutnya, dan seterusnya. Sebagai contoh, kita akan menyimpan
sebuah penunjuk ke blok 2, sebagai blok kosong pertama. Blok 2 mengandung
sebuah penunjuk ke blok 3, yang akan menunjuk ke blok4, yang akan
menunjuk ke blok 5, yang akan menunjuk ke blok 8, dan seterusnya.

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.

164 Sistem Operasi


Gambar 12-4 Ruang Kosong Linked List

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

Sistem Operasi 165


dari blok-blok ini sebenarnya kosong. Blok terakhir mengandung alamat-
alamat dari n blok kosong lainnya, dan seterusnya. Pentingnya implementasi
ini adalah alamat-alamat dari blok-blok kosong yang banyak dapat ditemukan
secara cepat, tidak seperti di pendekatan linked-list yang standard.

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 Efisiensi dan Kinerja


Kita sekarang dapat mempertimbangkan mengenai efek dari alokasi blok dan
manajeman direktori dalam kinerja dan penggunanan disk yang efisien. Di
bagian ini, kita mendiskusikan tentang bermacam-macam teknik yang
digunakan untuk mengembangkan efisiensi dan kinerja dari penyimpanan
kedua.

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.

166 Sistem Operasi


Umumnya setiap persatuan data yang berhubungan dengan berkas
membutuhkan untuk dipertimbangkan efeknya pada efisiensi dan kinerja.

Sebagai contoh, mempertimbangkan bagaimana efisiensi dipengaruhi oleh


ukuran penunjuk-penunjuk yang digunakan untuk mengakses data. Bagaimana
pun, penunjuk-penunjuk membutuhkan ruang lebih untuk disimpan, dan
membuat metode alokasi dan managemen ruang-kosong menggunakan ruang
disk yang lebih. Satu dari kesulitan memilih ukuran penunjuk, atau juga ukuran
alokasi yang tetap diantara sistem operasi, adalah rencana untuk efek dari
teknologi yang berubah.

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.

Gambar 12-5 Menggunakan Unified Cached Buffer

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

Sistem Operasi 167


data berkas menggunakan alamat-alamat virtual jauh lebih efisien daripada
menyimpannya melalui blok disk fisik. Ini dikenal sebagai unified virtual memory.

Sebagian sistem operasi menyediakan sebuah unified buffer cache. Tanpa


sebuah unified buffer cache, kita mempunyai situasi panggilan mapping memori
butuh menggunakan dua cache, page cache dan buffer cache. Karena sistem
memori virtual tidak dapat menggunakan dengan buffer cache, isi dari berkas
di dalam buffer cache harus diduplikat ke page cache. Situasi ini dikenal dengan
double caching dan membutuhkan menyimpan data sistem-berkas dua kali.
Tidak hanya membuang-buang memori, tetapi ini membuang CPU dan
perputaran M/K dikerenakan perubahan data ekstra diantara memori sistem.
Juga dapat menyebabkan korupsi berkas. Sebuah unified buffer cache
mempunyai keuntungan menghindari double caching dan menunjuk sistem
memori virtual untuk mengatur data sistem berkas.

Gambar 12-6 Tanpa Unified Cache Buffer

168 Sistem Operasi


Rangkuman

Kegunaan penyimpanan sekunder yang utama adalah menyimpan berkas-


berkas yang kita buat, karena sifat disk akan mempertahankan berkas
walaupun tidak ada arus listrik. Oleh karena itu, agar kita dapat mengakses
berkas-berkas dengan cepat dan memaksimalisasikan ruang yang ada di disk
tersebut, maka lahirlah metode-metode untuk mengalokasikan berkas ke
disk. Metode-metode yang akan dibahas lebih lanjut dalam buku ini adalah
contiguous allocation, linked allocation, dan indexed allocation.
Sejak ruang disk terbatas, kita butuh menggunakan lagi ruang tersebut dari
berkas yang sudah dihapus menjadi berkas yang baru, jika memungkinkan.
Untuk menyimpan track dari ruang disk yang kosong, sistem membuat daftar
ruang-kosong. Daftar ruang-kosong tersebut merekam semua blok-blok disk
yang kosong itu semua tidak dialokasikan di beberapa berkas atau direktori.
Kita sekarang dapat mempertimbangkan mengenai efek dari alokasi blok dan
manajeman direktori dalam kinerja dan penggunanan disk yang efisien. Di
bagian ini, kita mendiskusikan tentang bermacam-macam teknik yang
digunakan untuk mengembangkan efisiensi dan kinerja dari penyimpanan
kedua.

Latihan

1. Sebutkan dan jelaskan metode alokasi yang anda ketahui


2. Apa yang dimaksud dengan efisiensi dan kinerja
3. Jelaskan apa yang dimaksud dengan Bit Vector
4. Tujuan dari Grouping dan Counting ?

Sistem Operasi 169


13 Recovery

Overview

Sejak berkas-berkas dan direktori-direktori dua-duanya disimpan di memori


utama dan pada disk, perawatan harus dilakukan untuk memastikan kegagalan
sistem tidak terjadi di kehilangan data atau di tidakkonsistennya data.

Tujuan

1. Mahasiswa mengetahui cara mengamankan suatu data.

170 Sistem Operasi


13.1 Pengecekan Rutin
Informasi di direktori di memori utama biasanya lebih baru daripada informasi
yang ada di disk, karena penulisan dari informasi direktori yang disimpan ke
disk tidak terlalu dibutuhkan secepat terjadinya pembaharuan.
Mempertimbangkan efek yang memungkinkan terjadinya crash pada
komputer. Secara berkala, program khusus akan dijalankan pada saat waktu
reboot untuk mengecek dan mengoreksi disk yang tidak konsisten.
Pemerikasaan rutin membandingkan data yang ada di struktur direktori
dengan blok data pada disk, dan mencoba untuk memperbaiki
ketidakkonsistenan yang ditemukan.

Gambar 13-1 Macam – macam lokasi Disk caching

13.2 Backup dan Restore


Dikarenakan disk magnetik kadang-kadang gagal, perawatan harus dijalankan
untuk memastikan data tidak hilang selamanya. Oleh karena itu, program
sistem dapat digunakan untuk back up data dari disk menuju ke media
penyimpanan yang lainnya, seperti sebuah floppy disk, tape magnetik, atau disk
optikal. Recovery dari kehilangan sebuah berkas individu, atau seluruh disk,
mungkin menjadi masalah dari restoring data dari backup.

Untuk meminimalis kebutuhan untuk menduplikat, kita dapat menggunakan


inforamsi dari, masing-masing masukan direktori. Sebagai contoh, jika
program backup mengetahui kapan backup terakhir dari berkas telah selesai,
dan tanggal terakhir berkas di direktori menunjukkan bahwa berkas tersebut
tidak dirubah sejak tanggal tersebut, lalu berkas tersebut tidak perlu
diduplikat lagi.

Sistem Operasi 171


Sebuah tipe jadual backup yaitu sebagai berikut:

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.

13.3 Log-structured File System

Algoritma logging sudah dilakukan dengan sukses untuk manangani masalah


dari pemeriksaan rutin. Hasil dari implementasinya dikenal dengan log-based
transaction-oriented (atau journaling sistem berkas).

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.

Ada beberapa masalah dengan adanya pendekatan dari menunjuk struktur


untuk memechkan dan memperbaikinya pada recovery. Salah satunya adalah

172 Sistem Operasi


ketidakkonsistenan tidak dapat diperbaiki. Pemeriksaan rutin mungkin tidak
dapat untuk recover struktur tersebut, yang hasilnya kehilangan berkas dan
mungkin seluruh direktori.

Solusinya adalah memakai teknik log-based-recovery pada sistem berkas


metadata yang terbaru. Pada dasarnya, semua perubahan metadata ditulis
secara berurutan di sebuah log. Masing-masing set dari operasi-operasi yang
manampilakan tugas yang spesifik adalah sebuah transaction. Jika sistemnya
crashes, tidak akan ada atau ada kelebihan transactions di berkas log.
Transactions tersebut tidak akan pernah lengkap ke sistem berkas walaupun
dimasukkan oleh sistem operasi, jadi harus dilengkapi. Keuntungan yang lain
adalah proses-proses pembaharuan akan lebih cepat daripada saat dipakai
langsung ke struktur data pada disk.

13.4 Sistem Berkas Linux Virtual

Obyek dasar dalam layer-layer virtual file system

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.

Sistem Operasi 173


4. Nama inode
Semua inode dalam file sistem diakses melalui namanya. Walaupun pencarian
nama inode bisa menjadi terlalu berat untuk beberapa sistem, virtual file
sistem pada linux tetap memantau cache dan nama inode yang baru saja
terpakai agar kinerja meningkat. Cache terdapat di memori sebagai tree, ini
berarti jika sembarang inode dari file terdapat di dalam cache, maka parent
dari inode tersebut juga terdapat di dalam cache. Virtual file system layer
menangani semua pengaturan nama path dari file dan mengubahnya menjadi
masukan di dalam cache sebelum mengizinkan file sistem untuk
mengaksesnya. Ada pengecualian pada target dari simbolik link, akan diakses
file sistem secara langsung. File sistem diharapkan untuk
menginterpretasikannya.

174 Sistem Operasi


Rangkuman

Informasi di direktori di memori utama biasanya lebih baru daripada


informasi yang ada di disk, karena penulisan dari informasi direktori yang
disimpan ke disk tidak terlalu dibutuhkan secepat terjadinya pembaharuan.
Dikarenakan disk magnetik kadang-kadang gagal, perawatan harus
dijalankan untuk memastikan data tidak hilang selamanya. Oleh karena itu,
program sistem dapat digunakan untuk back up data dari disk menuju ke
media penyimpanan yang lainnya, seperti sebuah floppy disk, tape magnetik,
atau disk optikal. Recovery dari kehilangan sebuah berkas individu, atau
seluruh disk, mungkin menjadi masalah dari restoring data dari backup.
Algoritma logging sudah dilakukan dengan sukses untuk manangani masalah
dari pemeriksaan rutin. Hasil dari implementasinya dikenal dengan log-based
transaction-oriented (atau journaling sistem berkas

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.

Sistem Operasi 175


14 Sistem Operasi Tersebar 1

Overview

Sebelum memulai mempelajari sistem operasi penting bagi kita untuk


mengetahui komponen-komponen yang menjadi bagian dari sebuah sistem
komputer disertai cara kerjanya. Hal ini disebabkan nantinya sistem operasi
bekerja untuk mengatur komponen-komponen tersebut dan
menyembunyikan kerumitannya bagi pengembang aplikasi dan para pengguna
akhir sistem operasi.

Tujuan

1. Tujuan 1
2. Tujuan 2

176 Sistem Operasi


14.1 Pendahuluan
Pada saat ini semakin berkembangannya dunia Teknologi Informasi yang
dimiliki perusahaan mengikuti kebutuhan terhadap pelayanan terhadap
pelanggan, konsumen. Hal ini diawali dengan memberikan unit komputer
untuk setiap karyawannya agar proses pembuatan surat dan pelayanan
administrasi menjadi lebih cepat dan kapabilitas citra perusahaan semakin
baik.
Beberapa diantaranya bahkan sudah jauh lebih baik dengan membangun
sistem terotomatisasi beberpa prosedur kerja yang bersifat rutin dan
berkapasitas data yang besar. Proses ini diterapka di beberapa perwakilan
perusahaan yang semuanya terintegrasi dengan komputer pusat.
Dalam satu dekade terakhir perkembangan dunia Teknologi Informasi telah
berkembang dengan terintegrasinya teknologi komputer, teknologi
multimedia dan teknologi telekomunikasi. Ketiga komponennya
melatarbelakangi lahirnya pengembagan Jaringan komputer pada tingkat lebih
lanjut. Dalam penjelasan berikutnya dikenal sebagai sistem tersebar atau
sistem terdistribusi.

14.2 Konsep Dasar Sistem Tersebar / Terdistribusi


Sistem Tersebar/terdistribusi berasal dari dua kata, Sistem dan Tersebar.
Sistem merupakan sekumpulan elemen yang saling tergantung satu sama lain
dan membentuk suatu kesatuan untuk menyelesaikan suatu tujuan secara
spesifik menjalankan suatu fungsi. Tersebar/terdistribusi berasal dari kata
“sebar/distribusi” yang merupakan kebalikan dari kata “sentralisasi”, yang
artinya penyebaran, sirkulasi, penyerahan pembagian menjadi bagian-bagian
yang lebih kecil.
Jadi sistem tersebar merupakan sekumpulan komputer otonom (elemen-
elemen) yang saling berinteraksi secara sistematis dan teratur untuk
mendistribusikan data, informasi, proses, objek dan layanan dari dan kepada
pengguna yang terkait didalamnya sehingga menghasilkan satu fasilitas
komputasi terpadu.

Sistem Operasi 177


Gambar 14-1 Sistem Tersebar

Beberapa alasan diterapkan Sistem Terdistribusi antara lain:


a. Berbagi pakai sumber daya, akses terhadap sumber daya jarak jauh
sama dengan sumber daya lokal.
 Berbagi pakai printer dan file dari jarak jauh (remote site)
 Pemrosesan informasi dalam sistem basis data tersebar
 Melakukan prose remote terhadap perangkat tertentu.
b. Mengatasi bottleneck, untuk mempercepat proses komputasi.
c. Reliability, melakukan proses penanganan dalam mendeteksi dan
menangani kesalahan pada lokasi tertentu, proses pengiriman, dan
dan kegagalan re-integrasi lokasi.
d. Komunikasi, dengan SisTer memungkinan mampu melakukan proses
pengiriman pesan jauh lebih baik.

14.3 Properti dan Karakteristik Sistem Tersebar


Sistem Tersebar memiliki dua batasan pokok, yaitu:

1. Tidak clock global, tidak dapat diperolehnya clock global


tersinkronisasi secara sempurna. Misalkan jika terdapat satu clock
disuatu lokasi, maka proses-proses lain akan mendapatkan nilai clock
pada waktu berbeda karena waktu tunda transmisi pesan berbeda.
2. Tidak ada memori bersama. Dengan tidak adanya memori bersama
mengakibatkan state sistem terbaru tidak tersedia untuk setiap
proses.

178 Sistem Operasi


14.4 Tipe Sistem Tersebar
Sistem Tersebar memiliki dua tipe :
a. Network Operating System
b. Sistem Operasi Tersebar

14.4.1 Network Operating System


Penggunaan sistem operasi jaringan diperlukan dalam sistem operasi tersebar.
Hal ini latar belakangi oleh:
1. Pengguna Sadar dengan multiplisitas perangkat Akses terhadap
sumber daya jarak jauh sama dengan sumber daya lokal.
2. Remote login ke perangakat jauh yang sesuai (telnet, ssh)
3. Remote Desktop (Microsoft Windows).
4. Mentrasfer data dari remote mesin ke lokal mesin, melalui
mekanisme File Transfer Protocol (FTP) mechanism

14.4.2 Sistem Operasi Tersebar


Penerapan sistem operasi tersebar dilatarbelakangi oleh:
1. Pengguna tidak sadar akan multiplisitas perangkat.
Contoh: Akses ke Sumber jarak jauh (remote Acces) sama halnya ke
Sumber lokal (local resources).
2. Migrasi Data dengan memindahkan seluruh data atau hanya
mentransfer file yang diperlukan untuk task langsung.
3. Computation Migration, memindahkan komputasi bukannya data,
melalui sistem.
4. Process Migration: Mengeksekusi seluruh proses atau sebagian
daripadanya pada situs/tempat yang berbeda.
a) Load balancing – proses distribusi melalui jaringan agar meratakan
beban proses kerja
b) Computation speedup – subprocesses dapat berjalan pada saat yang
bersama di lokasi yang berbeda.
c) Hardware preference – eksekusi proses yang membutuhkan jenis
prosesor tertentu.
d) Software preference – software yang dibutuhkan hanya pada lokasi
tertentu.
e) Data access – proses yang berjalan secara remote.

Sistem Operasi 179


14.5 Karakteristik Sistem Tersebar
Beberapa karakteristik sistem operasi tersebar antara lain:
1. Resource Sharing
Setiap sumber daya dapat diakses dan di manipulasi dengan handal
dan konsisten, maka pemakaian sumber daya bersama digunakan
secara efektif.
2. Openness(keterbukaan)
Kemampuan untuk memperluas sistem dengan berbagai cara dengan
mudah. Artinya penambahan komponen baru dapat dilakukan oleh
programer yang berbeda-beda. Misalnya penambahan program
sistem layanan bank tidak harus dilakukan oleh orang yang
menciptakan program tersebut, tapi dapat dilakukan oleh
programmer yang lain.
3. Concurency (kebersamaan)
Banyak proses yang bisa dieksekusi secara bersama, membutuhkan
sinkronisasi dalam mengakses sumber daya bersama serta dapat
salaing bekerja sama.
4. Scalability
Sistem Tersebar dapat diubah dan tetap berjalan dengan baik.
Perubahan dilakukan dari segi jumlah pengguna maupun dari segi
kekuatan perangkat keras komputer-komputer dalam SisTer itu
sendiri. Misalnya mesin ATM dapat dikurangi tanpa mempengaruhi
kinerja sistem layanan bank.
5. Fault-Tolerance
SisTer diharapkan dapat bertahan terhadap kegagalan, dan tidak
memperngaruhi kinerja sistem secara keseluruhan.
6. Transparency(penyembunyian)
Hal yang menjadi pokok utama dalam SisTer adalah transparency.
Penggunaan banyak pemroses dan data remote tidak terlhat oleh
pengguna. Pengguna melihat sistem sebagai uniprosesor maya
tunggal, bukan kumpulan mesin terpisah. Transparency meliputi :
a. Access Transparency (penyembunyian akses)
Seseorang yang bekerja dilingkungan sistem dapat mengakses
lingkungan tersebut untuk penyelesaian pekerjaannya. Misal seorang
karyawan dapat mencetak dokumennya secara paralel di lokal
printer maupun remote printer dalam lingkungan SisTer sehingga
pencetakan dokumen dapat diselesaikan.

180 Sistem Operasi


Gambar 14-2 Access Transparency

b. Location Transparency (penyembunyian lokasi)


Memungkinkan pengaksesan objek tanpa harus tahu lokasinya.
Begitupula saat akan mengakses dari mana saja sejauh memiliki
fasilitas untuk mengakses ke objek yang di tuju.

Gambar 14-3 Location Transparency

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.

Sistem Operasi 181


SisTer Bandung SisTer Jakarta

Gambar 14-4 Replication Transparency

d. Failure Tranparancy
Memungkinkan program atau pemakai menyelesaikan tugasnya tanpa
terganggu atau mengetahui terjadinya kegagalan komponen hardware
dan software.

SisTer Bandung SisTer Jakarta

Gambar 14-5 Failure Tranparancy

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

182 Sistem Operasi


menyediakan antarmuka yang familiar dengan pengguna yang berisi
komputer-komputer otonom yang dihubungkan dengan jaringan
komunikasi sehingga terlihat seperti satu sistem uniprosesor tunggal.

14.6 Arsitektur Sistem Terdistribusi


Arsitektur didefinisikan sebagai suatu rancangan untuk penyusunan dan
operasi komponen komponen suatu sistem, dimana rancangan tersebut
mengidentifikasi komponen beserta fungsi masing-masing komponen,
konektivitas/hubungan antar komponen, dan mendeskripsikan pemetaan
fungsionalitas ke dalam komponen.
Dengan demikian arsitektur ini dapat memberikan gambaran fisik dan logikal
dari sistem, serta mampu menyediakan spesifikasi dari komponen-komponen
sistem dan hubungannya di dalam sistem.
Beberapa arsitektur sistem tersebar antara lain
(http://en.wikipedia.org/wiki/Distributed_system):
1. Client-server — client menghubungi server untuk mendapatkan
data, kemudian memformat dan menampilkan pada pengguna.
Arsitektur ini terdiri dari :
a. 2-tier architecture – Arsitektur ini menutupi kekurangan
dari single tier yaitu dalam hal grafis yang membutuhkan lebih
banyak dukungan komputasional dari pada sekedar dumb
terminal sederhana. Arsitektur 2-tier ini sebenarnya adalah
Client Server itu sendiri. Arsitektur ini terbagi kedalam 2
macam jenis :

Thin Client-Thick Server – Client menjalankan satu fungsi,


yaitu penyaji dari tampilan aplikasi data yang diakses dari server.
Ini berarti beban server lebih tinggi di bandingkan client.

Sistem Operasi 183


Gambar 14-6 Thin Client-Thick Server secara fisik

Gambar 14-7 Thin Client-Thick Server secara logik

Thick Client-Thin Server - Arsitektur ini berfungsi sedikitnya


memberi dua peran bagi client, dimana client tidak hanya berperan sebagai
penyaji interface saja. Melainkan juga berfungsi mengoperasikan aplikasi,
sementara server hanya mengelola data saja sehingga beban client jadi
bertambah.

Gambar 14-8 Thick Client-Thin Server secara fisik

184 Sistem Operasi


Gambar 14-9 Thick Client-Thin Server secara logical

Host-Based – Client hanya berfungsi sebagai terminat input dan


output saja. Yang melakukan proses adalah server.

Gambar 14-10 Host Based

Cooperative – Proses menangani dua sisi yaitu client dan server.


Lebih komplek tetapi efissien.

Gambar 14-11 Cooperative

b. 3-tier architecture — Arsitektur ini terus dikembangkan


seiring dengan perkembangan perusahaan. Untuk membangun
sistem bisnis berbasis web, perlu dilakukan pemisahan peran
server yang menangani aplikasi dan basis data agar kinerja
server dapat optimal. Three tier ini merupakan arsitektur
Client Server yang memisahkan antara Data Management Tier
, Middle Tier dan Presentation Layer dengan penjelasan sebagai
berikut:
i. Data management tier merupakan server yang
dikhususkan untuk menangani pengelolaan basis data
ii. Middle tier merupakan komputer server yang dikhususkan
untuk menangani aplikasi-aplikasi dimana peosedur-prosedur
dan perhitungan-perhitungan yang kompleks dieksekusi.

Sistem Operasi 185


iii. Presentation tier merupakan kompter client yang menjadi
interface bagi pengguna untuk memasukan data, mengajukan
layanan ke server, dan melihat hasilnya

Gambar 14-12 3-tier architecture

c. N-tier architecture — Aplikasi client-server dibagi


kedalam beberapa layer. N-tier menunjukan banyaknya
lapisan yang ada dalam sebuah aplikasi. Lapisan tersebut
antara lain :

- Presentation layer- berhubungan dengan antarmuka dengan


pengguna aplikasi.
- Application layer atau business logic layer – lapisan ini berisi
inti dari aplikasi tersebut dan menyimpan data yang
digunakan oleh aplikasi tersebut.
- Data layer – lapisan ini berbentuk satu atau lebih server
basis data yang lokasinya tersebar di berbagai tempat.

14.7 Client Server


Model konektivitas pada jaringan yang membedakan fungsi komputer apakah
sebagai client atau server. Arsitektur ini menempatkan sebuah komputer
sebagai server yang bertugas memberikan layanan kepada terminal-terminal
lain (client) yang terhubung dalam sistem jaringan itu.
Server dapat bertugas untuk berbagi pakai berkas (file server), Printer
(printer server), jalur komunikasi (communication Network). Pada model ini
server dapat berfungsi sebagai client (server non-dedicated).

186 Sistem Operasi


Untuk membedakan anatara P2P dengan client server, prinsip kerjanya adalah
server menunggu permintaan dari client, memproses dan memberikan
hasilnya kepada client, sedangankan client akan mengirimkan permintaan ke
server, menunggu proses dan melihat visualisasi hasil prosesnya.
Komponen dasar yang membentuk arsitektur client server :
1. Client : merupakan terminal yang digunakan oleh pengguna untuk
meminta layanan tertentu yang dibutuhkan. Client dapat berupa PC,
ponsel, komukator,robot, televisi, dan peraltan lain yang
membutuhkan informasi
2. Middleware : merupakan komponen perantara yang
memungkinkan client dan server saling terhubung dan berkomunikasi
satu sama lain. Midleware dapat berupa Transaction Monitor (TP),
Remote Procedure Calling (RPC) atau Object Request Broker
(ORB).

Middleware memiliki per8an yang strategis , client dapat


mengirimkan pesan atau permintaan ke server, menerjemahkan hasil
proses dari server dan mengirimkan hasil proses yang telah
diterjemahkan kembali ke client.

3. Server : Merupakan pihak yang menyediakan layanan. Server dapat


berupa basis data SQL,MYSQL, Monitor TP, Server groupware,
Server Object, atau Web.

Ada beberapa tipe jaringan client server yang sudah umum dikenal, yaitu:

1. Server berkas (File Server) – Sistem jaringan dimana layanan


yang diberikan oleh server adalah berkas, baik aplikasi atau berkas
yang dihasilkan oleh aplikasi tersebut. Tipe ini memiliki kelemahan
yaitu adanya kepadatan lalu lintas jaringan.

Sistem Operasi 187


Gambar 14-13 File Server

2. Server basis data (Database Server) – Sistem jaringan dimana


layanan yang diberikan oleh server berupa pengolahan dan penyajian
data berdasarkan perintah terstruktur yang diberikan client.

Gambar 14-14 Database Server

3. Server transaksi (Transaction Server) - Sistem jaringan dimana


layanan yang diberikan oleh server adalah berupa hasil proses dari
sekelompok perintah terstruktur yang diberikan oleh client.
Perbedaan dengan tipe sebelumnya ada pada server transaksi yang
memproses sekelompok perintah terstruktur dari client.

Gambar 14-15 Transaction Server

188 Sistem Operasi


4. Server groupware (Groupware Server) - Sistem jaringan
dimana layanan yang diberikan oleh server adalah berupa fasilitas
pemakaian bersama informasi semi-terstruktur diantara pengguna
jaringan.

Aplikasi

Informasi

` Server Groupware

Client1

Permintaan

Client2 Aplikasi

Gambar 14-16 Server Groupware

5. Server objek (Object server) - Merupakan sistem jaringan


dimana layanan yang diberikan server berbentuk objek. Client dan
server berkomunikasi melalui objek-objek.
Objek merupakan entitas tersendiri yang berisikan sekumpulan data
dan fungsi untuk memanipulasi data tersebut.
ORB merupakan middleware yang memungkinkan objek client dan
server untuk berinteraksi satu sama lain tanpa harus menyesuaikan
perangkat keras atau sistem operasi kedua belah pihak

Sistem Operasi 189


Gambar 14-17 Object Server

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.

190 Sistem Operasi


Gambar 14-18 Server Web

Keterangan :
a. Client meminta layanan ke server melalui protokol tertentu

b. Protokol tersebut menerjemahkan permintaan client agar


dapat dimengerti client

c. Protokol mengirimkan hasil terjemahan ke server

d. setelah menerima permintaan client, server memproses


dan mengirimkan hasilnya ke client melalui protokol yang
sama

e. Protokol kembali menerjemahkan hasil proses dari server.

f. Hasil proses diterjemahkan protokol kemudian dikirim


kembali ke client

14.8 Arsitektur Middleware


Middleware adalah sebuah aplikasi yang secara logic berada diantara lapisan
aplikasi (application layer) dan lapisan data dari sebuah arsitektur layer-layer
TCP/IP. Middleware bisa juga disebut protokol. Biasanya program middleware
menyediakan layanan pesan (messaging services ) sehingga aplikasi-aplikasi yang
berbeda-beda itu dapat berkomunikasi. Sistem middleware mengikat aplikasi-
aplikasi yang terpisah. Contohnya: server satu memakai redhat(variannya
linux), sedang server yang lain memakai sistem operasi windowsNT
(variannya windows) dan Machintosh. Server satu memakai database oracle,

Sistem Operasi 191


server yang lain memakai mysql, dan lain-lain. Maka antar server dapat
dihubungkan dengan middleware ini.
Dengan middleware maka seluruh server yang terhubung akan dijadikan
sebagai objek. Kapan status server berubah?, yaitu ketika server yang satu
meminta ke server yang lain. Dari "Minta" tadi maka server yang satu menjadi
pelayan (tetap sebagai objek dan tetap sebagai server). Sedangkan server yang
meminta akan berubah status menjadi peminta/perequest.
Kedudukan yang semula objek akan berubah menjadi subjek, dan server
seolah-olah menjadi client bagi server yang lain. Nah terjadilah hubungan,
sehingga dapat mendistribusikan data antar server. inilah yang menjadi konsep
Sistem Tersebar.
Perangkat lunak middleware adalah perangkat lunak yang terletak diantara
program aplikasi dan pelayanan-pelayanan yang ada di sistim operasi. Adapun
fungsi dari middleware adalah:
1. Menyediakan lingkungan pemrograman aplilasi sederhana yang
menyembunyikan penggunaan secara detail pelayanan-pelayanan yang
ada pada sistem operasi.
2. Menyediakan lingkungan pemrograman aplikasi yang umum yang
mencakup berbagai komputer dan sistim operasi.
3. Mengisi kekurangan yang terdapat antara sistem operasi dengan
aplikasi, seperti dalam hal: networking, security, database, user interface,
dan system administration.
Perkembangan middleware dari waktu ke waktu dapat dikatagorikan sebagai
berikut :
a. On Line Transaction Processing (OLTP), merupakan perkembangan
awal dari koneksi antar remote database. Pertama kali ditemukan tahun
1969 oleh seorang engineer di Ford, kemudian diadopsi oleh IBM hingga
kini dikenal sebagai proses OLTP. DIGITAL ACMS merupakan contoh
lainnya yang sukses pada tahun 70-an dan 80-an. UNIX OLTP lainnya
seperti: Encina, Tuxedo pada era 80-an, serta DIGITAL CICS untuk
UNIX yang memperkenalkan konsep dowsizing ke pasar.
b. Remote Procedure Call (RPC), menyediakan fasilitas jaringan secara
transparan. Open Network Computing (ONC) merupakan prototipe
pertama yang diperkenalkan awal tahun 70-an. Sun unggul dalam hal ini
dengan mengeluarkan suatu standar untuk koneksi ke internet.
Distributed Computing Environment (DCE) yang dikeluarkan oleh
Open Systems Foundation (OSF) menyediakan fungsi-fungsi ONC yang
cukup kompleks dan tidak mudah untuk sistem administrasinya.

192 Sistem Operasi


Gambar 14-19 Middleware

Sistem Operasi 193


Rangkuman

Dalam satu dekade terakhir perkembangan dunia Teknologi Informasi telah


berkembang dengan terintegrasinya teknologi komputer, teknologi
multimedia dan teknologi telekomunikasi. Ketiga komponennya
melatarbelakangi lahirnya pengembagan Jaringan komputer pada tingkat lebih
lanjut. Dalam penjelasan berikutnya dikenal sebagai sistem tersebar atau
sistem terdistribusi sistem tersebar merupakan sekumpulan komputer
otonom (elemen-elemen) yang saling berinteraksi secara sistematis dan
teratur untuk mendistribusikan data, informasi, proses, objek dan layanan
dari dan kepada pengguna yang terkait didalamnya sehingga menghasilkan satu
fasilitas komputasi terpadu
Perangkat lunak middleware adalah perangkat lunak yang terletak diantara
program aplikasi dan pelayanan-pelayanan yang ada di sistim operasi. Dan
berkembang dengan adanya OLTP dan RPC.
Sistem Tersebar dapat dilihat dengan jelas pada aplikasi jaringan dan dunia
internet dengan adanya koneksi antara client dan server.

Latihan

1. Apa yang anda ketahui tentang RPC dan OLTP


2. Apa yang dimaksud dengan middleware
3. Sering kita mendengar tentang one-iter, 3-tier. Apa maksudnya?
4. Jelaskan sistem tersebar menurut bahasa anda
5. Implementasi dari system tersebar di dunia jaringan computer
banyak sekali telah teraplikasi. Sebutkan yang anda ketahui.

194 Sistem Operasi


15 Sistem Tersebar 2

Overview

Sebelum memulai mempelajari sistem tersebar 2 penting bagi kita untuk


mengetahui komponen-komponen yang menjadi bagian dari sebuah sistem
tersebar disertai cara kerjanya. Hal ini disebabkan nantinya sistem operasi
bekerja untuk mengatur komponen-komponen tersebut dan
menyembunyikan kerumitannya bagi pengembang aplikasi dan para pengguna
akhir sistem operasi.

Tujuan

3. Mahasiswa mengetahui lebih jelas tentang sistem tersebar


4. Mahasiswa mengetahui tentang RPC dan message

Sistem Operasi 195


15.1 Komunikasi Sistem Tersebar
Komunikasi yang terjadi pada Sistem tersebar bersifat dua arah, antara lain:
a. Model message passing
b. Model remote procedure call

15.1.1 Model Message Passing


Proses-proses di Sistem Tersebar yang terhubung dengan jaringan secara
explisit berkomunikasi lewat pengiriman dan penerimaan pesan lewat
hubungan jaringan. Layanan pada model message passing di bagi menjadi dua
system call :
1. Send – mengirim pesan ke proses tujuan menggunakan protokol
jaringan.
2. Receive – menyebabkan pemanggil menunggu pesan dari alamat
sumber, Ketika pesan tiba di kopi ke buffer proses.
Masalah :
Hilangnya pesan di jaringan
Authentication, menjamin komunikasi benar-benar di otorisasi
Kinerja bila pesan di terapkan pada proses-proses di mesin sama.
3. Reliable/Unreliable
 Mengetahui kesalahan yang terjadi ke pengirim
 Jika proses pengirimnya tidak mendapat jaminan akses, maka
aplikasi menangani acknowledgements
4. Blocking/Nonblocking
 Nonblocking – Call mengkopi pesan , kemudian di kembalikan
(sebelum pesan terkirim)
 Blocking – menunggu proses kirim

Masalah-masalah perancangan sistem Message Passing :


1. Masalah pengalamatan (addressing), alternatif
a. Pengalamatan langsung
i. Proses pengirim
ii. Proses penerima, memiliki alternatif
 Pengalamatan eksplisit
 Pengalamatan implisit
b. Pengalamatan tidak langsung
2. Masalah sinkronisaxsi
a. Pada proses pengirim
i. Bloking – setelah mengirim maka proses diblok menunggu
jawaban proses yang dikirimi.

196 Sistem Operasi


ii. Non-Blocking – setelah mengirim maka proses terus
melanjutkan eksekusi instruksi-instruksi berikutnya.
b. Pada proses penerima
i. Bloking – setelah menyatakan maka proses-proses di blok
menunggu kiriman pesan dari proses yang dikirimkan.
ii. Non-Blocking – setelah menyatakan menerima maka proses
terus melanjutkan eksekusi instruksi-instruksi berikutnya.
Masalah pada penerima adalah cara implementasi pemeriksaan
kedatangan pesan.
3. Masalah Buffering
4. Masalah kehandalan
5. Masalah format pesan
a. Isi pesan
b. Panjang pesan
6. Masalah disiplin antrian

Message passing memiliki keunggulan, antara lain memilki kemampuan


transparan sistem komputer, baik untuk uniprosessor maupun multi processor
dengan memori bersama atau sistem tersebar.

15.1.2 Remote Procedure Call


Tujuan RPC adalah pemanggilan prosedur jauh seperti pemanggilan prosedur
lokal. Pemogram menulis program seperti biasa tapa harus tahu apakah
prosedur akan dijalankan di pemroses setempat atau di pemroses jauh.
RPC memungkinkan proses di satu sistem memanggil prosedur di proses lain
di mesin lain. Prosedur pemanggil dan yang dipanggil dapat berada di mesin
terpisah dengan ruang alamat memori terpisah. Karena tidak ada memori
global bersama seperti di satu proses maka dilakukan transfer informasi
melalui parameter pada panggilan RPC.
RPC biasanya diimplementasikan pada sistem message passing. Panggilan ke
prosedur-prosedur di mesin lain diterjemahkan menjadi pengirim pesan, yaitu
:
- Send (Remote Process, InputParameter)
- Receive (Remote Process, OutputParameter)

Sistem Operasi 197


Langkah-langkah RPC meliputi 10 langkah :
1. Program (prosedur) client memanggil stub yang di-link di ruang
alamat program. Prameter-parameter dilewatkan seperti melakukan
panggilan lokal. Stub client mengepak parameter-parameter menjadi
parameter marshaling.

Gambar 15-1 Skema RPC

198 Sistem Operasi


2. Pesan dilewatkan ke lapisan transport untuk transmisi. Pada banyak
sistem, langkah 2 merupakan jebakan (trap) ke sistem operasi.
3. Pada LAN offline, entitas transport hanya mengkaitkan header ke
pesan dan meletakan ke jaringan.
4. Ketika pesan tiba di server, entitas transport melewatkan ke stub
server yang membongkar (unmarshaling) pesan menjadi parameter-
parameter.
5. Stub server memanggil prosedur server, melewatkan parameter-
parameter secara standar. Prosedur server tidak mengetahui sedang
diaktifkan secara remote karena pemanggil mematuhi aturan standar
prosedur lokal. Hanya stub yang mengetahui.
6. Setelah menyelesaikan kerja, prosedur server selesai seperti
prosedur lain selesai. Server dapat mengirim hasil ke pemanggil.
7. Stub server me-marshall hasil sebagai pesan dan melepas ke lapisan
transport dengan panggilan sistem seperti langkah 2.
8. Jawaban tiba di mesin client
9. Jawaban ditangani di stub client
10. Stub client kembali ke pemanggil, prosedur client. suatu nilai yang
dikirim server di langkah 6 di berikan ke client
Tujuan dari RPC adalah memberi ilusi ke prosedur client tidak dalam
melakukan panggilan ke server jauh (remote server). Client tidak mengetahui
bahwa yang melayaninya adalah server jauh. RPC menyembunyikan semua
komunikasi jaringan di prosedur stub. Cara ini melindungi program aplikasi,
client dan server harus memperhatikan rincian socket dan jaringan lainnya,
mempermudah penulisan aplikasi tersebar.
Masalah :
a. Karena prosedur pemanggil dan yang dipanggil di mesin-mesin yang
berbeda, prosedur-prosedur dieksekusi di ruang alamat yang berbeda
b. Parameter dan hasil harus dilewatkan melalui jaringan, lebih rumit apabila
mesin-mesin tidak sama
Mesin dimana prosedur pemanggil dan yang dipanggil dijalankan dapat crash
dan kegagalan dapat menyebabkan masalah-masalah yang rumit.

15.2 Sistem Prosesor Jamak


Pada umumnya, setiap komputer dilengkapi dengan satu buah prosesor
(CPU). Namun dewasa ini mulai umum, jika sebuat sistem komputer memiliki
lebih dari satu prosesor (multi-procesor).
Terdapat dua jenis sistem prosesor jamak, yaitu Symmetric MultiProcessing
(SMP) dan Asymmetric MultiProcessing (ASMP). Dalam SMP setiap prosesor

Sistem Operasi 199


menjalankan salinan identik dari sistem operasi dan banyak job yang dapat
berjalan di suatu waktu tanpa pengurangan kinerja. Sementara itu dalam ASMP
setiap prosesor diberikan suatu tugas yang spesifik. Sebuah prosesor
bertindak sebagai Master processor yang bertugas menjadwalkan dan
mengalokasikan pekerjaan pada prosesor lain yang disebut slave processors.
Umumnya ASMP digunakan pada sistem yang besar.
Sistem Operasi Jamak memiliki beberapa keunggulan [Silbeschatz 2004]:
a. Peningkatan throughput karena lebih banyak proses/thread yang dapat
dijalankan sekaligus. Perlu diingat hal ini tidak berarti daya komputasinya
menjadi meningkat sejumlah prosesornya. Yang meningkat ialah jumlah
pekerjaan yang bisa dilakukannya dalam waktu tertentu.
b. Economy of Scale: Ekonomis dalam peralatan yang dibagi bersama.
Prosesor-prosesor terdapat dalam satu komputer dan dapat membagi
peripheral (ekonomis) seperti disk dan catu daya listrik.
c. Peningkatan Kehandalan: Jika satu prossor mengalami suatu gangguan,
maka proses yang terjadi masih dapat berjalan dengan baik karena tugas
prosesor yang terganggu diambil alih oleh prosesor lain. Hal ini dikenal
dengan istilah Graceful Degradation. Sistemnya sendiri dikenal bersifat fault
tolerant atau fail-soft system.

15.3 Sistem Terdistribusi dan Terkluster


Melaksanakan komputasi secara terdistribusi diantara beberapa prosesor.
Hanya saja komputasinya bersifat loosely coupled system yaitu setiap prosesor
mempunyai memori lokal sendiri. Komunikasi terjadi melalui bus atau jalur
telepon. Keuntungannya hampir sama dengan prosesor jamak (multi-
processor), yaitu adanya pembagian sumber daya dan komputasi lebih cepat.
Namun, padadistributed system juga terdapat keuntungan lain, yaitu
memungkinkan komunikasi antar komputer.
Sistem terdistribusi merupakan kebalikan dari Sistem Operasi Prosesor
Jamak. Pada sistem tersebut, setiap prosesor memiliki memori lokal
tersendiri. Kumpulan prosesornya saling berinteraksi melalui saluran
komunikasi seperti LAN dan WAN menggunakan protokol standar seperti
TCP/IP. Karena saling berkomunikasi, kumpulan prosesor tersebut mampu
saling berbagi beban kerja, data, serta sumber daya lainnya. Namun, keduanya
berbagi keunggulan yang serupa seperti dibahas sebelum ini.
Terdapat sekurangnya tiga model dalam sistem terdistribusi ini.
a. Pertama, sistem client/server yang membagi jaringan berdasarkan pemberi
dan penerima jasa layanan. Pada sebuah jaringan akan didapatkan: file
server, time server, directory server, printer server, dan seterusnya.

200 Sistem Operasi


b. Kedua, sistem point to point dimana sistem dapat sekaligus berfungsi
sebagai client maupun server.
c. Terakhir sistem terkluster, yaitu beberapa sistem komputer yang
digabungkan untuk mendapatkan derajat kehandalan yang lebih baik.

Sistem operasi tersebut di atas, ialah NetOS/Distributed OS. Contoh


penerapan Distributed System:
a. Small Area Network (SAN)
b. Local Area Network (LAN)
c. Metropolitan Area Network (MAN),
d. Online
e. Service (OL)/Outernet
f. Wide Area Network (WAN)/Internet.

Sistem kluster ialah gabungan dari beberapa sistem individual (komputer)


yang dikumpulkan pada suatu lokasi, saling berbagi tempat penyimpanan data
(storage), dan saling terhubung dalam jaringan lokal (Local Area Network).
Sistem kluster memiliki persamaan dengan sistem paralel dalam hal
menggabungkan beberapa CPU untuk meningkatkan kinerja komputasi. Jika
salah satu mesin mengalami masalah dalam menjalankan tugas maka mesin lain
dapat mengambil alih pelaksanaan tugas itu. Dengan demikian, sistem akan
lebih andal dan fault tolerant dalam melakukan komputasi.
Dalam hal jaringan, sistem kluster mirip dengan sistem terdistribusi
(distributed system). Bedanya, jika jaringan pada sistem terdistribusi melingkupi
komputer-komputer yang lokasinya tersebar maka jaringan pada sistem
kluster menghubungkan banyak komputer yang dikumpulkan dalam satu
tempat.
Dalam ruang lingkup jaringan lokal, sistem kluster memiliki beberapa model
dalam pelaksanaannya: asimetris dan simetris. Kedua model ini berbeda dalam
hal pengawasan mesin yang sedang bekerja. Pengawasan dalam model
asimetris menempatkan suatu mesin yang tidak melakukan kegiatan apa pun
selain bersiap-siaga mengawasi mesin yang bekerja.
Jika mesin itu masalah maka pengawas akan segera mengambil alih tugasnya.
Mesin yang khusus bertindak pengawas ini tidak diterapkan dalam model
simetris. Sebagai gantinya, mesin-mesin yang melakukan komputasi saling
mengawasi keadaan mereka. Mesin lain akan mengambil alih tugas mesin yang
sedang mengalami masalah.
Jika dilihat dari segi efisiensi penggunaan mesin, model simetris lebih unggul
daripada model asimetris. Hal ini disebabkan terdapat mesin yang tidak

Sistem Operasi 201


melakukan kegiatan apa pun selain mengawasi mesin lain pada model
asimetris. Mesin yang 'menganggur' ini dimanfaatkan untuk melakukan
komputasi pada model simetris. Inilah yang membuat model simetris lebih
efisien.
Isu yang menarik tentang sistem kluster ialah bagaimana mengatur mesin-
mesin penyusun sistem dalam berbagi tempat penyimpanan data (storage).
Untuk saat ini, biasanya sistem kluster hanya terdiri dari dua hingga empat
mesin berhubung kerumitan dalam mengatur akses mesin-mesin ini ke tempat
penyimpanan data.
Isu di atas juga berkembang menjadi bagaimana menerapkan sistem kluster
secara paralel atau dalam jaringan yang lebih luas (Wide Area Network). Hal
penting yang berkaitan dengan penerapan sistem kluster secara paralel ialah
kemampuan mesin-mesin penyusun sistem untuk mengakses data di storage
secara serentak. Berbagai software khusus dikembangkan untuk mendukung
kemampuan itu karena kebanyakan sistem operasi tidak menyediakan fasilitas
yang memadai. Salah satu contoh perangkat-lunak-nya-nya ialah Oracle Parallel
Server yang khusus didesain untuk sistem kluster paralel.
Seiring dengan perkembangan pesat teknologi kluster, sistim kluster
diharapkan tidak lagi terbatas pada sekumpulan mesin pada satu lokasi yang
terhubung dalam jaringan lokal. Riset dan penelitian sedang dilakukan agar
pada suatu saat sistem kluster dapat melingkupi berbagai mesin yang tersebar
di seluruh belahan dunia.
Komputasi model terbaru ini juga berbasis jaringan dengan clustered system.
Digunakan super computer untuk melakukan komputasinya. Pada model ini
komputasi dikembangkan melalui pc-farm. Perbedaan yang nyata dengan
komputasi berbasis jaringan ialah bahwa komputasi berbasis grid dilakukan
bersama-sama seperti sebuah multiprocessor dan tidak hanya melakukan
pertukaran data seperti pada komputasi berbasis jaringan.

202 Sistem Operasi


Rangkuman

Di dalam system tersebar telah mengalami sebuah kemajuan yang


cukup signifikan dalam pencapaian cara mendistribusikan suatu aliran data
missal kita ketahui mengenai system cluster yang memanfaatkan beberapa
source yang saling bekerja sama dalam menyelesaikan suatu masalah sehingga
akan dihasilkan solusi yang cepat dari sisi waktu dan tepat yaitu hasil yang
sesuai diharapkan dan benar menurut kaidah keilmuan.
Isu di atas juga berkembang menjadi bagaimana menerapkan sistem
kluster secara paralel atau dalam jaringan yang lebih luas (Wide Area Network).
Hal ini sudah terimplementasikan di dunia jaringan computer, dan cukup
diminati oleh peniliti untuk meneliti dan mungkin menemukan system
komputasi cluster yang lebih baik daripada yang sekarang.

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

Sistem Operasi 203


16 Keamanan Sistem Operasi

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. Mahasiswa dapat mengetahui ancaman yang terdapat dalam sistem


operasi
2. Mahasiswa mengetahui aset-aset komputer, Intrusi dan pendektesianya,
enkripsi dan perangkat lunak perusak.

204 Sistem Operasi


16.1 Pendahuluan
Saat ini, implementasi pengamanan sangat penting untuk menjamin sistem
tidak diinterupsi dan diganggu. Proteksi dan pengamanan terhadap perangkat
keras dan sistem operasi sama pentingnya.
Sistem operasi hanya satu porsi kecil dari seluruh perangkat lunak di suatu
sistem. Tetapi karena peran sistem operasi mengendalikan pengaksesan ke
sumber daya, dimana perangkat lunak lain meminta pengaksesan sumber daya
lewat sistem operasi maka sistem operasi menempati posisi yang penting
dalam pengamanan sistem. Pengamanan perangkat lunak cenderung
memfouskan pada pengamanan sistem operasi. Perlu diingat bahwa
perangkat lunak aplikasi juga member resiko keamanan.
Kemanan sistem operasi merupakan bagian masalah kemanan sistem
komputer secara total tapi telah menjadi bagian yang meningkat
kepentingannya. Pengamanan sistem operasi berarti kecil jika setiap orang
dapat berjalan melenggang di ruang sistem komputer. Pengamanan secara
fisik dengan membatasi pengaksesan secara langsung dengan fasilitas sistem
komputer harus dilakukan juga.

16.2 Aset Sistem Komputer


Keamanan system operasi meliputi keamanan terhadap asset-aset komputer
dengan pengelompokan sebagai berikut :
- Hardware
- Software
- Data
- Saluran Komunikasi
- Jaringan Komputer

16.3 Tujuan Security


Kebutuhan keamanan sistem komputer dikategorikan menjadi 3 (tiga) aspek
yaitu :
1. Kerahasiaan (secrecy):
Kerahasiaan adalah keterjaminan bahwa informasi di system
computer hanya dapat diakses oleh pihak-pihak yang diotorisasi dan
memodifikasi tetap menjaga konsistensi dan keutuhan data di sistem.
2. Integritas (integrity):
Integritas adalah keterjaminan bahwa sumber data sistem komputer
hanya dapat dimodifikasi oleh pihak-pihak yang diotorisasi.

Sistem Operasi 205


3. Ketersediaan (availability):
Ketersediaan adalah keterjaminan sumber daya sistem computer
tersedia bagi pihak-pihak yang diotorisasi saat diperlukan.
Tabel 16-1 Aset sistem komputer dan jenis keamanannya
Aset Availability Secrecy Integrity
Hardware Pencurian Alat
Software Program dihapus Dibuat copy Program yang sedang
software illegal berjalan dimodifikasi
Data File dihapus Pembacaan data
secara illegal
Saluran Message dihapus Message dibaca Message dimodifikasi,
Komunikasi oleh pihak yang delayed, recorded,atau
tidak berhak duplikasi

16.4 Jenis Keamanan


Jenis keamanan komputer dapat dikelompokan menjadi 3 (tiga) macam :
1. Keamanan Eksternal
Keamanan eksternal berkaitan dengan pengamanan fasilitas
computer dari penyusup dan bencana seperti kebakaran dan
kebanjiran.
2. Keamanan Interface Pemakai
Keamanan Interface pemakai berkaitan dengan identifikasi pemakai
sebelum pemakai diijinkan mengakses program dan data yang
disimpan.
3. Keamanan Internal
Keamanan internal berkaitan dengan pengamanan beragam kendali
yang dibangun pada perangkat keras dan sistem operasi yang
menjamin operasi yang handal dan tak terkorupsi untuk menjaga
integritas program dan data.

16.5 Tipe Ancaman

1. Interupsi
Sumber daya sistem computer dihancurkan atau menjadi tidak
tersedia atau tak berguna. Interupsi adalah ancaman terhadap aset

206 Sistem Operasi


sistem menjadi tidak dapat digunakan (ancaman terhadap availability)
atau hilang.
Contoh :
- Penghancuran bagian perangkat keras, seperti harddisk.
- Pemotongan kabel komunikasi.

Sum ber T u ju a n
In fo r m a s i In fo rm a s i

Gambar 16-1 Aliran Normal

Sum ber T u ju a n
In fo r m a s i In fo rm a s i

Gambar 16-2 Aliran Interupsi

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.

Sistem Operasi 207


S u m b er 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

Gambar 16-3 Intersepsi

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.

208 Sistem Operasi


Gambar 16-4 Modifikasi

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

Gambar 16-5 Fabrikasi

16.6 Petunjuk Pengamanan Sistem


Saltzer dan Schrooder (1975) member petunjuk mengenai prinsip-prinsip
pengamanan sistem komputer, yaitu :
1. Rancangan sistem seharusnya publik.
Keamanan sistem seharusnya tidak bergantung pada kerahasiaan
rancangan mekanisme pengamanan. Mengasumsikan penyusup tidak
akan mengetahui cara kerja sistem pengamanan hanya
menipu/memperdaya perancang sehingga tidak membuat mekanisme
proteksi yang bagus.
2. Dapat diterima.
Skema yang dipilih harus dapat diterima secara psikologis.
Mekanisme proteksi seharusnya tidak mengganggu kerja pemakai dan
memenuhi kebutuhan otorisasi pengaksesan. Jika mekanisme tidak

Sistem Operasi 209


mudah digunakan maka tidak akan digunakan atau digunakan secara
tidak benar.
3. Pemeriksaan Otoritas saat itu.
Sistem tidak seharusnya memeriksa ijin dan menyatakan pengaksesan
diijinkan, serta kemudian menetapkan terus informasi ini untuk
penggunaan selanjutnya. Banyak sistem memeriksa ijin ketika file
dibuka dan setelah itu (operasi-operasi lain) tidak diperiksa. Pemakai
yang membuka file dan lupa menutup file akan terus dapat di walau
pemilik file telah mengubah atribut proteksi file.
4. Kewenangan Serendah Mungkin.
Program atau pemakai sistem seharusnya beroperasi dengan
kumpulan wewenang serendah mungkin yang diperlukan untuk
menyelesaikan tugasnya. Default sistem yang digunakan harus tidak
ada akses sama sekali.
5. Mekanisme yang Ekonimis
Mekanisme proteksi seharusnya sekecil, sesederhana mungkin dan
seragam sehingga memudahkan verifikasi. Proteksi seharusnya
dibangun di lapisan terbawah. Proteksi merupakan bagian integral
rancangan sistem, bukan mekanisme yang ditambahkan pada
rangcangan telah ada.

16.7 Metode dan Mekanisme Proteksi Sistem Komputer


Pada sistem komputer ada banyak objek yang perlu diproteksi, seperti:
- Memori.
- Perangkat I/O yang digunakan bersama, seperti disk.
- Perangkat I/O serially reusable, seperti printer, tape drive.
- Program dan subprogram yang digunakan bersama.
- Data yang digunakan bersama.

Metode proteksi yang digunakan untuk melindungi objek-objek tersebut


meliputi hal-hal sebagai berikut:
- Dasar dari proteksi adalah pemisahan
- Beberapa teknik pemisahan:
– Pemisahan fisik, yaitu penggunaan objek yang berbeda
– Pemisahan temporer, misalnya perbedaan waktu eksekusi
– Pemisahan lojik, membuat ilusi seolah tidak proses lain yang
beroperasi selain proses user
– Pemisahan kriptografi, objek (data, komputasi) tdk dapat
dimengerti oleh pihak yang tidak berkepentingan
210 Sistem Operasi
- Tingkatan proteksi yang disediakan OS:
– Tidak ada proteksi
– Isolasi
– Share semua atau tidak di-share sama sekali
– Share dgn batasan akses
– Share melalui kapabilitas
– Batasi penggunaan objek
- Granularitas kontrol
– Bit, byte, word, field, record, file, volume

16.8 Mekanisme Proteksi Objek


Sistem operasi dalam memanajemen sumber daya komputer juga melakukan
perlindungan terhadap objek-objek sumber daya komputer sebagai berikut:
– Memori
– File atau data set pada perangkat penyimpanan
– Program yang sedang dieksekusi di memori
– Direktori file
– Perangkat keras
– Struktur data, misalnya Stack
– Tabel pada sistem operasi
– Instruksi, terutama instruksi istimewa
– Password dan mekanisme otentikasi user
– Mekanisme proteksi

Objek-objek di atas diakses oleh subjek-subjek seperti: user, pengembang,


program, atau pihak lain yang mencoba menggunakan mereka. Perlindungan
tersebut bertujuan untuk:
– Memberikan hak akses seminimal dan sesedikit mungkin objek
yang diperlukan
– Memeriksa setiap akses, dan mencabut hak akses jika terjadi
pelanggaran
– Verifikasi penggunaan akses

16.8.1 Proteksi Objek Direktori


Proteksi objek direktori menggunakan direktori file yang berisi daftar file yang
memiliki user yang mengontrol (memberi, mencabut) hak akses. Setiap user
memiliki sebuah direktori file yang mencatat daftar file yang dapat diakses

Sistem Operasi 211


user beserta izin aksesnya. User tidak bisa langsung menulis direktori file
tersebut melainkan harus melalui mekanisme yang disediakan oleh sistem
operasi.
Proteksi dengan cara ini mudah diimplementasikan namun memiliki beberapa
kekurangan, di antaranya:
– Ukuran list terlalu besar jika user memiliki akses terhadap banyak file
– Pencabutan akses terhadap beberapa user menjadi sulit
– Pseudonym: akses terhadap file bernama sama yang dimiliki 2 user
berbeda

Gambar 16-6 Proteksi Objek Direktori

16.8.2 Proteksi Objek ACL


Access Control List (ACL) merupakan metode di mana terdapat sebuah
direktori berisi list semua objek dan subjek yang bisa mengakses objek
tersebut. Dibandingkan dengan metode direktori file sebelumnya dalam ACL
setiap objek memiliki daftar user atau subjek yang memiliki hak akses

212 Sistem Operasi


terhadap objek tersebut. Hal ini memudahkan menajemen hak akses terhadap
objek tertentu.

Gambar 16-7 Proteksi objek ACL

16.8.3 Proteksi Objek ACM


Access Control Matrix (ACM) merupakan metode proteksi dengan
menggunakan tabel di mana baris merepresentasikan subjek dan kolom
merepresentasikan objek. Metode ini dapat dijelaskan melalui sparse matrix
berikut ini. Sel dalam matriks berisikan hak akses subjek terhadap objek
bersangkutan.
Tabel 16-2 Sparse matrix diagram ACM

BIBLG TEMP F SYS_CLK PRINT LINKER


User A ORW ORW ORW R W X
User B R - - R W X
User S RW - R R W X
User T - - - R W X
Sys_mgr - - - ORW O OX

Sistem Operasi 213


User_svcs - - - R W X

16.8.4 Proteksi Objek Capability


Pada metode proteksi object capability digunakan token atau tanda yang
memberi subjek akses tertentu terhadap objek. Token ini mirip dengan tiket
atau kartu identitas dan dapat dipindahkan atau dialihkan.

16.8.5 Proteksi File


 Proteksi All-None
– Prinsip proteksi: trust + ignorance
– Default: file bersifat publik
– Beberapa file penting diproteksi dgn password
– Kekurangan:
 Rendahnya kepercayaan (trust)
 All or nothing
 Meningkatnya penggunaan sistem time-sharing
 Penggunaan password untuk akses file meningkatkan kompleksitas
 Adanya fasilitas file listing
 Proteksi Grup
– User dikelompokkan dalam grup
– Basis: kebutuhan untuk sharing
– 3 kategori: user, grup, other
– User mendefinisikan hak akses untuk tiap file (r, w, x, d);
default: read-only
– Kekurangan:
– Afiliasi grup, satu user tidak bisa ada di 2/lebih grup
– Multiple personalities, user memiliki bbrp account
– User bisa mengakses file yang ada di semua grupnya
– Keterbatasan sharing, mis. utk sharing per file

16.8.6 Proteksi Izin Tunggal


 Password atau Token Lainnya
– Akses terhadap file (write, atau semua akses) menggunakan
password
– Kelemahan:
 Password hilang
 Penyebaran password
 Pencabutan akses harus merubah password

214 Sistem Operasi


 Izin Temporer
– User memperoleh akses terhadap file hanya selama eksekusi
program
– Contoh: izin suid (set userid) pada Unix

16.8.7 Proteksi File per-objek dan per-user


 Kekurangan:
– Tidak ada semantik grup  hak akses dispesifikasikan utk tiap
user
 Contoh:
– VAX SE-MS
• User membuat ACL (Access Control List) utk tiap file
• ACL bisa digunakan juga utk perangkat atau tipe perangkat
tertentu
– IBM RACF, ACF2
• Membuat proteksi default untuk file, dan kemudian dibedakan
berdasarkan user

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

Sistem Operasi 215


 Enkripsi: proses pengkodean pesan sehingga maknanya menjadi
tidak jelas
 Dekripsi: proses membalikkan pesan terenkripsi kembali ke bentuk
normal
 Plaintext (P): bentuk awal dari pesan
 Ciphertext (C): bentuk terenkripsi dari pesan
Notasi:
– P = (p1, p2, …, pn), C = (c1, c2, …, cn)
 Transformasi:
– Enkripsi: C = E(P); E merupakan algoritma enkripsi
– Dekripsi: P = D(C); D merupakan algoritma dekripsi
 Ada algoritma enkripsi yang menggunakan kunci K
– C = E(K, P) dan P = D(K, C)
 Kunci memungkinkan enkripsi yang berbeda untuk pesan yang sama
hanya dgn merubah kunci
 Enkripsi simetrik menggunakan kunci enkripsi dan dekripsi yang
sama
– P = D(K, E(K, P))
 Enkripsi asimetrik menggunakan kunci enkripsi dan dekripsi yang
berbeda
– P = D(KD, E(KE, P))
 Kriptografi merupakan cara penggunaan enkripsi untuk
menyembunyikan teks
 Kriptoanalis mempelajari enkripsi dan pesan terenkripsi dgn tujuan
menemukan makna tersembunyi dari pesan
 Kriptografer bekerja secara legal, kriptoanalis bekerja utk tujuan
ilegal
 Kriptologi merupakan kegiatan penelitian dan kajian mengenai
enkripsi dan dekripsi.

16.10 Karakteristik Intrusi Komputer


Prinsip penetrasi termudah adalah intruder menggunakan berbagai cara intrusi
yang mungkin dan bukan melalui celah yang mudah ditebak, atau celah di mana
telah dibangun pertahanan terhadap intrusi sangat ketat
Intruder sendiri lebih sering dikenal dengan sebutan hacker/cracker. Tujuan
mereka adalah untuk mendapatkan akses ke sebuah sistem atau meningkatkan
jangkauan dari hak-hak yang dapat diaksesnya pada suatu sistem.

216 Sistem Operasi


Pada praktiknya pertahanan pertama sistem terhadap intruder adalah sistem
password dan file tempat menyimpan password diproteksi dengan cara
password yang disimpan sudah dienkripsi dan membatasi akses terhadap file
password.

16.11 Program-program Jahat


Ancaman-ancaman canggih terhadap sistem komputer adalah program yang
mengeksploitasi kelemahan sistem komputasi. Kita berurusan dengan
program aplikasi begitu juga program utilitas seperti editor dan kompilatir.
Bowles [Bow-92] memberikan taksonomi ancaman perangkat lunak atau
klasifikasi program jahat (malicious program). Gambar 13-7 menunjukan
taksonomi yang diberikan oleh Bowles. Ancaman-ancaman itu dapat dibagi
menjadi dua kategori, yaitu :
1. Program-program yang memerlukan program inang (host program).
Fragmen program tidak dapat mandiri secara independen dari suatu
program aplikasi, program utilitas atau program sistem.
2. Program-program yang tidak memerlukan program inang.
Program sendiri yang dapat dijadwalkan dan dijalankan oleh sistem
operasi.
Pembagian atau taksonomi Bowles menghasilkan tipe-tipe program jahat
sebagai berikut :
1. Bacteria
2. Logic bomb
3. Trapdoor
4. Trojan horse
5. Virus
6. Worm

Sistem Operasi 217


Program
Jahat

Perlu
Independen
Program Inang

Logic Trojan
Trapdoor Virus Bacteria Worm
bomb horse

Gambar 16-8 Taksonomi Program Jahat

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

218 Sistem Operasi


3. Trapdoor
Trapdoor adalah titik masuk tak terdokumentasi rahasia di satu
program untuk memberikan akses tanpa metode-metode otentifikasi
normal. Trapdoor telah dipakai secara benar selama bertahun-tahun
oleh pemrogram untuk mencari kesalahan program. Debugging dan
testing biasanya dilakukan pemrograman saat mengembangkan
aplikasi. Untuk program yang mempunyai prosedur otentifikasi atau
setup lama atau memerlukan pemakai memasukan nilai-nilai berbeda
untuk menjalankan aplikasi maka debugging akan lama bila harus
melewati prosedur-prosedur tersebut.
Untuk debug program jenis ini, pengembang membuat kewenangan
khusus atau menghilangkan keperluan setup dan otentifikasi.
Trapdoor adalah kode yang menerima suatu barisan masukan khusus
atau dipicu dengan menjalankan ID pemakai tertentu atau barisan
kejadian tertentu.
Trapdoor menjadi ancaman ketika digunakan pemrogram jahat untuk
memperoleh pengaksesan tak diotorisasi. Pada kasus nyata, auditor
perangkat lunak (“pemeriksa perangkat lunak”) dapat menemukan
trapdoor pada produk perangkat lunak dimana nama pencipta
perangkat lunak berlaku sebagai password yang memintas proteksi
perangkat lunak yang dibuatnya. Adalah sulit mengimplementasikan
kendali-kendali perangkat lunak untuk Trapdoor.
Contoh Trapdoor
(a) Kode normal
(b) Kode dengan tambahan trapdoor

Sistem Operasi 219


4. Trojan Horse
Trojan Horse adalah rutin tak terdokumentasi rahasia ditempelkan
dalam satu program berguna. Program yang berguna mengandung
kode tersebunyi yang ketika dijalankan melakukan suatu fungsi yang
akan diinginkan. Eksekusi program menyebabkan eksekusi rutin
rahasia ini.
Program-program Trojan Horse digunakan untuk melakukan fungsi-
fungsi secara tidak langsung dimana pemakai tak diotorisasi tidak
dapat melakukannya secara langsung. Contoh, untuk dapat
mengakses file-file pemakai lain pada sistem dipakai bersama,
pemakai dapat menciptakan program Trojan Horse. Trojan Horse ini
ketika program dieksekusi akan mengubah ijin-ijin file sehingga file-
file dapat dibaca oleh sembarang pemakai.
Pencipta program dapat menyebarkan ke pemakai-pemakai dengan
mendapatkan program didirektori bersama dan menamai
programnya sedemikian rupa sehingga disangka sebagai program
utilitas yang berguna.
Program Trojan Horse yang sulit dideteksi adalah kompilator yang
dimodifikasi sehingga menyisipkan kode tambahan ke program-
program tertentu setelah dikompilasi, seperti program login. Kode
menciptakan Trapdoor pada program login yang mengijinkan pencipta
log ke system menggunakan password khusus. Trojan Horse seperti
ini tidak akan ditemukan jika hanya membaca program sumber.
Motivasi lain dari Trojan Horse adalah menghancurkan data. Program
muncul sebagai melakukan fungsi-fungsi berguna (seperti kalkulator),
tapi juga secara diam-diam menghapus file-file pemakai. Trojan Horse
biasa ditempelkan pada program-program atau rutin-rutin yang
diambil dari BBS, internet, dan sebagainnya.
Fasilitas file-file tautan yang dikirimkan bersama surat elektronik (e-
mail) sering digunakan untuk menyebarkan aplikasi-aplikasi atau
dokumen yang ternyata adalah trojan.
5. Virus
Virus adalah kode yang ditempelkan dalam suatu program yang
menyebabkan pengsalinan dirinya disisipkan ke satu program lain
atau lebih. Program “menginfeksi” program-program lain dengan
memodifikasi program-program itu. Modifikasi ini termasuk
memasukan salinan program virus yang kemudian dapat
“menginfeksi” program-program lain. Selain hanya propagasi, virus
biasanya melakukan fungsi yang tidak diinginkan.

220 Sistem Operasi


Seperti virus biologis, virus komputer terdapat kode instruksi yang
dapat membuat salinan sempurna dirinya. Ketika computer yang
terinfeksi berhubungan (kontak) dengan perangkat lunak yang belum
terinfeksi, salinan virus memasuki program baru. Inveksi dapat
menyebar dari komputer ke komputer melalui pemakai-pemakai
yang menukarkan disk atau mengirim program melalui jaringan. Pada
lingkungan jaringan jaringan, kemampuan mengakses aplikasi dan
layanan-layanan computer lain merupakan fasilitas sempurna
penyebaran virus.

Gambar 16-9 Virus Menginfeksi

Gambar 16-10 Virus Signature

Sistem Operasi 221


Gambar 16-11 Virus memperoleh Kontrol

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.

222 Sistem Operasi


 Kemampuan login jarak jauh (remote login capability), yaitu worm
log pada sistem jauh sebagai pemakai dan kemudian
menggunakan perintah untuk mengkopi dirinya dari satu sistem
ke sistem lain.
Salinan program worm yang baru kemudian dijalankan di sistem jauh dan
melakukan fungsi-fungsi lain yang dilakukan di sistem itu, worm terus
menyebar dengan cara yang sama.
Network Worm juga berusaha menentukan apakah sistem sebelumnya
telah diinfeksi sebelum mengirim salinan dirinya ke sistem itu.

16.12 Virus dan Anti Virus

16.12.1 Siklus Hidup Virus


Virus adalah sama dengan program komputer lain. Perbedaan dengan
program lain adalah virus dapat menempelkan dirinya ke program lain dan
mengeksekusi kodenya secara rahasia setiap kali program inang berjalan.
Masalah yang ditimbulkan virus adalah virus sering merusak sistem komputer
seperti menghapus file, partisi disk, atau mengacaukan program. Virus
mengalami siklus hidup empat fase (tahap), yaitu :
1. Fase Tidur (dormant phase)
2. Fase propagasi (propagation phase)
3. Fase pemicu (triggering phase)
4. Fase Eksekusi (execution phase)

1. Fase Tidur (dormant phase)


Virus dalam keadaan menganggur. Virus akan tiba-tiba aktif oleh
suatu kejadian seperti tibanya tanggal tertentu, kehadiran
program atau file tertentu, atau kapasitas disk yang melewati
batas. Tidak semua virus mempunyai tahapan ini.
2. Fase propagasi (propagation phase)
Virus menempatkan salinan dirinya ke program lain atau daerah
sistem tertentu di disk. Program yang terinfeksi virus akan
mempunyai cloning virus. Kloning virus itu dapat kembali
memasuki fase propagasi.

Sistem Operasi 223


3. Fase pemicu (triggering phase)
Virus diaktifkan untuk melakukan fungsi tertentu. Seperti pada
fase tidur, fase pemicuan dapat disebabkan beragam kejadian
sistem termasuk penghitungan jumlah salinan dirinya.
4. Fase Eksekusi (execution phase)
Virus menjalankan fungsinya. Fungsinya mungkin sepele seperti
sekedar menampilkan pesan dilayar atau merusak program dan
file-file data, dan sebagainya.

Kebanyakan virus melakukan kerjanya untuk suatu sistem operasi tertentu,


lebih spesifik lagi pada platform perangkat keras tertentu. Virus-virus
dirancang memanfaatkan rincian-rincian dan kelemahan-kelamahan sistem
tertentu.

16.12.2 Infeksi Virus


Sekali virus telah memasuki sistem dengan menginfeksi satu program, virus
berada dalam posisi menginfeksi beberapa atau semua file berekstensi exe lain
di sistem itu saat program yang terinfeksi dieksekusi. Infeksi virus dapat
sepenuhnya dihindari dengan mencegah virus masuk sistem. Pencegahan ini
sangat luar biasa sulit karena virus dapat menjadi bagian program di luar
sistem.
Kebanyakan virus mengawali infeksinya pengsalinan disk yang telah terinfeksi
virus. Banyak disk berisi game atau utilitas di rumah dikopikan ke mesin
kantor. Disk berisi virus pun dapat terdapat di disk yang dikirim produsen
aplikasi. Hanya sejumlah kecil infeksi virus yang dimulai dari hubungan
jaringan.

16.12.3 Tipe-tipe virus


Saat ini perkembangan virus masih berlanjut, terjadi perlombaan antara
penulis virus dan pembuat virus. Begitu satu tipe dikembangkan antivirus-nya,
tipe virus yang lain muncul. Klasifikasi virus adalah sebagai berikut :
1. Parasitic virus
2. Memory-resident virus
3. Boot Sector Virus
4. Stealth virus
5. Polymorphic virus

224 Sistem Operasi


o Parasitic Virus
Merupakan virus tradisional dan bentuk virus yang paling sering.
Tipe ini menempelkan dirinya ke file exe. Virus mereplikasi dirinya
ketika program yang terinfeksi dieksekusi dengan mencari file-file
exe lain untuk diinfeksi.
o Memory-resident virus
Virus memuatkan diri ke memori utama sebagai bagian program
yang menetap. Virus menginfekasi setiap program yang dieksekusi.
o Boot Sector Virus
o Virus menginfeksi master boot record atau boot record dan
menyebar saat sistem di boot dari disk yang berisi virus.
o Stealth Virus
Virus yang bentuknya telah dirancang agar dapat menyembunyikan
diri dari deteksi perangkat lunak antivirus.
o Polymorphic Virus
Virus bermutasi setiap kali melakukan inveksi. Deteksi dengan
“penandaan” virus tersebut tidak dimungkinkan.
Penulis virus dapat melengkapi dengan alat-alat bantu penciptaan virus baru
(virus-creation toolkit yaitu rutin-rutin untuk menciptakan virus-virus baru).
Dengan alat bantu ini penciptaan virus baru dapat dilakukan dengan sangat
cepat. Virus-virus yang diciptakan dengan alat bantu biasanya kurang canggih
disbanding virus-virus yang dirancang dari awal.

16.13 Anti Virus


Solusi ideal terhadap ancaman virus adalah pencegahan. Jangan ijinkan virus
masuk ke sistem. Sasaran ini, tak mungkin dilaksanakan sepenuhnya.
Pencegahan dapat mereduksi sejumlah serangan virus. Setelah pencegahan
terhadap masuknya virus, maka pendekatan berikutnya adalah :
1. Deteksi
2. Identifikasi
3. Penghilangan

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.

Sistem Operasi 225


3. Penghilangan
Begitu virus dapat diidentifikasi maka hilangkan semua jejak virus dari
program yang terinfeksi dan program dikembalikan ke semula
(sebelum terinfeksi).

Jika edentifikasi sukses dilakukan, tapi identifikasi atau penghilangan tidak


dapat dilakukan, maka alternative yang dilakukan adalah hapus program yang
terinfeksi dan kopi kembali backup program yang masih bersih.

16.14 Generasi Anti virus


Sebagaimana virus berkembang dari yang sederhana menjadi semakin canggih,
begitu juga paket perangkat lunak antivirus. Saat ini program antivirus
semakin kompleks dan canggih. Perkembangan program antivirus dapat
diperiode menjadi empat generasi, yaitu:

1. Generasi pertama : Sekedar scanner sederhana


2. Generasi kedua : Scanner yang pintar (heuristic scanner)
3. Generasi ketiga : jebakan-jebakan aktivasi (activity trap)
4. Generasi keempat : proteksi penuh (full-featured protection)

1. Generasi Pertama: sekedar scanner sederhana


Antivirus men-scan program untuk menentukan penanda (signature)
virus. Walaupun virus mungkin berisi “karakter-karakter varian”
tapi secara esensi mempunyai struktur dan pola bit yang sama
dengan salinannya. Teknik ini terbatas untuk diteksi virus-virus yang
telah dikenal. Tipe lain antivirus generasi pertama adalah mengelola
rekaman panjang (ukuran) program dan memeriksa perubahan
panjang program.
2. Generasi Ke-dua: scanner yang pintar (heuristic scanner)
Antivirus men-scan tidak bergantung pada penanda spesifik. Antivirus
menggunakan aturan-aturan pintar (heuristic scanner) untuk mencari
kemungkinan terinvekasi virus. Teknik yang dipakai misalnya
mencari fragmen-fragmen kode yang sering merupakan bagian virus.
Contohnya, antivirus mencari awal loop enkripsi yang digunakan
polymorphic virus dan menemukan kunci enkripsi. Bagitu kunci
ditemukan, antivirus dapat men-deskripsi virus untuk identifikasi dan
kemudian menghilangkan infeksi virus.

226 Sistem Operasi


Teknik lain adalah pemeriksa integritas. Checksum dapat
ditambahkan di tiap program. Jika virus menginfeksi program tanpa
mengubah checksum, maka pemerikasaan integritas akan menemukan
perubahan itu. Untuk menanggulangi virus canggih yang mampu
mengubah checksum saat menginfeksi program, fungsi hash ter-
enkripsi digunakan. Kunci enkripsi disimpan secara terpisah dari
program sehingga program tidak dapat menghasilkan kode hash dan
meng-enkripsinya. Dengan menggunakan fungsi hash bukan
checksum sederhana maka mencegah virus menyesuaikan program
yang menghasilkan kode hash yang sama seperti sebelumnya.
3. Generasi Ke-tiga: jebakan-jebakan aktivasi (activity trap)
Program antivirus merupakan program yang menetap di memori
(memory resident program). Program ini mengidentifikasi virus
melalui aksi-aksinya bukan dari struktur program yang diinfeksi.
Dengan anticirus semacam ini tak perlu mengembangkan penanda-
penanda dan aturan-aturan pintar untuk beragam virus yang sangat
banyak. Dengan cara ini yang diperlukan adalah mengidentifikasi
kumpulan instruksi yang berjumlah sedikit yang mengidentifikasi
adanya usaha infeksi. Kalau muncul kejadian ini, program antivirus
segera mengintervensi.
4. Generasi Ke-empat: proteksi penuh (full-featured protection)
Antivirus generasi ini menggunakan beragam teknik antivirus secara
bersamaan. Teknik-teknik ini meliputi scanning dan jebakan-jebakan
aktivitas. Antivirus juga mempunyai senarai kapabilitas pengaksesan
yang membatasi kemampuan virus memasuki sistem dan membatasi
kemampuan virus memodifikasi file untuk menginfeksi file.
Pertempuran antara penulis virus dan pembuat antivirus masih
berlanjut. Walau beragam strategi lebih lengkap telah dibuat untuk
menghalangi virus, penulis virus-pun masih berlanjut menulis virus yang
dapat melewati barikade-barikade yang dibuat penulis antivirus.
Untuk pengaman sistem komputer, sebaiknya pengaksesan dan
pemakaian komputer diawasi dengan seksama sehingga tidak
menjalankan program atau memakai disk yang belum terjamin
kebersihannya dari infeksi virus.
Pencegahan terbaik terhadap ancaman virus adalah mencegah virus
memasuki sistem saat yang pertama.

Sistem Operasi 227


Rangkuman

Kemanan sistem operasi merupakan bagian masalah kemanan sistem


komputer secara total tapi telah menjadi bagian yang meningkat
kepentingannya. Pengamanan sistem operasi berarti kecil jika setiap orang
dapat berjalan melenggang di ruang sistem komputer. Pengamanan secara
fisik dengan membatasi pengaksesan secara langsung dengan fasilitas sistem
komputer harus dilakukan juga. Ancaman dapat diterima dari seorang user
ataupun suatu program. Untuk mengatasi hal itu maka dibuatlah suatu
pencegahan. Suatu password digunakan untuk seorang user dan sebuah anti
virus untuk berbagai virus yang kemungkinan menyerang system kita.
Teradapat banyak mekanisme proteksi objek. Dalam bahasan di bab
ini terdapat tujuh proteksi objek yang masing- masing mempunyai
karakteristik yang berbeda.
Teradapat program selain virus yang dibuat oleh manusia, seperti
worm, Trojan horse dll. Maka perlu diketahui apa karakter dari ancaman
tersebut dengan mengulasnya dalam bab ini.

Latihan

1. Sebutkan dan jelaskan tujuan dari security atau keamanan.?


2. Apa perbedaan antara worm dan virus?
3. Sebutkan algoritma enkripsi yang anda ketahui?
4. Ada sebuah kasus misalnya anda seorang administrator jaringan, hal
apakah yang anda lakukan terhadap jaringan dan system yang anda
kelola dalam hal pencegahan terhadap ancaman yang mungkin
membahayakan bagi system dan jaringan kompter yang anda tangani?
5. Sebutkan dan jelaskan tipe virus?Juga sebutkan nama virus terkini
yang anda ketahui

228 Sistem Operasi


DAFTAR PUSTAKA

Tanembaum, Andrew, William Stalling, Silberschatz, Operating


System.
STT Telkom Bandung
Desaincek.wordpress.com/tutorial

Sistem Operasi 229

Anda mungkin juga menyukai