Sistem Operasi Komputer Pertemuan IV Processes Kuis Kecil III Processes 1. Gambarkan daur hidup suatu proses! (15 point) 2. Jelaskan perbedaan antara short-term, medium-term dan long-term scheduling! (15 point) 3. Apa yang dimaksud dengan context switch. Apa yang harus dilakukan oleh kernel ketika context switch terjadi? (20 point) 4. Apa yang diperoleh suatu proses ketika ia dibuat? Kapan suatu proses boleh diberhentikan (diterminasi)? (15 point) 5. Jelaskan secara singkat apa yang dimaksud dengan produser-consumer problem! (20 point) 6. Apa yang dimaksud dengan threads dan sebutkan kegunaannya! (15 point) Universitas Kristen Maranatha -- IT Department 1
Konsep proses Penjadwalan proses Operasi proses Proses Cooperating proses (proses-proses yang bekerjasama) Komunikasi antar proses Buffering Kondisi pengecualian Threads Program dalam SOK dapat berupa Konsep Proses 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 Proses memerlukan resources: CPU time Memori File I/O devices Universitas Kristen Maranatha -- IT Department 2
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) Diagram status proses Universitas Kristen Maranatha -- IT Department 3
Process Control Blok (PCB) (1) Status proses: new, ready, running, waiting, terminated Program counter: menunjukkan alamat berikutnya yang akan dieksekusi oleh proses yang sedang running CPU registers: accumulator, index register, stack pointer, reg. serbaguna; tergantung arsitektur komputer Process Control Blok (PCB) (2) Selama program counter berjalan, status informasi harus disimpan pada saat terjadi interrupt Informasi penjadwalan CPU: prioritas suatu proses, pointer ke antrian penjadwalan Informasi manajemen memori: nilai tabel basis dan limit register, page table atau segment table Informasi accounting: jumlah CPU dan real time yang digunakan, time limits, account numbers, jumlah proses, dll Informasi status I/O: deretan I/O devices yang dialokasikan untuk proses (tape driver, disks), deretan file yang dibuka, dll Universitas Kristen Maranatha -- IT Department 4
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 Alih CPU antar proses Universitas Kristen Maranatha -- IT Department 5
Antrian penjadwalan proses Job queue: kumpulan semua proses dalam sistem Ready queue: proses-proses yang ada di memori utama dan menunggu untuk dieksekusi. Disimpan sebagai linked-list dan berisi pointer awal dan akhir PCB. Tiap PCB memiliki pointer field yang menunjuk ke proses berikutnya dalam ready queue Device queue: deretan proses yang menunggu peralatan I/O tertentu Proses berpindah-pindah antar queue dalam daur hidupnya Ready queue dan device queue Universitas Kristen Maranatha -- IT Department 6
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) Medium Term Scheduling (swapping) 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 Universitas Kristen Maranatha -- IT Department 7
Operasi Proses Pembuatan (1) Memberi nama (id) Menyisipkan proses pada list proses atau tabel proses Menentukan prioritas awal proses Membuat PCB Mengalokasikan resource awal bagi proses tersebut Operasi Proses Pembuatan (2) Penyebab pembuatan proses: Pada lingkungan batch, sebagai tambahan atas pemberian job Pada lingkungan interaktif, pada saat user baru saja logon Sebagai tanggapan atas suatu aplikasi, seperti: mencetak file Proses menciptakan proses lain Universitas Kristen Maranatha -- IT Department 8
Pohon proses UNIX Pohon proses Bentuk eksekusi: Parent melanjutkan eksekusi beriringan dengan children Parent menunggu hingga beberapa atau seluruh children selesai Bentuk ruang alamat: Child proses adalah duplikat dari parent proses Child proses telah memanggil program ke dirinya 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 Universitas Kristen Maranatha -- IT Department 9
Operasi Proses Penghentian Proses berhenti jika telah menyelesaikan pernyataan terakhir, dan minta SOK untuk menghentikannya (exit call) Proses dihapus dari list atau tabel, dilanjutkan dengan menghapus PCB proses tersebut Menunggu output data dari children (wait call) Parent dapat menghentikan children proses (abort call) Child melampaui resource yang dialokasikan Task yang dialokasikan ke child tidak lagi dibutuhkan Parent exiting SOK tidak mengijinkan children untuk dilanjutkan, jika parent-nya dihentikan Penghentian cascading (domino efek) 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 Universitas Kristen Maranatha -- IT Department 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 Bounded-Buffer Shared-Memory Solution Shared data #define BUFFER_SIZE 10 Typedef struct {... } item; item buffer[buffer_size]; int in = 0; int out = 0; Hanya dapat menggunakan BUFFER_SIZE-1 elemen dalam buffer. Universitas Kristen Maranatha -- IT Department 11
Bounded-Buffer Producer Process item nextproduced; while (1) { } while (((in + 1) % BUFFER_SIZE) == out) /* penuh */; /* waiting */ buffer[in] = nextproduced; in = (in + 1) % BUFFER_SIZE; Bounded-Buffer Consumer Process item nextconsumed; while (1) { while (in == out) ; /* kosong */ /* waiting */ nextconsumed = buffer[out]; out = (out + 1) % BUFFER_SIZE; } Universitas Kristen Maranatha -- IT Department 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 Implementasi link komunikasi Fisik (shared memori, hardware bus) Properti logikal Universitas Kristen Maranatha -- IT Department 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 Komunikasi tak langsung (1) Pengiriman atau penerimaan pesan dilakukan melalui mailbox (port) Setiap mailbox, memiliki id yang unik Proses dapat berkomunikasi jika berbagi mailbox Send (A, pesan): mengirim pesan ke mailbox A Receive (A, pesan): menerima pesan dari mailbox A 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 Universitas Kristen Maranatha -- IT Department 14
Komunikasi tak langsung (2) Operasi: Create new mailbox Send dan receive pesan melalui mailbox Destroy mailbox 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. Universitas Kristen Maranatha -- IT Department 15
Error pada komunikasi Kondisi pengecualian Penghentian proses: pengirim atau penerima menghentikan komunikasi sebelum pesan diproses Blok tanpa konfirmasi Blok dengan konfirmasi Kehilangan pesan: dapat mengakibatkan kegagalan pada hardware. Cara mengatasi: SOK mendeteksi, kemudian kirim ulang Pengirim mendeteksi, kemudian kirim ulang, jika diminta SOK mendeteksi, kemudian memberi tahu pengirim, pengirim memilih aksi berikutnya Penggunaan timeout untuk mendeteksi 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 Universitas Kristen Maranatha -- IT Department 16
Remote Procedure Call (RPC) RPC mengabstraksikan pemanggilan prosedur di antara proses pada suatu sistem jaringan Stubs proxy client-side untuk prosedur aktual dalam server Client stub mengalokasikan server, kemudian meneruskan parameter-parameter Server stub menerima pesan, menerima parameter, dan menjalankan prosedur pada server Eksekusi RPC Universitas Kristen Maranatha -- IT Department 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 Universitas Kristen Maranatha -- IT Department 18
User threads: User dan Kernel Thread Diimplementasikan dalam library pada user mode Library: membuat, penjadwalan dan pengelolaan thread secara independen tanpa dukungan kernel Jika suatu thread dalam proses di-blok, maka keseluruhan proses tsb akan turut di-blok Kernel threads: Didukung langsung oleh SOK Jika salah satu thread di-blok, kernel masih dapat menjadwalkan thread yang lainnya untuk eksekusi Single dan multithread Universitas Kristen Maranatha -- IT Department 19
Windows 2000 Threads Implementasi 1-to-1 mapping thread (memetakan satu thread user ke dalam satu thread kernel) Konkurensi karena mengijinkan thread yang lain untuk beroperasi ketika suatu thread membuat system call blocking Setiap thread berisi: Thread id Register set untuk statur prosesor Memisahkan antara user dan kernel stack Area penyimpanan data privat untuk run-time library dan DLL yang berbeda-beda 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) Universitas Kristen Maranatha -- IT Department 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 Java Thread States Universitas Kristen Maranatha -- IT Department 21
Latihan soal 1. Gambarkan dan jelaskan daur hidup proses dalam SOK! (20 point) 2. Apakah yang dimaksudkan dengan Process Control Blok, dan apakah kegunaannya? Apa hubungannya dengan Context Switch? (20 point) 3. Tunjukkan perbedaan antara long-term scheduling, shortterm scheduling dan medium-term scheduling! (15 point) 4. Sebutkan alasan sehingga suatu proses menciptakan suatu proses baru lainnya! Berikan contohnya! Sebutkan pula alasan hingga suatu proses harus dihentikan! (15 point) 5. Jelaskan tentang Consumer Producer Problem dalam konteks kerjasama antar proses! (15 point) 6. Apakah yang dimaksudkan dengan Threads? Apa bedanya dengan Process, dan apa kegunaannya? (15 point) Universitas Kristen Maranatha -- IT Department 22