Sistem Operasi Komputer 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 Sistem Operasi Komputer 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 • Proses memerlukan resources: – – – – CPU time Memori File I/O devices Universitas Kristen Maranatha -- IT Department 2 Sistem Operasi Komputer 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 Sistem Operasi Komputer 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 Sistem Operasi Komputer 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 Sistem Operasi Komputer 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 Sistem Operasi Komputer 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 Sistem Operasi Komputer 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 Sistem Operasi Komputer 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 Sistem Operasi Komputer 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 Sistem Operasi Komputer 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 Sistem Operasi Komputer 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 Sistem Operasi Komputer 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 Sistem Operasi Komputer 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 Sistem Operasi Komputer 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 Sistem Operasi Komputer Kondisi pengecualian • Error pada komunikasi • 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 Sistem Operasi Komputer 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 Sistem Operasi Komputer 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 Sistem Operasi Komputer User dan Kernel Thread • User threads: – 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 Sistem Operasi Komputer 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 Sistem Operasi Komputer 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 Sistem Operasi Komputer Latihan soal 1. 2. 3. 4. 5. 6. 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) Universitas Kristen Maranatha -- IT Department 22