Anda di halaman 1dari 36

PROSES DAN THREAD

SO Sbg Manager Proses


Proses :
model, kreasi, terminasi, hierarchies,
states dan implementasi
Thread
model, penggunaan, implementasi,
scheduler activation, pop-up
Konsep Proses
Definisi Proses menurut Stalling adalah meliputi hal-hal berikut:
• Suatu program yang sedang dieksekusi
• Instansiasi suatu program yang berjalan pada komputer
• Entitas yang diassign ke prosesor dan dieksekusi oleh prosesor
• Unit aktifitas yang dicirikan oleh pengksekusian sederatan instruksi
pada state yang sama dan berkaitan dg resource sistem.

Tanggung jawab Sistem operasi terhadap aktifitas yang


berhubungan dengan manager proses:

1. Pembuatan dan penghapusan proses


2. Penundaan dan pelanjutan proses
3. Penyedia mekanisme untuk Sinkronisasi antar proses
4. Penyedia mekanisme Komunikasi antar proses
5. Penyedia mekanisme Penanganan Deadlock

February 17, 2011 Sistem Operasi 2


KONSEP PROSES
 Program itu sendiri bukanlah sebuah proses; suatu program adalah satu
entitas pasif; seperti isi dari sebuah berkas yang disimpan didalam
disket, sebagaimana sebuah proses dalam suatu entitas aktif, dengan
sebuah program counter yang mengkhususkan pada instruksi
selanjutnya untuk dijalankan dan seperangkat sumber daya/ resource
yang berkenaan dengannya.
 Walau dua proses dapat dihubungkan dengan program yang sama,
program tersebut dianggap dua urutan eksekusi yang berbeda. Sebagai
contoh, beberapa pengguna dapat menjalankan copy yang berbeda
pada main program, atau pengguna yang sama dapat meminta banyak
copy dari program editor. Tiap-tiap proses ini adakah proses yang
berbeda walaupun bagian tulisan-text adalah sama, data section
bervariasi. Juga adalah umum untuk memiliki proses yang
menghasilkan banyak proses begitu ia bekerja.
KONSEP PROSES
 Dalam komputer modern, banyak proses yang dapat dilakukan
dalam satu waktu (Proses Paralel)
 Contoh ketika kita sedang mengetik kata dg MS-Word,
Proses-proses yang terjadi (proses paralel) meliputi:
 Komputer terus-menerus menampilkan kata yg kita tulis di monitor.
 Komputer terus-menerus memeriksa spelling/bahasa
 Komputer terus-menerus menampilkan info ttg page, word number dll

 Kasus yang berbeda terjadi untuk multiple-programming, dimana


program/proses akan berpindah-pindah dari suatu program/proses
ke program/proses lainnya. Atau untuk multiprocessor, dimana
suatu proses yang dikerjakan beberapa prosesor dengan
menggunakan satu memori yang bisa dishare. Kasus kedua adalah
contoh untuk Proses Serial .
KONSEP PROSES
 Gambar Proses Serial dan Paralel (Tan 72)
Karakteristik Proses
(Process Control Block )
 Ketika suatu proses sedang berjalan, ada beberapa elemen yang
dapat mengidentifikasikan proses tersebut, yaitu :
 Identifier : memberikan identitas unik
 State: (running, ready,new,,exit, blok/waiting)
 Priority : level prioritas thd proses lain
 Prgram Counter : alamat dari next instruction
 Memory Pointers : pointer dari kode program dan data yg terkait dg proses
 Context data : data yg muncul di register ketika proses dieksekusi
 Status informasi I/O : meliputi request thd I/O device, daftar file yg digunakan
proses dll
 Informasi Akunting : meliputi waktu pengerjaan proses, batas waktu dll

February 17, 2011 Sistem Operasi 6


Process Control Block

February 17,
I 2011 Sistem Operasi 7
PEMBENTUKAN PROSES
Ada 4 hal yang menyebabkan terbentuknya suatu proses (Process
Creation) yaitu :
 Inisialisasi sistem ( misal ketika SO di boot)
 Eksekusi ‘ process creation system call’ ketika suatu proses
dijalankan (process spawning)
proses awal: parent process, proses hasil bentukan (child process)
 User request / interactive logon
 Inisiasi dari ‘batch job’
ini biasanya terjadi pada SO Mainframe, dimana banyak user men-
submit ‘batch job’ ( bisa secara remote) dan SO meresponnya
dengan meng-inisiasi proses baru.

Sebenarnya eksekusi terhadap ‘ process creation system call’ selalu


dilakukan untuk semua kondisi diatas.

February 17, 2011 Sistem Operasi 8


PEMBENTUKAN PROSES
Ada 5 tahapan ketika sebuah proses dibentuk:
 Membuat ‘process identifier’ unik untuk setiap proses baru
 Alokasi space (memory)
 Inisialisasi keseluruhan PCB
 Men-setting link-link yg terkait
 Membuat/megembangkan struktur data

February 17, 2011 Sistem Operasi 9


TERMINASI PROSES
Ada banyak hal yang menyebabkan suatu proses akan dihentikan (Process
Termination) yaitu :
 Normal Completion
 Time Limit Exceeded
 Memory unavailable
 Bound Violation
 Protection Error
 Arithmatic Error
 I/O Faillure
 Invalid instruction
 Privileged instruction
 Data Misuse
 Intervensi Operator/SO
 Terminasi thd parent
 Parent request

February 17, 2011 Sistem Operasi 10


S T A T U S P R O S E S

 Ketika proses bekerja, maka proses tersebut merubah state (keadaan


statis/ asal) ke state lain. Status dari sebuah proses (Process States)
meliputi:
1. New: Proses sedang dikerjakan/ dibuat.
2. Running: Instruksi/proses sedang dikerjakan.
3. Waiting/Blok: Proses sedang menunggu sejumlah kejadian untuk
terjadi (seperti sebuah penyelesaian I/O atau penerimaan sebuah
tanda/ signal).
4. Ready: Proses sedang menunggu untuk ditugaskan pada sebuah
prosesor.
5. Terminated/Exit: Proses telah selesai melaksanakan tugasnya/
mengeksekusi.

 Istilah-istilah tersebut adalah arbitrer/ berdasar opini, istilah tersebut


bervariasi disepanjang sistem operasi.
 Tiga state yang prinsipil ( dari 5 state ) adalah : Running, Waiting,Ready
STATUS PROSES
Model status proses (Stalling 117)

Ilustrasi Status Proses

February 17, 2011 Sistem Operasi 12


SWITCHING PROSES
Ketika proses dijalankan, kadang ia harus di’sela’ (diinterupsi) dan SO meng-
assign proses lainnya dan tetap mengendalikan proses tsb.
Berikut event-event yang bisa menyebabkan suatu proses dapat diganti
(switch) :
 interrupt
penyebab: event eksternal dan independen thd ‘current Process’
penanganan: reaksi thd event eksternal tsb (spt penyelesaian operasi I/O)
 Trap
penyebab: berkaitan eksekusi thd ‘current Process’
penanganan: error handling atau membuat’ exeption condition’
bila ‘fatal error’ terjadi  state ‘ exit’ akan dijalankan
 Supervisor Call
penyebab: adanya request dari program yg sedang dieksekusi
penanganan: memanggil fungsi SO yg terkait

February 17, 2011 Sistem Operasi 13


PENJADUALAN PROSES
 KONSEP
 Pada multiprogramming, ketika beberapa proses dijalankan
bersamaan pada sebuah CPU, maka sebuah pilihan harus dipilih
untuk menentukan proses mana yang akan dijalankan terlebih
dahulu.
 Scheduller : bag. SO yg bertugas membuat pilihan
 Algorithm Scedulling : algoritma yg digunakan utk membuat pilihan
 Kategori Algorithm Scedulling :
Berdasarkan ‘environtment’-nya dibagi menjadi :
 Batch System
 Interactive system
 Real Time System
PENJADUALAN PROSES
 KONSEP
 Preemptive schedulling algorithm: mengambil sebuah proses dan
membiarkannya berjalan scr maksimum pada selang waktu yg
tetap. Jika proses masih tetap berjalan pada akhir waktu interval,
(diperlukan clock interupt) maka akan diambil proses lain utk
dijalankan.
Dg preemptive schedulling, CPU tetap dikendalikan ke penjadwalan.
 Non-Preemptive schedulling algorithm: mengambil sebuah proses
dan membiarkannya berjalan sampai proses tsb ter-blok atau
proses tsb dilepas oleh CPU.
PENJADWALAN PROSES
Dari perspektif ‘Batch System’ ,penjadwalan dibagi dalam 3 level (3
level ini bisa diterapkan sekaligus) yaitu :
 Admission scheduler
Scheduler ini mengatur proses-proses mana saja yang diijinkan masuk ke
sistem. Pada dasarnya, scheduler ini bebas memilih prose/job mana yang
bisa masuk sistem tidak tergantung urutan kedatangan
 Memory scheduler
Scheduler ini mengatur proses mana saja yang akan disimpan di memori
ataukah pada disk. Ini biasanya terkait dengan ukuran ruang yang diperlukan
dari suatu proses. Bila suatu proses memerlukan ruang memori yang besar,
maka ia di’swapp’ ke disk.
 CPU scheduler
Ini berkaitan dengan pengambilan proses yang ‘ready’ pada main memory
utk menjalankan ‘next’ –nya. Istilah penjadwalan yg dikenal luas sebenarnya
adalah CPU scheduler ini.

Dalam Batch system, tdk ada user yg tdk sabar menunggu utk dilayani dg
cepat, shg algoritma dg waktu lama utk setiap proses dpt
diterima(preemptive/non-preemptive).
February 17, 2011 Sistem Operasi 16
PENJADWALAN PROSES
Contoh beberapa algoritma dlm ‘Batch System’ , antara lain :
 FCFS/FIFO (First Come First Served)
Merupakan non-preemptive algoritm dan yang paling sederhana
 Shortest Job-First
Merupakan non-preemptive algoritm yang mengasumsikan ‘run-times’ dari
setiap proses diketahui.
Proses A:8 B:4 C:6 D:2 proses D:2 B:4 C:6 A:8
runtime 8 12 18 20 runtime 2 6 12 20

Perhatikan rata-rata runtime dua ururtan proses diatas


 Shortest Remaining Time Next
Ini versi preemptive dari Shortest Job-First . Akan dipilih job/proses dg ‘run
time ‘ yg tersisa adalah yg terpendek.

February 17, 2011 Sistem Operasi 17


PENJADWALAN PROSES
Dari perspektif ‘Interactive System’ ,ada beberapa algoritma (ini juga
bisa diterapkan utk CPU Scheduller saja / utk 2 level: Memory dan
CPU scheduller) yaitu :
 Round-Robin schedulling
 Priority schedulling
 Shortest Process Next ( seperti Shortest Remaining Time Next )
 Guaranteed schedulling
 Lottery schedulling
 Fair Share schedulling

Dalam Interactive system: digunakan preemptive algo. Tujuannya utk


menjamin agar suatu proses tdk menjadi satu-satunya fokus perhatian cpu
sedangkan proses lain diabaikan.

February 17, 2011 Sistem Operasi 18


PENJADWALAN PROSES
 Round-Robin schedulling
Setiap proses di tempatkan dlm sebuah interval waktu (quantum)
Bila proses ttp berjalan pada akhir quantum, maka CPU memberikan proses
lain utk dijalankan (preemptive). Semua ‘runable process’ diletakkan dalam
sebuah list. Bila sebuah suatu proses menghabiskan quantumnya, maka
proses tsb akan dipindah pada elemen terakhir list.
 Hal yang menarik dlm algoritma ini adalah ttg panjang quantum optimal
Quantum yg terlalu pendek menyebabkan terlalu banyak proses akan di
pindah/switch, shgg efisiensi CPU menurun.
Quantum yg terlalu panjang menyebabkan respon sistem menjadi terlalu
lambat utk request2 yg interaktif .
nilai quantum yg disarankan : 20-50 ms
 Gambar ( Tanenbaum 143)

February 17, 2011 Sistem Operasi 19


PENJADWALAN PROSES
 Priority schedulling
Dalam Round-robin schedulling : semua proses dianggap sama penting.
Kenyataannya tdk selalu seperti itu.
 Pengaturan prioritas
Penentuan prioritas suatu proses ditentukan diawal.
( contoh utk komputer militer, komputer komersial ).
untuk mencegah proses dg prioritas tinggi dikerjakan terus-menerus
dilakukan dg cara :
 Prioritas pada proses yg sedang ‘running’ akan diturunkan pada setiap ‘clock’, aksi
ini akan menyebabkan setelah proses selesai dijalankan, akan berpindah ke
proses dg prioritas tertinggi berikutnya
 Setiap proses ditetapkan dg maks waktu quantum, bila suatu proses
menghabiskan waktu quantum ini, maka proses akan dipindah ke proses dg
prioritas tertinggi berikutnya

February 17, 2011 Sistem Operasi 20


PENJADWALAN PROSES
 Guaranteed schedulling
Ide dasar dari penjadwalan ini adalah untuk menjamin performa CPU yang
diperoleh relatif sesuai dg yang dijanjikan. Misalkan n user menggunakan 1
CPU yang sama, maka seharusnya setiap user akan memperoleh 1/n
kekuatan CPU.
Caranya adalah dg menghitung rasio antara waktu konsumsi CPU real
dan waktu proses CPU yang sdh diketahui sebelumnya utk serangkain
proses.
nilai 0,5 : kinerja CPU hanya 0,5 dari yg seharusnya diperoleh
nilai 2 : kinerja CPU 2X lipat dari yg seharusnya diperoleh
algoritma ini akan menjalankan proses-proses mulai dari rasio yg terendah

February 17, 2011 Sistem Operasi 21


PENJADWALAN PROSES
 Lottery schedulling
Ide dasar dari penjadwalan ini adalah penentuan proses yang akan
dijalankan adalah berdasarkan proporsi waktu dari proses thd jumlah waktu
proses keseluruhan. Proses dg proporsi tertinggi akan memiliki peluang
tertinggi diproses terlebih dahulu.
Contoh : Video server mengirimkan ke clien-clienya video dg beberapa
frame rate yg berbeda : 10, 20 dan 25 frames/sec (proses 1,2 dan 3). Maka
proses 1 2,3 akan diproses dg perbandingan 10:20:25. dalam waktu yg lama,
penggunaan waktu proses CPU utk proses 1,2 dan 3: 10:20:25. Penjadwalan
memiliki tingkat responsifitas tinggi.
 Fair Share schedulling
Ide dasar dari penjadwalan ini adalah penentuan proses yang akan
dijalankan juga memperhatikan owner dari proses tsb. Contoh bila user 1
memiliki 9 proses, user2 memiliki 1 proses maka rata-rata user1 akan
menggunakan 90% waktu CPU, sedangkan user 10% waktu CPU (Bila
owner proses dibaikan ). Algoritma ini menentukan terlebih dahulu % hak
user 1,2,...utk penggunaan CPU.
contoh user1: proses A,B,C,D user2: proses E,
hak user1=user2=50% : Dg Round-Robin: AEBECEDEAEBECE...
hak user1=2xuser2 : Dg Round-Robin: ABECDEABECDE...
February 17, 2011 Sistem Operasi 22
PENJADWALAN PROSES
Dari perspektif ‘Real-time System’
 Waktu memainkan aturan yang mendasar
 Dikategorikan menjadi 2: hard real time dan soft real time
hard real time : batasan waktu scr tegas harus dipenuhi
soft real time : sekali2 melanggar batas waktu tdk diinginkan ttp dpt
ditoleransi
 Event pada sistem realtime dikelompokkan: periodic dan aperiodik
 pada sistem realtime yang merespond event-event yang periodik, sistem
realtime dikatakan schedulable bila memenuhi :
m Ci : Waktu untuk memproses event ke-i
Ci
∑ ≤1 Pi : Periode dari event ke-i
i =1 Pi
 Algoritma penjadwalan Realtime dibagi menjadi 2: static dan dinamic
Static : informasi ttg job/proses dan batasannya sdh tersedia
Dalam real-time system, biasanya menghindari ‘preemptive algo’, karena suatu
proses biasanya akan berjalan dan diblok dg cepat.
February 17, 2011 Sistem Operasi 23
HIRARKI PROSES
Tidak semua SO memiliki hirarki pada proses-nya. Hirarki proses menyatakan
tingkatan/urutan proses-proses dilakukan. Proses B dijalankan bila proses A
dijalankan, proses C dijalankan bila proses B dijalankan dst (bentuknya bisa
menyerupai tree).

SO yang memiliki hirarki proses adalah UNIX


 Proses Init (mulai proses, bila dijalankan maka banyak terminal yang
diperlukan)
 Terbentuk proses baru utk setiap cabang(terminal)
 semua proses baru siap dieksekusi menungu log in user

SO Windows merupakan contoh SO yang tidak memiliki hirarki proses

February 17, 2011 Sistem Operasi 24


THREAD
Proses memiliki 2 karakteristik:
 Resource Ownership
dari waktu ke waktu suatu
proses dialokasikan memiliki
resource2 spt main memory,
I/O device dan File. SO
membentuk fungsi khusus utk
melindungi hal ini thd interfensi
luar
 Schedulling/execution
eksekusi dari proses melalui
program.
 Thread: Bagian proses
memiliki karakteristik
execution, disebut juga
proses ringan (lightweight).
February 17, 2011 Sistem Operasi 25
THREAD
Konsep Dasar
 Thread memiliki :
 ID : identitas unik suatu thread
 Program counter yang menjaga track dg instruksi-instruksi
berikutnya.
 Register yang mengendalikan variable2 yg sedang bekerja
 Stack berisi history dari eksekusi-eksekusi yg telah dilakukan
 Thread saling berbagi bagian program, bagian data dan
sumber daya sistem operasi dengan thread lain yang
mengacu pada proses yang sama.

February 17, 2011 Sistem Operasi 26


THREAD
Konsep MULTI THREADING Gambar Thread dan Proses (stal 162)
 Didefinisikan sebagai.beberapa
thread yang berada dalam satu
proses
 Multithread bekerja dengan
prinsip yang mirip dg
multiprogramming, tetapi
berbeda dlm hal
independensinya. Dalam
multiprogramming, sistem
memberi ilusi beberapa proses
bekerja secara serial terlihat
seperti paralel.

February 17, 2011 Sistem Operasi 27


THREAD
Konsep Multithreading
 Beberapa thread dlm satu proses tidak sepenuhnya independen
sbgmana proses.
 Semua thread dlm satu proses yg sama akan memiliki ‘addres
space’ yg sama, dlm arti mereka juga berbagi variabel global
yang sama.
 Karena antar thread tidak sepenuhnya independen, maka ada
bagian thread yg dishare bersama dan ada juga yang bersifat
private.
 CPU berpindah-pindah antara satu thread dg lainnya shg
memberikan ilusi bahwa thread-thread tsb bekerja secara paralel.

February 17, 2011 Sistem Operasi 28


THREAD
 Gambar share and private item dalam Thread (Tan. 83)

February 17, 2011 Sistem Operasi 29


THREAD STATES
Beberapa state dalam Thread (stall 165)
 Spawn/new
ketika sebuah proses baru dibentuk, maka thread baru yg terkait
dg proses tsb juga dibentuk.
 Block
terjadi ketika thread menunggu suatu event, CPU mungkin
menjalankan thread lainya(ready) dlm proses yg sama/berbeda.
semua info disimpan dlm user register, program pointer, stack
 Unblock/ready
bila thread tdk di blok
 Finish
stack selesai dijalankan, isi register dan stack : dealokasi

February 17, 2011 Sistem Operasi 30


PENGGUNAAN THREAD
Berikut adalah alasan diperlukan/digunakan thread
 Untuk membuat pemrograman menjadi lebih mudah
Dg memecah suatu aplikasi menjadi ‘multiple sequential thread’
yang seolah-olah berjalan paralel
 Kemudahan dalam hal ‘create’ dan ‘destroy’
ini karena thread tdk terikat dg sumber daya(resources)
 Performansi
 Thread akan sangat membantu terutama bila tdp operasi-operasi
komputasi dan I/O yang dilakukan
 Sangat diperlukan dalam sistem multiprosesor
dalam sistem multiprosesor, keberadaan thread sangat
diperlukan

February 17, 2011 Sistem Operasi 31


PENGGUNAAN THREAD
Contoh
• Seorang user ingin menghapus 1 kalimat pada hal 1 dari
dokumen dg 1-800 hal, setelah itu ingin melihat dan merubah hal.
600. apa yang dilakukan komputer ?
• Komputer /word processor, dipaksa harus mengformat kembali
keseluruhan buku sampai hal. 600, karena ia tidak akan tahu
kalimat pertama hal. 600 sebelum ia memproses semua hal.
Sebelumnya. Akan muncul delay yang cukup mengganggu
• Thread dapat membantu disini
misal word processor ditulis sbg program dg 2 thread. Thread 1
bertugas utk berinteraksi dg user, thread2 menangani reformat
hal. Ketika sebuah kalimat didelete pada hal. 1, maka thread 2
segera melakukan format keseluruhan hal., sementara thread1
berkomunikasi dg keyboard dan mouse utk menjalankan perintah
sederhana seperti ‘scrolling’ hal, sampai thread 2 selesai
melakukan keseluruhan format (3 thread ????).
February 17, 2011 Sistem Operasi 32
IMPLEMENTASI THREAD
Thread level user
• Dilakukan dengan menempatkan keseluruhan paket thread
dalam ‘user space’.
• Keuntungan implementasi ini adalah
 ia dapat diimplementasi pada SO yang tidak mendukung
thread. Semua SO dulu menerapkan ini, dan beberapa tetap
melakukannya sampai sekarang.
 Ia dapat mengijinkan setiap proses utk memiliki algo.
Penjadwalan tersendiri
• setiap proses memiliki ‘private thread table’ yang menjaga track
dari thread tetap dalam proses tsb.
• Bila suatu thread melakukan hal yg menyebabkan ia menjadi
diblok, maka ia memanggil prosedur ‘run-time system’. Prosedur
ini akan menentukan apakah Thread harus ditempatkan dlm
state’blocked’.kalau ya, maka ia akan menyimpan register thread
dlm tabel thread dan mencari
February 17, 2011
dlm tabel thread yg ‘ready’
Sistem Operasi 33
IMPLEMENTASI THREAD
Thread level user
Kerugian implementasi ini
• ‘blocking system call’ sulit diimplementasikan
Misal thread membaca input keyboard sebelum sembarang
tombol ditekan, membiarkan thread dlm kondisi tsb membuat
‘system call’ ditolak, karena akan menghentikan semua thread.
• ‘Page fault’ sulit ditangani
ketika thread menyebabkan ‘page fault’ , maka keberadaan
thread tdk diketahui, scr alami SO akan mem-blok keseluruhan
proses sampai I/O pada disk selesai, meskipun thread lain
mungkin berjalan
• Ketika suatu thread berjalan, maka tdk akan ada thread lain yg
berjalan sebelum thread tsb selesai/menyerah.

February 17, 2011 Sistem Operasi 34


IMPLEMENTASI THREAD
Thread level Kernel
 Tidak ada ‘run-time system’
 Tidak ada tabel thread pada setiap prosesnya
 Proses create/destroy thread dilakukan dg membuat panggilan
kernel yg akan meng-update tabel thread kernel.
 Ketika sebuah ‘ter-blok’, maka kernel dpt menjalankan thread
lainnya dari proses yg sama/berbeda.
 Jika suatu thread menyebkan ‘page fault’, maka kernel akan dg
mudah melihat apakah proses memiliki thread yg siap dijalankan
dan menjalankannya, selama menunggu page yg diperlukan
diambil dari disk.

February 17, 2011 Sistem Operasi 35


IMPLEMENTASI THREAD
 Gambar implementasi user dan kernel space (Tan 91)’

February 17, 2011 Sistem Operasi 36

Anda mungkin juga menyukai