• Tidak ada hasil yang ditemukan

Sistem Operasi recent site activity (8)

N/A
N/A
Protected

Academic year: 2018

Membagikan "Sistem Operasi recent site activity (8)"

Copied!
279
0
0

Teks penuh

(1)

Sistem Operasi

(2)

Sistem Operasi

DAFTAR ISI

KATA PENGANTAR...III DAFTAR ISI...IV

1 TINJAU ULANG SISTEM KOMPUTER...1

1.1 PENDAHULUAN...2

1.2 ELEMEN DASAR KOMPUTER...2

1.3 PROSESOR...3

1.4 REGISTER...3

1.4.1 Register Data...3

1.4.2 Register Alamat...4

1.4.3 Register untuk Alamat dan Buffer...4

1.4.4 Register untuk Eksekusi Instruksi...4

1.4.5 Register untuk Informasi Status...4

1.5 MEMORI...4

1.6 MODUL I/O...5

1.7 INTERKONEKSI ANTAR KOMPONEN...7

1.8 EKSEKUSI INSTRUKSI...8

1.8.1 Mekanisme Eksekusi...8

1.8.2 Mode Eksekusi Instruksi...8

2 PENGENALAN SISTEM OPERASI...11

2.1 FUNGSI DAN SASARAN SISTEM OPERASI...12

2.2 SISTEM OPERASI SEBAGAI PENGELOLA SUMBER DAYA...12

2.3 SISTEM OPERASI SEBAGAI EXTENDED MACHINE/VIRTUAL MACHINE 13 2.4 SISTEM KOMPUTER DALAM BERAGAM SUDUT PANDANG...14

2.5 EVOLUSI SISTEM OPERASI...15

3 MANAJEMEN PROSES...21

3.1 PENGENALAN KONSEP PROSES...22

3.2 KONDISI / KEADAAN PROSES...23

(3)

Sistem Operasi

STRUKTUR KENDALI PROSES...29

3.3.1 Lokasi Proses...29

3.3.2 Atribut Proses...30

3.4 KENDALI PROSES...30

PERGANTIAN PROSES...31

3.4.1 Kapan Mengganti Eksekusi Proses...31

4.2.2 Dukungan Perangkat Keras untuk Mewujudkan Mutual Exclusion45

4.3 FASILITAS PERANGKAT LUNAK UNTUK MEWUJUDKAN MUTUAL EXCLUSION...49

5.3 KRITERIA PENJADWALAN...59

5.4 ALGORITMA PENJADWALAN...60

5.5 PENJADWALAN FAIR-SHARE...64

5.6 PENJADWALAN MULTIPROSESOR...65

(4)

Sistem Operasi

6 MANAJEMEN MEMORI...70

6.1 PENDAHULUAN...71

6.2 KEBUTUHAN MANAJEMEN MEMORI...71

6.3 PEMARTISIAN MEMORI...72

6.3.1 FIXED PARTITIONING...72

6.3.2 DYNAMIC PARTITIONING...72

7.3.3.2 Fitur Tambahan pada Komputer Modern...86

7.4 DIRECT MEMORY ACCESS (DMA)...87

7.10 SPOOLINGDAN RESERVASI PERANGKAT...97

7.11 ERROR HANDLING...98

7.12 STRUKTUR DATA KERNEL...99

7.13 PENANGANAN PERMINTAAN M/K...100

7.14 I/O STREAMS...102

(5)

Sistem Operasi

8.4 PEMILIHAN ALGORITMA PENJADWALAN DISK...119

9 MANAJEMEN FILE...122

9.9 STRUKTUR PENYIMPANAN...128

9.10 FILE...128

10.2.4 Direktori dengan Struktur Graf Asiklik...138

(6)

Sistem Operasi

11.4 PARTISIDAN MOUNTING...150

11.5 SISTEM BERKAS VIRTUAL...151

11.6 IMPLEMENTASI DIREKTORI...152

11.6.1 Algoritma Linear List...153

11.6.2 Algoritma Hash Table...153

11.6.3 Direktori pada MS-DOS...154

11.7 DIREKTORIPADA UNIX...154

12 MANAJEMEN PENYIMPAN SEKUNDER...157

14.2 KONSEP DASAR SISTEM TERSEBAR / TERDISTRIBUSI...177

(7)

Sistem Operasi

14.4 TIPE SISTEM TERSEBAR...179

14.4.1 Network Operating System...179

14.4.2 Sistem Operasi Tersebar...179

14.5 KARAKTERISTIK SISTEM TERSEBAR...180

14.6 ARSITEKTUR SISTEM TERDISTRIBUSI...183

14.7 CLIENT SERVER...186

16.8.7 Proteksi File per-objek dan per-user...215

(8)

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.

(9)

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

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

(10)

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. Interkoneksi antar Komponen

Interkoneksi dalam hal ini adalah struktur dan mekanisme yang diperlukan untuk menghubungkan antara ketiga komponen, yaitu: prosesor, 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 sederhana dan melaksanakan aksi-aksi ini. Prosesor terdiri dari tiga komponen yaitu:

- CU (Control unit), berfungsi mengendalikan operasi yang dilaksanakan.

- ALU (Arithmetic logic unit), berfungsi melaksanakan operasi aritmatika dan logika.

- Register, berfungsi sebagai memori yang sangat cepat yang biasanya digunakan sebagai tempat operan-operan suatu operasi yang akan dilaksanakan.

Operasi-operasi yang terdapat pada komputer terdiri dari tiga tipe, yaitu:

- Operasi aritmatika, seperti penambahan, pengurangan, dan sebagainya.

- Operasi logika, seperti OR, AND, X-OR dan sebagainya. - Operasi pengendalian, seperti operasi pencabangan,

(11)

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.

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

(12)

- PC (Program Counter), mencatat alamat memori kondisi pemroses ditambah informasi-informasi status lainnya

1.5 Memori Tabel 1-1Hirarki 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

Konsep ini diimplementasikan antara lain berupa:

(13)

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

(14)

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

(15)

DMA berfungsi membebaskan prosesor menunggui transfer data perangkat I/O. Saat prosesor ingin baca/tulis data, prosesor memerintahkan 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 memiliki 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 atau pembacaan data dari/ke memori dengan peralatan-peralatan.

(16)

START Fetch Instruksi Eksekusi Instruksi HALT

Fetch Cycle Execute Cycle

1.8 Eksekusi Instruksi

1.8.1 Mekanisme Eksekusi

Tahap Pemrosesan instruksi berisi 2 tahap yaitu:

a. Fetch, Prosesor membaca instruksi dari memori b. Execute, Prosesor mengeksekusi instruksi

Eksekusi program berisi pengulangan proses fetch dan execute. Eksekusi instruksi (Tahap Execute) dapat melibatkan beberapa operasi lebih dasar dan bergantung pada sifat instruksi itu. Proses satu instruksi disebut satu siklus instruksi (instruction cycle). Siklus Eksekusi instruksi dpat dilihat pada gambar 1-1

Gambar 1-1 Siklus Eksekusi instruksi

1.8.2 Mode Eksekusi Instruksi

Prosesor mempunyai beragam mode eksekusi, biasanya dikaitkan dengan program Sistem Operasi dan program pemakai. Instruksi-instruksi tertentu hanya dapat dieksekusi dalam suatu mode yang berkewenangan lebih tinggi.

(17)

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.

(18)

Soal Latihan

1. Sebutkan dan jelaskan bagian dari computer

2. Fungsi dari memori dan prosesor

3. Apa perbedaan dari memori dan register

4. Jelaskan Klasifikasi perangkat I/O berdasarkan aliran datanya

5. Sebutkan dan jelaskan tiga teknik cara berhubungan perangkat I/O

6. Fungsi dari DMA

7. Gambarkan bagian utama dari computer yang terdiri dari empat komponen yang sangat penting bagi computer

(19)

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.

(20)

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. daya sistem komputer dapat digunakan secara efisien. 3. Mampu berevolusi, yaitu sistem operasi harus

dibangun sehingga memungkinkan dan memudahkan pengembangan, pengujian dan pengajuan fungsi-fungsi sistem yang baru tanpa pada waktu yang sama mengganggu layanan yang dijalankan sistem komputer yang menjalankan sistem operasi itu.

2.2 Sistem Operasi sebagai Pengelola Sumber

Daya

Sistem komputer adalah sekumpulan sumber daya untuk memindah, menyimpan, dan memroses data, serta untuk mengendalikan fungsi-fungsi ini. Sistem operasi bertanggung-jawab mengelola sumber daya-sumber daya ini.

(21)

- program

(22)

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 Extended

Machine/Virtual Machine

Sistem operasi sebagai extended machine/virtual machine berfungsi sebagai berikut:

(23)

sekumpulan instruksi yang mudah dan nyaman yaitu

Stalling merinci layanan-layanan yang harus disediakan sistem operasi antara lain:

6. Deteksi dan memberi tanggapan terhadap kesalahan

7. Akunting

2.4 Sistem Komputer dalam Beragam Sudut

Pandang

Pandangan ke Pemakai sistem komputer dapat dikelompokkan menjadi tiga, yaitu:

- Pemakai awam (end user) dan administrator sistem - Pemrogram

- Perancang Sistem Operasi

(24)

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

2.5 Evolusi Sistem Operasi

(25)

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

- Generasi Ke-dua (1955 – 1965)

Terdapat Batch System, Job dikumpulkan dalam satu rangkaian kemudian diekskusi secara berurutan

Batch

Multiprogramming Time Sharing

Principal

objective Maximize Prosesor use

Minimize

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

(26)

memilih (switch) job lain untuk berproses walaupun proses sebelumnya belum selesai.

(a) uniprogramming

(b) multiprogramming dengan dua proses

(c) multiprogramming dengan tiga proses

(27)

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

(28)

Uniprogramming Multiprogramming

Prosesor use 22% 43%

Memory use 30% 67%

Disk use 33% 67%

Printer use 33% 67%

Elapsed time 30 min. 15 min.

Throughput rate 6 jobs/hr 12 jobs/hr

Mean response time 18 min. 10 min.

- Generasi Ke-empat (1980 – Sekarang) Terdapat :

Network O/S, Sistem operasi diperuntukkan jaringan komputer dimana pemakai menyadari keberadaan komputer yang terhubung.

(29)

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

(30)

3 Manajemen Proses

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

Tujuan

1. Mahasiswa mengetahui komponen-komponen yang membangun sebuah sistem komputer.

(31)

3.1 Pengenalan Konsep Proses

Proses dalam ruang lingkup sistem operasi dapat dikatakan sebagai sebuah aplikasi/program yang sedang dijalankan. Manajemen proses adalah salah satu dari fungsi utama dari sistem operasi terutama pada sistem operasi yang mendukung eksekusi banyak aplikasi pada waktu yang bersamaan. Sistem operasi yang baik harus dapat mengatur sumber daya komputer (yang terbatas) sedemikian rupa sehingga aplikasi-aplikasi yang sedang berjalan bersamaan tersebut mendapatkan sumber daya komputer yang mereka butuhkan agar dapat berfungsi dengan benar.

Sebuah proses yang sedang berjalan disimpan di dalam memori utama (RAM) dan dua bagian penting dari sebuah proses adalah:

1. Kode program atau instruksi-instruksi program yang harus dieksekusi oleh prosesor (yang dapat dibagi pakai bersama dengan proses lain) dan

2. Sekumpulan data yang berhubungan dengan kode program dari proses

Tetapi dua bagian di atas tidak memiliki cukup informasi yang dibutuhkan oleh sistem operasi untuk memanajemen banyak proses yang berjalan bersamaan. Informasi-informasi tersebut dibuat oleh sistem operasi dan disimpan dalam struktur data yang disebut PCB (Process Control Block). Isi dari PCB tersebut antara lain:

1. Identifier: tanda identitas yang membedakan suatu proses dengan proses lainnya.

2. State: kondisi dari proses. Jika proses sedang dieksekusi maka kondisi/statusnya adalah running. 3. Priority: prioritas eksekusi dibandingkan proses-proses

lainnya.

(32)

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. 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 dispatcheryang dieksekusi secara periodik oleh prosesor. Sebuah daftar yang berisi urutan instruksi yang dieksekusi untuk suatu proses yang dibuat untuk mengetahui kelakuan dari sebuah proses individual dikenal sebagai trace. Gambar-gambar 3-1 dan 3-2 dapat menjelaskan posisi proses dan dispatcher serta trace dari beberapa proses ketika dijalankan.

(33)

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

2. Ready: proses siap dieksekusi jika telah mendapat kesempatan

(34)

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 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. Proses ini dapat benar-benar baru atau dapat berasal dari proses lain yang telah ada melalui process spawning.

(35)

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

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 sebuah proses dalam kondisi ready dapat langsung diterminasi contohnya sebuah proses anak dapat diterminasai oleh proses induk kapan saja dan jika sebuah proses induk mati maka proses anak juga ikut diterminasi.

9. Blocked –> Exit: transisi ini termasuk dalam penjelasan kondisi ready -> exit.

Model dengan Suspended State

(36)

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.

(37)

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.

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

(38)

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

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

3.3 Deskripsi Proses

(39)

melaksanakan tugas tersebut sistem operasi memerlukan beberapa informasi mengenai proses-proses yang ada dan sumber daya komputer yang ada.

Struktur Kendali Sistem Operasi

Sistem operasi membuat dan memelihara beberapa tabel berisi informasi mengenai sumber daya komputer dan proses yang ada. Tabel-tabel tersebut antara lain:

1. Tabel memori

Tabel ini digunakan untuk mengelola memori utama dan memori virtual. Tabel ini berisi, antara lain:

a. Alokasi memori utama untuk proses b. Alokasi memori virtual untuk proses

c. Atribut-atribut yang digunakan untuk keperluan proteksi blok-blok memori yang digunakan pada memori utama

d. Informasi apa saja yang digunakan untuk mengelola memori virtual.

2. Tabel I/O

Tabel ini digunakan untuk mengelola

peralatan-peralatan dan saluran-saluran I/O. Ketika terjadi suatu operasi yang berhubungan dengan I/O sistem operasi harus mengetahui lokasi memori yang digunakan dalam proses perpindahan data.

3. Tabel file

Tabel ini digunakan untuk menyimpan informasi mengenai file-file yang sedang digunakan, seperti: lokasi mereka dalam memori, status, dan atribut mereka.

4. Tabel proses

Tabel ini digunakan untuk memanajemen proses-proses. Mulai dari bagian ini selebihnya dari bab ini akan membahas mengenai tabel proses yang perlu dibuat untuk memanajemen proses.

(40)

dan file dimanajamen untuk memenuhi kebutuhan proses sehingga perlu ada penunjuk bagi proses untuk mengakses mereka dan informasi mengenai kondisi lingkungan seperti 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

Setiap proses diberi sebuah bilangan penanda

(41)

2. Informasi kondisi prosesor

Nilai yang tersimpan dalam register prosesor akan disimpan oleh proses dalam PCB. Hal ini dilakukan agar ketika proses diinterupsi dari prosesor data yang sedang diproses dalam register tidak hilang tergantikan oleh data proses yang lain. Pada saat proses ini kembali dieksekusi isi regsiter akan dikembalikan ke register prosesor.

Informasi kendali proses ini adalah informasi tambahan yang dibutuhkan oleh sistem operasi untuk mengendalikan dan mengkoordinasi beberapa proses yang aktif.

3.4 Kendali Proses

Mode Eksekusi

(42)

memori dan file-file yang dibutuhkan oleh proses tersebut. Langkah-langkah itu antara lain:

1. Memberikan identitas unik kepada proses baru tersebut

2. Mengalokasikan ruangan memori untuk proses tersebut

3. Menginisialisasi proses control block

4. Mengkonfigurasi tautan-tautan tertentu terhadap proses seperti penempatan pada antrian, dsb. 5. Membuat atau mengembangkan struktur data yang

lain seperti membuat file audit terhadap proses agar dapat digunakan untuk penagihan atau pengukuran kinerja

Pergantian Proses

Pergantian eksekusi satu proses ke proses lainnya tampaknya merupakan sesuatu yang tidak rumit. Pada waktu tertentu proses yang sedang dieksekusi mendapat interupsi dan sistem operasi memberikan status running pada proses lain dan mengalihkan kendali kepada proses tersebut. Tetapi ada beberapa maslaah disain yang ditimbulkan, Pertama kejadian apa yang memicu ternjadinya pergantian proses. Maslaah lainnya yang perlu diperhatikan adalah perbedaan antara pergantian mode dan pergantian proses. Terakhir adalah apa yang harus dilakukan oleh sistem operasi terhadap berbagai struktur data yang ada untuk menyelesaikan pergantian proses.

3.4.1 Kapan Mengganti Eksekusi Proses

Ada beberapa hal yang dapat menjadi pemicu terjadinya pergantian eksekusi proses di prosesor, di antaranya:

1. Interrupt: disebabkan oleh suatu kejadian yg berada di luar lingkup eksekusi instruksi dan digunakan untuk memberikan reaksi terhadap kejadian luar secara asinkron.

(43)

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

(44)

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 tahap-tahap sebagai berikut:

1. Simpan konteks dari prosesor termasuk program counter dan register lainnya

2. Perbarui PCB dari proses yang dalam kondisi running. 3. Pindahkan PCB proses ke antrian yang tepat (Ready,

Blocked on Event, atau Ready/Suspend).

4. Pilih proses lain untuk eksekusi dan perbarui PCB proses yang akan dieksekusi termasuk kondisinya menjadi running.

5. Perbarui struktur data yang digunakan untuk manajemen memori

6. Kembalikan konteks prosesor ke bagian terakhir ketika proses dipindahkan dari kondisi running dengan memasukkan nilai-nilai program counter dan register lainnya

Proses dan Thread

Ada dua hal mengenai proses yang menjadi fokus sistem, yaitu:

(45)

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

(46)

sekaligus multithread di mana ada beberapa proses yang dapat (seakan-akan) berjalan bersamaan dan setiap proses dapat terbagi menjadi beberapa thread.

Pada sebuah lingkungan multithread sebuah proses didefinisikan sebagai satuan alokasi sumber daya dan satuan pengamanan. Perbandingan antara singlethread process dan proses dengan multithreaded process dapat dilihat pada gambar.

Semua thread dalam sebuah proses berada dalam alamat ruang (address space) yang sama dan memiliki hak yang sama untuk mengakses sumber daya proses

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

(47)

intervensi dari kernel

Contoh penggunaan multithreading pada sistem single-user multiprocessing:

1. Pekerjaan foreground dan background

Input dapat dilakukan melalui thread foreground dan pemrosesan input dilakukan dengan thread background sehingga aplikasi menjadi lebih responsif 2. Pemrosesan asinkron

Tugas-tugas asinkron dapat diimplementasikan sebagai thread. Contoh: sebuah thread yang bertugas melakukan penulisan data dari RAM ke storage sebagai background proses

3. Mempercepat eksekusi

Proses dengan multithread dapat menghitung sekumpulan data sembari mengambil data dari peralatan dan pada lingkungan multi processor beberapa thread dapat dijalankan berbarengan pada processor yang berbeda. Selain itu membuat program yang menggunakan thread terpisah untuk melakukan Remote Procedure Call akan meningkatkan kecepatan program secara substansial

4. Struktur program modular

Mempermudah implementasi dan desain program dengan berbagai input dan output berbeda

Empat operasi terhadap thread berdasarkan status thread:

1. Spawn

Pembuatan proses meliputi pembuatan thread proses tersebut dan thread tersebut dapat pula membuat thread baru di dalam thread yang sama.

2. Block

Ketika thread dihentikan sementara karena menunggu suatu peristiwa (event) processor akan mengeksekusi thread lain yang siap dalam antrian.

3. Unblock

Thread yang telah mendapatkan event yang diperlukan untuk melanjutkan tugasnya akan dikembalikan ke dalam antrian thread yang siap.

(48)

Register dan stack dari thread akan didealokasikan begitu thread selesai

Pada processor tunggal, multiprogramming memungkinkan eksekusi secara bergantian beberapa thread ketika suatu thread menunggu event atau jatah waktu eksekusinya telah habis.

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

3.4.4 User Level Thread

(49)

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.

(50)

Jacketing adalah cara untuk mengakali blocking saat system call yaitu dengan mengubah blocking system call menjadi non-blockingsystem 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 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

(51)

dipetakan pada beberapa kernel-level thread. Jumlah kernel-level 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 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.

(52)

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 dikendalikan lewat perubahan nilai pada register program counter yang berupa penunjuk ke suatu lokasi yang berisi instruksi dari proses.

(53)

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.

(54)

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

(55)

4.1 Pendahuluan

Fitur-fitur utama dari sistem operasi modern yang paling menonjol adalah kemampuan sistem operasi untuk melakukan:

1. Multiprogramming: kemampuan untuk memanajemen banyak proses dengan menggunakan satu prosesor, 2. Multiprocessing: kemampuan untuk memanajemen

banyak proses dengan menggunakan banyak prosesor, 3. Distributed Processing (pemrosesan tersebar): kemampuan untuk memanajemen banyak proses yang dieksekusi pada banyak komputer yang tersebar dibeberapa lokasi.

Hal mendasar yang perlu diperhatikan ketika menangani banyak proses yang berjalan bersama-sama (konkurensi) adalah masalah-masalah seperti: bagaimana komunikasi antar proses-proses tersebut, membagi pakai dan terjadinya kompetisi untuk sumber daya komputer, sinkronisasi aktivitas proses-proses, dan alokasi prosesor.

4.2 Prinsip-prinsip Konkurensi

Pada komputer yang menjalankan multiprogramming proses-proses dijalankan bergantian dengan cepat oleh proses-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.

(56)

akan ditolak hingga proses pertama selesai mengakses 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. setiap proses dari interferensi yang tidak dimaksudkan oleh proses lain.

(57)

terhadap kecepatan proses konkuren yang lain. Bab ini akan difokuskan pada poin ke-empat ini.

Apa maksud dari pernyataan fungsi dan output dari sebuah proses harus independen terhadap kecepatan eksekusi relatif terhadap kecepatan proses konkuren yang lain? Fungsi sebuah proses dan output yang dihasilkannya sebisa mungkin dijaga untuk tidak terpengaruh oleh kecepatan eksekusi proses tersebut yang dalam sebuah sistem multiproses menjadi tidak tetap bergantung proses-proses lainnya. Proses-proses dalam sistem multiproses dapat saling independen tetapi lebih sering melakukan interaksi. Ada beberapa jenis interaksi yang terjadi antar proses berdasarkan derajat pengetahuan proses-proses terhadap adanya proses lainnya:

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.

(58)

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 inilah kedua proses tidak dapat melanjutkan proses eksekusi dan deadlock terjadi.

(59)

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

(60)

/* masuk ke non-critical section */; }

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

4.2.4 Instruksi-instruksi Mesin Khusus

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

1. Instruksi test and set

2. Instruksi exchange

4.2.5 Instruksi Test and Set

(61)
(62)

{

Instruksi Test and Set Instruksi Exchange Tabel 4-2 Mutual exclusion dengan dukungan perangkat

keras

4.2.6 Instruksi Exchange

Instruksi exchange dapat didefinisikan seperti di bawah ini: void exchange (int register, int memory) 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

(63)

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 mekanisme-mekanisme kerja sama yang efisien dan dapat diandalkan. Mekanisme-mekanisme tersebut dapat digunakan oleh proses dari user jika prosesor dan sistem operasi dapat menyediakan mereka untuk digunakan.

(64)

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.

2. Operasi semWaitB memeriksa nilai semaphore. Jika nilainya satu maka nilainya diubah menjadi nol dan proses melanjutkan eksekusi.

(65)

Bentuk semaphore yang pertama sering pula disebut sebagai counting semaphore atau general semaphore.

Kebijakan yang digunakan untuk mengeluarkan proses dari antrian proses yang diblok pada semaphore dapat bermacam-macam bentuknya. Bentuk yang paling adil adalah First In First Out (FIFO). Proses yang paling lama diblok adalah yang keluar paling awal. Semaphore yang mendefinisikan kebijakan melepas proses dari antrian dikenal sebagai strong semaphore sedangkan yang tidak mendefinisikannya disebut sebagai weak semaphore.

(66)

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. yang baru instruksi semSignal dipanggil oleh proses D yang memungkinkan proses B yang diblok untuk masuk ke kondisi ready di antrian ready.

4. Proses D yang telah selesai langsung bergabung pada antrian ready dan proses C dieksekusi.

5. Proses C yang memanggil instruksi semWait kemudian diblok dan masuk ke antrian blocked dan nilai semaphore menjadi -1 (tidak tampak di gambar). 6. Selanjutnya proses A dan B juga mengalami hal yang

sama dengan proses C. Pada tahap ini akhirnya nilai semaphore menjadi -3.

7. Proses D kembali dijalankan, mengeluarkan hasil baru dan memanggil instruksi semSignal sehingga nilai semaphore menjadi -2 dan proses C keluar dari antrian blocked masuk ke antrian ready. Ketika dieksekusi proses C akan mendapatkan hasil yang dikeluarkan oleh proses D. Pada putaran berikutanya proses D akan melepaskan proses A dan B dari antrian blocked dan masing-masing akan mendapatkan hasil dari proses D seperti halnya proses C.

(67)
(68)

Semaphore

(69)

Monitor diajukan sebagai solusi dari masalah yang dimiliki semaphore. Monitor sendiri adalah sebuah modul program yang memiliki satu atau beberapa prosedur, urutan inisialisasi, dan data lokal. Monitor memiliki karakteristik sebagai berikut:

1. Data lokal hanya bisa diakses oleh prosedur yang ada di dalam monitor.

2. Sebuah proses memasuki monitor dengan memanggil salah satu prosedur di dalam monitor tersebut.

3. Pada satu saat hanya ada satu proses yang bisa menggunakan prosedur di dalam monitor. Proses lain yang hendak mengakses pada waktu yang bersamaan harus menunggu proses pertama selesai.

Untuk melindungi struktur data yang dibagi pakai bersama data tersebut dapat diletakkan di dalam monitor.

Untuk dapat digunakan dalam lingkungan yang konkuren monitor harus menyediakan fasilitas sinkronisasi bagi proses-proses yang menggunakannya. Sebagai contoh jika ada sebuah proses yang memanggil prosedur dalam monitor dan ketika berada di dalamnya harus diblok untuk menunggu

Monitor sendiri memiliki beberapa alternative implementasi seperti:

1. Monitor dengan signal

2. Monitor dengan notify dan broadcast

4.3.2 Message Passing

(70)

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

Gambar

Gambar 2-2 Fungsi sistem operasi sebagai pengatur sumber
Gambar 2-3 Lapisan-lapisan dari sebuah computer
Gambar 2-4 Perbandingan eksekusi perintah antara sistemuniprogramming dengan multiprogramming
Gambar 2-5 Perbandingan utilisasi sumber daya komputerantara sistem uniprogramming dan multiprogramming
+7

Referensi

Dokumen terkait

Penelitian ini dilatarbelakangi oleh rendahnya hasil belajar matematika siswa, hal ini terjadi karena selama ini proses pelaksanaan belajar mengajar matematika di

mashlahah dari sedekah tidak hanya bisa dirasakan oleh individu. Mashlahah bisa jadi dirasakan oleh konsumen yang lain terutama orang miskin. Selama orang miskin masih

mengembangkan self-esteem kepada remaja usia 15-17 tahun baik yang. tinggal di panti asuhan ataupun di luar panti asuhan dengan

attractive, the visual style that used is modernist cartoon style that popular in animation and.. illustrations of

Dengan studi kasus unit rumah sewa yang terdiri dari pemilik akomo- dasi dan si penyewa, riset ini difokuskan pada interaksi antara kedua pihak terse- but sehingga dapat

Sebuah skripsi yang diajukan untuk memenuhi salah satu syarat memperoleh gelar Sarjana Psikologi di Departemen Psikologi Fakultas Ilmu Pendidikan. Universitas

Salah satu teknik yang dilakukan untuk menerapkan konsep bangunan hijau adalah dengan meman- faatkan tanaman untuk penghijauan pada fasad bangunan, yang disebut den- gan

Ketika membaca tanda pada benda keseharian dan cara berpakaian mas- yarakat adat Kasepuhan Ciptagelar kemudian direlasikan dengan penggu- nanya dapat dilihat bahwa telah terjadi