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
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
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)
1. Creation
2. Penjadwalan / Pengiriman
3. Blocking
4. Preemption
5. Termination / Penghentian
Mengenal IPC
(Inter Process Comunication)
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.
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.
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.
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.
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.
WAKE UP : sistem call yang membuat proses yang memanggil menjasi ready
Contoh :
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 :
– 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
End;
2. UP(S) :
S := S + 1;
End;
Operasi DOWN dan UP merupakan operasi yang bersifat Atomic (Atomic Action)
8. Event Counters (Reed and Kanodia, 1979)
9. Monitor
– 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 :
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.