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