Sistem Operasi Komputer -...
Transcript of Sistem Operasi Komputer -...
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)
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
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
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
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
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
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
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
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
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
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.
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;
}
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
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
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.
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
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
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
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
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)
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
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)