21
MANAJEMEN PROSES 1. Definisi Proses: Proses adalah program yang sedang dieksekusi atau sofware yang sedang dilaksanakan. Konsep Dasar : Multiprogramming system Melakukan proses satu persatu secara bergantian dalam waktu yang sangat cepat (hardware level). Setiap proses mempunyai satu virtual CPU. Pseudoparallelism Melakukan lebih dari satu pekerjaan dalam waktu yang bersamaan (user level). Model Proses: Sequential Process Multiprogramming CPU switching Satu program Empat Program Counter Counter 1 A B A B C D

PENGATURAN PROSESdody_pernadi.staff.gunadarma.ac.id/Downloads/files/43489/... · Web viewSatu program Empat Program Counter Counter Proses D C B A Time Gambar 1 Model Proses (Tanenbaum,

  • Upload
    others

  • View
    0

  • Download
    0

Embed Size (px)

Citation preview

Page 1: PENGATURAN PROSESdody_pernadi.staff.gunadarma.ac.id/Downloads/files/43489/... · Web viewSatu program Empat Program Counter Counter Proses D C B A Time Gambar 1 Model Proses (Tanenbaum,

MANAJEMEN PROSES

1. Definisi Proses: Proses adalah program yang sedang dieksekusi atau sofware yang sedang dilaksanakan.

Konsep Dasar : Multiprogramming system

Melakukan proses satu persatu secara bergantian dalam waktu yang sangat cepat (hardware level).Setiap proses mempunyai satu virtual CPU.

PseudoparallelismMelakukan lebih dari satu pekerjaan dalam waktu yang bersamaan (user level).

Model Proses: Sequential Process Multiprogramming CPU switching

Satu program Empat ProgramCounter Counter

1

A

B

C

D A B C D

Page 2: PENGATURAN PROSESdody_pernadi.staff.gunadarma.ac.id/Downloads/files/43489/... · Web viewSatu program Empat Program Counter Counter Proses D C B A Time Gambar 1 Model Proses (Tanenbaum,

Proses D

C

B

ATime

Gambar 1 Model Proses(Tanenbaum, Bab 2, hlm. 28)

Hirarki Proses Create & destroy process

Sistem operasi yang mendukung konsep proses, harus menyediakan suatu cara untuk membuat (create) proses dan menghilangkan (destroy) proses

FORK system call : mekanisme untuk membuat (create) proses yang identik dengan proses yang memanggilnya.

Pada Unix, parent dan child process running secara parallel.

Pada DOS, parent dan child process running secara bergantian (sequential).

Process scheduler : untuk pengaturan eksekusi proses

Status Proses: Running Blocked Ready

2

Page 3: PENGATURAN PROSESdody_pernadi.staff.gunadarma.ac.id/Downloads/files/43489/... · Web viewSatu program Empat Program Counter Counter Proses D C B A Time Gambar 1 Model Proses (Tanenbaum,

Transisi Status

1 3 2

4

Gambar 2. Transisi Status Proses(Tanenbaum, Bab 2, hlm. 30)

1. Proses diblok untuk input2. Time quantum proses habis3. Proses baru running4. Input telah tersedia

Implementasi Proses

Untuk mengimplementasikan model proses, sistem operasi menggunakan suatu tabel yang disebut tabel proses.

Setiap proses menggunakan satu entry. Setiap entry berisi tentang: status proses, program

counter, stack pointer, alokasi memori, status file, informasi scheduling dll.

3

Running

Blocked Ready

Page 4: PENGATURAN PROSESdody_pernadi.staff.gunadarma.ac.id/Downloads/files/43489/... · Web viewSatu program Empat Program Counter Counter Proses D C B A Time Gambar 1 Model Proses (Tanenbaum,

Typikal Tabel Proses(Tanenbaum, Bab 2, hlm. 32)

Process management

Memory management

File management

Registers Pointer to text segment

UMASK mask

Program counter Pointer to data segment

Root directory

Program status word

Ponter to bss segment

Working directory

Stack pointer Exit status File descriptorsProcess state Signal status Effective uidTime when process started

Process id Effective gid

CPU time used Parent process System call parameters

Children’s CPU time

Process group Various flag bits

Time of next alarm

Real uid

Message queue pointers

Effective uid

Pending signal bits

Real gid

Process id Effective gidVarious flag bits Bit maps for

signalsVarious flag bits

Interupsi pada prosesor ada dua cara : Interupsi: berasal dari luar prosesor (peripheral / alat

mengirim sinyal kepada prosesor untuk meminta pelayanan)

Polling: berasal dari prosesor (prosesor secara bergilir mengecek apakah ada peripheral yang memerlukan pelayanan)

4

Page 5: PENGATURAN PROSESdody_pernadi.staff.gunadarma.ac.id/Downloads/files/43489/... · Web viewSatu program Empat Program Counter Counter Proses D C B A Time Gambar 1 Model Proses (Tanenbaum,

Interupsi dapat di-enable dan disable tergantung dari level-nya.

Pembangkitan interupsi dapat berasal dari :- program - prosesor- unit kontrol - memori- peripheral I/O - sumber daya lain- polling

Interrupt vector : berisi alamat prosedur service interupsi.

Langkah-langkah yang dilakukan sistem operasi pada saat terjadi interupsi:

1. Hardware memasukkan program counter dll ke dalam stack

2. Hardware memuatkan (load) program counter baru dari vektor interupsi

3. Prosedur bhs. Rakitan menyimpan isi register4. Prosedur bhs. Rakitan men-set stack yang baru5. Prosedur C menandai proses servis siap (ready)6. Scheduler menentukan proses mana yang akan jalan

berikutnya.7. Procedure C kembali ke modus bhs rakitan8. Prosedur bhs. Rakitan memulai proses yang sedang

dijalankan.

2. Komunikasi Antar Process

Komunikasi antar proses (Inter Process Communication / IPC) : beberapa proses biasanya berkomunikasi dengan proses lainnya.

Contohnya pada shell pipeline: output dari proses pertama harus diberikan ke proses kedua dst.

Pada beberapa sistem operasi, proses-proses yang bekerja bersama sering sharing (berbagi) media

5

Page 6: PENGATURAN PROSESdody_pernadi.staff.gunadarma.ac.id/Downloads/files/43489/... · Web viewSatu program Empat Program Counter Counter Proses D C B A Time Gambar 1 Model Proses (Tanenbaum,

penyimpan, dimana suatu proses dapat membaca dan menulis pada shared storage (main memory atau files)

Race Condition : Suatu kondisi dimana dua atau lebih proses mengakses shared memory/data pada saat yang bersamaan dan hasil akhirnya tidak sesuai dengan yang dikehendaki.

Contoh race condition:Print spoolerSpooler directory

Proses A Cek slot input yang kosong (7) dan stopInterupsi …

Proses B meletakkan data yang akan diprint pada slot (7), dan stop (slot berikut 7+1 = 8)

: Prosesor mengerjakan proses lainProses A dilanjutkan meletakkan data yang akan

diprint di slot (7), sehingga meng-overwrite data proses B yang diletakkan di slot (7)

Maka proses B tidak akan dilaksanakan, dan tidak terdeteksi terjadi kesalahan.

6

Page 7: PENGATURAN PROSESdody_pernadi.staff.gunadarma.ac.id/Downloads/files/43489/... · Web viewSatu program Empat Program Counter Counter Proses D C B A Time Gambar 1 Model Proses (Tanenbaum,

Spooler directory:

4 abc

5 prog.c

6 prog. n

7

:Gambar 3. Race Condition pada Spooler directory

(Tanenbaum, Bab 2, hlm. 34)

Untuk menghindari race condition maka harus diatur agar dua proses yang mempunyai critical section yang sama tidak memasuki critical section pada saat yang bersamaan.

Critical Sections :bagian dari program yang mengakses shared memory, yang dapat menyebabkan terjadinya race condition.

Empat (4) kondisi untuk mencegah race condition:1. Tidak ada dua proses yang memasuki critical

sectionnya secara simultan (bersamaan)2. Tidak ada asumsi yang dibuat yang berhubungan

dengan kecepatan dan jumlah CPU 3. Tidak ada proses yang berjalan diluar critical

sectionnya yang dapat memblokir proses-proses lain.4. Tidak ada proses yang menunggu selamanya untuk

masuk ke critical sectionnya.

7

Process A

Process B

Out 4

In 7

Page 8: PENGATURAN PROSESdody_pernadi.staff.gunadarma.ac.id/Downloads/files/43489/... · Web viewSatu program Empat Program Counter Counter Proses D C B A Time Gambar 1 Model Proses (Tanenbaum,

Mutual Exclusion (mutex) With Busy Waiting:

Jika suatu proses sedang mengakses shared memory di critical sectionnya, tidak ada satu prosespun yang dapat memasuki critical section (mutual exclusion) dan menyebabkan masalah.

- Jenis-jenis mutual exclusion:

Disabling interrupts

Dengan cara men-disable interrupt yang masuk pada saat proses sedang berada pada critical section-nya.

Cara ini kadang-kadang cukup berguna untuk kernel tetapi tidak untuk user.

Cara inipun tidak begitu baik untuk CPU yang jumlahnya lebih dari satu, dimana disable interrupt hanya mengenai CPU yang sedang menjalankan proses itu, dan tidak berpengaruh terhadap CPU lain.

Lock variables

Setiap proses yang akan mengakses ke critical sectionnya harus mengecek lock variable, Jika 0 berarti proses dapat memasuki crtitical sectionnya, Jika 1 maka proses harus menunggu sampai lock variable = 0Kelemahan : dua proses masih dapat memasuki critical section pada saat yang bersamaan.

Sewaktu satu proses mengecek lock variable = 0, pada saat akan menset 1 ada interupsi untuk melaksanakan proses lain yang juga ingin memasuki critical sectionnya, maka akan terjadi race condition.

8

Page 9: PENGATURAN PROSESdody_pernadi.staff.gunadarma.ac.id/Downloads/files/43489/... · Web viewSatu program Empat Program Counter Counter Proses D C B A Time Gambar 1 Model Proses (Tanenbaum,

Strict Alteration

Dengan mengamati variabel turn untuk menentukan siapa yang akan memasuki critical sectionnya.

while (TRUE) {

while (turn != 0) /*wait*/;critical_section ( );turn = 1;noncritical_section ( );

}while (TRUE) {

while (turn != 1) /*wait*/;critical_section ( );turn = 0;noncritical_section ( );

}

Bukanlah ide yang baik jika satu proses lebih lambat dari yang lain.

Solusi Peterson

# include “prototype.h”

# define FALSE 0# define TRUE 1# define N 2 /* banyaknya proses*/

int turn;int interested [N]; /* nilai awal di-set = 0)

void enter_region (int process) /* proses = 1 atau 0 */{int other; /* jumlah proses lainnya */other = 1 – process; /* proses lainnya */

9

Page 10: PENGATURAN PROSESdody_pernadi.staff.gunadarma.ac.id/Downloads/files/43489/... · Web viewSatu program Empat Program Counter Counter Proses D C B A Time Gambar 1 Model Proses (Tanenbaum,

interested[process] = TRUE; /* menunjukkan tertarik*/turn = process; /* set flag */while (turn == process && interested[other] == TRUE)}

void leave_region(int process) /* proses yg selesai */{

interested[process] = FALSE; ?8 meninggalkan critical region */

}

Proses tidak akan diteruskan sampai while terpenuhi, bila interested[other] == TRUE, maka proses akan menunggu sampai FALSE.Kelemahannya: Jika proses memanggil enter-region-nya secara hampir bersaan, yang disimpan di turn adalah data yang ditulis terakhir.

Instruksi TLS (Test and Set Lock)

Dengan bantuan hardware, menentukan siapa yang berhak memasuki critical region (section)

enter_region:tsl reg,flag | copy flag ke reg dan set flag = 1cmp reg , #0 | apakah flag = 0 jnz enter_region | jika <> 0 loop lagiret | return ke caller; masuk critical region

leave_region:mov flag, #0 | simpan 0 ke flagret | return ke caller

Proses harus memanggil ini pada saat yang tepat.

Kelemahan utama dengan busy waiting :- menyita banyak waktu CPU

10

Page 11: PENGATURAN PROSESdody_pernadi.staff.gunadarma.ac.id/Downloads/files/43489/... · Web viewSatu program Empat Program Counter Counter Proses D C B A Time Gambar 1 Model Proses (Tanenbaum,

- problem inversi prioritas

Sleep and Wake Up

Mekanismenya:Proses akan diblok/ tidur (sleep) apabila tidak bisa memasuki critical section-nya dan akan dibangunkan (wake up) /ready apabila resource yang diperlukan telah tersedia.

SLEEP : system call membuat proses yang memanggil diblok (blocked)

WAKE UP : system call yang membuat proses yang memanggil menjadi ready.

Contoh : Producer-Consumer Problem (bounded buffer)

Beberapa proses share buffer dengan ukuran tetap

Jika buffer penuh producer sleepJika buffer kosong consumer sleepJika buffer mulai kosong producer wake upJika buffer terisi consumer wake up

Masih ada kemungkinan terjadi race condition

Semaphores (Dijkstra, 1965)

- Mengecek, mengubah dan sleep } satu instruksi - Mengubah dan wake up } yg atomik

Instruksi tsb. sangat berguna untuk sinkronisasi

Dapat diimplementasikan untuk memecahkan producer-consumer problem

11

Page 12: PENGATURAN PROSESdody_pernadi.staff.gunadarma.ac.id/Downloads/files/43489/... · Web viewSatu program Empat Program Counter Counter Proses D C B A Time Gambar 1 Model Proses (Tanenbaum,

Mekanismenya menggunakan:

Variabel integer untuk menghitung jumlah wake up yang disimpan/tertunda

Bernilai 0 bila tidak ada wake up yang disimpan, bernilai positif bila ada wake up yang tertunda

Dua macam operasi terhadap Semaphore:

1. DOWN(S) :If S >= 0 then

S:= S – 1else sleep (S)

End;

2. UP(S) :S:= S + 1;If S <= 0 then wakeup(S)End;

Operasi DOWN dan UP merupakan operasi yang bersifat Atomic (Atomic Action).

Event Counters (Reed and Kanodia, 1979)

Tiga operasi terhadap event counter (E) :1. Read (E) : Return current value of E2. Advance (E) : Atomically increment E by 13. Wait until E has a value of v or more

Monitors Higher level synchronization primitive.

12

Page 13: PENGATURAN PROSESdody_pernadi.staff.gunadarma.ac.id/Downloads/files/43489/... · Web viewSatu program Empat Program Counter Counter Proses D C B A Time Gambar 1 Model Proses (Tanenbaum,

Kumpulan prosedur-prosedur, variabel-variabel dan struktur data yang dipaket menjadi satu modul atau paket.

Proses-proses bisa memanggil prosedur dalam monitor, tetapi tidak dapat mengakses langsung struktur data internal dari monitor.

Message Passing

Menggunakan dua primitive :1. Send (destination, &message)2. Receive (source, &message)

Beberapa isu pada Message Passing System Message lost Acknowledgement Domains Authentication Performance

Masalah Klasik Komunikasi Antar Proses (IPC)

The Dining Philosophers Problem

Lima philosoper yang kerjanya hanya makan dan berfikir

Tersedia lima piring spaghetti dan lima sumpit Untuk makan dibutuhkan dua buah sumpit Problem : bagaimana cara menulis program agar

setiap philosopher dapat berfikir dan makan tanpa harus saling menunggu ?

The Readers and Writers Problem 13

Page 14: PENGATURAN PROSESdody_pernadi.staff.gunadarma.ac.id/Downloads/files/43489/... · Web viewSatu program Empat Program Counter Counter Proses D C B A Time Gambar 1 Model Proses (Tanenbaum,

Model akses database Banyak proses berkompetisi untuk membaca dan

menulis. Contoh : Airline reservation Beberapa proses boleh membaca pada saat yang

sama Bila suatu proses sedang menulis, tidak boleh ada

proses lain yang mengakses database Proses membaca mempunyai prioritas yang lebih

tinggi daripada proses menulis

3. Proses dalam Sistem Terdistribusi

Thread

(a) (b)

Gambar 3-1. Thread(Tanenbaum, Bab 12, hlm. 508)

Pada gbr 3-1a, setiap proses : Mempunyai: Program counter, stack, register set,

address space sendiri.

14

Page 15: PENGATURAN PROSESdody_pernadi.staff.gunadarma.ac.id/Downloads/files/43489/... · Web viewSatu program Empat Program Counter Counter Proses D C B A Time Gambar 1 Model Proses (Tanenbaum,

Independent satu sama lain dan berkomunikasi lewat IPC yang disediakan system, seperti: Semaphores, monitor, atau messages.

Pada mesin lain (gbr 3-1b), satu proses yang mempunyai:

Multiple threads of control (THREAD atau Lightweight Process). Thread mirip seperti little-mini process. Setiap thread berjalan sekuensial, yang mempunyai program counter dan stack sendiri. Thread juga menshare CPU seperti proses.

Thread dalam satu proses menempati address space yang sama, tidak ada proteksi penggunaan memori antar thread karena proses dimiliki oleh satu user.

Thread dapat berada pada empat state yang berbeda, spt process, (running, blocked, ready, terminated)

Ada tiga model process pada server:

1. Thread diciptakan untuk dapat melakukan paralelisme yang dikombinasikan dengan eksekusi sekuensial dan blocking system calls.

2. Single Threads server, menggunakan blocking system calls, tetapi kinerja sistem tidak baik.

3. Finite-state machine, kinerja baik dengan melakukan paralelisme, tetapi menggunakan nonblocking calls, sehingga sulit dalam memprogram.

15