Proses
Konsep proses Penjadwalan proses Operasi proses Cooperating proses (proses-proses yang bekerjasama) Komunikasi antar proses Buffering Kondisi pengecualian Threads
Konsep Proses
Program dalam SOK dapat berupa
Batch system jobs Time-shared system user program atau tasks
Pengertian job dan proses digunakan bersamaan Proses suatu program dalam eksekusi yang terjadi secara sekuensial Suatu proses meliputi:
Stack Program counter Data section
Status proses
New: proses sedang dibuat Running: proses dapat dieksekusi, karena CPU tidak sedang mengerjakan tugas yang lain Waiting: proses sedang menunggu event yang akan terjadi (I/O atau sinyal lainnya) Ready: proses menunggu jatah waktu dari CPU Terminated: proses selesai dieksekusi (normal ataupun karena error)
Context switch
Proses penyimpanan status proses dan mengambil status proses yang baru pada saat terjadi switching SOK tidak mengerjakan apapun pada saat terjadi context switching (context switch time is overhead) Waktu ini bergantung pada hardware-nya
Schedulers
Longterm (job scheduler): menyeleksi proses-proses dari suatu pool dan ke membawa ke memori utama untuk eksekusi Shorterm (CPU scheduler): menyeleksi proses-proses yang siap eksekusi dan alokasi CPU ke salah satu proses yang siap Proses
I/O-bound (doing I/O, short CPU burst) CPU-bound (computation, long CPU burst)
Memindahkan proses dari memori (dan dari antrian CPU) Pada saat lain, proses dapat dikembalikan ke memori dan eksekusinya dapat dilanjutkan Digunakan pada time-sharing (multitasking) systems
Pohon proses
Bentuk eksekusi:
Parent melanjutkan eksekusi beriringan dengan children Parent menunggu hingga beberapa atau seluruh children selesai
Pada akhir proses, child mengembalikan hasil ke parent UNIX (fork system call), dapat paralel antara parent dengan child MS DOS (binary system call), parent akan running setelah child selesai
Kerjasama proses
Proses yang independen tidak dapat dipengaruhi atau mempengaruhi proses lain Cooperating process, dapat dipengaruhi atau mempengaruhi proses lain Keuntungan cooperating process
Sharing informasi Kecepatan komputasi Modularitas Keyakinan pengguna
Contoh: program MS-Word memanggil paint brush. Menyebabkan waktu penyimpanan yang cukup besar. Diperlukan swapping, dari memori utama ke memori sekunder
10
Cooperating: Producer-Consumer Problem Producer adalah proses yang menghasilkan informasi, yang akan dipakai consumer Consumer tidak boleh meminta sesuatu yang belum diproduksi produser Unbounded buffer: tidak menggunakan ukuran buffer. Consumer selalu dapat meminta item baru, produser selalu dapat memproduksi Bounded buffer: buffer ukuran tertentu. Consumer harus menunggu jika buffer kosong, produser harus menunggu jika buffer penuh
11
12
Producer-Consumer
Var in dan out diinisialisasikan dengan nilai nol Buffer yang digunakan bersama diimplementasikan sebagai larik sirkular dengan 2 pointer logika in dan out Variabel in menunjukkan posisi kosong berikutnya pada buffer Variabel out menunjukan posisi penuh pertama pada buffer Buffer kosong, jika in = out Buffer penuh, jika (in+1) % n = out
Komunikasi antar proses Interprocess Communication (IPC) Mekanisme untuk komunikasi proses dan sinkronikasi antar proses-proses tersebut Sistem pesan (message system): proses berkomunikasi tanpa melalui shared variabel IPC: send(P, message) dan receive(P, message) Jika proses P1 dan P2 ingin berkomunikasi:
Tersedia link Tukar informasi melalui send dan receive
13
Komunikasi langsung
Menyebutkan nama proses secara langsung
Send (P, pesan): kirim pesan ke proses P Receive (Q, pesan): terima pesan dari proses Q
Link dapat disambungkan secara otomatis antar 2 proses yang ingin komunikasi Link tersebut hanya dapat menghubungkan 2 proses Antar tiap pasang proses ada tepat 1 link Link dapat bersifat unidirectional, namun biasanya bidirectional
Link terbentuk jika proses berbagi mailbox Link tersebut dapat menghubungkan lebih dari 2 proses Antar tiap pasang proses yang berkomunikasi, dapat berbagi lebih dari satu link Link dapat berupa unidirectional atapun bidirectional
14
Sharing mailbox
P1, P2 dan P3 share mailbox A P1 send; P2 dan P3 receive Siapa yang menerima pesan? Solusi:
Buat link yang diasosiasikan dengan paling banyak 2 proses Buat hanya satu proses pada satu saat untuk mengeksekusi operasi receive Buat sistem untuk memilih secara acak penerima pesan. Sender diberitahu siapa yang menerima pesan
Buffering
Pesan yang dikirim ditempatkan pada buffer. Pesan antri dalam bentuk link, dengan implementasi buffer salah satu dari: Zero capacity: antrian dengan panjang maksimum nol, sehingga tidak ada pesan yang menunggu di link. Pengirim harus menunggu penerima mengirim tanda penerimaan. Bounded capacity: panjang n pesan dalam buffer. Sender harus menunggu jika buffer penuh. Unbounded capacity: panjang pesan dalam buffer tidak tertentu. Sender tidak pernah menunggu. Message passing dapat melakukan blocking ataupun nonblocking. Blocking dikenal juga sebagai synchronous passing Non-blocking dikenal juga sebagai asynchronous passing send dan receive dapat berupa blocking atau non-blocking.
15
Kondisi pengecualian
Error pada komunikasi Penghentian proses: pengirim atau penerima menghentikan komunikasi sebelum pesan diproses
Blok tanpa konfirmasi Blok dengan konfirmasi
Sistem Client-ServerSocket
Socket diartikan sebagai titik akhir suatu komunikasi Konkatenasi antara alamat IP dan port Socket 161.25.19.8:1625 mengacu pada port 1625 pada host 161.25.19.8 Komunikasi terjadi antar sepasang socket
16
Eksekusi RPC
17
Threads
A thread is a single sequence stream within in a process
Unit dasar utilisasi CPU yang berisi program counter, kumpulan register dan ruang stack disebut dengan thread atau LWP (lightweight process)
Thead bekerja sama dengan thread lainnya dalam hal penggunaan bagian kode, data, resource SOK lainnya, seperti: open file dan sinyal secara kolektif (task) Status: ready, blocked, running, terminated. Hanya satu thread aktif dalam satu waktu Thread dapat membuat child thread Thread tidak saling bebas dan tidak terproteksi satu dengan lainnya Suatu task dapat tersusun atas beberapa threads
Manfaat threads
Meningkatkan tingkat responsi pada proses Penggunaan bersama resource, spt: alamat memori Ekonomis: lebih murah untuk membuat thread dalam proses dan melakukan context switch antar threads, daripada proses Utilisasi arsitektur multiprosesor: thread dapat dijalankan secara bersamaan pada prosesor yang berbeda-beda
18
Kernel threads:
Didukung langsung oleh SOK Jika salah satu thread di-blok, kernel masih dapat menjadwalkan thread yang lainnya untuk eksekusi
19
Linux Threads
Dikenal sebagai tasks dalam linux Dibuat dengan menggunakan system call Clone() Clone() mengijinkan child task untuk berbagi ruang alamat dengan parent task (proses)
20
Java Threads
Dibuat melalui
Memperluas (extend) kelas Thread Mengimplementasikan Runnable Interface
Dikelola oleh JVM (java virtual machine) JVM ditempatkan di atas suatu SOK, dapat digunakan untuk menyembunyikan detail SOK di bawahnya JVM menyediakan lingkungan abstrak yang konsisten, java dapat beroperasi dalam setiap platform yang mensupport JVM
21
Latihan soal
1. 2. Gambarkan dan jelaskan daur hidup proses dalam SOK ! (20 point) Apakah yang dimaksudkan dengan Process Control Blok, dan apakah kegunaannya ? Apa hubungannya dengan Context Switch ? (20 point) Tunjukkan perbedaan antara long-term scheduling, shortterm scheduling dan medium-term scheduling ! (15 point) Sebutkan alasan sehingga suatu proses menciptakan suatu proses baru lainnya ! Berikan contohnya ! Sebutkan pula alasan hingga suatu proses harus dihentikan ! (15 point) Jelaskan tentang Consumer Producer Problem dalam konteks kerjasama antar proses ! (15 point) Apakah yang dimaksudkan dengan Threads ? Apa bedanya dengan Process, dan apa kegunaannya ? (15 point)
3. 4.
5. 6.
22