Top Banner

of 275

CE122 Sistem Operasi

Jul 17, 2015

Download

Documents

Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript

Politeknik Telkom

Sistem Operasi

SISTEM OPERASI

POLITEKNIK TELKOM BANDUNG 2009i

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

Politeknik Telkom

Sistem Operasi

any means without prior written Polytechnic.

authorization of Telkom

KATA PENGANTARSegala 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 ISIKATA PENGANTAR......................................................................................III DAFTAR ISI.......................................................................................................V 1 TINJAU ULANG SISTEM KOMPUTER.....................................................1 2 PENGENALAN SISTEM OPERASI...........................................................13 3 PROSES DAN THREAD...............................................................................24 4 KONKURENSI ...............................................................................................48 5 PENJADWALAN ...........................................................................................70 6 MANAJEMEN MEMORI ............................................................................85 7 MANAJEMEN PERANGKAT I/O .............................................................98 8 MANAJEMEN DISK ..................................................................................132 9 MANAJEMEN FILE ...................................................................................146 10 DIREKTORI ...............................................................................................160 11 IMPLEMENTASI SISTEM BERKAS ....................................................170 12 MANAJEMEN PENYIMPAN SEKUNDER .........................................187 13 RECOVERY................................................................................................202 14 SISTEM OPERASI TERSEBAR 1 ..........................................................208 15 SISTEM TERSEBAR 2 .............................................................................228 16 KEAMANAN SISTEM OPERASI ..........................................................240 DAFTAR PUSTAKA......................................................................................270

v

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

1

Politeknik Telkom

Sistem Operasi

1.1 PendahuluanSebuah 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 KomputerPada level atas, sebuah komputer terdiri dari empat komponen. Komponen-komponen ini saling berinteraksi untuk menghasilkan fungsi dari tujuan sistem komputer yaitu eksekusi program atau komputasi. Keempat komponen atau elemen struktur utama yaitu: 1. Prosesor Prosesor berfungsi mengendalikan operasi komputer dan melakukan fungsi pemrosesan data. Prosesor terdiri dari: a. Aritmetic Logic Unit (ALU), bagian untuk komputasi yang berhubungan dengan aritmatika dan logika b. Control Unit (CU), sebagai pengendali utama operasi yang dilaksanakan. Register, berfungsi sebagai memori yang sangat cepat yang biasanya digunakan sebagai tempat operan-operan suatu operasi yang akan dilaksanakan. Register membantu pelaksanan operasi yang dilakukan oleh prosesor. 2. Memori Utama Memori berfungsi menyimpan data dan program. Memori utama biasanya volatile, yaitu tidak dapat mempertahankan data dan program yang disimpan begitu sumber daya energi listrik dihentikan2 Sistem Operasi

Politeknik Telkom

Sistem Operasi

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

1.4 RegisterDi dalam prosesor terdapat sekumpulan register yang berfungsi sebagai memori yang sangat cepat dan kecilSistem Operasi 3

Politeknik Telkom

Sistem Operasi

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: PC (Program Counter), mencatat alamat memori dimana instruksi yang terdapat di dalamnya akan dieksekusi.Sistem Operasi

4

Politeknik Telkom

Sistem Operasi

-

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 MemoriMemori berfungsi untuk menyimpan data dan program. Berdasarkan kecepatan aksesnya dapat dibuat hirarki memori, sebagai berikut:

Sistem Operasi

5

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/OKlasifikasi perangkat I/O berdasarkan aliran datanya dapat dibagi dua, antara lain: 1. Block Oriented Device, peralatan ini menyimpan informasi sebagai blok-blok berukuran tetap. Ciri utama peralatan ini adalah dimungkinkan membaca atau menulis blok-blok secara indenpenden dengan cara direct access. Contoh peralatan antara lain: disk, optical disk, tape dan sebagainya.6 Sistem Operasi

Politeknik Telkom

Sistem Operasi

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

Sistem Operasi

7

Politeknik Telkom

Sistem Operasi

Ketika data besar dipindahkan teknik yang lebih efisien diperlukan agar tidak menyibukkan prosesor, sehingga prosesor dapat melakukan kerja lain.

8

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 informasiinformasi 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 KomponenInterkoneksi 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 Instruksi1.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 untukSistem Operasi 13

Politeknik Telkom

Sistem Operasi

memenuhi kebutuhan aplikasi dan pengguna akhir.

2.1 Fungsi dan Sasaran Sistem OperasiSistem 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 DayaSistem 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 - prosesor14 Sistem Operasi

Politeknik Telkom

Sistem Operasi

- 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 sangatSistem 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 layanan-layanan sistem komputer

18

Sistem Operasi

Politeknik Telkom

Sistem Operasi

2.5 Evolusi Sistem OperasiSistem 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 with entered at the operating 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

RangkumanSistem 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 komponenkomponen itu bekerja dan saling bekerja sama untuk24 Sistem Operasi

Politeknik Telkom

Sistem Operasi

memenuhi kebutuhan aplikasi dan pengguna akhir.

3.1 Pengenalan Konsep ProsesProses 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 aplikasiaplikasi 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 instruksi program berikutnya yang akan dieksekusi. 5. Memory pointer: pointer menuju kode program (instruksi program), data yang berhubungan dengan proses, dan blok memori yang dibagipakai bersama proses-proses lain. 6. Contex data: adalah data yang ada di register prosesor ketika proses dieksekusi. 7. I/O status information: informasi tentang permintaan I/O, peralatan I/O, file, dll. 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 ProsesDari 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 prosesproses 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 blocked. Berikut ini adalah daftar 5 kondisi yang ada pada model 5 kondisi: 1. Running: proses sedang dieksekusi

Sistem Operasi

27

Politeknik Telkom

Sistem Operasi

2. Ready: proses siap dieksekusi jika telah mendapat kesempatan 3. Blocked: proses tidak dapat dieksekusi hingga suatu event terjadi atau menunggu suatu proses I/O selesai 4. New: proses baru saja selesai dibuat. Pada kondisi ini biasanya baru process control block saja yang telah selesai dibuat dan ditaruh di memori utama sedangkan instruksi dan datanya belum 5. Exit: proses telah dilepaskan dari kumpulan (pool) proses yang dapat dieksekusi oleh sistem operasi dikarenakan telah selesai maupun dibatalkan karena alasan tertentu Dapat dilihat bahwa ada dua kondisi tambahan selain pemisahan not running menjadi ready dan blocked yaitu new dan exit. Kondisi new pada model ini seperti yang telah dijelaskan di atas menerangkan bahwa sistem operasi telah menyiapkan keperluan untuk menjalankan proses seperti PCB dan tabel-tabel tertentu dalam sistem operasi tetapi proses itu sendiri belum dieksekusi oleh prosesor. Kondisi exit pada model ini mewakili kondisi sedemikian sehingga proses yang telah dihentikan eksekusinya karena telah selesai maupun karena hal lainnya seperti kesalahan dan pembatalan oleh pengguna tidak langsung dihapus melainkan disimpan sementara agar informasi yang menyertai proses tersebut seperti PCB dan tabel-tabel yang menyertainya dapat digunakan oleh proses lain yang memerlukan seperti proses yang melakukan perhitungan waktu eksekusi dan penggunaan sumberdaya oleh proses lainnya. Berikut ini adalah jenis-jenis kejadian (event) yang dapat menyebabkan proses berpindah dari suatu kondisi ke kondisi lainnya dalam model 5 kondisi: 1. Null > New: sebuah proses baru dibuat. Prose ini dapat benar-benar baru atau dapat berasal dari proses lain yang telah ada melalui process spawning.28 Sistem Operasi

Politeknik Telkom

Sistem Operasi

2. New > Ready: sistem operasi memindahkan sebuah proses ke kondisi ready dari kondisi new hanya jika sistem operasi tersebut telah siap. Sistem operasi dapat menahan sebuah proses dalam kondisi new jika kondisi belum memungkinkan untuk menangani proses tambahan seperti kekurangan memori atau terdapat batasan jumlah proses yang dapat ditangani agar tidak menurunkan kinerja keseluruhan. 3. Ready > Running: proses dipindahkan dari kondisi ready ke kondisi running oleh rutin penjadwalan atau dispatcher dan dieksekusi oleh prosesor. 4. Running > Ready: alasan paling umum untuk memindahkan suatu proses dari running ke kondisi ready adalah karena waktu eksekusi untuk proses tersebut telah habis atau diinterupsi untuk digantikan oleh proses dengan prioritas yang lebih tinggi. 5. Running > Exit: proses dihentikan eksekusinya dan diterminasi dikarenakan telah selesai atau karena alasan lainnya seperti terjadinya kesalahan atau pembatalan eksekusi oleh pengguna. 6. Running > Blocked: proses diblok apabila proses tersebut telah meminta sesuatu yang tidak dapat langsung dipenuhi oleh sistem operasi, contohnya: operasi I/O 7. Blocked > Ready: proses dipindahkan dari blocked ke kondisi ready hanya jika kejadian (event) tertentu yang ditunggu telah terjadi seperti permintaan operasi I/O oleh proses tersebut telah selesai dilaksanakan. 8. Ready > Exit: transisi ini tidak digambarkan pada model 5 kondisi untuk menjaga kejelasan tetapi sebuatSistem Operasi 29

Politeknik Telkom

Sistem Operasi

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

Politeknik Telkom

Sistem Operasi

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

Sistem Operasi

31

Politeknik Telkom

Sistem Operasi

2. Blocked/Suspend Ready/Suspend: transisi ini terjadi ketika event yang ditunggu proses dalam kondisi blocked/suspend telah terjadi sehingga status proses tersebut berubah menjadi ready/suspend. 3. Ready/Suspend Ready: transisi ini terjadi ketika tidak ada lagi proses yang berada dalam kondisi ready di dalam memori utama sehingga sistem operasi akan memindahkan proses yang berada dalam kondisi ready/suspend dari memori virtual ke memori utama. Transisi ini juga dapat terjadi apabila proses dalam kondisi ready/suspend memiliki prioritas lebih tinggi dari proses yang berada dalam kondisi ready. 4. New Ready/Suspend dan New Ready: transisi ini terjadi ketika suatu proses baru saja dibuat. Proses tersebut dapat disimpan di dalam antrian memori di memori utama atau diantrikan dalam kondisi ready/suspend di memori virtual. 5. Blocked/Suspend Blocked: transisi ini meskipun tampak tidak terlalu baik dari segi disain namun masih mungkin terjadi. Jika memori utama memiliki tempat kosong dan proses dalam kondisi blocked/suspend tersebut memiliki prioritas lebih tinggi dari yang berada dalam kondisi ready/suspend serta sistem operasi percaya bahwa event yang ditunggu proses tersebut akan terjadi segera maka transisi ini boleh saja terjadi. 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 untuk32 Sistem Operasi

Politeknik Telkom

Sistem Operasi

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 ProsesSeperti yang telah disebutkan sebelumnya sistem operasi bertugas untuk mengelola proses-proses dan sumber daya komputer yang digunakan proses-proses tersebut. Untuk melaksanakan tugas tersebut sistem operasi memerlukan beberapa informasi mengenai proses-proses yang ada dan sumber daya komputer yang ada Struktur Kendali Sistem Operasi Sistem operasi membuat dan memelihara beberapa tabel berisi informasi mengenai sumber daya komputer dan proses yang ada. Tabel-tabel tersebut antara lain: 1. Tabel memori Tabel ini digunakan untuk mengelola memori utama dan memori virtual. Tabel ini berisi, antara lain: a. Alokasi memori utama untuk proses b. Alokasi memori virtual untuk proses c. Atribut-atribut yang digunakan untuk keperluan proteksi blok-blok memori yang digunakan pada memori utama d. Informasi apa saja yang digunakan untuk mengelola memori virtual.Sistem Operasi 33

Politeknik Telkom

Sistem Operasi

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 operasi apakah oleh perangkat lunak atau dengan bantuan manusia

Struktur Kendali ProsesUntuk 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 jika34 Sistem Operasi

Politeknik Telkom

Sistem Operasi

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

Sistem Operasi

35

Politeknik Telkom

Sistem Operasi

3.4 Kendali ProsesMode 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 filefile yang dibutuhkan oleh proses tersebut. Langkah-langkah itu antara lain: 1. Memberikan identitas unik kepada proses baru tersebut 2. Mengalokasikan ruangan memori untuk proses tersebut 3. Menginisialisasi proses control block 4. Mengkonfigurasi tautan-tautan tertentu terhadap proses seperti penempatan pada antrian, dsb.

36

Sistem Operasi

Politeknik Telkom

Sistem Operasi

5. Membuat atau mengembangkan struktur data yang lain seperti membuat file audit terhadap proses agar dapat digunakan untuk penagihan atau pengukuran kinerja

Pergantian ProsesPergantian eksekusi satu proses ke proses lainnya tampaknya merupakan sesuatu yang tidak rumit. Pada waktu tertentu proses yang sedang dieksekusi mendapat interupsi dan sistem operasi memberikan status running pada proses lain dan mengalihkan kendali kepada proses tersebut. Tetapi ada beberapa maslaah disain yang ditimbulkan, Pertama kejadian apa yang memicu ternjadinya pergantian proses. Maslaah lainnya yang perlu diperhatikan adalah perbedaan antara pergantian mode dan pergantian proses. Terakhir adalah apa yang harus dilakukan oleh sistem operasi terhadap berbagai struktur data yang ada untuk menyelesaikan pergantian proses. 3.4.1 Kapan Mengganti Eksekusi Proses Ada beberapa hal yang dapat menjadi pemicu terjadinya pergantian eksekusi proses di prosesor, di antaranya: 1. Interrupt: disebabkan oleh suatu kejadian yg berada di luar lingkup eksekusi instruksi dan digunakan untuk memberikan reaksi terhadap kejadian luar secara asinkron. 2. Trap: disebabkan oleh kejadian yang berhubungan dengan eksekusi intruksi dan digunakan untuk menangani eror atau eksepsi tertentu. 3. Supervisor call: disebabkan oleh permintaan suatu pihak secara eksplisit kepada sistem operasi dan digunakan untuk memanggil fungsi yang disediakan oleh sistem operasi. Contoh dari berbagai interrupt yang ada:

Sistem Operasi

37

Politeknik Telkom

Sistem Operasi

1. Clock Interrupt: Sistem operasi menentukan bahwa proses yang sedang dieksekusi telah memenuhi batas maksimum waktu eksekusi yang diperbolehkan yang dikenal sebagai time slice. Proses tersebut harus dihentikan eksekusinya dan digantikan dengan proses lainya. 2. I/O Interrupt: Sistem operasi menentukan bahwa operasi I/O telah terjadi. Jika operasi I/O tersebut merupakan operasi yang ditunggu oleh satu atau beberapa proses maka sistem operasi akan memindahkan semua proses yang diblok yang berkepentingan dengan operasi I/O tersebut ke kondisi ready. 3. Memory Fault: Prosesor menemui sebuah alamat memori virtual yang menunjuk pada data yang tidak ada di memori utama. Sistem operasi harus memindahkan blok dari memori virtual yang mengandung data tersebut ke memori utama. Setelah sistem operasi mengeluarkan perintah untuk menjalankan operasi I/O untuk memindahkan blok data tersebut proses yang membutuhkan data tersebut diubah statusnya menjadi blocked. Setelah blok data yang diinginkan berada di memori utama proses tersebut dikembalikan ke kondisi ready. 3.4.2 Pergantian Mode Interrupt stage merupakan bagian dari siklus eksekusi instruksi. Pada tahap tersebut prosesor memeriksa ada tidaknya interrupt yang diindikasikan melalui adanya sinyal interupsi. Jika tidak ada sinyal interupsi maka prosesor akan mengambil instruksi berikutnya namun jika terdapat sinyal interupsi maka prosesor akan melakukan hal sebagai berikut:

38

Sistem Operasi

Politeknik Telkom

Sistem Operasi

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

Sistem Operasi

39

Politeknik Telkom

Sistem Operasi

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.

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

Politeknik Telkom

Sistem Operasi

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 (seakanakan) berjalan bersamaan dan setiap proses dapat terbagi menjadi beberapa thread. Pada sebuah lingkungan multithread sebuah proses didefinisikan sebagai satuan alokasi sumber daya dan satuan pengamanan. Perbandingan antara singlethread process dan proses dengan multithreaded process dapat dilihat pada gambar. Semua thread dalam sebuah proses berada dalam alamat ruang (address space) yang sama dan memiliki hak yang sama untuk mengakses sumber daya proses

Gambar 3-6 Thread

Keuntungan menggunakan thread dibandingkan proses: 1. membuat thread baru lebih cepat daripada membuat proses baruSistem Operasi 41

Politeknik Telkom

Sistem Operasi

2. menghentikan thread lebih cepat daripada menghentikan proses 3. waktu untuk pergantian thread lebih cepat dibandingkan pergantian proses 4. komunikasi antar thread lebih cepat karena berada dalam satu proses sehingga tidak memerlukan intervensi dari kernel Contoh penggunaan multithreading pada sistem single-user multiprocessing: 1. Pekerjaan foreground dan background Input dapat dilakukan melalui thread foreground dan pemrosesan input dilakukan dengan thread background sehingga aplikasi menjadi lebih responsif 2. Pemrosesan asinkron Tugas-tugas asinkron dapat diimplementasikan sebagai thread. Contoh: sebuah thread yang bertugas melakukan penulisan data dari RAM ke storage sebagai background proses 3. Mempercepat eksekusi Proses dengan multithread dapat menghitung sekumpulan data sembari mengambil data dari peralatan dan pada lingkungan multi processor beberapa thread dapat dijalankan berbarengan pada processor yang berbeda. Selain itu membuat program yang menggunakan thread terpisah untuk melakukan Remote Procedure Call akan meningkatkan kecepatan program secara substansial 4. Struktur program modular Mempermudah implementasi dan desain program dengan berbagai input dan output berbeda Empat operasi terhadap thread berdasarkan status thread: 1. Spawn Pembuatan proses meliputi pembuatan thread proses tersebut dan thread tersebut dapat pula membuat thread baru di dalam thread yang sama. 2. Block Ketika thread dihentikan sementara karena menunggu suatu peristiwa (event) processor akan mengeksekusi thread lain yang siap dalam antrian.42 Sistem Operasi

Politeknik Telkom

Sistem Operasi

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.

Salah satu isu yang penting dalam multithreading adalah sinkronisasi aktivitas antar thread sehingga aktivitas suatu thread tidak menyebabkan gangguan bagi thread lainnya. Masalah apakah blocking salah satu thread akan menghambat eksekusi seluruh thread dalam proses yang sama menjadi bahasan dalam user-level thread dan kernel-level thread. Terminasi dan penahanan proses akan mempengaruhi seluruh thread dalam proses karena mereka berbagi alamat memori yang samaSistem Operasi 43

Politeknik Telkom

Sistem Operasi

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

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

Politeknik Telkom

Sistem Operasi

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 nonblocking 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. 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 samaSistem Operasi 45

Politeknik Telkom

Sistem Operasi

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.

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

Politeknik Telkom

Sistem Operasi

diterima. 3. Thread adalah jalur eksekusi tunggal dengan stack eksekusi, status processor, dan informasi penjadwalan. 4. Thread dapat berpindah-pindah dari satu domain ke domain lainnya. Satu thread dimiliki oleh banyak proses 1. Digunakan pada sistem terdistribusi. 2. Sebuah proses adalah sebuah virtual address space dan memiliki sebuah control block . 3. Thread dapat berpindah-pindah dari satu proses ke proses lainnya dalam satu mesin atau berpindah mesin dengan membawa informasi-informasi yang diperlukan. 4. Digunakan untuk menyembunyikan detil lingkungan terdistribusi dari programmer.

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 dikendalikanSistem Operasi 47

Politeknik Telkom

Sistem Operasi

lewat perubahan nilai pada register program counter yang berupa penunjuk ke suatu lokasi yang berisi instruksi dari proses. Untuk dapat memanajemen proses sistem operasi minimal harus mengetahui letak dan kondisi dari proses-proses yang ada.

Soal Latihan

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

4 Konkurensi

48

Sistem Operasi

Politeknik Telkom

Sistem Operasi

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

4.1 PendahuluanFitur-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,Sistem Operasi 49

Politeknik Telkom

Sistem Operasi

3. Distributed Processing (pemrosesan tersebar): kemampuan untuk memanajemen banyak proses yang dieksekusi pada banyak komputer yang tersebar dibeberapa lokasi. Hal mendasar yang perlu diperhatikan ketika menangani banyak proses yang berjalan bersama-sama (konkurensi) adalah masalah-masalah seperti: bagaimana komunikasi antar proses-proses tersebut, membagi pakai dan terjadinya kompetisi untuk sumber daya komputer, sinkronisasi aktivitas proses-proses, dan alokasi prosesor.

4.2 Prinsip-prinsip KonkurensiPada 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.

50

Sistem Operasi

Politeknik Telkom

Sistem Operasi

Salah satu masalah yang ditimbulkan dari berbagi pakai sumber daya adalah race condition, yaitu situasi sedemikian sehingga beberapa proses atau thread menulis data di tempat/variabel yang sama sehingga hasil akhir bergantung kepada urutan eksekusi instruksi-instruksi proses-proses tersebut. Sebagai contoh: jika ada dua proses P1 dan P2, berbagai pakai variabel global a. Jika P1 mengubah nilai a menjadi 1 dan kemudian pada suatu ketika P2 mengubah nilai a menjadi 2 maka kedua proses sedang berada dalam kondisi balapan untuk menulis variabel a. Pada contoh ini pihak yang kalah balapan (yang terakhir mengubah nilai variabel a) adalah yang menentukan nilai akhir dari variabel a. Untuk menangani masalah konkurensi ini sistem operasi perlu memperhatikan hal-hal sebagai berikut: 1. Sistem operasi harus dapat mengetahui jejak dari berbagai proses yang berjalan, Hal ini dapat dilakukan melalui process control block. 2. Sistem operasi harus dapat mengalokasi dan mendealokasi sumber daya komputer untuk setiap proses yang aktif, seperti: a. Prosesor b. Memori c. Berkas-berkas (files) d. Peralatan-peralatan I/O 3. Sistem operasi harus dapat melindungi data dan sumber daya fisik yang sedang dialokasikan untuk setiap proses dari interferensi yang tidak dimaksudkan oleh proses lain. 4. Fungsi dan output dari sebuah proses harus independen terhadap kecepatan eksekusi relatif terhadap

Sistem Operasi

51

Politeknik Telkom

Sistem Operasi

kecepatan proses konkuren yang lain. Bab ini akan difokuskan pada poin ke-empat ini. Apa maksud dari pernyataan fungsi dan output dari sebuah proses harus independen terhadap kecepatan eksekusi relatif terhadap kecepatan proses konkuren yang lain? Fungsi sebuah proses dan output yang dihasilkannya sebisa mungkin dijaga untuk tidak terpengaruh oleh kecepatan eksekusi proses tersebut yang dalam sebuah sistem multiproses menjadi tidak tetap bergantung proses-proses lainnya. Proses-proses dalam sistem multiproses dapat saling independen tetapi lebih sering melakukan interaksi. Ada beberapa jenis interaksi yang terjadi antar proses berdasarkan derajat pengetahuan proses-proses terhadap adanya proses lainnya: 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.52 Sistem Operasi

Politeknik Telkom

Sistem Operasi

Pada jenis interaksi pertama proses-proses yang berjalan berbarengan mengalami konflik ketika mencoba mengakses sumber daya yang sama pada waktu yang bersamaan. Jika salah satu proses telah mengakses sumber daya tersebut maka proses lain harus menunggu hingga proses tersebut selesai menggunakan sumber daya tersebut sebelum dapat menggunakannya. Hal ini menyebabkan eksekusi proses menjadi tertunda dan bahkan pada beberapa kasus proses lain tidak pernah mendapat kesempatan untuk mengakses sumber daya tersebut dan akhirnya tidak pernah selesai dengan sukses. Untuk mengendalikan proses-proses yang saling berkompetisi setidaknya ada tiga masalah yang dihadapi, yaitu: 1. Mutual exclusion 2. Deadlock 3. Starvation Mutual exclusion adalah konsep sedemikian sehingga hanya satu proses yang boleh mengakses/menggunakan sebuah sumber daya yang tidak bisa dipakai berbarengan (contohnya: printer, kartu jaringan, dll). Instruksi-instruksi yang dieksekusi ketika mengakses sebuah sumber daya disebut sebagai critical section dan sumber daya tersebut dikenal sebagai critical resource. Mutual excluision mengharuskan pada suatu saat hanya ada satu proses yang berada pada kondisi critical section. Penerapan mutual exclusion dapat menyebabkan dua masalah, yaitu deadlock dan starvation. Deadlock adalah kondisi sedemikian sehingga beberapa proses tidak berjalan karena masing-masing sedang mengakses suatu sumber daya dan untuk menyelesaikan eksekusi critical section masing-masing harus mengakses critical resource yang sedang diakses proses lainnya. Misalkan proses P1 dan P2 membutuhkan sumberdaya R1 dan R2 untuk menyelesaikan critical section masing-masing. Seandainya P1 sedang mengakses R1 dan P2 sedang mengakses R2 maka P1 tidak dapat mengakses R2 dan sebaliknya P2 juga tidak dapat mengakses R1. Saat inilahSistem Operasi 53

Politeknik Telkom

Sistem Operasi

kedua proses tidak dapat melanjutkan proses eksekusi dan deadlock terjadi. Starvation (kelaparan) adalah kondisi sedemikan sehingga sebuah proses terus menerus gagal mendapatkan akses suatu sumber daya dikarenakan proses-proses lain terus menggunakan sumber daya tersebut 4.2.1 Persayaratan untuk mutual exclusion Untuk menerapkan mutual exclusion sebuah sistem harus memenuhi kebutuhan-kebutuhan sebagai berikut: 1. Mutual exclusion harus dapat dipaksakan 2. Proses yang berhenti sementara pada bagian non critical harus dapat berhenti tanpa mengganggu proses yang lain 3. Tidak boleh terjadi sebuah proses tertahan dari memasuki critical section dalam waktu yang tidak pasti: tidak boleh ada deadlock dan starvation 4. Ketika tidak ada proses yang memasuki critical section pada suatu critical resource maka proses lain yang hendak memasuki cirtical sectionnya harus diizinkan mengakses critical resource tersebut tanpa waktu tunda 5. Tidak asumsi yang dibuat mengenai kecepatan proses dan jumlah prosesor Sebuah proses berada dalam critical section untuk waktu yang terbatas. 4.2.2 Dukungan Perangkat Keras untuk Mewujudkan Mutual Exclusion

4.2.3 Interrupt DisablingApabila 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 tersebut54 Sistem Operasi

Politeknik Telkom

Sistem Operasi

dapat diwujudkan dalam bentuk rutin-rutin dasar/primitif yang disediakan di dalam kernal yang berguna untuk mematikan dan menyalakan kembali fasilitas interupsi. Sebuah proses dapat memaksakan mutual exclusion dengan cara seperti di bawah ini: while (true) { /* matikan interupsi */; /* masuk ke critical section */; /* nyalakan interupsi */; /* masuk ke non-critical section */; } Sebelum proses memasuki critical section proses memanggil rutin primitif untuk mematikan fasilitas interupsi dan proses memanggil rutin untuk mengembalikan fungsi interupsi. Dikarenakan critical section tidak dapat diinterupsi maka mutual exclusion menjadi terjamin penerapannya. Cara ini memiliki biaya yang mahal dikarenakan akan membatasi fleksibilitas prosesor dalam mengubah proses yang dieksekusi. Selain itu solusi ini tidak bekerja pada lingkungan multiprosesor di mana beberapa proses dapat dijalankan bersamaan masing-masing dengan prosesor yang berbeda.

4.2.4 Instruksi-instruksi Mesin KhususInterrupt 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:Sistem Operasi 55

Politeknik Telkom

Sistem Operasi

1. Instruksi test and set 2. Instruksi exchange

4.2.5 Instruksi Test and SetInstruksi test and set dapat didefinisikan seperti di bawah ini:boolean testset (int i) { if(i==0) { i=1; return true; } else { return false; } }

Instruksi ini memeriksa apakah parameter i bernilai. Jika i bernilai 0 maka instruksi ini akan mengganti nilainya menjadi 1 dan mengembalikan nilai boolean true. Sebaliknya jika bernilai 1 maka instruksi ini akan mengembalikan nilai false. Tabel di bawah memperlihatkan bagaimana mutual exclusion dapat diimplementasi melalui mekanisme instruksi ini. Prosedur parBegin(P1,P2, , Pn) sendiri bekerja dengan cara sebagai berikut: tahan (suspend) ekseskusi dari program utama (main program) kemudian siapkan/inisiasi eksekusi secara konkuren prosedur P1, P2, , Pn. Jika 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 terus-menerus memeriksa kondisi tertentu yang membolehkan proses tersebut memasuki critical section. Setelah proses keluar dari critical section proses tersebut akan mengubah nilai bolt kembali menjadi 0.56 Sistem Operasi

Politeknik Telkom /*program:mutualexclusion*/ const int n=/*jumlah proses*/ int bolt; void P(int i) { while(true) { while(!testset(bolt)) /*diam*/ /*critical section*/ /*lain-lain*/ } } void main() { bolt=0; parBegin(P(1),P(2), , P(n)); }

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); /*lain-lain*/ } } void main() { bolt=0; parBegin(P(1),P(2), , P(n));

}Tabel 4-2 Mutual exclusion dengan dukungan perangkat keras

Instruksi Test and Set

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 mendapatiSistem Operasi 57

Politeknik Telkom

Sistem Operasi

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 MesinKeuntungannya: 1. dapat digunakan pada lingkungan satu (uni) atau banyak (multi) prosesor yang berbagi pakai main memory 2. Sederhana dan mudah dipastikan 3. Dapat mendukung beberapa critical section dengan menggunakan variabel tersendiri untuk setiap critical section 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 ExclusionMelihat 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

58

Sistem Operasi

Politeknik Telkom

Sistem Operasi

4.3.1 SemaphoreWilliam Stalling dalam bukunya, Operating Systems Internal Design and Principles, menyebutkan kemajuan besar yang pertama dalam menangani masalah-maslah yang timbul akibat proses-proses yang konkuren terjadi di tahun 1965 oleh Dijkstra. Dijkstra menekankan pada disain dari sistem operasi sebagai sekumpulan proses berurutan yang saling bekeja sama dan dengan pengembangan dari mekanisme-mekanisme kerja sama yang efisien dan dapat diandalkan. Mekanismemekanisme tersebut dapat digunakan oleh proses dari user jika prosesor dan sistem operasi dapat menyediakan mereka untuk digunakan. Prinsip dasarnya adalah: bawhwa dua atau lebih proses dapat bekerja sama dengan menggunakan sinyal-sinyal sederhana, sedemikian sehingga sebuah proses dapat dipaksa berhenti pada tahap tertentu hingga menerima sinyal tertentu. Kebutuhan untuk koordinasi kompleks apapun dapat dipenuhi dengan struktur sinyal-sinyal yang tepat. Untuk mengirimkan sinyal dibutuhkan variabel-variabel spesial yang disebut sebagai semaphore. Untuk mengirim sinyal melalui semaphore s sebuah proses memanggil rutin primitif semSignal(s) dan untuk menerima sinyal melalui semaphore s, sebuah proses memanggil rutin primitif semWait(s). Jika ternyata setelah memanggil semWait(s) sinyal yang ditunggu tidak tersedia maka proses tersebut akan ditahan hingga sinyal yang ditunggu dikirimkan. Semaphore dapat dilihat sebagai sebuah variabel bertipe integer yang kepadanya dapat dilakukan tiga operasi, yaitu: 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 prosesSistem Operasi 59

Politeknik Telkom

Sistem Operasi

yang diblok oleh operasi semWait akan dilepaskan dari status diblok. Selain ketiga operasi di atas tidak boleh ada lagi cara untuk memeriksa dan mengubah nilai semaphore. Bentuk dari semphore yang lebih ketat adalah binary semaphore atau mutex yang hanya mengizinkan nilai 0 dan 1 bagi semaphore. Operasi-operasinya adlah sebagai berikut: 1. Binary semaphore dapat diinisialisasikan dengan nilai 0 atau 1. 2. Operasi semWaitB memeriksa nilai semaphore. Jika nilainya satu maka nilainya diubah menjadi nol dan proses melanjutkan eksekusi. 3. Operasi semSignalB memeriksa apakah ada proses yang diblok pada semaphore ini. Juka ada maka proses yang telah diblok oleh operasi semWaitB akan dilepaskan dari status diblok dan nilai dari semaphore diubah menjadi satu. Bentuk semaphore yang pertama sering pula disebut sebagai counting semaphore atau general semaphore. Kebijakan yang digunakan untuk mengeluarkan proses dari antrian proses yang diblok pada semaphore dapat 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:

60

Sistem Operasi

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 danSistem Operasi 61

Politeknik Telkom

Sistem Operasi

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.

62

Sistem Operasi

Politeknik Telkom

Sistem Operasi

Proses orA

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

s=1

C

D

B

Semaphor e Proses orB s=0

Ready queue

A

C

D

Semaphor e Proses orD B s=-1

Ready queue

A

C

Semaphor e Proses orD s=0

Ready queue

B

A

C

Semaphor e Proses orC s=0

Ready queue

5 Blocked queue

D

B

A

Semaphor e Proses orD A C s=-3

Ready queue

6

B

Blocked queue 7 Blocked queueSistem Operasi

Semaphor e Proses orD B A s=-2

Ready queue

C

Semaphor e

Ready queue63

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

4.3.2 Message PassingMessage passing adalah sebuah teknik untuk melakukan sinkronisasi dan komunikasi antara proses-proses yang salin berinteraksi. Message passing dapat diimplementasikan64 Sistem Operasi

Politeknik Telkom

Sistem Operasi

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

Politeknik Telkom

Sistem Operasi

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 efektif untuk mengendalikan dua proses konkuren yang saling bekerja sama.

66

Sistem Operasi

Politeknik Telkom

Sistem Operasi

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

Politeknik Telkom

Sistem Operasi

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.