Sistem Operasi Komputer -...

22
Sistem Operasi Komputer Universitas Kristen Maranatha -- IT Department 1 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)

Transcript of Sistem Operasi Komputer -...

Page 1: Sistem Operasi Komputer - andiwre.itmaranatha.organdiwre.itmaranatha.org/download/sok/4-Proses.pdf · • Utilisasi arsitektur multiprosesor: thread dapat dijalankan secara bersamaan

Sistem Operasi Komputer

Universitas Kristen Maranatha -- IT Department 1

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)

Page 2: Sistem Operasi Komputer - andiwre.itmaranatha.organdiwre.itmaranatha.org/download/sok/4-Proses.pdf · • Utilisasi arsitektur multiprosesor: thread dapat dijalankan secara bersamaan

Sistem Operasi Komputer

Universitas Kristen Maranatha -- IT Department 2

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

Page 3: Sistem Operasi Komputer - andiwre.itmaranatha.organdiwre.itmaranatha.org/download/sok/4-Proses.pdf · • Utilisasi arsitektur multiprosesor: thread dapat dijalankan secara bersamaan

Sistem Operasi Komputer

Universitas Kristen Maranatha -- IT Department 3

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

Page 4: Sistem Operasi Komputer - andiwre.itmaranatha.organdiwre.itmaranatha.org/download/sok/4-Proses.pdf · • Utilisasi arsitektur multiprosesor: thread dapat dijalankan secara bersamaan

Sistem Operasi Komputer

Universitas Kristen Maranatha -- IT Department 4

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

Page 5: Sistem Operasi Komputer - andiwre.itmaranatha.organdiwre.itmaranatha.org/download/sok/4-Proses.pdf · • Utilisasi arsitektur multiprosesor: thread dapat dijalankan secara bersamaan

Sistem Operasi Komputer

Universitas Kristen Maranatha -- IT Department 5

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

Page 6: Sistem Operasi Komputer - andiwre.itmaranatha.organdiwre.itmaranatha.org/download/sok/4-Proses.pdf · • Utilisasi arsitektur multiprosesor: thread dapat dijalankan secara bersamaan

Sistem Operasi Komputer

Universitas Kristen Maranatha -- IT Department 6

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

Page 7: Sistem Operasi Komputer - andiwre.itmaranatha.organdiwre.itmaranatha.org/download/sok/4-Proses.pdf · • Utilisasi arsitektur multiprosesor: thread dapat dijalankan secara bersamaan

Sistem Operasi Komputer

Universitas Kristen Maranatha -- IT Department 7

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

Page 8: Sistem Operasi Komputer - andiwre.itmaranatha.organdiwre.itmaranatha.org/download/sok/4-Proses.pdf · • Utilisasi arsitektur multiprosesor: thread dapat dijalankan secara bersamaan

Sistem Operasi Komputer

Universitas Kristen Maranatha -- IT Department 8

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

Page 9: Sistem Operasi Komputer - andiwre.itmaranatha.organdiwre.itmaranatha.org/download/sok/4-Proses.pdf · • Utilisasi arsitektur multiprosesor: thread dapat dijalankan secara bersamaan

Sistem Operasi Komputer

Universitas Kristen Maranatha -- IT Department 9

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

Page 10: Sistem Operasi Komputer - andiwre.itmaranatha.organdiwre.itmaranatha.org/download/sok/4-Proses.pdf · • Utilisasi arsitektur multiprosesor: thread dapat dijalankan secara bersamaan

Sistem Operasi Komputer

Universitas Kristen Maranatha -- IT Department 10

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

Page 11: Sistem Operasi Komputer - andiwre.itmaranatha.organdiwre.itmaranatha.org/download/sok/4-Proses.pdf · • Utilisasi arsitektur multiprosesor: thread dapat dijalankan secara bersamaan

Sistem Operasi Komputer

Universitas Kristen Maranatha -- IT Department 11

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.

Page 12: Sistem Operasi Komputer - andiwre.itmaranatha.organdiwre.itmaranatha.org/download/sok/4-Proses.pdf · • Utilisasi arsitektur multiprosesor: thread dapat dijalankan secara bersamaan

Sistem Operasi Komputer

Universitas Kristen Maranatha -- IT Department 12

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;

}

Page 13: Sistem Operasi Komputer - andiwre.itmaranatha.organdiwre.itmaranatha.org/download/sok/4-Proses.pdf · • Utilisasi arsitektur multiprosesor: thread dapat dijalankan secara bersamaan

Sistem Operasi Komputer

Universitas Kristen Maranatha -- IT Department 13

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

Page 14: Sistem Operasi Komputer - andiwre.itmaranatha.organdiwre.itmaranatha.org/download/sok/4-Proses.pdf · • Utilisasi arsitektur multiprosesor: thread dapat dijalankan secara bersamaan

Sistem Operasi Komputer

Universitas Kristen Maranatha -- IT Department 14

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

Page 15: Sistem Operasi Komputer - andiwre.itmaranatha.organdiwre.itmaranatha.org/download/sok/4-Proses.pdf · • Utilisasi arsitektur multiprosesor: thread dapat dijalankan secara bersamaan

Sistem Operasi Komputer

Universitas Kristen Maranatha -- IT Department 15

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

• Blocking dikenal juga sebagai synchronous passing

• Non-blocking dikenal juga sebagai asynchronous passing

• send dan receive dapat berupa blocking atau non-blocking.

Page 16: Sistem Operasi Komputer - andiwre.itmaranatha.organdiwre.itmaranatha.org/download/sok/4-Proses.pdf · • Utilisasi arsitektur multiprosesor: thread dapat dijalankan secara bersamaan

Sistem Operasi Komputer

Universitas Kristen Maranatha -- IT Department 16

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

Page 17: Sistem Operasi Komputer - andiwre.itmaranatha.organdiwre.itmaranatha.org/download/sok/4-Proses.pdf · • Utilisasi arsitektur multiprosesor: thread dapat dijalankan secara bersamaan

Sistem Operasi Komputer

Universitas Kristen Maranatha -- IT Department 17

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

Page 18: Sistem Operasi Komputer - andiwre.itmaranatha.organdiwre.itmaranatha.org/download/sok/4-Proses.pdf · • Utilisasi arsitektur multiprosesor: thread dapat dijalankan secara bersamaan

Sistem Operasi Komputer

Universitas Kristen Maranatha -- IT Department 18

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

Page 19: Sistem Operasi Komputer - andiwre.itmaranatha.organdiwre.itmaranatha.org/download/sok/4-Proses.pdf · • Utilisasi arsitektur multiprosesor: thread dapat dijalankan secara bersamaan

Sistem Operasi Komputer

Universitas Kristen Maranatha -- IT Department 19

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

Page 20: Sistem Operasi Komputer - andiwre.itmaranatha.organdiwre.itmaranatha.org/download/sok/4-Proses.pdf · • Utilisasi arsitektur multiprosesor: thread dapat dijalankan secara bersamaan

Sistem Operasi Komputer

Universitas Kristen Maranatha -- IT Department 20

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)

Page 21: Sistem Operasi Komputer - andiwre.itmaranatha.organdiwre.itmaranatha.org/download/sok/4-Proses.pdf · • Utilisasi arsitektur multiprosesor: thread dapat dijalankan secara bersamaan

Sistem Operasi Komputer

Universitas Kristen Maranatha -- IT Department 21

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

Page 22: Sistem Operasi Komputer - andiwre.itmaranatha.organdiwre.itmaranatha.org/download/sok/4-Proses.pdf · • Utilisasi arsitektur multiprosesor: thread dapat dijalankan secara bersamaan

Sistem Operasi Komputer

Universitas Kristen Maranatha -- IT Department 22

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, short-

term 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)