modul sistem operasi

237
i 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.

Upload: irwansyah-cappriconus

Post on 22-Oct-2015

237 views

Category:

Documents


25 download

TRANSCRIPT

i

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.

ii Sistem Operasi

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 EXTENDED 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

iii

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

iv Sistem Operasi

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

v

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

vi Sistem Operasi

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

vii

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

Sistem Operasi 1

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.

2 Sistem Operasi

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.

Sistem Operasi 3

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.

4 Sistem Operasi

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:

Sistem Operasi 5

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.

6 Sistem Operasi

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.

Sistem Operasi 7

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.

8 Sistem Operasi

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

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

START Fetch Insruksi

Eksekusi Instruksi

HALT

Fetch Cycle Execute Cycle

Sistem Operasi 9

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

10 Sistem Operasi

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

Sistem Operasi 11

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.

12 Sistem Operasi

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

Sistem Operasi 13

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

14 Sistem Operasi

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.

Sistem Operasi 15

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

16 Sistem Operasi

Batch Multiprogramming Time Sharing

Principal objective Maximize Prosesor use Minimize response time

Source of directives to operating system

Job control language commands provided with the job

Commands entered at the 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

Sistem Operasi 17

(b) multiprogramming dengan dua proses

(c) multiprogramming dengan tiga proses

Gambar 2-3 Perbandingan eksekusi perintah antara sistem uniprogramming dengan multiprogramming

18 Sistem Operasi

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

Sistem Operasi 19

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

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.

20 Sistem Operasi

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

Sistem Operasi 21

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.

22 Sistem Operasi

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.

Sistem Operasi 23

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

24 Sistem Operasi

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.

Sistem Operasi 25

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

26 Sistem Operasi

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.

Sistem Operasi 27

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.

28 Sistem Operasi

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

Sistem Operasi 29

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.

30 Sistem Operasi

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.

Sistem Operasi 31

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.

32 Sistem Operasi

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

Sistem Operasi 33

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.

34 Sistem Operasi

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

Sistem Operasi 35

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.

36 Sistem Operasi

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

Sistem Operasi 37

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

38 Sistem Operasi

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.

Sistem Operasi 39

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.

40 Sistem Operasi

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.

Sistem Operasi 41

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

42 Sistem Operasi

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.

Sistem Operasi 43

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:

44 Sistem Operasi

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.

Sistem Operasi 45

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

46 Sistem Operasi

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)

Sistem Operasi 47

{ 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*/ const int n=/*jumlah proses*/ int bolt; void P(int i) { while(true) { while(!testset(bolt)) /*diam*/ /*critical section*/ /*lain-lain*/

/*program:mutualexclusion*/ const int n=/*jumlah proses*/ int bolt; void P(int i) { int keyi=1; while(true) { do exchange (keyi, bolt); while(key!=0) /*critical section*/

48 Sistem Operasi

} } void main() { bolt=0; parBegin(P(1),P(2), …, P(n)); }

exchange(keyi, bolt); /*lain-lain*/ } } void main() { 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

Sistem Operasi 49

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:

50 Sistem Operasi

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:

Sistem Operasi 51

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.

52 Sistem Operasi

Gambar 4-1 Contoh dari mekanisme semaphore

Semaphore

Prosesor A

s=1 C D B

Blocked queue Ready queue

Semaphore

Prosesor B

s=0 A C D

Blocked queue Ready queue

Semaphore

Prosesor D

s=-1 A C B

Blocked queue Ready queue

Semaphore

Prosesor D

s=0 B A C

Blocked queue Ready queue

Semaphore

Prosesor C

s=0 D B A

Blocked queue Ready queue

Semaphore

Prosesor D

s=-3 B A C

Blocked queue Ready queue

Semaphore

Prosesor D

s=-2 C B A

Blocked queue Ready queue

1

2

3

4

5

6

7

Sistem Operasi 53

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.

54 Sistem Operasi

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.

Sistem Operasi 55

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.

56 Sistem Operasi

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.

Sistem Operasi 57

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.

58 Sistem Operasi

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.

Sistem Operasi 59

New

Ready/ suspend

Ready Running Exit

Blocked/ suspend

Blocked

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. Long term Long term Medium Medium term

term

Medium term

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.

60 Sistem Operasi

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.

Sistem Operasi 61

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

62 Sistem Operasi

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

Sistem Operasi 63

Tabel 5-2 Perbandingan Turnaround time beragam algoritma

Algoritma

Process Waktu- datang Waktu-layan (Ts)

A 0 3

B 2 6

C 4 4

D 6 5

E 8 2

Rata2

FCFS

Selesai TAT TAT/Ts

3 3 1.00

9 7 1.17

13 9 2.25

18 12 2.40

20 12 6.00

8.60 2.56

RR, q=1

Selesai TAT TAT/Ts

4 4 1.33

18 16 2.67

17 13 3.25

20 14 2.80

15 7 3.50

10.80 2.71

RR, q=4 Selesai TAT TAT/Ts

3 3 1.00

17 15 2.5

11 7 1.75

20 14 2.80

19 11 5.50

10.00 2.71

SPN Selesai TAT TAT/Ts

3 3 1.00

9 7 1.17

15 11 2.75

20 14 2.80

11 3 1.50

7.60 1.84

SRT Selesai TAT TAT/Ts

3 3 1.00

15 13 2.17

8 4 1.00

20 14 2.80

10 2 1.00

7.20 1.59

HRRN Selesai TAT TAT/Ts

3 3 1.00

9 7 1.17

13 9 2.25

20 14 2.80

15 7 3.5

8.60 2.14

FB, q=1 Selesai TAT TAT/Ts

4 4 1.33

20 18 3.00

16 12 3.00

19 13 2.60

11 3 1.5

10.00 2.29

FB, q=2^i Selesai TAT TAT/Ts

4 4 1.33

17 15 2.50

18 14 3.50

20 14 2.80

14 6 3.00

10.60 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

64 Sistem Operasi

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 seleksi

max[w] constant min[s] min[s-e] max((w+s)/s) Lihat text

Mode keputusan

Nonpre-emptive

Pre-emptive (pada kuantum waktu)

Nonpre-emptive

Pre-emptive (saat kedatangan)

Nonpre-emptive

Pre-emptive (pada kuantum waktu)

Throughput Tidak dapat dinyata-kan

Kecil jika quantum waktu kecil

Tinggi Tinggi Tinggi Tidak dapat dinyata-kan

Response Time

Mungkin tinggi jika waktu eksekusi bervariasi

Bagus untuk process-process pendek

Bagus untuk process-process pendek

Bagus Bagus Tidak dapat dinyata-kan

Overhead Kecil Kecil Dapat tinggi

Dapat tinggi Dapat tinggi Dapat tinggi

Efek pada process

Process pendek atau yang menunggu I/O bisa lama;

Adil Process panjang bisa lama

Process panjang bisa lama

Seimbang Bisa utamakan process terkait I/O

Penundaan tanpa batas

Tidak Tidak Bisa Bisa Tidak Bisa

w = waiting time , waktu tunggu e = executing time, waktu eksekusi, selama ini s = total service time, waktu layan total

Sistem Operasi 65

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 Grain

Deskripsi Interval Sinkronisasi (Instruksi)

Fine Paralelisme ada di dalam stream instruksi tunggal

< 20

Medium Pemrosesan paralel atau multitasking dalam suatu aplikasi tunggal

20 – 200

Coarse Multiprocessing dari proses-proses konkuren dalam lingkungan multiprogramming

200-2000

Very coarse Pemrosesan tersebar sepanjang node-node jaringan untuk membentuk lingkungan komputasi tunggal.

2000-1M

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.

66 Sistem Operasi

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

Sistem Operasi 67

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.

68 Sistem Operasi

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.

Sistem Operasi 69

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

70 Sistem Operasi

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

Sistem Operasi 71

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.

72 Sistem Operasi

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

Sistem Operasi 73

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 System (8 M) Free : 56 M

Operating System (8 M) Process P1 (20 M) Process P2 (14 M) Process P3 (18 M) Free : 4 M

Operating System (8 M) Process P1 (20 M) Free : 14 M Process P3 (18 M) Free : 4 M

Operating System (8 M) Process P1 (20 M) Process P4 (8 M) Free : 6 M Process P3 (18 M) Free : 4 M

Operating System (8 M) Free : 20 M Process P4 (8 M) Free : 6 M Process P3 (18 M) Free : 4 M

Operating System (8 M) Process P2 (14M) Free : 6 M

Process P4 (8 M) Free : 6 M Process P3 (18 M)

Free : 4 M

74 Sistem Operasi

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

L1 : 8M L2 : 12M L3 : 22M L4 : 18M L5 : 24M L6 : 6M L7 : 14M L8 : 36M

L1 : 8M L2 : 12M L3 : 22M L4 : 18M L5 : 1M L6 : 6M L7 : 14M L8 : 36M

Program 16 M dimana? First Fit : L3; Best Fit : L4; Next Fit : L8;

Sistem Operasi 75

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 A request 100K B request 240K C request 64K D request 256K Release B Release A E request 75K Release C Release E Release D

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

1M

A 128K 256K 512K

A 128K B 512K

A C 64K B 512K

A C 64K B D 256K A C 64K 256K D 256K

128K C 64K 256K D 256K E C 64K 256K D 256K

E 128K 256K D 256K

512K D 256K

1M

76 Sistem Operasi

Relative address Absolute address Interupsi ke S.O.

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.

Process control block

Program

Data

Stack

Bounds register Comparator

Adder

Base register

Sistem Operasi 77

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

78 Sistem Operasi

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 Proses A

Table Page Proses B

Table Page Proses C

Table Page Proses D

0 0 1 1 2 2 3 3

Daftar frame bebas

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

Sistem Operasi 79

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.

80 Sistem Operasi

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.

Sistem Operasi 81

7 Manajemen Perangkat I/O

Overview

Segala hal tentang overview.

Tujuan

3. Tujuan 1 4. Tujuan 2

82 Sistem Operasi

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

Sistem Operasi 83

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

84 Sistem Operasi

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”

Sistem Operasi 85

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.

86 Sistem Operasi

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

Sistem Operasi 87

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.

88 Sistem Operasi

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

Sistem Operasi 89

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,

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

CPU Modul DMA CPU I/O Memori

a. Bus Tunggal, DMA terhubung

CPU Modul DMA

I/O

Memori

b. Bus Tunggal, DMA terintegrasi dengan I/O

Modul DMA

I/O I/O

CPU Modul DMA

I/O

Memori

c. Bus I/O

I/O I/O

Bus Sistem

Bus I/O

90 Sistem Operasi

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

Sistem Operasi 91

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

92 Sistem Operasi

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.

Sistem Operasi 93

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.

94 Sistem Operasi

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.

Sistem Operasi 95

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

96 Sistem Operasi

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.

Sistem Operasi 97

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-

98 Sistem Operasi

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

Sistem Operasi 99

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

100 Sistem Operasi

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

Sistem Operasi 101

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.

102 Sistem Operasi

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.

Sistem Operasi 103

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.

104 Sistem Operasi

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

Sistem Operasi 105

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

106 Sistem Operasi

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.

Sistem Operasi 107

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

108 Sistem Operasi

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

Sistem Operasi 109

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

110 Sistem Operasi

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

Sistem Operasi 111

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.

112 Sistem Operasi

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

Sistem Operasi 113

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.

114 Sistem Operasi

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

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

Sistem Operasi 115

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.

116 Sistem Operasi

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

Sistem Operasi 117

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.

118 Sistem Operasi

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

Sistem Operasi 119

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.

120 Sistem Operasi

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)

Sistem Operasi 121

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.

122 Sistem Operasi

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.

Sistem Operasi 123

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.

124 Sistem Operasi

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.

Sistem Operasi 125

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:

126 Sistem Operasi

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

Sistem Operasi 127

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.

128 Sistem Operasi

9.9 Struktur Penyimpanan Terdapat konsep-konsep pada penyimpanan secara fisik di Secondary Storage: 1. File

2. Record

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

File

Record

Field

Sistem Operasi 129

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

130 Sistem Operasi

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.

Sistem Operasi 131

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.

132 Sistem Operasi

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.

Sistem Operasi 133

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

134 Sistem Operasi

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.

Sistem Operasi 135

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

136 Sistem Operasi

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

Sistem Operasi 137

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.

138 Sistem Operasi

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.

Sistem Operasi 139

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.

140 Sistem Operasi

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

2. Sederhana 3. Meningkatkan akses acak

Kerugian : Terjadi pemborosan di tiap blok 2. Variable Length Spanned Blocking

Keuntungan :

Sistem Operasi 141

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

2. Fleksibel bagi user 3. Ukuran Record tak dibatasi ukuran Blok 4. Tak terjadi pemborosan di tiap blok

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)

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

Keuntungan :

Kerugian :

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

142 Sistem Operasi

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

Sistem Operasi 143

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

144 Sistem Operasi

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

o Data dapat ditulis ulang di disk tersebut, hal ini memungkinkan untuk membaca, memodifikasi, dan menulis di disk tersebut.

Sistem Operasi 145

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.

146 Sistem Operasi

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

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.

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.

Sistem Operasi 147

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.

148 Sistem Operasi

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.

Sistem Operasi 149

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-

150 Sistem Operasi

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.

Sistem Operasi 151

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.

152 Sistem Operasi

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

Sistem Operasi 153

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.

154 Sistem Operasi

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.

Sistem Operasi 155

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.

156 Sistem Operasi

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.

Sistem Operasi 157

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

158 Sistem Operasi

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

Sistem Operasi 159

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

160 Sistem Operasi

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

Sistem Operasi 161

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

162 Sistem Operasi

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:

Sistem Operasi 163

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.

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.

164 Sistem Operasi

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.

Sistem Operasi 165

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

166 Sistem Operasi

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.

Sistem Operasi 167

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

168 Sistem Operasi

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

Sistem Operasi 169

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 ?

170 Sistem Operasi

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.

Sistem Operasi 171

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.

172 Sistem Operasi

Sebuah tipe jadual backup yaitu sebagai berikut:

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

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.

Sistem Operasi 173

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.

174 Sistem Operasi

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.

Sistem Operasi 175

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.

176 Sistem Operasi

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

Sistem Operasi 177

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.

178 Sistem Operasi

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.

Sistem Operasi 179

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.

180 Sistem Operasi

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.

Sistem Operasi 181

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.

182 Sistem Operasi

SisTer JakartaSisTer Bandung

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 JakartaSisTer Bandung

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

Sistem Operasi 183

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.

184 Sistem Operasi

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

Sistem Operasi 185

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.

186 Sistem Operasi

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

Sistem Operasi 187

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.

188 Sistem Operasi

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

Sistem Operasi 189

`

Client1

Informasi

Permintaan

Server Groupware

Aplikasi

Aplikasi

`

Client2

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

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

190 Sistem Operasi

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.

Sistem Operasi 191

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,

192 Sistem Operasi

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.

Sistem Operasi 193

Gambar 14-19 Middleware

194 Sistem Operasi

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.

Sistem Operasi 195

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

196 Sistem Operasi

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.

Sistem Operasi 197

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)

198 Sistem Operasi

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

Sistem Operasi 199

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

200 Sistem Operasi

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.

Sistem Operasi 201

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:

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

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.

202 Sistem Operasi

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.

Sistem Operasi 203

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

204 Sistem Operasi

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.

Sistem Operasi 205

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.

206 Sistem Operasi

3. Ketersediaan (availability): Ketersediaan adalah keterjaminan sumber daya sistem computer tersedia bagi pihak-pihak yang diotorisasi saat diperlukan.

Aset Availability Secrecy Integrity Hardware Pencurian Alat Software Program dihapus Dibuat copy

software illegal Program yang sedang berjalan dimodifikasi

Data File dihapus Pembacaan data secara illegal

Saluran Komunikasi

Message dihapus Message dibaca oleh pihak yang tidak berhak

Message dimodifikasi, delayed, recorded,atau 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

Tabel 16-1 Aset sistem komputer dan jenis keamanannya

Sistem Operasi 207

S u m b e rI n f o r m a s i

T u j u a nI n f o r m a s i

S u m b e rIn f o r m a s i

T u ju a nIn f o r m a s i

sistem menjadi tidak dapat digunakan (ancaman terhadap availability) atau hilang. Contoh :

- Penghancuran bagian perangkat keras, seperti harddisk. - Pemotongan kabel komunikasi.

Gambar 16-1 Aliran Normal

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.

208 Sistem Operasi

T u j u a nI n f o r m a s i

S u m b e rI n f o r m a s i

T u j u a nI n f o r m a s i

T u j u a nI n f o r m a s i

S u m b e rI n f o r m a s i

T u j u a nI n f o r m 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

jaringan.

Sistem Operasi 209

T u j u a nI n f o r m a s i

S u m b e rI n f o r m a s i

T u j u a nI n f o r m a s i

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.

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

210 Sistem Operasi

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

Sistem Operasi 211

- 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

212 Sistem Operasi

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

Sistem Operasi 213

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

214 Sistem Operasi

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

Sistem Operasi 215

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

216 Sistem Operasi

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.

Sistem Operasi 217

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

218 Sistem Operasi

ProgramJahat

PerluProgram Inang Independen

Trapdoor Logic bomb

Trojan horse Bacteria WormVirus

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

Sistem Operasi 219

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

220 Sistem Operasi

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.

Sistem Operasi 221

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

222 Sistem Operasi

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.

Sistem Operasi 223

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.

224 Sistem Operasi

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

Sistem Operasi 225

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.

226 Sistem Operasi

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

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.

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)

Sistem Operasi 227

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.

228 Sistem Operasi

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

Sistem Operasi 229

DAFTAR PUSTAKA

Tanembaum, Andrew, William Stalling, Silberschatz, Operating System. STT Telkom Bandung Desaincek.wordpress.com/tutorial