Anda di halaman 1dari 279

Politeknik Telkom

Sistem Operasi

SISTEM OPERASI

POLITEKNIK TELKOM BANDUNG 2009


i

Politeknik Telkom

Sistem Operasi

Penyusun Tafta Zani Eddy Putro Nugroho Budi Laksono Putro Periyadi Editor Surya Ariansyah

Dilarang menerbitkan kembali, menyebarluaskan atau menyimpan baik sebagian maupun seluruh isi buku dalam bentuk dan dengan cara apapun tanpa izin tertulis dari Politeknik Telkom. Hak cipta dilindungi Telkom 2009 undang-undang @ Politeknik

No part of this document may be copied, reproduced, printed, distributed, modified, removed and amended in any form by
ii Sistem Operasi

Politeknik Telkom

Sistem Operasi

any means without prior written Polytechnic.

authorization of Telkom

KATA PENGANTAR
Segala puji bagi Allah SWT, yang telah melimpahkan nikmat-Nya kepada penulis sehingga dapat menyelesaikan penulisan course ware ini. Course ware ini digunakan sebagai acuan dalam perkuliahan Sistem Operasi di program studi diploma Politeknik Telkom. Course ware ini terdiri dari 16 bab yang mewakili Struktur , bagian dari sistem operasi. Beban yang disampaikan pada buku ini disesuaikan dengan jumlah sks untuk mata kuliah ini. Pada kesempatan ini penulis menyampaikan terima kasih yang tulus kepada berbagai pihak atas segala bantuan dan dukungannya sehingga penulis dapat menyelesaikan penulisan course ware ini. Sumbangan ide, saran, dan kritik yang membangun untuk perbaikan diktat ini sangat penulis harapkan Bandung, Maret 2009

Penulis

iii

Politeknik Telkom

Sistem Operasi

iv

Sistem Operasi

Politeknik Telkom

Sistem Operasi

DAFTAR ISI
KATA PENGANTAR..................................................................................III DAFTAR ISI..................................................................................................V 1 TINJAU ULANG SISTEM KOMPUTER.................................................1 2 PENGENALAN SISTEM OPERASI.......................................................13 3 PROSES DAN THREAD...........................................................................24 4 KONKURENSI ..........................................................................................49 5 PENJADWALAN ......................................................................................71 6 MANAJEMEN MEMORI ........................................................................86 7 MANAJEMEN PERANGKAT I/O ..........................................................99 8 MANAJEMEN DISK ..............................................................................134 9 MANAJEMEN FILE ...............................................................................148 10 DIREKTORI ..........................................................................................162 11 IMPLEMENTASI SISTEM BERKAS ................................................172 12 MANAJEMEN PENYIMPAN SEKUNDER .....................................189 13 RECOVERY...........................................................................................204 14 SISTEM OPERASI TERSEBAR 1 ......................................................211 15 SISTEM TERSEBAR 2 .........................................................................232 16 KEAMANAN SISTEM OPERASI ......................................................244 DAFTAR PUSTAKA..................................................................................274

Politeknik Telkom

Sistem Operasi

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 komponenkomponen itu bekerja dan saling bekerja sama untuk memenuhi kebutuhan aplikasi dan pengguna akhir.

Sistem Operasi

Politeknik Telkom

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
2 Sistem Operasi

Politeknik Telkom

Sistem Operasi

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

Sistem Operasi

Politeknik Telkom

Sistem Operasi

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. 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:
4 Sistem Operasi

Politeknik Telkom

Sistem Operasi

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

Politeknik Telkom

Sistem Operasi

Tercepat

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

1.6 Modul I/O


Klasifikasi perangkat I/O berdasarkan aliran datanya dapat dibagi dua, antara lain: 1. Block Oriented Device, peralatan ini menyimpan informasi sebagai blok-blok berukuran tetap. Ciri utama peralatan ini adalah dimungkinkan membaca atau menulis blok-blok secara indenpenden dengan

Sistem Operasi

Politeknik Telkom

Sistem Operasi

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

Sistem Operasi

Politeknik Telkom

Sistem Operasi

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

Politeknik Telkom

Sistem Operasi

DMA berfungsi membebaskan prosesor menunggui transfer data perangkat I/O. Saat prosesor ingin baca/tulis data, prosesor memrintahkan DMA dengan mengirim informasi-informasi berikut: Read/write Alamat perangkat I/O Awal lokasi memori yang ditulis/dibaca Jumlah byte yang ditulis/dibaca

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

1.7 Interkoneksi antar Komponen


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

Politeknik Telkom

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 START Fetch Insruks i Eksekusi Instruksi HALT

Fetch Cycle

Execute Cycle

Gambar 1-1 Siklus Eksekusi instruksi

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

10

Sistem Operasi

Politeknik Telkom

Sistem Operasi

Rangkuman

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

Sistem Operasi

11

Politeknik Telkom

Sistem Operasi

Soal Latihan

1. 2. 3. 4. 5. 6. 7. 8.

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

12

Sistem Operasi

Politeknik Telkom

Sistem Operasi

2 Pengenalan Sistem Operasi

Overview

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

Tujuan

1. Mahasiswa mengetahui komponen-komponen yang membangun sebuah sistem operasi. 2. Mahasiswa mengetahui bagaimana komponenkomponen itu bekerja dan saling bekerja sama untuk
Sistem Operasi 13

Politeknik Telkom

Sistem Operasi

memenuhi kebutuhan aplikasi dan pengguna akhir.

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. 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
14 Sistem Operasi

Politeknik Telkom

Sistem Operasi

- prosesor - penyimpan primer - penyimpan sekunder - peralatan masukan/keluaran 2. Perangkat lunak - data - proses 3. Peralatan komunikasi dan jaringan

Sistem Operasi

15

Politeknik Telkom

Sistem Operasi

Sistem operasi bertanggung-jawab mengelola sumber daya agar penggunaan sumber daya dapat secara benar dan efisien.

Gambar 2-2 Fungsi sistem operasi sebagai pengatur sumber

daya komputer

2.3 Sistem Operasi sebagai Machine/Virtual Machine

Extended

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
16 Sistem Operasi

Politeknik Telkom

Sistem Operasi

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

dalam

Beragam

Sudut

Pandangan ke Pemakai sistem komputer dapat dikelompokkan menjadi tiga, yaitu: - Pemakai awan (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
Sistem Operasi 17

Politeknik Telkom

Sistem Operasi

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.

Gambar 2-3 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 layananlayanan sistem komputer

18

Sistem Operasi

Politeknik Telkom

Sistem Operasi

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 Batch Time Sharing Multiprogramming Principal Minimize Maximize Prosesor use objective response time Source of Job control language Commands directives to commands provided entered at the operating with the job terminal system 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.

Sistem Operasi

19

Politeknik Telkom

Sistem Operasi

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

(b) multiprogramming dengan dua proses

(c) multiprogramming dengan tiga proses Gambar 2-4 Perbandingan eksekusi perintah antara sistem uniprogramming dengan multiprogramming

20

Sistem Operasi

Politeknik Telkom

Sistem Operasi

Gambar 2-5 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

21

Politeknik Telkom

Sistem Operasi

Prosesor use Memory use Disk use Printer use Elapsed time Throughput rate Mean response time

Uniprogramming 22% 30% 33% 33% 30 min. 6 jobs/hr 18 min.

Multiprogramming 43% 67% 67% 67% 15 min. 12 jobs/hr 10 min.

- Generasi Ke-empat (1980 Sekarang) Terdapat : Network O/S, Sistem operasi diperuntukkan jaringan komputer dimana pemakai menyadari keberadaan komputer yang terhubung. Distributed O/S, Sistem operasi untuk jaringan komputer, dengan user tak perlu menyadari keberadaan komputerkomputer yang terhubung, dimana alokasi kerja sudah secara otomatis dilaksanakan oleh sistem operasi.

22

Sistem Operasi

Politeknik Telkom

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

23

Politeknik Telkom

Sistem Operasi

3 Proses dan Thread

Overview

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

Tujuan

1. Mahasiswa mengetahui komponen-komponen yang membangun sebuah sistem komputer. 2. Mahasiswa mengetahui bagaimana komponen24 Sistem Operasi

Politeknik Telkom

Sistem Operasi

komponen itu bekerja dan saling bekerja sama untuk memenuhi kebutuhan aplikasi dan pengguna akhir.

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.

Sistem Operasi

25

Politeknik Telkom

Sistem Operasi

3. Priority: prioritas eksekusi dibandingkan proses-proses lainnya. 4. Program counter: alamat memori dari program berikutnya yang akan dieksekusi. instruksi

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. 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.
26 Sistem Operasi

Politeknik Telkom

Sistem Operasi

Sebuah daftar yang berisi urutan instruksi yang dieksekusi untuk suatu proses yang dibuat untuk mengetahui kelakuan dari sebuah proses individual dikenal sebagai trace. Gambargambar 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 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

Sistem Operasi

27

Politeknik Telkom

Sistem Operasi

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.

28

Sistem Operasi

Politeknik Telkom

Sistem Operasi

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

Sistem Operasi

29

Politeknik Telkom

Sistem Operasi

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 penjelasan kondisi ready -> exit. termasuk dalam

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 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
30 Sistem Operasi

Politeknik Telkom

Sistem Operasi

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. 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
Sistem Operasi 31

Politeknik Telkom

Sistem Operasi

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

32

Sistem Operasi

Politeknik Telkom

Sistem Operasi

tersebut akan terjadi segera maka transisi ini boleh saja terjadi. 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:

Sistem Operasi

33

Politeknik Telkom

Sistem Operasi

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 peralatanperalatan dan saluran-saluran I/O. Ketika terjadi suatu operasi yang berhubungan dengan 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 prosesproses. 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
34 Sistem Operasi

Politeknik Telkom

Sistem Operasi

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. 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
Sistem Operasi 35

Politeknik Telkom

Sistem Operasi

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. 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:
36 Sistem Operasi

Politeknik Telkom

Sistem Operasi

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.
Sistem Operasi 37

Politeknik Telkom

Sistem Operasi

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. 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.
38 Sistem Operasi

Politeknik Telkom

Sistem Operasi

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 terjadi perubahan kondisi proses maka sistem operasi harus melakukan perubahan pada lingkungannya dengan tahaptahap 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.

Sistem Operasi

39

Politeknik Telkom

Sistem Operasi

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.

40

Sistem Operasi

Politeknik Telkom

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

Sistem Operasi

41

Politeknik Telkom

Sistem Operasi

Gambar 3-6 Thread

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
42 Sistem Operasi

Politeknik Telkom

Sistem Operasi

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

Sistem Operasi

43

Politeknik Telkom

Sistem Operasi

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

44

Sistem Operasi

Politeknik Telkom

Sistem Operasi

Keuntungan menggunakan user-level thread: 1. Penggantian thread yang dieksekusi tidak membutuhkan hak istimewa kernel karena struktur data untuk manajemen thread ada pada memori proses. 2. Memungkinkan implementasi alogritma penjadwalan thread yang berbeda-beda untuk aplikasi tertentu tanpa mengubah kernel. Aplikasi tertentu membutuhkan penjadwalan tertentu (round robin, skala prioritas, dll) untuk bekerja secara optimal. 3. Dapat diaplikasikan pada semua sistem operasi karena tidak menyentuh level kernel Kekurangan penggunaan user-level thread: 4. Kebanyakan sistem operasi melakukan blocking pada saat system call dilakukan yang menyebabkan proses (dan seluruh thread di dalamnya) diblok. 5. Multiprocessing tidak dapat diambil manfaatnya karena kernel menugaskan satu processor hanya untuk satu proses sehingga hanya satu thread proses yang bisa dijalankan pada satu waktu. Jacketing adalah cara untuk mengakali blocking saat system call yaitu dengan mengubah blocking system call menjadi non-blocking system call. Contohnya pada saat membutuhkan I/O thread tidak memanggil rutin I/O sistem melainkan memanggil rutin jaket I/O level aplikasi dan di dalamnya terdapat kode untuk memeriksa kesiapan peralatan I/O, jika belum siap maka kendali akan dialihkan ke thread yang lain.

Sistem Operasi

45

Politeknik Telkom

Sistem Operasi

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 kernellevel thread yang digunakan dapat disesuaikan sesuai kebutuhan oleh programmer.

46

Sistem Operasi

Politeknik Telkom

Sistem Operasi

Sebuah proses memiliki satu thread atau banyak thread sudah umum digunakan tetapi relasi antara thread dan proses dapat dikombinasikan menjadi dua macam lagi, yaitu: Banyak thread dimiliki oleh banyak proses 1. Melibatkan konsep domain dan thread. 2. Domain adalah entitas statis yang memiliki ruang dan port di mana pesan dapat dikirim dan diterima. 3. Thread adalah jalur eksekusi tunggal dengan stack eksekusi, status processor, dan informasi penjadwalan. 4. Thread dapat berpindah-pindah dari satu domain ke domain lainnya. Satu thread dimiliki oleh banyak proses 1. Digunakan pada sistem terdistribusi. 2. Sebuah proses adalah sebuah virtual address space dan memiliki sebuah control block . 3. Thread dapat berpindah-pindah dari satu proses ke proses lainnya dalam satu mesin atau berpindah mesin dengan membawa informasiinformasi yang diperlukan.
Sistem Operasi 47

Politeknik Telkom

Sistem Operasi

4. Digunakan untuk menyembunyikan lingkungan terdistribusi dari programmer.

detil

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 prosesproses yang ada.

Soal Latihan

48

Sistem Operasi

Politeknik Telkom

Sistem Operasi

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.

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.

Sistem Operasi

49

Politeknik Telkom

Sistem Operasi

Tujuan

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

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.
50 Sistem Operasi

Politeknik Telkom

Sistem Operasi

4.2 Prinsip-prinsip Konkurensi


Pada komputer yang menjalankan multiprogramming prosesproses 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. 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.
Sistem Operasi 51

Politeknik Telkom

Sistem Operasi

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
52 Sistem Operasi

Politeknik Telkom

Sistem Operasi

berdasarkan derajat pengetahuan proses-proses terhadap adanya proses lainnya: 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:
Sistem Operasi 53

Politeknik Telkom

Sistem Operasi

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

54

Sistem Operasi

Politeknik Telkom

Sistem Operasi

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 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 */;
Sistem Operasi 55

Politeknik Telkom

Sistem Operasi

} 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) { if(i==0) { i=1; return true; 56

Sistem Operasi

Politeknik Telkom } else { return false; } }

Sistem Operasi

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 prosedurprosedur 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 terusmenerus 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*/ } Sistem Operasi /*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*/ exchange(keyi, bolt); 57

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

Sistem Operasi /*lain-lain*/ } } void main() { bolt=0; parBegin(P(1),P(2), , P(n));

} Instruksi Test and Set


Tabel 4-2 Mutual exclusion dengan dukungan perangkat keras

Instruksi Exchange

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
58 Sistem Operasi

Politeknik Telkom

Sistem Operasi

2. Sederhana dan mudah dipastikan 3. Dapat mendukung beberapa critical section dengan menggunakan variabel tersendiri untuk setiap critical section 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 mekanismemekanisme 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.
Sistem Operasi 59

Politeknik Telkom

Sistem Operasi

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

60

Sistem Operasi

Politeknik Telkom

Sistem Operasi

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

61

Politeknik Telkom

Sistem Operasi

1. Awalnya A sedang berjalan; B, C, dan D dalam kondisi ready. Semaphore bernilai 1 menandakan salah satu hasil yang dikeluarkan proses D telah tersedia. Ketika A memanggil instruksi semWait pada semaphore s nilai s akan dikurangi menjadi 0 dan A dapat melanjutkan ke langkah selanjutnya dan kemudain bergabung pada antrian ready. 2. B kemudian dieksekusi dan memanggil instruksi semWait. Dikarenakan nilai semaphore s menjadi -1 maka proses B akan diblok dan memasuki antrian blocked. 3. Ketika proses D dieksekusi dan mengeluarkan hasil yang baru instruksi semSignal dipanggil oleh proses D yang memungkinkan proses B yang diblok untuk masuk ke kondisi ready di antrian ready. 4. Proses D yang telah selesai langsung bergabung pada antrian ready dan proses C dieksekusi. 5. Proses C yang memanggil instruksi semWait kemudian diblok dan masuk ke antrian blocked dan nilai semaphore menjadi -1 (tidak tampak di gambar). 6. Selanjutnya proses A dan B juga mengalami hal yang sama dengan proses C. Pada tahap ini akhirnya nilai semaphore menjadi -3. 7. Proses D kembali dijalankan, mengeluarkan hasil baru dan memanggil instruksi semSignal sehingga nilai semaphore menjadi -2 dan proses C keluar dari antrian blocked masuk ke antrian ready. Ketika dieksekusi proses C akan mendapatkan hasil yang dikeluarkan oleh proses D. Pada putaran berikutanya proses D akan melepaskan proses A dan B dari antrian blocked
62 Sistem Operasi

Politeknik Telkom

Sistem Operasi

dan masing-masing akan mendapatkan hasil dari proses D seperti halnya proses C. Strong semaphore menjamin terbebas dari starvation sedangkan weak semaphore tidak. Pada umumnya sistem operasi menyediakan fasilitas untuk strong semaphore.

Sistem Operasi

63

Politeknik Telkom

Sistem Operasi

Proses or
A

1 Blocked queue 2 Blocked queue 3 Blocked queue 4 Blocked queue

s=1

Semaphor e Proses or
B s=0

Ready queue

Semaphor e Proses or
D B s=-1

Ready queue

Semaphor e Proses or
D s=0

Ready queue

Semaphor e Proses or
C s=0

Ready queue

5 Blocked queue

Semaphor e Proses or
D A C s=-3

Ready queue

Blocked queue 7 Blocked queue


64

Semaphor e Proses or
D B A s=-2

Ready queue

Semaphor e

Ready queue
Sistem Operasi

Politeknik Telkom

Sistem Operasi

Monitor diajukan sebagai solusi dari masalah yang dimiliki semaphore. Monitor sendiri adalah sebuah modul program yang memiliki satu atau beberapa prosedur, urutan inisialisasi, dan data lokal. Monitor memiliki karakteristik sebagai berikut: 1. Data lokal hanya bisa diakses oleh prosedur yang ada di dalam monitor. 2. Sebuah proses memasuki monitor dengan memanggil salah satu prosedur di dalam monitor tersebut. 3. Pada satu saat hanya ada satu proses yang bisa menggunakan prosedur di dalam monitor. Proses lain yang hendak mengakses pada waktu yang bersamaan harus menunggu proses pertama selesai. Untuk melindungi struktur data yang dibagi pakai bersama data tersebut dapat diletakkan di dalam monitor. Untuk dapat digunakan dalam lingkungan yang konkuren monitor harus menyediakan fasilitas sinkronisasi bagi prosesproses yang menggunakannya. Sebagai contoh jika ada sebuah proses yang memanggil prosedur dalam monitor dan ketika berada di dalamnya harus diblok untuk menunggu suatu kejadian atau kondisi tertentu terpenuhi maka diperlukan sebuah fasilitas yang memungkinkan proses tersebut tidak hanya diblok tetapi juga melepas akses terhadap monitor sehinga proses lain dapat menggunakan monitor tersebut. Setelah kondisi terpenuhi dan monitor kembali tersedia proses tadi dapat kembali berjalan pada posisi sebelum ia diblok. Monitor sendiri memiliki beberapa alternative implementasi seperti: 1. Monitor dengan signal 2. Monitor dengan notify dan broadcast

Sistem Operasi

65

Politeknik Telkom

Sistem Operasi

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. 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
66 Sistem Operasi

Politeknik Telkom

Sistem Operasi

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. 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
Sistem Operasi 67

Politeknik Telkom

Sistem Operasi

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.

68

Sistem Operasi

Politeknik Telkom

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

69

Politeknik Telkom

Sistem Operasi

Rangkuman

Hal mendasar yang perlu diperhatikan ketika menangani banyak proses yang berjalan bersama-sama (konkurensi) adalah masalah-masalah seperti: bagaimana komunikasi antar proses-proses tersebut, membagi pakai dan terjadinya kompetisi untuk sumber daya komputer, sinkronisasi aktivitas proses-proses, dan alokasi prosesor. Pada komputer yang menjalankan multiprogramming prosesproses 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.

70

Sistem Operasi

Politeknik Telkom

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

komponen-komponen yang
71

Politeknik Telkom

Sistem Operasi

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

5.1 Pendahuluan
Dalam sistem multiprogramming beberapa program menempati memori utama sekaligus. Apakah semuanya akan dijalankan dalam waktu yang bersamaan? Tidak, program akan dijalankan bergantian. Yang mana yang dijalankan terlebih dahulu? Masalah ini yang ditangani penjadwalan. Tujuan dari penjadwalan Prosesor adalah untuk memberikan prosesor pada setiap process sepanjang waktu sedemikian hingga memenuhi tujuan sistem : rata-rata response time yang cepat, lebih banyak program dapat diselesaikan (throughput), dan efisiensi Prosesor.

5.2 Tipe penjadwalan Prosesor


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

Long term
Read y/ suspe nd Blocke d/ suspen d

Long term Medium Read term y Medium term


Runnin g Exit Sistem Operasi Block ed

72

Politeknik Telkom

Sistem Operasi

Medium term

Gambar 5-8 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. 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.
Sistem Operasi 73

Politeknik Telkom

Sistem Operasi

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. 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-3 Contoh Penjadwalan Proses

Process A B
74

Waktu kedatangan 0 2

Waktu layan 3 6
Sistem Operasi

Politeknik Telkom

Sistem Operasi

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 20 Round Robin (q=4) A B C D E 5 10 15

Shortest Process A Next (SPN) B C D E Shortest Remaining A Time (SRT) B q=1 C D E 0 20 Highest Response A Ratio Next B
Sistem Operasi

10

15

75

Politeknik Telkom

Sistem Operasi

(HRRN)

C D E Gambar 5-9 Perbandingan Algoritma Penjadwalan

20 Feedback q=1

0 A B C D E A B C D E

10

15

Feedback q=2i

Gambar 5-10 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

76

Sistem Operasi

Politeknik Telkom

Sistem Operasi

Tabel 5-4 Perbandingan Turnaround time beragam algoritma


Proces s Waktu datang Waktu -layan (Ts) Selesai TAT TAT/Ts Selesai TAT TAT/Ts Selesai TAT TAT/Ts Selesai TAT TAT/Ts Selesai TAT TAT/Ts Selesai TAT TAT/Ts Selesai TAT TAT/Ts Selesai TAT TAT/Ts A 0 3 B 2 6 C 4 4 D 6 5 E 8 2 Rata2 3 3 9 7 1.17 18 16 2.67 17 15 2.5 9 7 1.17 15 13 2.17 9 7 1.17 20 18 3.00 17 15 2.50 13 9 2.25 17 13 3.25 11 7 1.75 15 11 2.75 8 4 1.00 13 9 2.25 16 12 3.00 18 14 3.50 18 12 2.40 20 14 2.80 20 14 2.80 20 14 2.80 20 14 2.80 20 14 2.80 19 13 2.60 20 14 2.80 20 12 6.00 15 7 3.50 19 11 5.50 11 3 1.50 10 2 1.00 15 7 3.5 11 3 1.5 14 6 3.00

Algorit ma FCFS

1.00
4 4 1.33 3 3 1.00 3 3 1.00 3 3 1.00 3 3 1.00 4 4 1.33 4 4 1.33

8.60 2.56 10.80 2.71 10.00 2.71 7.60 1.84 7.20 1.59 8.60 2.14 10.00 2.29 10.60 2.63

RR, q=1 RR, q=4 SPN SRT HRRN FB, q=1 FB, q=2^i

Pada algoritma di atas ada situasi dimana process yang sedang dikerjakan dapat atau tidak dapat dihentikan di tengah jalan. Hal tersebut disebut mode keputusan: - nonpreemptive : process yang sedang dijalankan tidak dapat dihentikan di tengah jalan. - preemptive : process yang sedang dijalankan dapat dihentikan di tengah jalan. Dibutuhkan usaha yang lebih agar sistem dapat mendukung aktivitas preemptive.

Sistem Operasi

77

Politeknik Telkom

Sistem Operasi

Karakteristik enam algoritma penjadwalan secara keseluruhan ditunjukkan dalam Tabel 5-3

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 fairshare, berbagi yang lebih adil, yang besar mendapat kuantum waktu yang lebih besar dan yang kecil mendapatkan kuantum waktu yang kecil. Tabel 5-5 Karakteristik beragam algoritma penjadwalan
Algoritm a Fungsi seleksi Mode keputusa n FCFS max[w] Nonpreemptive RR consta nt Preemptiv e (pada kuantu m waktu) Kecil jika quant um waktu kecil Bagus untuk proces sproces s pende SPN min[s] Nonpr eemptiv e SRT min[s-e] Preemptive (saat kedatang an) Tinggi HRRN max((w+s )/s) Nonpreemptive Feedba ck Lihat text Preemptiv e (pada kuantu m waktu) Tidak dapat dinyata -kan Tidak dapat dinyata -kan

Throughp ut

Tidak dapat dinyatakan Mungki n tinggi jika waktu eksekus i bervaria

Tinggi

Tinggi

Respons e Time

Bagus untuk proces sproces s pende

Bagus

Bagus

78

Sistem Operasi

Politeknik Telkom si Kecil Process pendek atau yang menung gu I/O bisa lama; Tidak k Kecil Adil k Dapat tinggi Proces s panja ng bisa lama

Sistem Operasi

Overhea d Efek pada process

Dapat tinggi Process panjang bisa lama

Dapat tinggi Seimbang

Dapat tinggi Bisa utamak an process terkait I/O Bisa

Penunda Tidak Bisa Bisa Tidak an tanpa batas w = waiting time , waktu tunggu e = executing time, waktu eksekusi, selama ini s = total service time, waktu layan total

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-6 Synchronization Granularity dan Process Ukuran Grain Fine Medium Coarse Very coarse Independ ent Deskripsi Interval Sinkronisas i (Instruksi) < 20 20 200 200-2000 2000-1M

Paralelisme ada di dalam stream instruksi tunggal Pemrosesan paralel atau multitasking dalam suatu aplikasi tunggal Multiprocessing dari proses-proses konkuren dalam lingkungan multiprogramming Pemrosesan tersebar sepanjang node-node jaringan untuk membentuk lingkungan komputasi tunggal. Banyak proses tak terkait

(N/A)
79

Sistem Operasi

Politeknik Telkom

Sistem Operasi

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.

80

Sistem Operasi

Politeknik Telkom

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.

Sistem Operasi

81

Politeknik Telkom

Sistem Operasi

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 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-7 Dua tugas periodik pada sistem real-time Tug as A(1) A(2) A(3) A(4) A(5) B(1) B(2) Waktu Datang 0 20 40 60 80 0 50 Waktu Eksekusi 10 10 10 10 10 25 25 Deadli ne 20 40 60 80 100 50 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
82 Sistem Operasi

Politeknik Telkom

Sistem Operasi

B1 A1 Fixed-priority scheduling: diprioritaskan A B2 gagal A B

B1 A2 B1

B2 A3 B1

A4 B2

B2 A5 B2 A4

B1 gagal A1 gagal A2 A3 A5 Fixed-priority A scheduling: B diprioritaskan B B1 B2 Gambar 5-11 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.

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?

Sistem Operasi

83

Politeknik Telkom

Sistem Operasi

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. Waktu Waktu kedatangan 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. Process

84

Sistem Operasi

Politeknik Telkom

Sistem Operasi

10. Tunjukkan penjadwalan tugas real time berikut, lakukan seperti Gambar 5.3. Proce Waktu Waktu Ending ss kedatangan eksekusi Deadline A(1) 0 10 20 A(2) 20 10 40 B(1) 0 10 50 B(2) 50 10 100 C(1) 0 15 50 C(2) 50 15 100

Sistem Operasi

85

Politeknik Telkom

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 prosesproses 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
86 Sistem Operasi

Politeknik Telkom

Sistem Operasi

memory).

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
Sistem Operasi 87

Politeknik Telkom

Sistem Operasi

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.

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.
88 Sistem Operasi

Politeknik Telkom

Sistem Operasi

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 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 programprogram di bawah lubang? Ya, butuh waktu. Cara lain diusulkan agar penempatan program dapat dilakukan dengan
Sistem Operasi 89

Politeknik Telkom

Sistem Operasi

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) Process P1 (20 M) Process P2 (14 M) Operating Free : 56 M System (8 M) Process P1 (20 M) Process P4 (8 M) Free : 6 M Process P3 (18 M) Free : 4 M Operating Process (8 M) System P3 (18 M) Free : 20 M Free : 4 M Process P4 (8 M) Free : 6 M Process P3 (18 M) Free : 4 M Free : 4 M Operating System (8 M) Process P1 (20 M) Free : 14 M Operating Process (8 M) System P3 (18 M) Process P2 Free : 4 M (14M) Free : 6 M Process P4 (8 M) Free : 6 M Process P3 (18 M)

Operating System (8 M)

90

Sistem Operasi

Politeknik Telkom

Sistem Operasi

Gambar 6-12 Pengaruh Partisi Dinamis Contoh kasus, ada daftar lubang memori seperti pada Gambar 6-2. Ada program baru masuk berukuran 23 M. Di mana ditempatkan? Ya, di L5. Jika ada program baru berukuran 16 M masuk, dimana ditempatkan?
L1 L2 L3 L4 L5 L6 L7 L8 : : : : : : : : 8M 12M 22M 18M 24M 6M 14M 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;

setelah Program 23 M masuk Gambar 6-13 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.

Sistem Operasi

91

Politeknik Telkom

Sistem Operasi

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. 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. 1M 1 Mbyte block A request 100K A B request 240K A C request 64K
A 128K 128K C 64K C 64K C 64K 256K B B B 256K 256K 256K 256K 512K 512K 512K D D D D D

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

256K A 256K

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

256K

512K 1M

Gambar 6-14 Contoh Buddy System Bagaimana agar relokasi program mudah dilakukan? Setiap lokasi di memori utama memiliki physical address, alamat
92 Sistem Operasi

Politeknik Telkom

Sistem Operasi

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

Relative address
Process control block Adder

Base register

Absolute
Bounds register Comparator

address

Program

Interupsi ke S.O.

Data

Sebuah program di memori utama Sebuah program di memori utama Gambar 6-15 Dukungan hardware untuk relokasi

Stack

Sistem Operasi

93

Politeknik Telkom

Sistem Operasi

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

94

Sistem Operasi

Politeknik Telkom

Sistem Operasi

untuk mengimplementasikan fungsi penterjemahan alamat dinamis ke dalam hardware. No Memori Memori Memori Frame 0 A.0 A.0 1 A.1 A.1 2 A.2 A.2 3 A.3 A.3 4 B.0 5 B.1 6 B.2 7 8 9 10 11 12 13 14 A masuk B masuk

Sistem Operasi

95

Politeknik Telkom

Sistem Operasi

No Frame

Memori A.0 A.1 A.2 A.3 B.0 B.1 B.2 C.0 C.1 C.2 C.3

Memori A.0 A.1 A.2 A.3

Memori A.0 A.1 A.2 A.3 D.0 D.1 D.2 C.0 C.1 C.2 C.3 D.3 D.4

0 1 2 3 4 5 6 7 8 9 10 11 12 13 14

C.0 C.1 C.2 C.3

C masuk B keluar D masuk Gambar 6-16 Pengisian page process ke frame memori 0 1 2 3 0 1 2 3 Table Page Proses A 0 1 2 3 0 1 2 3 Daftar frame bebas 0 1 2 Table Page Proses B 0 1 2 3 7 8 9 10 Table Page Proses C 0 1 2 3 4 4 5 6 11 12 Table Page Proses D

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


96 Sistem Operasi

Politeknik Telkom

Sistem Operasi

6.6 Segmentasi
Selain dengan paging, program dapat dipecah ke dalam sejumlah segment, dengan ukuran tidak harus sama. Hanya memang ada panjang segment maksimum. Sebuah lokasi akan diidentifikasi dengan dua nomor : nomor segment dan nomor offset. Konsep segmentasi ini mirip dengan dynamic partitioning. Bedanya, di segmentasi ini sebuah program boleh menempati lebih dari satu partisi, dan tidak harus berdampingan. Fragmentasi internal tidak ada, namun fragmentasi eksternal mungkin terjadi. Programmer biasanya tahu segment untuk program atau segment untuk data yang disediakan sistem. Program dan data sendiri dapat dipecah ke dalam beberapa segment. Hanya, programmer tidak dapat menggunakan lokasi melebihi batas maksimum ukuran segment. Sistem akan mengelola segment table untuk setiap process dan daftar lokasi bebas di memori utama. Setiap isian tabel ini akan berisi alamat awal dan panjang segment untuk memproteksi lokasi memori dari pengguna lain. Saat akan dieksekusi, alamat di tabel segment ini akan di-load ke register khusus.

Sistem Operasi

97

Politeknik Telkom

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.

98

Sistem Operasi

Politeknik Telkom

Sistem Operasi

7 Manajemen Perangkat I/O

Overview

Segala hal tentang overview.

Sistem Operasi

99

Politeknik Telkom

Sistem Operasi

Tujuan

3. Tujuan 1 4. Tujuan 2

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 kabel100 Sistem Operasi

Politeknik Telkom

Sistem Operasi

kabel. Pengendali ialah alat-alat elektronik yang berfungsi untuk mengoperasikan port, bus, dan perangkat. Langkah yang ditentukan untuk perangkat ialah commandready, 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 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.
Sistem Operasi 101

Politeknik Telkom

Sistem Operasi

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

102

Sistem Operasi

Politeknik Telkom

Sistem Operasi

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 untuk berkomunikasi antara CPU dan pengendali. Sedangkan mainframe yang berukuran besar umumnya menggunakan
Sistem Operasi 103

Politeknik Telkom

Sistem Operasi

model yang berbeda, dengan bus yang banyak dan I/O channels.

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

104

Sistem Operasi

Politeknik Telkom

Sistem Operasi

Gambar 7-19 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
Sistem Operasi 105

Politeknik Telkom

Sistem Operasi

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 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).
106 Sistem Operasi

Politeknik Telkom

Sistem Operasi

Untuk memulai sebuah transfer DMA, host akan menuliskan sebuah DMA command block yang berisi pointer yang menunjuk ke sumber transfer, pointer yang menunjuk ke tujuan transfer, dan jumlah byte yang ditransfer, ke memori. CPU kemudian menuliskan alamat command block ini ke pengendali DMA, sehingga pengendali DMA dapat kemudian mengoperasikan bus memori secara langsung dengan menempatkan alamat-alamat pada bus tersebut untuk melakukan transfer tanpa bantuan CPU.

Sistem Operasi

107

Politeknik Telkom

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
108 Sistem Operasi

Politeknik Telkom

Sistem Operasi

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

CPU

Modul DMA

CPU

I/O

Memori

a. Bus Tunggal, DMA terhubung

CPU

Modul DMA I/O I/O

Modul DMA

Memori

I/O

b. Bus Tunggal, DMA terintegrasi dengan I /O Bus Sistem

CPU

Modul DMA

Memori
Bus I/O

I/O
c. Bus I/O

I/O

I/O

pengendali perangkat mengirimkan data yang dimaksud dan mematikan sinyal pada DMA-request. Gambar 7-20 kemungkinan konfigurasi DMA
Sistem Operasi 109

Politeknik Telkom

Sistem Operasi

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 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.
110 Sistem Operasi

Politeknik Telkom

Sistem Operasi

Selanjutnya, keberadaan device driver pada masing-masing peralatan M/K akan berfungsi meng-enkapsulasi perbedaanperbedaan 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, masingmasing sistem operasi memiliki standarnya sendiri untuk device driver antarmukanya. Karakteristik dari perangkatperangkat tersebut sangat bervariasi, beberapa yang dapat membedakannya adalah dari segi.

Gambar 7-21 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
Sistem Operasi 111

Politeknik Telkom

Sistem Operasi

3.

4.

5. 6.

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. 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. Sharable atau dedicated: perangkat yang dapat dibagi dapat digunakan secara bersamaan oleh beberapa prosesor atau thread, sedangkan perangkat yang dedicatedtidak dapat. Speed of operation: Rentangan kecepatan perangkat dari beberapa bytes per detik sampai beberapa gigabytes per detik. 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 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.

112

Sistem Operasi

Politeknik Telkom

Sistem Operasi

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.

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. Fungsifungsi ini sering digunakan oleh sistem operasi. Sayangnya,
Sistem Operasi 113

Politeknik Telkom

Sistem Operasi

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. Layananlayanan yang akan kita bahas adalah penjadualan M/K, buffering, caching, spooling, reservasi perangkat, error handling.
114 Sistem Operasi

Politeknik Telkom

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
Sistem Operasi 115

Politeknik Telkom

Sistem Operasi

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.

116

Sistem Operasi

Politeknik Telkom

Sistem Operasi

Tiga alasan melakukan buffering: 1. Mengatasi perbedaan kecepatan antara produsen dengan konsumen dari sebuah stream data. Contoh, sebuah berkas sedang diterima melalui modem dan akan disimpan di hard disk. Kecepatan modem tersebut ribuan kali lebih lambat daripada hard disk, sehingga buffer dibuat di dalam memori utama untuk mengumpulkan jumlah byte yang diterima dari modem. Ketika keseluruhan data di buffer sudah sampai, buffer tersebut dapat ditulis ke disk dengan operasi tunggal. Karena penulisan disk tidak terjadi dengan seketika dan modem masih memerlukan tempat untuk menyimpan data yang berdatangan, maka dua buah buffer digunakan untuk melakukan operasi ini. Setelah modem memenuhi buffer pertama, akan terjadi permintaan untuk menulis di disk. Modem kemudian mulai memenuhi buffer kedua sementara buffer pertama dipakai untuk penulisan ke disk. Seiring modem sudah memenuhi buffer kedua, penulisan ke disk dari buffer pertama seharusnya sudah selesai, jadi modem akan berganti kembali memenuhi buffer pertama sedangkan buffer kedua dipakai untuk menulis. Metode double buffering ini membuat pasangan ganda antara produsen dan konsumen sekaligus mengurangi kebutuhan waktu diantara mereka. 2. Untuk menyesuaikan perangkat-perangkat yang mempunyai perbedaan dalam ukuran transfer data. Hal ini sangat umum terjadi pada jaringan komputer, dimana buffer dipakai secara luas untuk fragmentasi dan pengaturan kembali pesan-pesan yang diterima.
Sistem Operasi 117

Politeknik Telkom

Sistem Operasi

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 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 virtualmemori 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 dicached 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
118 Sistem Operasi

Politeknik Telkom

Sistem Operasi

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 bersamasama oleh beberapa aplikasi, atau yang sedang dibaca dan ditulis secara berulang-ulang. 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

Sistem Operasi

119

Politeknik Telkom

Sistem Operasi

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

120

Sistem Operasi

Politeknik Telkom

Sistem Operasi

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.
Sistem Operasi 121

Politeknik Telkom

Sistem Operasi

Sebuah ketentuan umum, yaitu sebuah sistem M/K akan mengembalikan satu bit informasi tentang status panggilan tersebut, yang akan menandakan apakah 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
122 Sistem Operasi

Politeknik Telkom

Sistem Operasi

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 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 kumpulankumpulan 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
Sistem Operasi 123

Politeknik Telkom

Sistem Operasi

permintaan aplikasi untuk sektor disk yang spesifik.

menyiapkan

jaringan

menuju

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 menassemble pipeline dari kode driver secara dinamis. Sebuah stream adalah sebuah koneksi full duplex antara sebuah 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
124 Sistem Operasi

Politeknik Telkom

Sistem Operasi

3.

4.

5. 6.

7.

8.

9.

buffer cache, data akan dikembalikan ke proses dan permintaan M/K diselesaikan. 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 inkernel. 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. Pengendali perangkat mengoperasikan perangkat keras perangkat untuk melakukan transfer data. 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. Interrupt handler yang sesuai menerima interupsi melalui tabel vektor-interupsi, menyimpan sejumlah data yang dibutuhkan, menandai device driver, dan kembali dari interupsi. 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. 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.
Sistem Operasi 125

Politeknik Telkom

Sistem Operasi

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.

126

Sistem Operasi

Politeknik Telkom

Sistem Operasi

Gambar 7-23 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
Sistem Operasi 127

Politeknik Telkom

Sistem Operasi

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

128

Sistem Operasi

Politeknik Telkom

Sistem Operasi

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

Sistem Operasi

129

Politeknik Telkom

Sistem Operasi

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 datarecovery, lalu mengambil langkah-langkah untuk mengoptimalkan kinerja 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,
130 Sistem Operasi

Politeknik Telkom

Sistem Operasi

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.

Rangkuman

Sistem Operasi

131

Politeknik Telkom

Sistem Operasi

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

132

Sistem Operasi

Politeknik Telkom

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

133

Politeknik Telkom

Sistem Operasi

8 Manajemen Disk

Overview

Sebelum memulai mempelajari sistem operasi penting bagi kita untuk mengetahui komponen-komponen yang menjadi bagian dari sebuah disk disertai cara kerjanya. Hal ini disebabkan nantinya disk bekerja untuk mengatur komponenkomponen tersebut.

Tujuan

134

Sistem Operasi

Politeknik Telkom

Sistem Operasi

1. Mahasiswa mengetahui struktur dari disk 2. Mahasiswa mengetahui penjadwalan yang terjadi pada suatu disk

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
Sistem Operasi 135

Politeknik Telkom

Sistem Operasi

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). 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
136 Sistem Operasi

Politeknik Telkom

Sistem Operasi

call ke sistem operasi. Permintaan beberapa informasi, antara lain: 1. 2. 3. 4.

tersebut

membawa

Apakah operasi input atau output. Alamat disk untuk proses tersebut. Alamat memori untuk proses tersebut 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.

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
Sistem Operasi 137

Politeknik Telkom

Sistem Operasi

head dapat dikurangi, sehingga pendayagunaan akan meningkat.

dengan

demikian

Gambar 8-25 Penjadwalan FCFS (Gambar ini diadaptasi dari [Silberschatz2002, halaman 494].) 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
138 Sistem Operasi

Politeknik Telkom

Sistem Operasi

dibandingkan silinder 56,jadi 37 dilayani duluan. Selanjutnya, dilanjutkan ke silinder 25, 20, 10, 5, 56, 60, 70, 78 dan terakhir adalah 88. Metode penjadualan ini hanya menghasilkan total pergerakan head sebesar 128 silinder -- kira-kira sepertiga dari yang dihasilkan penjadualan FCFS. Algoritma SSTF ini memberikan peningkatan yang cukup signifikan dalam hal pendayagunaan atau kinerja sistem. Penjadualan SSTF merupakan salah satu bentuk dari penjadualan shortest-job-first (SJF), dan karena itu maka penjadualan SSTF juga dapat mengakibatkan starvation pada suatu saat tertentu. Hal ini dapat terjadi bila ada permintaan untuk mengakses bagian yang berada di silinder terdalam. Jika kemudian berdatangan lagi permintaan-permintaan yang letaknya lebih dekat dengan permintaan terakhir yang dilayani maka permintaan dari silinder terluar akan menunggu lama dan sebaliknya. Walaupun algoritma SSTF jauh lebih cepat dibandingkan dengan FCFS, namun untuk keadilan layanan SSTF lebih buruk dari penjadualan FCFS.

Sistem Operasi

139

Politeknik Telkom

Sistem Operasi

Gambar 8-26 Penjadwalan SSTF .Gambar ini diadaptasi dari [Silberschatz2002, halaman 494] 8.3.3 Penjadwalan SCAN Pada algoritma ini disk arm bergerak menuju ke silinder paling ujung dari disk, kemudian setelah sampai di silinder paling ujung, disk arm akan berbalik arah geraknya menuju ke silinder paling ujung lainnya. Algoritma SCAN disebut juga Algoritma lift/ elevator karena algoritma ini cara kerjanya sama seperti algoritma yang umum dipakai oleh lift untuk melayani penggunanya, yaitu lift akan melayani orang-orang yang akan naik ke atas dulu, setelah sampai di lantai tertinggi, baru lift akan berbalik arah geraknya untuk melayani orang-orang yang akan turun. Dalam pergerakannya yang seperti lift itu, disk arm hanya dapat melayani permintaan-permintaan yang berada di depan arah geraknya terlebih dahulu. Bila ada permintaan yang berada di belakang arah geraknya, permintaan tersebut harus menunggu sampai disk arm mencapai salah satu silinder paling ujung dari disk, kemudian berbalik arah geraknya untuk melayani permintaan tersebut. Contoh: (lihat Gambar, Penjadualan SCAN) Jika disk head sedang berada di silinder 50, dan sedang bergerak menuju silinder 99, maka permintaan yang 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.

140

Sistem Operasi

Politeknik Telkom

Sistem Operasi

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.

Gambar 8-27 Penjadwalan SCAN


Sistem Operasi 141

Politeknik Telkom

Sistem Operasi

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 dapat berbalik arah. Untuk itulah dibuat algoritma LOOK yang akan kita bahas berikutnya.

142

Sistem Operasi

Politeknik Telkom

Sistem Operasi

Gambar 8-28 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
Sistem Operasi 143

Politeknik Telkom

Sistem Operasi

algoritma yang lebih baik untuk memperbaiki algoritma ini, yaitu: C-LOOK.

Gambar 8-29 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 CSCAN memperbaiki kelemahan SCAN, yaitu pada cara pergerakan disk arm setelah mencapai silinder yang paling ujung.

144

Sistem Operasi

Politeknik Telkom

Sistem Operasi

Gambar 8-30 Penjadwalan C-LOOK 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.
Sistem Operasi 145

Politeknik Telkom

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.

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)

146

Sistem Operasi

Politeknik Telkom

Sistem Operasi

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. 2. 3. 4. 5. 6. FCFS (First Come First Serve) SSTF (Shortest-Seek-Time-First) SCAN C-SCAN (Circular SCAN) LOOK C-LOOK (Circular LOOK)

Latihan

1. Sebutkan dan jelaskan macam-macam penjadwalan disk 2. Apa yang dimaksud metode CAV (Constant Angular Velocity) 3. Yang dimaksud dengan array?
Sistem Operasi 147

Politeknik Telkom

Sistem Operasi

4. Bagaimana memilih metode penjadwalan yang terbaik.

9 Manajemen File

148

Sistem Operasi

Politeknik Telkom

Sistem Operasi

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.

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
Sistem Operasi 149

Politeknik Telkom

Sistem Operasi

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.

150

Sistem Operasi

Politeknik Telkom

Sistem Operasi

Implementasi dari DBMS adalah : 1. 2. 3. 4. File Data Kamus Data File Indeks 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 o Text file: yaitu urutan dari karakter-karakter yang diatur menjadi barisan dan mungkin halaman. Source file: yaitu urutan dari berbagai subroutine dan fungsi yang masing-masing kemudian diatur sebagai deklarasi-deklarasi diikuti oleh pernyataan-pernyataan yang dapat diexecute. 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:
Sistem Operasi 151

Politeknik Telkom

Sistem Operasi

o o o o o o

Nama: nama berkas simbolik ini adalah informasi satusatunya yang disimpan dalam format yang dapat dibaca oleh pengguna. Identifier: tanda unik ini yang biasanya merupakan sebuah angka, mengenali berkas didalam sebuah sistem berkas; tidak dapat dibaca oleh pengguna. Jenis: informasi ini diperlukan untuk sistem-sistem yang mendukung jenis berkas yang berbeda. Lokasi: informasi ini adalah sebuah penunjuk pada sebuah device dan pada lokasi berkas pada device tersebut. Ukuran: ukuran dari sebuah berkas (dalam bytes, words, atau blocks) dan mungkin ukuran maksimum dimasukkan dalam atribut ini juga. 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 binaryobject 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
152 Sistem Operasi

Politeknik Telkom

Sistem Operasi

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: 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. 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. 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. Memposisikan Sebuah Berkas (Reposition): Direktori dicari untuk entri yang sesuai dan currentfile-position diberi sebuah nilai. Operasi ini di dalam berkas tidak perlu melibatkan M/K, selain itu juga diketahui sebagai file seek. 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.
153

Sistem Operasi

Politeknik Telkom

Sistem Operasi

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

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 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 rekamanrekaman 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.
154 Sistem Operasi

Politeknik Telkom

Sistem Operasi

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

9.9 Struktur Penyimpanan


Terdapat konsep-konsep pada penyimpanan secara fisik di Secondary Storage: 1. File 2. Record 3. Field Record File

Sistem Operasi

Field

155

Politeknik Telkom

Sistem Operasi

9.10 File
Karakteristik Umum 1. Persistance (bertahan lama) kemampuan 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 terdapat parameter banyak perangkat,karena untuk dapat diakses di

perangkat dalam 1 sistem 4. File mempunyai parameter user dan direktori Dalam sistem Multiuser, tiap user memiliki direktori sendiri. Akses terhadap File 1. Pengambilan record
156 Sistem Operasi

Politeknik Telkom

Sistem Operasi

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

Sistem Operasi

157

Politeknik Telkom

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.1Kriteria Umum Kriteria umum kinerja struktur file (organizing data) menurut Wiederhold adl: 1. Re dundansi yang kecil (Little Redundancy ) 2. Pe ngaksesan yang cepat ( Rapid Acces ) 3. Ke mudahan dalam memperbarui (Easy of update ) 4. Pe meliharaan yang sederhana ( Simple maintenance ) 5. Ke handalan yang tinggi (High Reliability )
158 Sistem Operasi

Politeknik Telkom

Sistem Operasi

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. 9.13.2Metriks 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 terburuburu. 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.
Sistem Operasi 159

Politeknik Telkom

Sistem Operasi

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.

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.

160

Sistem Operasi

Politeknik Telkom

Sistem Operasi

Rangkuman
Berkas adalah sebuah unit tempat menyimpan informasi. Berkas ini dapat diakses lebih dari satu proses, dapat dibaca, dan bahkan menulis yang baru. Informasi yang disimpan dalam berkas harus persisten, dalam artian tidak hilang sewaktu proses berhenti. Berkas-berkas ini diatur oleh sistem operasi, bagaimana strukturnya, namanya, aksesnya, penggunaannya, perlindungannya, dan implementasinya. Bagian dari sistem operasi yang mengatur masalah-masalah ini disebut sistem berkas.

Latihan

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

Sistem Operasi

161

Politeknik Telkom

Sistem Operasi

10 Direktori

Overview

Beberapa sistem komputer menyimpan banyak sekali berkasberkas 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.

162

Sistem Operasi

Politeknik Telkom

Sistem Operasi

10.1 Operasi Direktori


Silberschatz, Galvin dan Gagne mengkategorikan operasioperasi terhadap direktori sebagai berikut: o Mencari Berkas Mencari lewat struktur direktori untuk dapat menemukan entri untuk suatu berkas tertentu. berkasberkas dengan nama yang simbolik dan mirip, mengindikasikan adanya keterkaitan diantara berkasberkas tersebut. Oleh karena itu, tentunya perlu suatu cara untuk menemukan semua berkas yang benarbenar memenuhi kriteria khusus yang diminta. Membuat berkas berkas-berkas baru perlu untuk dibuat dan ditambahkan ke dalam direktori. Menghapus berkas Saat suatu berkas tidak diperlukan lagi, berkas tsb perlu dihapus dari direktori. Menampillkan isi direktori Menampilkan daftar berkas-berkas yang ada di direktori, dan semua isi direktori dari berkas-berkas dalam daftar tsb. 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. Akses Sistem berkas
163

o o o

Sistem Operasi

Politeknik Telkom

Sistem Operasi

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 o o o o o Membuka direktori Menutup direktori Menambah direktori Mengubah nama direktori Menghubungkan berkas-berkas di direktori berbeda. Menghapus hubungan berkas-berkas di direktori berbeda.

10.2 Jenis Direktori


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

164

Sistem Operasi

Politeknik Telkom

Sistem Operasi

Gambar 10-31 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.2Direktori 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 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

Sistem Operasi

165

Politeknik Telkom

Sistem Operasi

Gambar 10-32 Direktori Dua Tingkat 10.2.3Direktori 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.

166

Sistem Operasi

Politeknik Telkom

Sistem Operasi

Gambar 10-33 Tree Structured Directory 10.2.4Direktori dengan Struktur Graf Asiklik Direktori dengan struktur tree melarang pembagian berkas/direktori. Oleh karena itu, struktur graf asiklik (AcyclicStructured 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

167

Politeknik Telkom

Sistem Operasi

Gambar 10-34 Acyclic-Structured Directory 10.2.5Direktori 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).

168

Sistem Operasi

Politeknik Telkom

Sistem Operasi

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.

Gambar 10-35 General Graph Directory

10.3 Record Blocking


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

Sistem Operasi

169

Politeknik Telkom

Sistem Operasi

10.3.2Macam Metode Blocking Berdasar ukuran dan rentangan record, Blocking dibagi 3 metode : 1. Fixed Blocking berisi record yang memp panjang tetap Bfr = B/R Keuntungan : 2. Sederhana 3. Meningkatkan akses acak Kerugian : Terjadi pemborosan di tiap blok 2. Variable Length Spanned Blocking berisi record-record yang memp. Panjang variabel. Jika 1 record tak dapat dimuat di 1 blok, sebagian record disimpan di blok lain Bfr = (B P)/( R + P ) ; P = Pointer blok

Keuntungan : 2. Fleksibel bagi user 3. Ukuran Record tak dibatasi ukuran Blok 4. Tak terjadi pemborosan di tiap blok Kerugian : 1. Sulit diimplementasikan shg sulit dalam pemrograman 2. Mahal dalam operasi pencarian record dan sulit diperbarui. 3. Variable Length Unspanned Blocking Record-record memp. Panjang tak tetap Setiap record harus dimuat di satu blok (Tak dipotong-potong/direntangkan ke blok lain) Bfr = (B -1/2R)/(R+P) Efektifitas Pengaksesan Acak -> ditentukan jumlah data yang dapat diakses
170 Sistem Operasi

Politeknik Telkom

Sistem Operasi

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

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

Sistem Operasi

171

Politeknik Telkom

Sistem Operasi

1. Jelaskan apa yang dimaksud dengan direktori satu dan dua tingkat. 2. Sebutkan dan jelaskan metode blocking

11 Implementasi Sistem Berkas

Overview

Disk yang merupakan tempat terdapatnya sistem berkas


172 Sistem Operasi

Politeknik Telkom

Sistem Operasi

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

Mahasiswa mengetahui implementasi dari system berkas di dunia nyata 2. Mahasiswa memahami kinerja dari sistem berkas

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 o Data dapat ditulis ulang di disk tersebut, hal ini memungkinkan untuk membaca, memodifikasi, dan menulis di disk tersebut. Dapat diakses langsung ke setiap blok di disk. Hal ini memudahkan untuk mengakses setiap berkas baik secara berurut maupun tidak berurut, dan berpindah dari satu berkas ke berkas lain dengan hanya mengangkat head disk dan menunggu disk berputar.
173

Sistem Operasi

Politeknik Telkom

Sistem Operasi

Gambar 11-36 Disk Organization 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
174 Sistem Operasi

Politeknik Telkom

Sistem Operasi

membuat algoritma dan struktur data yang memetakan struktur logikal sistem berkas ke tempat penyimpanan sekunder.

Gambar 11-37 Layer File System Sistem berkas dari sistem operasi yang sudah modern diimplementasikan dengan menggunakan struktur berlapis. Keuntungan struktur berlapis ini adalah fleksibilitas yang dimilikinya. Penggunaan dari struktur berlapis ini memungkinkan adanya implementasi yang lebih dari satu secara bersamaan, terutama pada I/O Control dan tingkatan organisasi berkas. Hal ini memungkinkan untuk mendukung lebih dari satu implementasi sistem berkas.

Sistem Operasi

175

Politeknik Telkom

Sistem Operasi

Lapisan struktur sistem berkas menghubungkan antara perangkat keras dengan aplikasi program yang ada, yaitu (dari yang terendah): 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 freespace manager. o Logical file-system, tingkat ini berisi informasi tentang simbol nama berkas, struktur dari direktori, dan proteksi dan sekuriti dari berkas tersebut. Sebuah File Control Block (FCB) menyimpan informasi tentang berkas, termasuk kepemilikan, izin dan lokasi isi berkas. Di bawah ini merupakan contoh dari kerja struktur berlapis ini ketika suatu program mau membaca informasi dari disk. Urutan langkahnya: o 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
176 Sistem Operasi

Politeknik Telkom

Sistem Operasi

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

Sistem Operasi

177

Politeknik Telkom

Sistem Operasi

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. 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
178 Sistem Operasi

Politeknik Telkom

Sistem Operasi

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

179

Politeknik Telkom

Sistem Operasi

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

o 1 2

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

180

Sistem Operasi

Politeknik Telkom

Sistem Operasi

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-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
Sistem Operasi 181

Politeknik Telkom

Sistem Operasi

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.

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:

182

Sistem Operasi

Politeknik Telkom

Sistem Operasi

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 o Memisahkan operasi berkas generic dari implementasinya dengan mendefinisikan VFS antar muka yang masih baru. VFS didasarkan pada struktur filerepresentation yang dinamakan vnode, yang terdiri dari designator numerik untuk berkas unik network-wide.

Sistem berkas lokal dan sistem berkas remote untuk jaringan.

Sistem Operasi

183

Politeknik Telkom

Sistem Operasi

Gambar 11-38 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 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.

184

Sistem Operasi

Politeknik Telkom

Sistem Operasi

11.6.1Algoritma 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 melepaskan tempat yang dialokasikan).

dan

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.2Algoritma Hash Table Linear List menyimpan direktori entri, tetapi sruktur data hash juga digunakan.

Sistem Operasi

185

Politeknik Telkom

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

186

Sistem Operasi

Politeknik Telkom

Sistem Operasi

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.

Gambar 11-39 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.

Sistem Operasi

187

Politeknik Telkom

Sistem Operasi

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.

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

188

Sistem Operasi

Politeknik Telkom

Sistem Operasi

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.

12

Manajemen Penyimpan Sekunder

Overview

Selain kita mengetahui penyimpanan primer, juga terdapat


Sistem Operasi 189

Politeknik Telkom

Sistem Operasi

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

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. Metodemetode tersebut memiliki beberapa kelebihan dan juga kekurangan. Biasanya sistem operasi memilih satu dari metode diatas untuk mengatur keseluruhan berkas. 12.1.1Contiguous Allocation Metode ini akan mengalokasikan satu berkas kedalam blokblok disk yang berkesinambungan atau berurutan secara linier dari disk, jadi sebuah berkas didenifinikan oleh alamat disk blok pertama dan panjangnya dengan satuan blok atau
190 Sistem Operasi

Politeknik Telkom

Sistem Operasi

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 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
Sistem Operasi 191

Politeknik Telkom

Sistem Operasi

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-40Contiguous Allocation

12.1.2Linked 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 blokblok tersebut tidak harus berkesinambungan dengan blok yang lain. Direktori hanya menyimpan alamat blok pertama
192 Sistem Operasi

Politeknik Telkom

Sistem Operasi

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-41 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 yang menggabungkan 4 blok dalam satu cluster, jadi jumlah petunjuknya akan berkurang dari yang tidak memakai cluster.

Sistem Operasi

193

Politeknik Telkom

Sistem Operasi

Paling penting dalam metode ini adalah menggunakan fileallocation 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.3Indexed 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.

194

Sistem Operasi

Politeknik Telkom

Sistem Operasi

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 efektif, kecuali bila satu berkas tersebut hanya memerlukan satu atau dua blok saja.

Gambar 12-42 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 195

Politeknik Telkom

Sistem Operasi

12.2 Managemen Ruang Kosong


o

196

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. 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. 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 Sistem Operasi satuan terabyte.

Politeknik Telkom

Sistem Operasi

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. 12.2.1Bit 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 blokblok 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.2Linked 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
Sistem Operasi 197

Politeknik Telkom

Sistem Operasi

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.

198

Sistem Operasi

Politeknik Telkom

Sistem Operasi

Gambar 12-43 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 dari blok-blok ini
Sistem Operasi 199

Politeknik Telkom

Sistem Operasi

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.1Efisiensi 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
200 Sistem Operasi

Politeknik Telkom

Sistem Operasi

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

Sistem Operasi

201

Politeknik Telkom

Sistem Operasi

Gambar 12-44 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 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.

202

Sistem Operasi

Politeknik Telkom

Sistem Operasi

Gambar 12-45 Tanpa Unified Cache Buffer

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.
Sistem Operasi 203

Politeknik Telkom

Sistem Operasi

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 ?

13 Recovery

204

Sistem Operasi

Politeknik Telkom

Sistem Operasi

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.

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
Sistem Operasi 205

Politeknik Telkom

Sistem Operasi

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-46 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
206 Sistem Operasi

Politeknik Telkom

Sistem Operasi

tersebut tidak dirubah sejak tanggal tersebut, lalu berkas tersebut tidak perlu diduplikat lagi. Sebuah tipe jadual backup yaitu sebagai berikut: Day 1: Menduplikat ke sebuah medium back up semua berkas ke disk. Ini disebut sebuah full backup. o Day 2: o Menduplikat ke medium lainnya semua berkas yang dirubah sejak hari pertama. Ini adalah incremental backup. o Day 3: o Menduplikat ke medium lainnya semua berkas yang dirubah sejak hari ke-2. o Day N: o Menduplikat ke medium lainnya semua berkas yang dirubah sejak hari ke N-1. Perputaran baru dapat mempunyai backupnya ditulis ke semua set sebelumnya, atau ke set yang baru dari media backup. N yang terbesar, tentu saja memerlukan tape atau disk yang lebih untuk dibaca untuk penyimpanan yang lengkap. Keuntungan tambahan dari perputaran backup ini adalah kita dapat menyimpan berkas apa saja yang tidak sengaja terhapus selama perputaran dengan mengakses berkas yang terhapus dari backup hari sebelumnya. o o

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 transactionoriented (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
Sistem Operasi 207

Politeknik Telkom

Sistem Operasi

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 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 prosesproses 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
208 Sistem Operasi

Politeknik Telkom

Sistem Operasi

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

209

Politeknik Telkom

Sistem Operasi

Rangkuman

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

Latihan

1. Sebutkan dan jelaskan objek dasar dalam layer virtual file system 2. Mengapa perlu adanya recovery dan backup 3. Apa yang dimaksud dengan teknik log-based-recovery.

210

Sistem Operasi

Politeknik Telkom

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.

Sistem Operasi

211

Politeknik Telkom

Sistem Operasi

Tujuan

1. Tujuan 1 2. Tujuan 2

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
212 Sistem Operasi

Politeknik Telkom

Sistem Operasi

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.

Gambar 14-47 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 reintegrasi lokasi.

Sistem Operasi

213

Politeknik Telkom

Sistem Operasi

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.

14.4 Tipe Sistem Tersebar


Sistem Tersebar memiliki dua tipe : a. Network Operating System b. Sistem Operasi Tersebar 14.4.1Network 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.2Sistem Operasi Tersebar Penerapan sistem operasi tersebar dilatarbelakangi oleh:
214 Sistem Operasi

Politeknik Telkom

Sistem Operasi

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 membutuhkan jenis prosesor tertentu. proses yang

d) Software preference software yang dibutuhkan hanya pada lokasi tertentu. e) Data access proses yang berjalan secara remote.

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
Sistem Operasi 215

Politeknik Telkom

Sistem Operasi

3.

4.

5.

6.

menciptakan program tersebut, tapi dapat dilakukan oleh programmer yang lain. Concurency (kebersamaan) Banyak proses yang bisa dieksekusi secara bersama, membutuhkan sinkronisasi dalam mengakses sumber daya bersama serta dapat salaing bekerja sama. 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. Fault-Tolerance SisTer diharapkan dapat bertahan terhadap kegagalan, dan tidak memperngaruhi kinerja sistem secara keseluruhan. 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.

216

Sistem Operasi

Politeknik Telkom

Sistem Operasi

Rem Printer ote

Local printer user

Gambar 14-48 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.

Database pada lokasi tertentu

user

Gambar 14-49 Location Transparency c. Replication Transparency Memungkinkan banyak informasi yang digunakan untuk meningkatkan kehandalan dan kinerja tanpa program. Pengguna tidak terpengaruh apakah ia mengakses data orsinil atau replikasi.

Sistem Operasi

217

Politeknik Telkom

Sistem Operasi

SisTer Bandung

SisTer Jakarta

Gambar 14-50 Replication Transparency d. Failure Tranparancy Memungkinkan program atau pemakai menyelesaikan tugasnya tanpa terganggu atau mengetahui terjadinya kegagalan komponen hardware dan software.
SisTer Bandung SisTer Jakarta

Gambar 14-51 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.

218

Sistem Operasi

Politeknik Telkom

Sistem Operasi

Dengan demikian sistem operasi tersebar adalah program yang mengelola sumber daya-sumber daya di sistem tersebar dan menyediakan antarmuka yang familiar dengan pengguna yang berisi komputerkomputer otonom yang dihubungkan dengan jaringan komunikasi sehingga terlihat seperti satu sistem uniprosesor tunggal.

14.6 Arsitektur Sistem Terdistribusi


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

Sistem Operasi

219

Politeknik Telkom

Sistem Operasi

Gambar 14-52 Thin Client-Thick Server secara fisik

Gambar 14-53 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-54 Thick Client-Thin Server secara fisik


220 Sistem Operasi

Politeknik Telkom

Sistem Operasi

Gambar 14-55 Thick Client-Thin Server secara logical

Host-Based Client hanya berfungsi sebagai terminat input dan output saja. Yang melakukan proses adalah server.

Gambar 14-56 Host Based Cooperative Proses menangani dua sisi yaitu client dan server. Lebih komplek tetapi efissien.

Gambar 14-57 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
Sistem Operasi 221

Politeknik Telkom

Sistem Operasi

ii. Middle tier merupakan komputer server yang dikhususkan untuk menangani aplikasi-aplikasi dimana peosedur-prosedur dan perhitunganperhitungan yang kompleks dieksekusi. iii. Presentation tier merupakan kompter client yang menjadi interface bagi pengguna untuk memasukan data, mengajukan layanan ke server, dan melihat hasilnya

Gambar 14-58 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.

222

Sistem Operasi

Politeknik Telkom

Sistem Operasi

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). 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:
Sistem Operasi 223

Politeknik Telkom

Sistem Operasi

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.

P erm intaan ` C lie nt S erver B erkas


Berkas

Gambar 14-59 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-60 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.

224

Sistem Operasi

Politeknik Telkom

Sistem Operasi

Aplikasi

Perintah Terstruktur ` Client Hasil Proses

Gambar 14-61 Transaction Server

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

Informasi

` Client1

Server Groupware

Permintaan

` Client2
Aplikasi

Gambar 14-62 Server Groupware


Sistem Operasi 225

Politeknik Telkom

Sistem Operasi

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

Gambar 14-63 Object Server Remote berarti sumber daya yang tidak terhubung secara langsung dengan komputer. Sumber daya yang terdapat dalam komputer disebut lokal Keterangan:

226

Sistem Operasi

Politeknik Telkom

Sistem Operasi

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 dokumendokumen yang saling terhubung.

Gambar 14-64 Server Web Keterangan :


Sistem Operasi 227

Politeknik Telkom

Sistem Operasi

a. Client meminta layanan ke server melalui protokol tertentu b. Protokol tersebut menerjemahkan permintaan client agar dapat dimengerti client c. Protokol server d. mengirimkan hasil terjemahan ke

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 aplikasiaplikasi 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, server yang lain memakai mysql, dan lainlain. 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.
228 Sistem Operasi

Politeknik Telkom

Sistem Operasi

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 80an, 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)

Sistem Operasi

229

Politeknik Telkom

Sistem Operasi

menyediakan fungsi-fungsi ONC yang cukup kompleks dan tidak mudah untuk sistem administrasinya.

Gambar 14-65 Middleware

230

Sistem Operasi

Politeknik Telkom

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

Sistem Operasi

231

Politeknik Telkom

Sistem Operasi

5. Implementasi dari system tersebar di dunia jaringan computer banyak sekali telah teraplikasi. Sebutkan yang anda ketahui.

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.
232 Sistem Operasi

Politeknik Telkom

Sistem Operasi

Tujuan

3. Mahasiswa mengetahui lebih jelas tentang sistem tersebar 4. Mahasiswa mengetahui tentang RPC dan message

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

Sistem Operasi

233

Politeknik Telkom

Sistem Operasi

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. ii. Non-Blocking setelah mengirim maka proses terus melanjutkan eksekusi instruksi-instruksi berikutnya. b. Pada proses penerima

234

Sistem Operasi

Politeknik Telkom

Sistem Operasi

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

Sistem Operasi

235

Politeknik Telkom

Sistem Operasi

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)

236

Sistem Operasi

Politeknik Telkom

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.

1 Client 10 9

5 Client Stub 2 4 Server Stub 6 7 Entitas Transport Server

Entitas Transport 3 8

Gambar 15-66 Skema RPC


Sistem Operasi 237

Politeknik Telkom

Sistem Operasi

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

Politeknik Telkom

Sistem Operasi

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 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.
Sistem Operasi 239

Politeknik Telkom

Sistem Operasi

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

240

Sistem Operasi

Politeknik Telkom

Sistem Operasi

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

Politeknik Telkom

Sistem Operasi

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.

242

Sistem Operasi

Politeknik Telkom

Sistem Operasi

Rangkuman

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

Latihan

1. Apa yang anda ketahui tentang RPC dan RMI dan sebutkan perbedaanya 2. Sebutkan teknologi cluster yang anda ketahui 3. Apa yang dimaksud dengan sistem prosesor jamak. 4. Carilah di internet tentang Beowulf dan Open Mosix

Sistem Operasi

243

Politeknik Telkom

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


244 Sistem Operasi

Politeknik Telkom

Sistem Operasi

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

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
Sistem Operasi 245

Politeknik Telkom

Sistem Operasi

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

16.4 Jenis Keamanan


Jenis keamanan komputer dapat dikelompokan menjadi 3 (tiga) macam : 1. Keamanan Eksternal

246

Sistem Operasi

Politeknik Telkom

Sistem Operasi

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 sistem menjadi tidak dapat digunakan (ancaman terhadap availability) atau hilang. Contoh : - Penghancuran bagian perangkat keras, seperti harddisk. - Pemotongan kabel komunikasi.

S me u br In rm s fo a i

T ju n u a In rm s fo a i

Gambar 16-67 Aliran Normal

Sistem Operasi

247

Politeknik Telkom

Sistem Operasi

S me u br In rm s fo a i

T ju n u a In rm s fo a i

Gambar 16-68 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.

S me u br Inoms f r ai

T ju n u a Inoms f r ai

T ju n u a Inoms f r ai

Mengkopi file tanpa diotorisasi. Gambar 16-69 Intersepsi

3. Modifikasi Pihak yang tidak berhak tidak hanya melakukan akses terhadap aset sistem tetapi juga melakukan modifikasi
248 Sistem Operasi

Politeknik Telkom

Sistem Operasi

(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

S me u br I f r ai noms

T ju n u a I f r ai noms

T ju n u a Inoms f r ai

pada jaringan. Gambar 16-70 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.

Sistem Operasi

249

Politeknik Telkom

Sistem Operasi

S me u br Ino ms f r ai

T ju n u a In r a i fo ms

T ju n u a In r a i fo ms

Gambar 16-71 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 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
250 Sistem Operasi

Politeknik Telkom

Sistem Operasi

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 Komputer

Mekanisme

Proteksi

Sistem

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

Sistem Operasi

251

Politeknik Telkom

Sistem Operasi

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

Memberikan hak akses seminimal dan sesedikit mungkin objek yang diperlukan Memeriksa setiap akses, dan mencabut hak akses jika terjadi pelanggaran
Sistem Operasi

Politeknik Telkom

Sistem Operasi

Verifikasi penggunaan akses

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

Sistem Operasi

253

Politeknik Telkom

Sistem Operasi

16.8.2Proteksi 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 terhadap objek tersebut. Hal ini memudahkan menajemen hak akses terhadap objek tertentu.

Gambar 16-73 Proteksi objek ACL 16.8.3Proteksi 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-9 Sparse matrix diagram ACM
254 Sistem Operasi

Politeknik Telkom

Sistem Operasi

User A User B User S User T Sys_mgr User_svc s

BIBLG ORW R RW -

TEMP ORW -

F ORW R -

SYS_CLK R R R R ORW R

PRINT W W W W O W

LINKER X X X X OX X

16.8.4Proteksi 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.5Proteksi 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
Sistem Operasi 255

Politeknik Telkom

Sistem Operasi

User bisa mengakses file yang ada di semua grupnya Keterbatasan sharing, mis. utk sharing per file 16.8.6Proteksi 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 Izin Temporer User memperoleh akses terhadap file hanya selama eksekusi program Contoh: izin suid (set userid) pada Unix 16.8.7Proteksi 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:
256 Sistem Operasi

Politeknik Telkom

Sistem Operasi

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 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))
Sistem Operasi 257

Politeknik Telkom

Sistem Operasi

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 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. pertahanan terhadap intrusi sangat ketat 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 :
258 Sistem Operasi

Politeknik Telkom

Sistem Operasi

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
Program Jahat Perlu Program Inang

Independen

Trapdoor

Logic bomb

Trojan horse

Virus

Bacteria

Worm

Gambar 16-74 Taksonomi Program Jahat 1. Bacteria Bacteria adalah program yang mengkonsumsi sumber daya sistem dengan mereplikasi dirinya sendiri.
Sistem Operasi 259

Politeknik Telkom

Sistem Operasi

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

260

Sistem Operasi

Politeknik Telkom

Sistem Operasi

debugging akan lama bila harus melewati prosedurprosedur 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

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
Sistem Operasi 261

Politeknik Telkom

Sistem Operasi

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 filefile 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 pemakaipemakai 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 fungsifungsi berguna (seperti kalkulator), tapi juga secara diam-diam menghapus file-file pemakai. Trojan Horse biasa ditempelkan pada program-program atau rutinrutin 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
262 Sistem Operasi

Politeknik Telkom

Sistem Operasi

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. 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-75 Virus Menginfeksi

Sistem Operasi

263

Politeknik Telkom

Sistem Operasi

Gambar 16-76 Virus Signature

Gambar 16-77 Virus memperoleh Kontrol

6. Worm

264

Sistem Operasi

Politeknik Telkom

Sistem Operasi

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

Sistem Operasi

265

Politeknik Telkom

Sistem Operasi

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. 2. 3. 4. Fase Fase Fase Fase Tidur (dormant phase) propagasi (propagation phase) pemicu (triggering phase) 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.

266

Sistem Operasi

Politeknik Telkom

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 rincianrincian 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
Sistem Operasi 267

Politeknik Telkom

Sistem Operasi

3. Boot Sector Virus 4. Stealth virus 5. Polymorphic virus

268

Sistem Operasi

Politeknik Telkom

Sistem Operasi

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

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
Sistem Operasi 269

Politeknik Telkom

Sistem Operasi

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. 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 : Sekedar scanner sederhana 2.Generasi kedua : Scanner yang pintar (heuristic scanner) : Scanner yang pintar (heuristic scanner) 3.Generasi ketiga : jebakan-jebakan aktivasi (activity trap) : jebakan-jebakan aktivasi (activity trap) 4.Generasi keempat : proteksi penuh (full-featured protection) : proteksi penuh (full-featured protection) 1. Generasi Pertama: sekedar scanner sederhana

270

Sistem Operasi

Politeknik Telkom

Sistem Operasi

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 virusvirus 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. 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)
Sistem Operasi 271

Politeknik Telkom

Sistem Operasi

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

272

Sistem Operasi

Politeknik Telkom

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 masingmasing 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
Sistem Operasi 273

Politeknik Telkom

Sistem Operasi

membahayakan bagi system dan jaringan kompter yang anda tangani? 5. Sebutkan dan jelaskan tipe virus?Juga sebutkan nama virus terkini yang anda ketahui

DAFTAR PUSTAKA
Tanembaum, Andrew, William Stalling, Silberschatz, Operating System.

274

Sistem Operasi

Anda mungkin juga menyukai