You are on page 1of 46

Penjadwalan dan Interaksi Proses

Oleh : Wahyu Andhyka Kusuma 081233148591 Wahyu_dink@umm.ac.id

Definisi Proses
• Proses merupakan program yang sedang dieksekusi

Status Proses

Diskusikan Permasalahan Berikut :
• Fungsi Penjadwalan Proses • Perbedaan Job Queue, Ready Queue dan Device Queue • Proses Creation dan Proses Termination

CPU sering di-switch diantara diantara proses dimana user harus berinteraksi untuk setiap program saat dirunning • Pada sistem uniproses. tidak pernah terjadi lebih dari satu proses yang dirunning. harus menunggu sampai CPU bebas dan dapat dijadwalkan ulang .Penjadwalan Proses • Pada lingkungan multiprograming beberapa proses harus dijadwalkan untuk memaksimalkan kinerja CPU • Pada lingkungan time-shared. bila terdapat banyak proses.

Header berisi pointer PCB pertama dan terakhir dari List .Scheduling Queue • Secara umum antrian penjadwalan dapat diklasifikasikan menjadi 3: ▫ Job Queue : antrian berisi semua proses yang akan masuk sistem ▫ Ready Queue : tempat proses dimemori utama yang menunggu dieksekusi ▫ Device queue : deretan proses yang menunggu peralatan I.O • Setiap antrian disimpan sebagai linkedlist.

Ready Queue dan Device Queue .

Diagram Antrian Penjadwalan Proses .

Scheduler • Scheduler dilibatkan untuk memilih proses dari scheduling queue yang berbeda • Secara umum terdapat 3 : ▫ Long Term Scheduler (Job Scheduler) ▫ Short Term Scheduler (CPU Scheduler) ▫ Medium Term Scheduler .

digunakan hanya jika proses meninggalkan sistem .Long Term Scheduler • Proses pada sistem batch di-spool ke massstorage (disk) • Long Term Scheduler digunakan untuk memilih proses dari pool dan menyimpan ke memory • Long term Scheduler tidak sering dmengeksekusi.

broses dieksekusi hanya beberapa milidetik sebelum menunggu I.O • Contoh : Jika Short term membutuhkan 10ms untuk memutuskan mengeksekusi 100ms maka 10/100 : 10% CPU digunakan untuk penjadwalan .Short Term Scheduler • Short term scheduler digunakan untuk memilih diantara proses yang siap dieksekusi dan salah satunya dialokasikan ke CPU • Short term scheduler sering digunakan untuk memilih proses baru untuk CPU.

Medium term scheduler • Beberapa OS seperti time-sharing membutuhkan penjadwalan level tambahan yang disebut medium term scheduler .

Operasi-Operasi Proses • Proses-proses dalam sistem dapat dijalankan secara konkuren dan harus diciptakan serta dihapus secara dinamis. • Sistem Operasi harus menyediakan mekanisme untuk proses creation dan termination .

. sedangkan proses yang baru disebut childern process. • Proses baru ini juga dimungkinkan membuat proses yang lebih baru lagi.Proses Creation • Satu proses dimungkinkan untuk membuat sejumlah proses baru melalui system call createprocess. • Proses yang dibuat sebelumnya disebut parent process.

▫ Parent melanjutkan eksekusi secara konkuren dengan childern ▫ Parent menunggu sampai beberapa atau semua childern terminate.Proses Creation Pada saat sebuah proses membuat proses baru. terdapat dua kemungkinan pada proses eksekusi. .

Proses Creation Terdapat pula dua kemungkinan pada address space proses baru : ▫ Child process merupakan duplikat dari parent process ▫ Child Process memiliki program untuk di-load ke dalam address space. .

.Process Termination • Sebuah proses terminate ketika proses itu selesai mengeksekusi instruksi terakhir dan meminta sistem operasi untuk menghapusnya melalui system call.

Tahukah Kalian Apa beda dari Penjadwalan Proses dan Penjadwalan CPU .

Konsep Penjadwalan CPU • Penjadualan CPU adalah basis dari multi programming sistem operasi • Dengan men-switch CPU diantara proses. sistem operasi dapat membuat komputer produktif .

Sistem operasi dapat saja akan menghentikan CPU dari suatu proses yang sedang dieksekusi dan memberikan sumberdaya kepada proses yang lainnya .Konsep Dasar Penjadwalan • Tujuan dari multi programming adalah untuk mempunyai proses berjalan secara bersamaan • Ketika suatu proses harus menunggu.

Konsep Dasar Penjadwalan • CPU adalah salah satu sumber dari komputer yang penting yang menjadi sentral dari sentral penjadualan di sistem operasi • Kapanpun CPU menjadi idle. sistem operasi harus memilih salah satu proses untuk masuk kedalam antrian ready (siap) untuk dieksekusi .

Penjadwalan Preemptive dan Non Preemptive • Penjadwalan preemptive : Strategi yang mengijinkan proses yang sedang dieksekusi untuk ditangguhkan sementara digunakan oleh windows 95 ke atas • Penjadwalan non preemptive : Sekali CPU telah dialokasikan untuk sebuah proses. maka tidak dapat di ganggu digunakan oleh windows 3.X .

• Banyak kriteria yang dianjurkan untuk membandingkan penjadualan CPU algoritma. kita harus memikirkan properti yang berbeda untuk algoritma yang berbeda.Kriteria Penjadualan • Algoritma penjadualan CPU yang berbeda mempunyai property yang berbeda. • Dalam memilih algoritma yang digunakan untuk situasi tertentu. .

Salah satu ukuran kerja adalah banyak proses yang diselesaikan per unit waktu. jika begitu kerja telah dilaksanakan. . CPU utilization akan mempunyai range dari 0 ke 100 persen. Untuk proses yang lama mungkin satu proses per jam . Di sistem yang sebenarnya seharusnya ia mempunyai range dari 40 persen samapi 90 persen Throughput  jika CPU sibuk mengeksekusi proses. 2. CPU utilization  kita ingin menjaga CPU sesibuk mungkin. untuk proses yang sebentar mungkin 10 proses perdetik. disebut througput.Kriteria Penjadualan 1.

Turn around time adalah jumlah periode untuk menunggu untuk dapat ke memori. Interval dari waktu yang dijinkan dengan waktu yang dibutuhkan untuk menyelesaikan sebuah prose disebut turn around time. Waiting time adalah jumlah periode menghabiskan di antrian ready. eksekusi di CPU. Turnaround time  dari sudut pandang proses tertentu. Waiting time  algoritma penjadualan CPU tidak mempengaruhi waktu untuk melaksanakan proses tersebut atau I/O. .Kriteria Penjadualan 3. dan melakukan I/O 4. menunggu di ready queue. kriteria yang penting adalah berapa lama untuk mengeksekusi proses tersebut. itu hanya mempengaruhi jumlah waktu yang dibutuhkan proses di antrian ready.

Sering sebuah proses dapat memproduksi output diawal. Response time  di sistem yang interaktif. Biasanya yang dilakukan adalah memaksimalkan CPU utilization dan throughput. dan response time dalam kasus tertentu kita mengambil rata-rata. dan dapat meneruskan hasil yang baru sementara hasil yang sebelumnya telah diberikan ke user. waiting time. . turnaround time mungkin bukan waktu yang terbaik untuk kriteria. tetapi bukan waktu yang dipakai output untu respon tersebut. dan minimalkan turnaround time. Ukuran yang lain adalah waktu dari pengiriamn permintaan sampai respon yang pertama di berikan. yaitu waktu untuk memulai memberikan respon. Ini disebut response time.Kriteria Penjadualan 5.

Dispatcher • Komponen yang lain yang terlibat dalam penjadualan CPU adalah dispatcher yang berfungsi : ▫ Switching context ▫ Switching to user mode ▫ Lompat dari suatu bagian di progam user untuk mengulang progam .

dimana proses lain menunggu satu proses besar mengembalikan sumber daya CPU ▫ Algoritma ini nonpreemptive . First-Served ▫ Algoritma ini akan mendahulukan proses yang lebih dulu datang ▫ Kelemahan algoritma ini adalah waiting time rata-rata yang cukup lama ▫ Muncul istilah convoy effect.Algoritma Penjadualan • First-Come.

▫ Jika time quantum-nya habis atau proses sudah selesai CPU akan dialokasikan ke proses berikutnya. ▫ Tak ada proses yang diprioritaskan ▫ Jika time quantum terlalu besar. jika terlalu kecil akan semakin banyak peralihan proses sehingga banyak waktu terbuang .Algoritma Penjadualan • Round-Robin Schedulling ▫ Algoritma ini menggilir proses yang ada di antrian. Proses akan mendapat jatah sebesar time quantum. sama saja dengan algoritma first-come first-served.

prioritas semakin tinggi. yaitu semakin lama menunggu.Algoritma Penjadualan • Priority Schedulling ▫ Algoritma ini memberikan skala prioritas kepada tiap proses ▫ Proses yang mendapat prioritas terbesar akan didahulukan. ▫ Algoritma ini dapat preemptive maupun nonpreeemptive ▫ Kelemahan dari algoritma ini adalah proses dengan prioritas kecil tidak akan mendapat jatah CPU. . Hal ini dapat diatasi dengan aging.

Algoritma Penjadualan • Multilevel Queue Schedulling ▫ Algoritma ini mengelompokkan antrian dalam beberapa buah antrian ▫ Antrian-antrian tersebut diberi prioritas ▫ Tiap antrian boleh memiliki algoritma yang berbeda ▫ Semakin tinggi tingkatan prioritasnya. semakin besar jatah waktu CPU-nya .

Jika preemptive. ▫ Waiting time rata-rata dari algoritma ini sangat kecil. jika ada proses datang dengan sisa CPU burst yang lebih kecil daripada yang sedang dieksekusi. sehingga layak disebut optimal ▫ Kelemahan algoritma ini yaitu kita tak pernah tahu secara pasti panjang CPU burst proses berikutnya ▫ Algoritma ini dapat merupakan preemptive atau nonpreemptive.Algoritma Penjadualan • Shortest-Job First Schedulling ▫ Proses diatur menurut panjang CPU burst berikutnya (lebih tepatnya shortest next CPU burst). maka proses tersebut akan menggantikan proses yang sedang dieksekusi .

Beberapa istilah yg sering muncul • Average Turn Around Time Rata-rata waktu total yg dibutuhkan sebuah proses dari datang sampai selesai dieksekusi oleh CPU • Burst Time Waktu yg dibutuhkan utk mengeksekusi sebuah proses • Average Waiting Time Rata-rata waktu yang dihabiskan proses selama berada pada status ready ( menunggu eksekusi CPU ) .

Algorithma Penjadwalan • First-Come. First-Served ( FCFS ) • Round Robin Schedulling • Priority Schedulling • Shortest-Job First Schedulling ( SJF ) • Multilevel Queue Schedulling .

First-Served ▫ Algoritma ini akan mendahulukan proses yang lebih dulu datang ▫ Kelemahan algoritma ini adalah waiting time rata-rata yang cukup lama ▫ Muncul istilah convoy effect.First-Come. dimana proses lain menunggu satu proses besar mengembalikan sumber daya CPU ▫ Algoritma ini nonpreemptive .

Contoh Kasus PROSES P1 P2 P3 BRUST TIME 24 3 3 WAKTU KEDATANGAN 0 1 2 Gant Chart : P1 0 Waiting Time P1 = 0 | P2 = 24 – 1 = 23 T P2 24 | T P3 27 P3 = 27 – 2 = 25 T 30 Average Waiting Time = Turn Around Time 0 + 23 + 25 = 16 3 24 + 26 + 28 = 26 3 P1 = 24 | P2 = 27 – 1 = 26 | P3 = 30 – 2 = 28 Average Turn Arround Time = .

jika terlalu kecil akan semakin banyak peralihan proses sehingga banyak waktu terbuang . Proses akan mendapat jatah sebesar time quantum. ▫ Tak ada proses yang diprioritaskan ▫ Jika time quantum terlalu besar. sama saja dengan algoritma first-come first-served.Round-Robin Schedulling ▫ Algoritma ini menggilir proses yang ada di antrian. ▫ Jika time quantum-nya habis atau proses sudah selesai CPU akan dialokasikan ke proses berikutnya.

Contoh Kasus PROSE S BRUST TIME WKT KEDATANGAN P1 P2 9 6 0 1 Time Quantum 3 Gant Chart : P1 0 Waiting Time 3 P2 6 P1 9 P2 T P1 12 T 15 P1 = 0 + 3 + 3 = 6 | P2 = ( 3 .1 ) + 3 = 5 Average Waiting Time = Turn Around Time 6 + 5 = 5.5 2 15 + 11 = 13 2 P1 = 15 | P2 = 12 – 1 = 11 Average Turn Arround Time = .

▫ Algoritma ini dapat preemptive maupun nonpreeemptive ▫ Kelemahan dari algoritma ini adalah proses dengan prioritas kecil tidak akan mendapat jatah CPU. yaitu semakin lama menunggu.Priority Schedulling ▫ Algoritma ini memberikan skala prioritas kepada tiap proses ▫ Proses yang mendapat prioritas terbesar akan didahulukan. . Hal ini dapat diatasi dengan aging. prioritas semakin tinggi.

Contoh Kasus Priority Preemptive PROSES P1 P2 P3 BRUST TIME 9 6 3 WKT KEDATANGAN 0 1 2 PRIORITY 3 2 1 Gant Chart : P1 P2 0 1 2 P3 T P2 5 T P1 10 T 18 Waiting Time P1 = 0 + ( 10 – 1 ) = 9 | P2 = 0 + ( 5 – 2 ) = 3 | P3 = 0 9 + 3+ 0 Average Waiting Time = = 4 3 P1 = 18 | P2 = 10 – 1 = 9 | P3 = 5 – 2 = 3 18 + 9 + 3 = 10 3 Turn Around Time Average Turn Arround Time = .

2 ) = 7 0 + 11 + 7 Average Waiting Time = = 6 3 Turn Around Time P1 = 9 | P2 = 18 – 1 = 17 | P3 = 12 – 2 = 10 Average Turn Arround Time = 9 + 17 + 10 = 12 3 .1 ) = 11 | P3 = ( 9 .Contoh Kasus Priority Non-preemptive PROSES P1 P2 P3 BRUST TIME 9 6 3 WKT KEDATANGAN 0 1 2 PRIORITY 3 2 1 Gant Chart : P1 0 Waiting Time P1 = 0 | T P3 9 T P2 12 T 18 P2 = ( 12 .

maka proses tersebut akan menggantikan proses yang sedang dieksekusi . Jika preemptive. ▫ Waiting time rata-rata dari algoritma ini sangat kecil. sehingga layak disebut optimal ▫ Kelemahan algoritma ini yaitu kita tak pernah tahu secara pasti panjang CPU burst proses berikutnya ▫ Algoritma ini dapat merupakan preemptive atau nonpreemptive.Shortest-Job First Schedulling ▫ Proses diatur menurut panjang CPU burst berikutnya (lebih tepatnya shortest next CPU burst). jika ada proses datang dengan sisa CPU burst yang lebih kecil daripada yang sedang dieksekusi.

Contoh Kasus JFS Preemptive PROSES P1 P2 P3 BRUST TIME 9 6 3 WKT KEDATANGAN 0 1 2 Gant Chart : P1 P2 0 1 2 P3 5 P2 T 10 T P1 T 18 Waiting Time P1 = 0 + ( 10 – 1 ) = 9 | P2 = 0 + ( 5 – 2 ) = 3 | P3 = 0 9 + 3+ 0 Average Waiting Time = = 4 3 P1 = 18 | P2 = 10 – 1 = 9 | P3 = 5 – 2 = 3 18 + 9 + 3 = 10 3 Turn Around Time Average Turn Arround Time = .

Contoh Kasus SJF Non-preemptive PROSES P1 P2 P3 BURST TIME 9 6 3 WKT KEDATANGAN 0 1 2 Gant Chart : P1 0 Waiting Time P1 = 0 | T P3 9 T P2 12 T 18 P2 = ( 12 .2 ) = 7 0 + 11 + 7 Average Waiting Time = = 6 3 Turn Around Time P1 = 9 | P2 = 18 – 1 = 17 | P3 = 12 – 2 = 10 Average Turn Arround Time = 9 + 17 + 10 = 12 3 .1 ) = 11 | P3 = ( 9 .

semakin besar jatah waktu CPU-nya .Multilevel Queue Schedulling ▫ Algoritma ini mengelompokkan antrian dalam beberapa buah antrian ▫ Antrian-antrian tersebut diberi prioritas ▫ Tiap antrian boleh memiliki algoritma yang berbeda ▫ Semakin tinggi tingkatan prioritasnya.

q = 5 Priority ( non-preemptive ) . Waiting Time serta Avg. q = 2 Round-Robin.Latihan Soal… PROSES BRUST TIME P1 P2 P3 10 2 5 PRIORITY 3 1 2 WKT KEDATANGAN 0 3 4 Gambar Gant Chart dan Tentukan Avg. Turn Arround Time dari ketiga proses di atas dengan algoritma : a) b) c) d) e) FCFS SJF ( preemptive ) Round-Robin.