Proses

advertisement
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
Download