Anda di halaman 1dari 22

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

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

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

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

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

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

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

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

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

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. 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.

Universitas Kristen Maranatha -- IT Department

22

Anda mungkin juga menyukai