Anda di halaman 1dari 44

Kelompok 2 :

1. AHADIAN AMAR MAKRUF (19082010017)


2. RAFLI FAHREZA (19082010079)
3. MUHAMMAD KANDIAS H M (19082010100)
4. ERINDRA REYNALDI DIAZ ADITYA (19082010119)
Chapter 3 : Processes
KONSEP PROSES
Proses adalah program yang sedang dieksekusi.
Eksekusi proses dilakukan secara berurutan. Dalam
suatu proses terdapat program counter, stack dan
daerah data.
KONSEP PROSES
Sistem operasi mengeksekusi berbagai
jenis program. Pada sistem batch program
tersebut biasanya disebut dengan job,
sedangkan pada sistem time sharing,
program disebut dengan program user
atau task. Beberapa buku teks
menggunakan istilah job atau proses.
Sistem Batch
Sistem Time Sharing
Proses
Bagian Text Bagian Heap
3 memori yang dialokasikan
Berisi kode yang dapat
dieksekusi secara dinamis selama
program dijalankan

Bagian Data Bagian Stack


Bagian ini berisi variabel penyimpanan data
global sementara saat
menjalankan fungsi (seperti
parameter fungsi, alamat
1 1
pengembalian, dan variabel
lokal)
Status proses dapat
didefiniskan sebagai
bagian dari aktivitas
proses yang sedang
berlangsung saat itu.

Status Proses
Infographic Style 3

2 2

Terminated
New Waiting
Proses selesai dieksekusi
Proses sedang Dibuat Prosesnya menunggu
beberapa peristiwa terjadi
Ready
(seperti I / O
Proses sedang menunggu
Runninge penyelesaian atau
untuk ditugaskan ke
Instruksi sedang dijalankan penerimaan sinyal).
prosesor
Process Control Block (PCB)
Masing-masing proses Direpresentasikan oleh
Sistem Operasi dengan menggunakan Process
Control Block (PCB),
Process Control Block (PCB)
Process State

Program Counter

CPU Registers

CPU-scheduling information

Memory-management information

Accounting information

I/O status information


THREAD

Thread atau lighweight process (LWP)


adalah suatu unit dasar dari pemanfaatan
CPU yang berisi program counter,
kumpulan register, dan ruang stack
PROSES PENJADWALN (SCHEDULING)

Scheduling merupakan mekanisme atau


prosedur di dalam sistem operasi (melibatkan
kernel, aplikasi, process) terkait dengan urutan
kerja yang dilakukan oleh komputer dan sistem
komputer. Scheduling disini ada di dalam
sistem operasi apapun.
Multiprograming Multiprosessing
Multiprograming adalah Multiprosessing adalah
kegiatan menjalankan kemampuan komputer untuk
beberapa program melakukan beberapa proses
pada memori pada satu dalam waktu bersamaan,
waktu. dengan teknologi berbasis
multiprocessor ..
PERAN SCHEULING

1. Memaksimalkan Throughput.
2. Memaksimalkan Kinerja dan Waktu Processor.
3. Efsiensi Process..
4. Keadilan (fairness) pada semua job dan aplikasi.
5. Response Time.
6. Optimalisasi Sumber Daya (resource).
JENIS SCHEDULING

1. Penjadwalan Jangka Panjang (Long Term)


2. Penjadwalan Jangka Menengah (Medium
Term)
3. Penjadwalan Jangka Pendek
4. Penjadwalan I/O
Sebuah proses baru
pertama-tama diletakkan
dalam ready queue. Proses
tersebut menunggu didalam
ready antrian sampai dia
dipilih untuk eksekusi sampai
proses tersebut dialokasikan
ke CPU

Antrian Penjadwalan
(Queue Scheduling)
Penjadwalan CPU
(CPU Scheduling )
 Merupakan basis dari OS yang
multiprogramming, sementara multiprogramming
untuk meningkatkan produktifitas sistem
Konsep Dasar CPU
Scheduling

Dalam multiprogramming
 Suatu proses dieksekusi s.d wait untuk I/O,
setelah itu CPU diberikan ke proses lain, dst.
 Membentuk siklus yang terdiri atas :
• Sequence eksekusi CPU (CPU burst time)
• Sequence dalam service I/O (I/O burst time)
Pola distribusi CPU burst time adalah
eksponensial atau bahkan hipereksponensial
Context Switch
Pada saat CPU beralih ke proses lain, sistem harus menyimpan state
dari proses lama dan mengambil state dari proses yang baru.Pekerjaan
ini disebut : “Context Switch” pada suatu proses Manajemen
Diagram Context Switch
Operation on Proces (Operasi dalam Proses)

Suatu proses adalah kegiatan mengeksekusi suatu


program. Pada dasarnya, ini adalah program yang
sedang dijalankan. Setiap proses membutuhkan
sumber daya tertentu untuk menyelesaikan tugasnya,
Eksekusi suatu proses adalah aktivitas yang kompleks. Ini melibatkan
berbagai operasi. Berikut adalah operasi yang dilakukan saat menjalankan
suatu proses:

1. Creation
2. Penjadwalan / Pengiriman
3. Blocking
4. Preemption
5. Termination / Penghentian
Mengenal IPC
(Inter Process Comunication)

IPC adalah komunikasi antar proses untuk mengirim data dari satu


proses ke proses yang lain, baik antar proses dalam satu komputer
maupun proses dalam komputer yang berbeda.
IPC mempunyai 4 jenis yaitu :
1. Pipe 2. Shared Memori

3. Messege Queue 4. Socket


Shared Memory dalam IPC system

Shared Memory System merupakan salah satu cara komunikasi antar proses dengan cara
mengalokasikan suatu alamat memori untuk dipakai berkomunikasi antar proses. Alamat dan
besar alokasi memori yang digunakan biasanya ditentukan oleh pembuat program. Pada
metode ini, sistem akan mengatur proses mana yang akan memakai memori pada waktu
tertentu sehingga pekerjaan dapat dilakukan secara efektif. Jika kita seorang programmer dan
mengenal Bahasa C, maka shared memory ini sangat mudah untuk dibuat dalam sistem
karena hanya mengandalkan pointer-pointer saja. 
Message Passing Sistem dalam IPC

Massage Passing merupkan suatu teknik bagaimana mengatur suatu alur komunikasi
messaging terhadap proses pada system. Message passing dalam ilmu komputer adalah
suatu bentuk komunikasi yang digunakan dalam komputasi paralel, pemrograman-berorientasi
objek, dan komunikasi interprocess. Berikut adalah beberapa metode untuk
mengimplementasikan nya :
Naming (Penamaan)

Proses yang ingin dikomunikasikan harus memiliki cara untuk saling merujuk.
Mereka dapat menggunakan komunikasi langsung atau tidak langsung. setiap
proses yang ingin dikomunikasikan harus secara eksplisit menyebutkan nama
penerima atau pengirim komunikasi. Dalam skema ini, kirim () dan terima ()
didefinisikan sebagai :  
• kirim (P, pesan) —Kirim pesan ke proses P.  
• terima (Q, pesan) —Terima pesan dari proses Q.
Synchronizations (sinkronisasi)

Pengiriman pesan bisa berupa pemblokiran atau non-pemblokiran — juga dikenal sebagai
sinkron dan asinkron. Beberapa contoh bocking dan non-blocking :

• Memblokir pengiriman. Proses pengiriman diblokir hingga pesan diterima oleh proses
penerimaan atau oleh kotak surat.  
• Pengiriman nonblocking. Proses pengiriman mengirim pesan dan melanjutkan operasi.
• Memblokir penerimaan. Penerima memblokir hingga pesan tersedia.  
• Nonblocking penerimaan. Penerima mengambil pesan yang valid atau null.
Buffering

 pesan yang dipertukarkan dengan proses komunikasi berada dalam antrian sementara. Pada
dasarnya, antrian tersebut dapat diimplementasikan dengan tiga cara :

1. Kapasitas nol – Pesan 0, Pengirim harus menunggu penerima -> tidak ada buffer

2. Kapasitas terbatas – Panjang pesan terbatas, Pengirim harus menunggu jika link penuh

3. Kapasitas tak terbatas - panjang tak terbatas Pengirim tidak perlu menunggu
Inter-Process Communication (IPC) atau Komunikasi antar proses adalah cara atau
mekanisme pertukaran data antara satu proses dengan proses lainnya, baik itu proses yang
berada di dalam komputer yang sama, atau komputer jarak jauh yang terhubung melalui
jaringan. IPC terdiri atas protokol yang menjamin sebuah respons dari sebuah permintaan.
Contoh dari IPC adalah Socket dalam sistem operasi keluarga UNIX, message dalam sistem
operasi RISC OS, port dalam sistem operasi Mach, Named Pipe dalam OS/2, Dynamic Data
Exchange (DDE) dalam sistem operasi Windows, SPX dalam sistem operasi Novell, IAC
dalam sistem operasi Apple Macintosh (khususnya AppleEvents) dan beberapa komponen
perangkat lunak seperti CORBA atau Component Object Model (COM).
Beberapa Implementasi IPC :
• Pipes
• Message Queue
• Shared Memory
• Semaphore
• Socket
Masalah – masalah dalam IPC :

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.

Critical Section Bagian dari program yang mengakses shared memory, yang dapat
menyebabkan terjadinya race condition.

4 kondisi untuk mencegah race condition :

a. Tidak ada 2 proses yang memasuki critical sectionnya secara bersamaan  / simultan

b. Tidak ada asumsi yang dibuat yang berhubungan dengan kecepatan dan jumlah CPU

c. Tidak ada proses yang berjalan diluar critical section-nya yang dapat memblokir
proses-proses lain

d. Tidak ada proses yang menunggu selamanya untuk masuk ke critical section-nya.
Mutual Exclusion (MUTEX)

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 :

1. Disabling interrupt / mematikan interupsi

Dengan cara mematikan interupsi yang masuk pada saat proses sedang berada pada critical
section-nya. Cara ini kadang cukup berguna untuk kernel tetapi tidak untuk user. Dan cara inipun
tidak terlalu 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
3. Strict alternation

Dengan mengamati variable turn untuk menentukan siapa yang akan memasuki critical section-
nya bukanlah ide yang baik jika proses lebih lambat dari yang lain.

4. Peterson’s Solution

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 bersamaan, yang


disimpan di turn adalah data yang ditulis terakhir.
5. Test and Set Lock Instruction / Instruksi TSL

Dengan bantuan hardware, menentukan siapa yang berhak memasuki critical_region (section).
Kelemahan utama dengan busy waiting adalah menyita banyak waktu CPU dan problem inversi
prioritas.

6. Sleep and Wake Up

Mekanismenya : proses akan di blok / tidur (sleep) apabila tidak bisa memasuki critical_section-nya
dan akan dibangunkan (wake up) / ready apabila resource yang diperlukan telah tersedia.

SLEEP : sistem call membuat proses yang memanggil di blok (blocked)

WAKE UP : sistem call yang membuat proses yang memanggil menjasi ready

Contoh :

Procedure-Consumer Problem (bounded buffer)


Beberapa proses share buffer dengan ukuran tetap
Jika buffer penuh producer sleep

Jika buffer kosong consumer sleep

Jika buffer mulai kosong producer wake up

Jika buffer terisi consumer wake up

Masih ada kemungkinan terjadi race condition


7. Semaphore (Dijkstra, 1965)

Meng-cek, mengubah dan sleep 1 instruksi yang mengubah dan wake up tdk dpt dipisahkanInstruksi
tersebut sangat berguna untuk sinkronisasi.Dapat diimplementasikan untuk memecahkan producer-
consumer problem.Mekanisme-nya 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
1. DOWN(S) :

If S >= 0 then

S := S-1;
Dua macam operasi terhadap semaphore

Else 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)
8. Event Counters (Reed and Kanodia, 1979)

Tiga operasi terhadap event counter (E) :

1. Read (E) : return current value of E

2. Advance (E) : Atomically increment E by 1

3. Wait until E has a value of v or more

9. Monitor

– Higher level synchronization primitive.

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

– Proses bisa memanggil prosedur dalam monitor, tetapi tidak dapat mengakses langsung
struktur data internal dari monitor.
10. Message Passing

Menggunakan 2 primitive :

1. send (destination, &message)

2. receive (source, &message)

Beberapa isu pada message passing system : message lost; acknowledgement; domains;
authentication; performance

Circular Wait

Sebuah proses harus menunggu resource yang sedang digunakan proses lain yang sedang
menunggu proses lainnya untuk membebaskan resource yang digunakan. Pada umumnya, ada
sekumpulan proses yang menunggu, P= {P1, P2, …, PN}, sehingga P1 menunggu resource yang
digunakan oleh P2, P2 menunggu resource yang digunakan oleh P3 dan demikian seterusnya hingga
PN menunggu resource yang digunakan oleh P1.
Client-Server adalah pembagian kerja antara server dan client yg mengakses server dalam suatu
jaringan. Jadi arsitektur client-server adalah desain sebuah aplikasi terdiri dari client dan server yang
saling berkomunikasi ketika mengakses server dalam suatu jaringan.

Sistem client server didefinisikan sebagai sistem terdistribusi, tetapi ada beberapa perbedaan
karakteristik yaitu :

Servis (layanan)
 Hubungan antara proses yang berjalan pada mesin yang berbeda
 Pemisahan fungsi berdasarkan ide layanannya
 Server sebagai provider, client sebagai konsumen
2. Sharing resources (sumber daya): Server bisa melayani beberapa client pada waktu yang sama,
dan meregulasi akses bersama untuk share sumber daya dalam menjamin konsistensinya.
3. Asymmetrical protocol (protokol yang tidak simetris ): Many-to-one relationship antara client
dan server.Client selalu menginisiasikan dialog melalui layanan permintaan, dan server menunggu
secara pasif request dari client.
4. Transparansi lokasi: Proses yang dilakukan server boleh terletak pada mesin yang sama atau
pada mesin yang berbeda melalui jaringan.Lokasi server harus mudah diakses dari client.
5. Mix-and-Match: Perbedaan server client platforms
6. Pesan berbasiskan komunikasi; Interaksi server dan client melalui pengiriman pesan
yang menyertakan permintaan dan jawaban.
7. Pemisahan interface dan implementasi: Server bisa diupgrade tanpa mempengaruhi
client selama interface pesan yang diterbitkan tidak berubah.
 Client Server System
 Client / Server Application
Perbedaan Tipe Client-Server

File Servers
 File server vendors mengklaim bahwa mereka pertama menemukan istilah client-server.
 Untuk sharing file melalui jaringan
2. Database Servers
 Client mengirimkan SQL requests sebagai pesan pada database server,selanjutnya hasil
perintah SQL dikembalikan.
 Server menggunakan kekuatan proses yang diinginkan untuk menemukan data yang diminta
dan kemudian semua record dikembalikan pada client.
3. Transaction Servers (Transaksi Server)
 Client meminta remote procedures yang terletak pada server dengan sebuah SQL database
engine.
 Remote procedures ini mengeksekusi sebuah grup dari SQL statement
 Hanya satu permintaan / jawaban yang dibutuhkan untuk melakukan transaksi
4. Groupsware Servers
 Dikenal sebagai Computer-supported cooperative working
 Manajemen semi-struktur informasi seperti teks, image, , bulletin boards dan aliaran kerja
 Data diatur sebagai dokumen
5. Object Application Servers
 Aplikasi client/server ditulis sebagai satu set objek komunikasi
 Client objects berkomunikasi dengan server objects melalui Object Request Broker (ORB)
 Client meminta sebuah method pada remote object
6. Web Application Servers (Aplikasi Web Servers)
 World Wide Web adalah aplikasi client server yang pertama yang digunakan untuk web.
Client dan servers berkomunikasi menggunakan RPC seperti protokol yang disebut HTTP.

Anda mungkin juga menyukai