• Tidak ada hasil yang ditemukan

1 Tinjau Ulang Sistem Komputer

N/A
N/A
Protected

Academic year: 2021

Membagikan "1 Tinjau Ulang Sistem Komputer"

Copied!
227
0
0

Teks penuh

(1)

1

Tinjau Ulang Sistem Komputer

Overview

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

Tujuan

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

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

1.1

Pendahuluan

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

(2)

1.2

Elemen Dasar Komputer

Pada level atas, sebuah komputer terdiri dari empat komponen. Komponen-komponen ini saling berinteraksi untuk menghasilkan fungsi dari tujuan sistem komputer yaitu eksekusi program atau komputasi. Keempat komponen atau elemen struktur utama yaitu:

1. Prosesor

Prosesor berfungsi mengendalikan operasi komputer dan melakukan fungsi pemrosesan data. Prosesor terdiri dari:

a. Aritmetic Logic Unit (ALU), bagian untuk komputasi yang berhubungan dengan aritmatika dan logika

b. Control Unit (CU), sebagai pengendali utama operasi yang dilaksanakan.

Register, berfungsi sebagai memori yang sangat cepat yang biasanya digunakan sebagai tempat operan-operan suatu operasi yang akan dilaksanakan. Register membantu pelaksanan operasi yang dilakukan oleh prosesor.

2. Memori Utama

Memori berfungsi menyimpan data dan program. Memori utama biasanya volatile, yaitu tidak dapat mempertahankan data dan program yang disimpan begitu sumber daya energi listrik dihentikan 3. Modul I/O

Modul I/O atau perangkat masukan/keluaran berfungsi memindahkan data antara komputer dan lingkungan eksternalnya. Lingkungan eksternal dapat diantarmuka/interface oleh beragam peralatan eksternal seperti: media penyimpan sekunder, peralatan komunikasi dan sebagainya.

4. Intekoneksi antar Komponen

Interkoneksi dalam hal ini adalah struktur dan mekanisme yang diperlukan untuk menghubungkan antara ketiga komponen, yaitu: proses, memori utama dan peralatan input-output.

1.3

Prosesor

Prosesor berfungsi mengendalikan operasi komputer dan melakukan pemrosesan data. Prosesor mengambil instruksi yang dikodekan secara biner dari main memori, mendekode instruksi menjadi aksi-aksi sederhana dan melaksanakan aksi-aksi ini. Prosesor terdiri dari tiga komponen yaitu:

- CU (Control unit), berfungsi mengendalikan operasi yang

dilaksanakan.

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

(3)

- Register, berfungsi sebagai memori yang sangat cepat yang biasanya

digunakan sebagai tempat operan-operan suatu operasi yang akan dilaksanakan.

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

- Operasi aritmatika, seperti penambahan, pengurangan, dan

sebagainya.

- Operasi logika, seperti OR, AND, X-OR dan sebagainya.

Operasi pengendalian, seperti operasi pencabangan, loncat, dan sebagainya

1.4

Register

Di dalam prosesor terdapat sekumpulan register yang berfungsi sebagai memori yang sangat cepat dan kecil kapasitasnya. Register-register dikategorikan menjadi dua, yaitu:

1. Register yang terlihat pemakai, terdiri dari dua jenis yaitu: Register data dan register alamat.

Register untuk kendali dan status terdiri dari, Register untuk alamat dan buffer, register untuk eksekusi instruksi, dan register untuk informasi status. 1.4.1 Register Data

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

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

(4)

1.4.4

Registeruntuk

Eksekusi Instruksi

Register untuk Eksekusi Instruksi terdiri dari:

- PC (Program Counter), mencatat alamat memori dimana instruksi

yang terdapat di dalamnya akan dieksekusi.

- IR (instruction Register), menampung instruksi yang akan

dilaksanakan.

1.4.5

Register

untuk Informasi Status

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

1.5

Memori

Memori berfungsi untuk menyimpan data dan program. Berdasarkan kecepatan aksesnya dapat dibuat hirarki memori, sebagai berikut:

(5)

Tercepat Register Chace Memory Main Memory Disk Chace Magnetic Disk

Terlambat Magnetic tape Optical disk 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 tersedia di memori pada hirarki berkecepatan akses lebih tinggi. Kecepatan eksekusi ini akan meningkatkan kinerja sistem. Untuk itu terdapat konsep memori dua level, yaitu ditampung dulu sementara di memori pada hirarki lebih tinggi.

Konsep ini diimplementasikan antara lain berupa:

- Chace memory, memori berkapasitas terbatas, berkecepatan tinggi

yang lebih mahal daripada memori utama. Chace memori ada di antara memori utama dan register pemroses, berfungsi agar pemroses tidak langsung mengacu memori utama agar kinerja dapat ditingkatkan.

Buffering, bagian memori utama yang dialokasikan untuk menampung data yang akan ditransfer dari atau ke penyimpan sekunder. Buffering dapat mengurangi frekuensi pengaksesan ke perangkat penyimpan sekunder sehingga meningkatkan kinerja sistem

1.6

Modul I/O

Klasifikasi perangkat I/O berdasarkan aliran datanya dapat dibagi dua, antara lain:

1. Block Oriented Device, peralatan ini menyimpan informasi sebagai blok-blok berukuran tetap. Ciri utama peralatan ini adalah dimungkinkan membaca atau menulis blok-blok secara indenpenden dengan cara direct access. Contoh peralatan antara lain: disk, optical disk, tape dan sebagainya.

2. Character Stream Oriented Device, peralatan ini mengantarkan atau menerima aliran karakter tanpa peduli dengan suatu struktur blok. Contoh peralatan ini antara lain: terminal, line printer, interface jaringan, dan lain-lain.

(6)

1. Programmed I/O

Pada saat perangkat I/O menangani permintaan perangkat menset bit status pada register status perangkat. Perangkat tidak memberitahu ke prosesor bila tugas telah selesai. Prosesor harus selalu melakukan cek secara periodik terhadap register status perangkat dan melakukan tindakan-tindakan berdasarkan status yang dibaca.

2. Interrupt Driven I/O

Teknik I/O dikendalikan instruksi mempunyai mekanisme kerja perangkat I/O sebagai berikut:

- Prosesor memberi instruksi ke perangkat I/O lalu melanjutkan kerja

yang lainnya.

- Perangkat I/O akan menginstruksi untuk minta layanan saat

perangkat telah siap transfer data dengan prosesor

- Saat menerima instruksi dari hardware (Hardware yang siap

melakukan transfer data), prosesor kemudian segera eksekusi transfer data.

Dengan ini prosesor tidak disibukkan menunggui dan menjaga perangkat I/O untuk memeriksa status perangkat.

3. Direct Memory Access

Interrupt Driven I/O lebih efisien dari programmed I/O, tapi masih memerlukan intervensi aktif prosesor untuk transfer data antara memori dan buffer I/O. I/O dikendalikan interupsi (Interrupt Driven I/O) mempunyai dua kelemahan yaitu:

- Rate Transfer I/O dibatasi kecepatan menguji dan melayanan operasi

peralatan.

- Prosesor terikat ketat dalam mengelola transfer I/O, sejumlah

instruksi harus dieksekusi untuk tiap transfer I/O.

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

(7)

DMA berfungsi membebaskan prosesor menunggui transfer data perangkat I/O. Saat prosesor ingin baca/tulis data, prosesor memrintahkan DMA dengan mengirim informasi-informasi berikut:

- Read/write

- Alamat perangkat I/O

- Awal lokasi memori yang ditulis/dibaca - Jumlah byte yang ditulis/dibaca

Setelah mengirim informasi ke DMA, prosesor dapat melakukan kerja lain. Prosesor mendelegasikan operasi I/O ke DMA. DMA mentransfer seluruh data yang diminta secara langsung dari memori tanpa melewati prosesor. Ketika transfer data selesai, DMA mengirim sinyal interupsi ke prosesor. Prosesor hanya dilibatkan pada awal dan akhir tranfer data perangkat I/O.

Operasi transfer anatara perangkat dan memori utama dilakukan sepenuhnya oleh DMA. DMA yang menangani akses disk, dilakukan oleh DMA controller yang lepas dari prosesor dan hanya melakukan interupsi bila operasi telah diselesaikan.

1.7

Interkoneksi antar Komponen

Interkoneksi antar komponen disebut bus. Bus terdiri dari 3 macam, yaitu:

- Address Bus, Bus yag mengirim alamat lokasi memori atau port

yang ingin ditulis/dibaca. Jumlah lokasi memori yang dapat dialamati CPU ditentukan oleh jumlah jalur alamat.Jika CPU memilki N jalur alamat maka dapat secara langsung mengalamati 2N lokasi memori.

- Data Bus, Bus data ini Bidirectional berarti dapat baca dan kirim

dari/ke memori atau port. Bus data berhubungan dengan transfer ata pembacaan data dari/ke memori dengan peralatan-peralatan.

Control Bus, Bus yang digunakan CPU dengan dikirimi sinyal untuk memrintahkan memori atau port I/O.

(8)

1.8

Eksekusi Instruksi

1.8.1 Mekanisme Eksekusi

Tahap Pemrosesan instruksi berisi 2 tahap yaitu:

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

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

Gambar 1-1 Siklus Eksekusi instruksi 1.8.2 Mode Eksekusi Instruksi

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

Mode dengan kewenangan tinggi disebut system mode, control mode, supervisor mode atau kernel mode, karena biasanya rutin-rutin sistem atau kendali atau kernel dieksekusi dengan mode ini

START Fetch

Insruksi

Eksekusi Instruksi

HALT

(9)

Rangkuman

Sebuah sistem operasi memberikan segala layanan yang mengeksploitasi sumberdaya yang dibutuhkan satu atau lebih proses kepada pengguna. Sumberdaya tersebut berkaitan erat dengan sistem komputer. Hal ini dikarenakan sistem operasi mengatur komponen-komponen pendukung sistem komputer seperti memori, I/O modul ataupun I/O device dan komponen pembentuk lainnya sehingga terselenggaranya ekseskusi proses dan menyembunyikan kerumitan pengaturan perangkat keras dari pengguna dan pembuat aplikasi.

sebuah komputer terdiri dari empat komponen. Komponen-komponen ini saling berinteraksi untuk menghasilkan fungsi dari tujuan sistem komputer yaitu eksekusi program atau komputasi. Keempat komponen atau elemen struktur utama yaitu prosesor, memori, modul I/O dan interkoneksi antar computer.

Prosesor berfungsi mengendalikan operasi komputer dan melakukan pemrosesan data. Di dalam prosesor terdapat sekumpulan register yang berfungsi sebagai memori yang sangat cepat dan kecil kapasitasnya. Memori berfungsi untuk menyimpan data dan program. Maka dapat disimpulkan bahwa computer tidak dapat berdiri sendiri tetapi terdapat suatu bagian yang saling bergantung dan saling bekerja sama sehingga komputer akan berjalan dengan sebenarnya

(10)

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

(11)

2

Pengenalan Sistem Operasi

Overview

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

Tujuan

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

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

(12)

2.1

Fungsi dan Sasaran Sistem Operasi

Sistem operasi adalah program yang mengendalikan eksekusi program aplikasi dan bertindak sebagai antarmuka antara pemakai dan perangkat keras komputer. Fungsi utama sistem operasi adalah:

1. Sistem operasi sebagai pengelola sumber daya (resources manager). 2. Sistem operasi sebagai extended machine/virtual machine.

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

1. Kenyamanan, yaitu sistem operasi harus membuat komputer menjadi lebih nyaman saat digunakan pemakai.

2. Efisiensi, yaitu sistem operasi mejadikan sumber daya sistem komputer dapat digunakan secara efisien.

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

2.2

Sistem Operasi sebagai Pengelola Sumber Daya

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

Sumber daya pada sistem komputer antara lain: 1. Perangkat keras - prosesor - penyimpan primer - penyimpan sekunder - peralatan masukan/keluaran 2. Perangkat lunak - data - proses

(13)

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

Gambar 2-1 Fungsi sistem operasi sebagai pengatur sumber daya komputer

2.3

Sistem Operasi sebagai Extended Machine/Virtual

Machine

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

- Memberi pemakai suatu abstraksi mesin tingkat tinggi sederhana dan

menyembunyikan kerumitan perangkat keras. Sistem operasi menyediakan system call (API = Application programming interface) yang merupakan abstraksi tingkat tinggi mengenai mesin untuk pemrograman. Berfungsi menghindarkan kompleksitas pemrograman dengan memberikan sekumpulan instruksi yang mudah dan nyaman yaitu system calls.

- Basis untuk program lain.

Program aplikasi dijalankan di atas sistem operasi. Program-program tersebut dalam melakukan tugasnya mengendalikan dan memanfaatkan sumber daya sistem komputer adalah dengan

(14)

meminta layanan sistem operasi untuk mengendalikan sumber daya untuk aplikasi itu agar pemanfaatan sumber daya komputer benar dan efisien.

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

1. Pembuatan program 2. Eksekusi program

3. Pengaksesan perangkat masukan/keluaran 4. Pengaksesan terkendali terhadap berkas 5. Pengaksesan sistem

6. Deteksi dan memberi tanggapan terhadap kesalahan 7. Akunting

2.4

Sistem Komputer dalam Beragam Sudut Pandang

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

- Pemakai awan (end user) dan administrator sistem - Pemrogram.

- Perancang Sistem Operasi

Pemakai awam menggunakan suatu aplikasi di sistem komputer, biasanya tidak berkepentingan dengan arsitektur komputer. Pemakai memandang sistem komputer dalam bentuk aplikasi yang dihadapinya. Aplikasi tersebut dikembangkan oleh pemrogram aplikasi.Administrator bertugas agar sistem berfungsi secara benar dan optimal.

Pemrogram aplikasi yang mengembangkan aplikasi dengan menggunakan kumpulan instruksi mesin secara langsung, maka pemrogram bertanggung jawab sepenuhnya mengendalikan perangkat keras komputer. Tugas ini sangat amat kompleks. Untuk mempermudah pemrogram, sekumpulan fasilitas-fasilitas disediakan sistem operasi. Pemrogram menggunakan fasilitas-fasilitas-fasilitas-fasilitas ini dalam mengembangkan aplikasi, mengelola berkas, dan mengendalikan masukan/keluaran, tak perlu menulis atau membuatnya sendiri untuk aplikasi-aplikasi yang dibuatnya.

(15)

Gambar 2-2 Lapisan-lapisan dari sebuah computer

Perancang sistem operasi harus membuat sistem operasi yang dapat mempermudah dan menyamankan terutama untuk pemrogram aplikasi membuat aplikasi-aplikasi.

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

2.5

Evolusi Sistem Operasi

Sistem Operasi telah berevolusi sejak pertama kali komputer diciptakan. Perkembangan sistem komputer melibatkan perkembangan sistem hardware dan software. Perkembangan sistem operasi dapat dijabarkan sebagai berikut:

- Generasi Pertama (1945 – 1955)

Awal dari pengembangan sistem komputasi elektronik, menggantikan ide-ide mesin-mesin komputaasi mekanis.

- Generasi Ke-dua (1955 – 1965)

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

(16)

Principal objective Maximize Prosesor use Minimize response time

Source of

directives to operating system

Job control language commands provided with the job Commands entered at the terminal - Generasi Ke-tiga (1965 – 1980) Terdapat :

Sistem multiprogramming, Saat satu job menunggu operasi input/output selesai job lain dapat menggunakan prosesor

Spooling, membuat periperal dapat diakses secara simultan, yaitu dengan cara menyediakan beberapa partisi memori. Saat terdapat permintaan layanan periperal, langsung diterima dan data disimpan lebih dulu di memori yang disediakan berupa antrian, kemudian dijadwalkan agar secara nyata dilayani oleh periperal

Time Sharing, varian dari sistem multiprogramming, di mana tiap pemakai mempunyai satu terminal on-line dengan prosesor hanya memberi layanan pada pemakai yang aktif.

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

(a) uniprogramming

(17)

(c) multiprogramming dengan tiga proses

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

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

(18)

Contoh perbandingan antar-proses dan utilisasi sumber daya komputer dengan beberapa job dapat dilihat pada tabel di bawah ini:

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

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

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

Uniprogramming Multiprogramming

Prosesor use 22% 43%

Memory use 30% 67%

Disk use 33% 67%

Printer use 33% 67%

Elapsed time 30 min. 15 min.

Throughput rate 6 jobs/hr 12 jobs/hr

Mean response time 18 min. 10 min.

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

(19)

Rangkuman

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

Soal Latihan

1. Sebutkan layanan system operasi yang harus ada menurut Stalling 2. Pandangan ke Pemakai sistem komputer dapat dikelompokkan

menjadi tiga. Sebutkan

3. Sebutkan sumber daya pada sistem komputer dan jelaskan

4. Jelaskan fungsi dari Sistem operasi sebagai extended machine/virtual machine

(20)

3

Proses dan

Thread

Overview

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

Tujuan

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

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

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

(21)

dari fungsi utama dari sistem operasi terutama pada sistem operasi yang mendukung eksekusi banyak aplikasi pada waktu yang bersamaan. Sistem operasi yang baik harus dapat mengatur sumber daya komputer (yang terbatas) sedemikian rupa sehingga aplikasi-aplikasi yang sedang berjalan bersamaan tersebut mendapatkan sumber daya komputer yang mereka butuhkan agar dapat berfungsi dengan benar.

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

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

2. Sekumpulan data yang berhubungan dengan kode program dari proses

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

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

2. State: kondisi dari proses. Jika proses sedang dieksekusi maka kondisi/statusnya adalah running.

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

yang akan dieksekusi.

5. Memory pointer: pointer menuju kode program (instruksi program), data yang berhubungan dengan proses, dan blok memori yang dibagipakai bersama proses-proses lain.

6. Contex data: adalah data yang ada di register prosesor ketika proses dieksekusi.

7. I/O status information: informasi tentang permintaan I/O, peralatan I/O, file, dll.

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

(22)

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.

Untuk mengatur eksekusi dari proses termasuk mengatur pergantian eksekusi antar proses dan mengalokasikan sumber daya komputer yang dibutuhkan proses yang akan dieksekusi sistem operasi perlu mengetahui kondisi yang sedang dialami sebuah proses dan menentukan tindakan apa yang harus diambil terhadap proses tersebut pada kondisi tertentu.

Ada beberapa model dari kondisi-kondisi yang dialami sebuah proses dimulai dari model yang sederhana yang terdiri dari hanya dua kondisi hingga berkembang menjadi model yang memiliki lebih dari lima kondisi.

Model Dua Kondisi

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

Model yang ke-dua adalah model dengan 5 kondisi (5 state). Model ini merupakan perkembangan dari model yang pertama untuk menangani kondisi di mana sebuah proses mungkin saja tidak selalu siap untuk dieksekusi karena harus menunggu sebuah operasi I/O selesai dilaksanakan. Pada model ini

(23)

kondisi not running dipecah menjadi ready dan blocked. Berikut ini adalah daftar 5 kondisi yang ada pada model 5 kondisi:

1. Running: proses sedang dieksekusi

2. Ready: proses siap dieksekusi jika telah mendapat kesempatan 3. Blocked: proses tidak dapat dieksekusi hingga suatu event terjadi

atau menunggu suatu proses I/O selesai

4. New: proses baru saja selesai dibuat. Pada kondisi ini biasanya baru process control block sajayang 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.

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.

(24)

3. Ready –> Running: proses dipindahkan dari kondisi ready ke kondisi running oleh rutin penjadwalan atau dispatcher dan dieksekusi oleh prosesor.

4. Running –> Ready: alasan paling umum untuk memindahkan suatu proses dari running ke kondisi ready adalah karena waktu eksekusi untuk proses tersebut telah habis atau diinterupsi untuk digantikan oleh proses dengan prioritas yang lebih tinggi.

5. Running –> Exit: proses dihentikan eksekusinya dan diterminasi dikarenakan telah selesai atau karena alasan lainnya seperti terjadinya kesalahan atau pembatalan eksekusi oleh pengguna. 6. Running –> Blocked: proses diblok apabila proses tersebut telah

meminta sesuatu yang tidak dapat langsung dipenuhi oleh sistem operasi, contohnya: operasi I/O

7. Blocked –> Ready: proses dipindahkan dari blocked ke kondisi ready hanya jika kejadian (event) tertentu yang ditunggu telah terjadi seperti permintaan operasi I/O oleh proses tersebut telah selesai dilaksanakan.

8. Ready –> Exit: transisi ini tidak digambarkan pada model 5 kondisi untuk menjaga kejelasan tetapi sebuat proses dalam kondisi ready dapat langsung diterminasi contohnya sebuah proses anak dapat diterminasai oleh proses induk kapan saja dan jika sebuah proses induk mati maka proses anak juga ikut diterminasi.

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

Model dengan Suspended State

Model 2 kondisi dan 5 kondisi sebelumnya berlaku pada sistem operasi yang tidak memerlukan swapping. Swapping berlaku pada sistem operasi yang 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

(25)

memori virtual. Pemindahan dari memori virtual ke memori utama dan sebaliknya inilah yang disebut sebagai swapping.

Untuk mengimplementasikan konsep memori virtual tersebut perlu dibuat suatu kondisi baru yaitu kondisi ketika proses berada pada dalam memori virtual yaitu kondisi suspended. Proses yang berada dalam kondisi blocked dapat dipindahkan dari memori utama ke sebuah antrian proses di memori virtual untuk menyediakan ruang kosong bagi proses lain di memori utama. Gambar 3-4 memperlihatkan dua model yang mengakomodir kondisi suspended.

Pada model pertama diperlihatkan hanya ada satu kondisi suspend seperti yang telah dijelaskan di atas. Mengingat bahwa kecepatan eksekusi prosesor jauh melebihi waktu yang dibutuhkan untuk menyelesaikan operasi I/O maka akan ada kemungkinan di mana prosesor akan banyak menganggur dikarenakan kebanyakan proses berada dalam keadaan suspended menunggu operasi I/O yang belum selesai. Mengembalikan proses-proses ini ke dalam memori utama hanya akan memboroskan waktu dan sumber daya dikarenakan proses-proses ini belum tentu siap dijalankan ketika telah berada di memori utama. Untuk menghemat sumber daya hanya proses-proses yang telah siap dijalankan, yang telah mendapatkan event yang dibutuhkan, yang dipindahkan dari antrian di memori virtual ke memori utama. Proses-proses tersebut sebelum dipindahkan ke memori utama dapat diletakkan dalam antrian proses yang siap untuk dieksekusi kembali oleh prosesor. Oleh karena itu kondisi suspended dibagi lagi menjadi dua kondisi, yaitu:

1. Blocked/Suspend: kondisi di mana proses berada dalam kondisi blocked di dalam memori virtual dan menunggu suatu event.

2. Ready/Suspend: kondisi di mana proses berada dalam memori virtual tetapi dapat langsung dijalankan ketika telah berada dalam memori utama.

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

(26)

blocked ke dalam memori virtual sehingga kondisi proses tersebut dikatakan sebagai blocked/suspend.

2. Blocked/Suspend Ready/Suspend: transisi ini terjadi ketika event yang ditunggu proses dalam kondisi blocked/suspend telah terjadi sehingga status proses tersebut berubah menjadi ready/suspend.

3. Ready/Suspend Ready: transisi ini terjadi ketika tidak ada lagi proses yang berada dalam kondisi ready di dalam memori utama sehingga sistem operasi akan memindahkan proses yang berada dalam kondisi ready/suspend dari memori virtual ke memori utama. Transisi ini juga dapat terjadi apabila proses dalam kondisi ready/suspend memiliki prioritas lebih tinggi dari proses yang berada dalam kondisi ready.

4. New Ready/Suspend dan New Ready: transisi ini terjadi ketika suatu proses baru saja dibuat. Proses tersebut dapat disimpan di dalam antrian memori di memori utama atau diantrikan dalam kondisi ready/suspend di memori virtual.

5. Blocked/Suspend Blocked: transisi ini meskipun tampak tidak terlalu baik dari segi disain namun masih mungkin terjadi. Jika memori utama memiliki tempat kosong dan proses dalam kondisi blocked/suspend tersebut memiliki prioritas lebih tinggi dari yang berada dalam kondisi ready/suspend serta sistem operasi percaya bahwa event yang ditunggu proses tersebut akan terjadi segera maka transisi ini boleh saja terjadi.

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

(27)

ketika proses induknya diterminasi. Jika hal tersebut diperbolehkan maka semua kondisi dapat segera berubah menjadi kondis exit.

3.3

Deskripsi Proses

Seperti yang telah disebutkan sebelumnya sistem operasi bertugas untuk mengelola proses dan sumber daya komputer yang digunakan proses-proses tersebut. Untuk melaksanakan tugas tersebut sistem operasi memerlukan beberapa informasi mengenai proses-proses yang ada dan sumber daya komputer yang ada

Struktur Kendali Sistem Operasi

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

1. Tabel memori

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

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

c. Atribut-atribut yang digunakan untuk keperluan proteksi blok-blok memori yang digunakan pada memori utama d. Informasi apa saja yang digunakan untuk mengelola memori

virtual. 2. Tabel I/O

Tabel ini digunakan untuk mengelola peralatan-peralatan dan saluran-saluran I/O. Ketika terjadi suatu operasi yang berhubungan dengan 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.

(28)

Setidaknya ada dua hal penting yang harus diingat sebelum membahas masalah tabel proses, yaitu bahwa I/O, memori, dan file dimanajamen untuk memenuhi kebutuhan proses sehingga perlu ada penunjuk bagi proses untuk mengakses mereka dan informasi mengenai kondisi lingkungan seperti konfigurasi perangkat keras, jumlah memori tersedia, dan sebagainya harus disediakan oleh sesuatu di luar sistem operasi apakah oleh perangkat lunak atau dengan bantuan manusia

Struktur Kendali Proses

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

3.3.1 Lokasi Proses

Secara umum sebuah proses terdiri dari program atau sekumpulan program yang akan dieksekusi disertai data jika diperlukan. Selain itu terdapat juga struktur data stack yang digunakan untuk mengatur pemanggilan prosedur dan pertukaran parameter antar prosedur dan beberapa atribut yang disebut sebagai process control block. Keseluruhan dari program, data, stack, dan process control block ini dapat disebut sebagai process image.

Lokasi dari process image ini bervariasi bergantung kepada kebijakan penggunaan memori yang digunakan oleh sistem operasi. Sederhananya process image ini disimpan dalam blok ruang memori yang kontinu di memori utama ataupun di memori virtual.

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.

(29)

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

3.4

Kendali Proses

Mode Eksekusi

Kebanyakan prosesor yang dibuat saat ini mendukung dua mode eksekusi, yaitu mode user dan mode kernel atau mode sistem. Pembedaan mode ini dilakukan untuk membatasi hak akses proses-proses milik user agar tidak mengganggu jalannya seluruh sistem komputer. Beberapa hal hanya boleh dilakukan oleh sistem operasi pada mode kernel seperti: menjalankan instruksi-instruksi I/O primitif, menjalankan instruksi-instruksi yang berhubungan dengan manajemen memori. Sebagai tambahan ada beberapa bagian dari memori yang hanya dapat diakses oleh proses yang berjalan pada mode khusus dengan hak istimewa.

Bagaimana sistem operasi dapat mengetahui bahwa suatu bagian dari proses harus dieksekusi dalam mode tertentu? Biasanya hal ini dilakukan dengan menambahkan informasi khusus dalam bagiaan program yang disebut sebagai program status word yang menentukan mode eksekusi dari program.

Pembuatan Proses

Pada saat sebuah proses baru lahir sistem operasi akan melakukan beberapa langkah untuk menjamin proses baru tersebut dapat berjalan dengan baik dan dapat diatur termasuk menyediakan sumber daya komputer seperti memori dan file-file yang dibutuhkan oleh proses tersebut. Langkah-langkah itu antara lain:

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

(30)

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:

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

(31)

diinginkan berada di memori utama proses tersebut dikembalikan ke kondisi ready.

3.4.2 Pergantian Mode

Interrupt stage merupakan bagian dari siklus eksekusi instruksi. Pada tahap tersebut prosesor memeriksa ada tidaknya interrupt yang diindikasikan melalui adanya sinyal interupsi. Jika tidak ada sinyal interupsi maka prosesor akan mengambil instruksi berikutnya namun jika terdapat sinyal interupsi maka prosesor akan melakukan hal sebagai berikut:

1. Prosesor mengubah nilai program counter menunjuk ke alamat awal dari program yang menangani interrupt (interrupt handler)

2. Prosesor mengubah dari mode user menjadi mode kernel sehingga program yang menangani interrupt dapat mengeksekusi instruksi yang membutuhkan hak khusus.

3.4.3 Perubahan Kondisi Proses

Perubahan state atau kondisi proses berbeda dengan perubahan mode eksekusi proses. Sebuah perubahan mode dapat terjadi tanpa perubahan kondisi proses yang sedang berada dalam keadaan running sedangkan ketika terjadi perubahan kondisi proses maka sistem operasi harus melakukan perubahan pada lingkungannya dengan tahap-tahap sebagai berikut:

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

2. Perbarui PCB dari proses yang dalam kondisi running.

3. Pindahkan PCB proses ke antrian yang tepat (Ready, Blocked on Event, atau Ready/Suspend).

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

5. Perbarui struktur data yang digunakan untuk manajemen memori 6. Kembalikan konteks prosesor ke bagian terakhir ketika proses

dipindahkan dari kondisi running dengan memasukkan nilai-nilai program counter dan register lainnya

Proses dan Thread

Ada dua hal mengenai proses yang menjadi fokus sistem, yaitu: 3.1.1 Kepemilikan sumber daya (resource ownership)

(32)

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 bersamaan tetapi setiap proses tetap dianggap sebagai sebuah thread. Java Runtime Environment adalah contoh sebuah sistem dengan proses yang dapat memiliki beberapa thread. Sistem operasi modern seperti Microsoft Windows, Solaris, Mach, dan Linux telah mendukung konsep multiproses sekaligus multithread di mana ada beberapa proses yang dapat (seakan-akan) berjalan bersamaan dan setiap proses dapat terbagi menjadi beberapa thread.

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

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

(33)

Gambar 3-1 Thread

Keuntungan menggunakan thread dibandingkan proses:

1. membuat thread baru lebih cepat daripada membuat proses baru 2. menghentikan thread lebih cepat daripada menghentikan proses 3. waktu untuk pergantian thread lebih cepat dibandingkan pergantian

proses

4. komunikasi antar thread lebih cepat karena berada dalam satu proses sehingga tidak memerlukan intervensi dari kernel

Contoh penggunaan multithreading pada sistem single-user multiprocessing: 1. Pekerjaan foreground dan background

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

2. Pemrosesan asinkron

Tugas-tugas asinkron dapat diimplementasikan sebagai thread. Contoh: sebuah thread yang bertugas 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

(34)

processor yang berbeda. Selain itu membuat program yang menggunakan thread terpisah untuk melakukan Remote Procedure Call akan meningkatkan kecepatan program secara substansial 4. Struktur program modular

Mempermudah implementasi dan desain program dengan berbagai input dan output berbeda

Empat operasi terhadap thread berdasarkan status thread: 1. Spawn

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

2. Block

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

3. Unblock

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

4. Finish

Register dan stack dari thread akan didealokasikan begitu thread selesai

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

(35)

Salah satu isu yang penting dalam multithreading adalah sinkronisasi aktivitas antar thread sehingga aktivitas suatu thread tidak menyebabkan gangguan bagi thread lainnya.

Masalah apakah blocking salah satu thread akan menghambat eksekusi seluruh thread dalam proses yang sama menjadi bahasan dalam user-level thread dan kernel-level thread.

Terminasi dan penahanan proses akan mempengaruhi seluruh thread dalam proses karena mereka berbagi alamat memori yang sama

3.4.4 User Level Thread

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

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

(36)

secara optimal.

3. Dapat diaplikasikan pada semua sistem operasi karena tidak menyentuh level kernel

Kekurangan penggunaan user-level thread:

4. Kebanyakan sistem operasi melakukan blocking pada saat system call dilakukan yang menyebabkan proses (dan seluruh thread di dalamnya) diblok.

5. Multiprocessing tidak dapat diambil manfaatnya karena kernel menugaskan satu processor hanya untuk satu proses sehingga hanya satu thread proses yang bisa dijalankan pada satu waktu.

Jacketing adalah cara untuk mengakali blocking saat system call yaitu dengan mengubah blocking system call menjadi non-blocking system call. Contohnya pada saat membutuhkan I/O thread tidak memanggil rutin I/O sistem melainkan memanggil rutin jaket I/O level aplikasi dan di dalamnya terdapat kode untuk memeriksa kesiapan peralatan I/O, jika belum siap maka kendali akan dialihkan ke thread yang lain.

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

(37)

7. blocking satu thread dalam proses tidak menghalangi thread dari proses yang sama dijadwalkan untuk suatu processor Kekurangan dari kernel-level thread adalah alih kendali dari satu thread ke thread yang lain membutuhkan peralihan ke mode kernel yang menyebabkan overhead waktu yang cukup siginifikan

Konsep lainnya adalah menggabungkan kedua konsep di atas sedemikian sehingga user-level thread dari suatu aplikasi dipetakan pada beberapa kernel-level thread. Jumlah kernel-level thread yang digunakan dapat disesuaikan sesuai kebutuhan oleh programmer.

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.

(38)

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

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

(39)

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

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.

(40)

Tujuan

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

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

4.1

Pendahuluan

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

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

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

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

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

4.2

Prinsip-prinsip Konkurensi

Pada komputer yang menjalankan multiprogramming proses-proses dijalankan bergantian dengan cepat oleh prosesor sehinga tampak seolah-olah berjalan bergantian. Ketika hal ini dilakukan timbul beberapa masalah, yaitu:

1. Berbagi pakai sumber daya memiliki resiko tinggi. Contohnya ketika dua buah proses mengakses variabel yang sama

(41)

dan melakukan operasi penulisan dan pembacaan maka urutan eksekusi pembacaan dan penulisan masing-masing proses menjadi hal yang perlu diperhatikan dan bersifat kritikal.

2. Sulit bagi sistem operasi untuk memanajemen alokasi sumber daya komputer secara optimal. Contohnya jika sebuah proses mengakses suatu file atau I/O kemudian ditunda eksekusinya maka proses lain yang hendak mengakses file atau I/O tersebut akan ditolak hingga proses pertama selesai mengakses file atau I/O tersebut.

3. Sulit untuk melacak kesalahan pada program. Hal ini dikarenakan hasil yang sama tidak determinisitik dan sulit diproduksi ulang.

Salah satu masalah yang ditimbulkan dari berbagi pakai sumber daya adalah race condition, yaitu situasi sedemikian sehingga beberapa proses atau thread menulis data di tempat/variabel yang sama sehingga hasil akhir bergantung kepada urutan eksekusi instruksi-instruksi proses-proses tersebut. Sebagai contoh: jika ada dua proses P1 dan P2, berbagai pakai variabel global a. Jika P1 mengubah nilai a menjadi 1 dan kemudian pada suatu ketika P2 mengubah nilai a menjadi 2 maka kedua proses sedang berada dalam kondisi balapan untuk menulis variabel a. Pada contoh ini pihak yang kalah balapan (yang terakhir mengubah nilai variabel a) adalah yang menentukan nilai akhir dari variabel a.

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.

(42)

4. Fungsi dan output dari sebuah proses harus independen terhadap kecepatan eksekusi relatif terhadap kecepatan proses konkuren yang lain. Bab ini akan difokuskan pada poin ke-empat ini.

Apa maksud dari pernyataan fungsi dan output dari sebuah proses harus independen terhadap kecepatan eksekusi relatif terhadap kecepatan proses konkuren yang lain? Fungsi sebuah proses dan output yang dihasilkannya sebisa mungkin dijaga untuk tidak terpengaruh oleh kecepatan eksekusi proses tersebut yang dalam sebuah sistem multiproses menjadi tidak tetap bergantung proses-proses lainnya.

Proses-proses dalam sistem multiproses dapat saling independen tetapi lebih sering melakukan interaksi. Ada beberapa jenis interaksi yang terjadi antar proses berdasarkan derajat pengetahuan proses-proses terhadap adanya proses lainnya:

1. Proses-proses tidak saling mengetahui keberadaan proses lain. Proses-proses tersebut dimaksudkan untuk bekerja independen dan tidak dimaksudkan untuk saling bekerja sama. Pada kasus ini meski tidak bekerja sama tetapi sangat mungkin terjadi kompetisi untuk mendapatkan sumber daya kompuer tertentu.

2. Proses-proses saling mengetahui keberadaan proses lain secara tidak langsung.

Proses-proses ini tidak mengetahui secara langsung proses lain melalui process ID yang mereka miliki melainkan karena berbagi pakai suatu sumber daya yang sama dan mengetahui bahwa sumber daya tersebut dibagi pakai bersama dengan proses lainnya.

3. Proses-proses saling mengetahui keberadaan proses lain secara langsung.

Proses-proses ini saling mengetahui keberadaan proses lain sampai pada tingkat mengetahui process ID proses lainnya.

Pada jenis interaksi pertama proses-proses yang berjalan berbarengan mengalami konflik ketika mencoba mengakses sumber daya yang sama pada waktu yang bersamaan. Jika salah satu proses telah mengakses sumber daya tersebut maka proses lain harus menunggu hingga proses tersebut selesai menggunakan sumber daya tersebut sebelum dapat menggunakannya. Hal ini menyebabkan eksekusi proses menjadi tertunda dan bahkan pada beberapa kasus proses lain tidak pernah mendapat kesempatan untuk mengakses sumber daya tersebut dan akhirnya tidak pernah selesai dengan sukses.

(43)

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.

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

Gambar

Gambar 2-1 Fungsi  sistem operasi sebagai pengatur sumber daya komputer 2.3  Sistem  Operasi  sebagai  Extended  Machine/Virtual
Gambar 2-2  Lapisan-lapisan dari sebuah computer
Gambar 2-4 Perbandingan utilisasi sumber daya komputer antara sistem  uniprogramming dan multiprogramming
Tabel 4-1 Mutual exclusion dengan dukungan perangkat keras  4.2.6  Instruksi Exchange
+7

Referensi

Dokumen terkait

Analisis regresi digunakan untuk menguji hipotesis tentang pengaruh secara parsial dan secara simultan variabel bebas terhadap variabel terikat. Model persamaan regresi yang

Hasil analisis dan pembahasan hasil penelitian menunjukkan bahwa t-hitung lebih besar dari t-tabel yakni t-hitung adalah 14,68 sedangkan t-tabel pada taraf signifikan 5% d.b (N-1)

Hasil penelitian mengenai sistem informasi administrasi pada Klinik Ngudi Waras Purwodadi berupa tampilan web yang dapat diakses oleh 3 pengakses yaitu user

Pendirian Perseroan Terbatas sesuai aturan yang berlaku harus memenuhi syarat formal dan syarat Materiil,yaitu didirikan oleh 2 orang atau lebih dengan Akta

Hasil wawancara yang kami laksanakan pada tanggal 12 Mei 2014, 19 Mei 2014, 21-23 Mei 2014, 3 Juni 2014, dan 14 Juli 2014 dengan 6 orang informan, yang terdiri dari 1 orang

dengan judul penelitian “Perbedaan Hasil Belajar Siswa yang diajarkan dengan Model Pembelajaran Kooperatif Tipe Make A Match dan Tipe Jigsaw pada Materi

Program yang dilakukan oleh Rukun nelayan Blimbing adalah Pelatihan bengkel nelayan yaitu pelatihan perbaikan mesin kapal yang dilakukan oleh P2MKP (Pusat Pelatihan

Hasil ini sesuai dengan pernyataan Limantara dan Heriyanto (2010) yaitu warna cokelat pada rumput laut cokelat dihasilkan dari senyawa karotenoid polar (santofil)