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. Proses adalah program yang sedang dieksekusi. Proses adalah unit kerja
terkecil yang secara individu memiliki sumber daya dan dijadwalkan oleh sistem
operasi. Peran sistem operasi dalam kegiatan proses adalah mengelola semua
proses di sistem dan mengalokasikan sumber daya ke proses tersebut. Dalam
multiprogramming, teknik penanganan proses adalah dengan mengeksekusi satu
proses dan secara cepat beralih ke proses lainnya (bergiliran), sehingga
menimbulkan efek paralel semu (pseudoparallelism).
Status
Proses
Status proses selalu berubah-ubah selama suatu program
dieksekusi atau dijalankan. Beberapa status tersebut ialah :
- New : proses baru diciptakan
- Running : proses sedang dijalankan
- Waiting : proses sedang menunggu suatu kondisi
tertentu untuk bisa berjalan. (misalkan menunggu respon dari perangkat I/O)
- Ready : proses menunggu untuk dilayani processor
- terminated : proses telah menyelesaikan eksekusi.
- Proses berstate running menjadi blocked, karena sumbar daya yang diminta belum tersedia atau meminta layanan perangkat masukan/keluaran, sehingga menunggu kejadian muncul. Proses menunggu kejadian alokasi sumber daya atau selesainya layanan perangkat masukan/keluaran (event wait).
- Proses berstate running menjadi ready, karena penjadwal memutuskan eksekusi proses lain karena jatah waktu untuk proses tersebut telah habis (time out).
- Proses berstate blocked menjadi ready saat sumber daya yang diminta/ diperlukan telah tersedia atau layanan perangkat masukan/keluaran selesai (event occurs).
- Proses berstate ready menjadi running, karena penjadwal memutuskan penggunaan pemroses utnuk proses itu karena proses yang saat itu running berubah statenya (menjadi ready atau blocked) atau telah menyelesaikan sehingga disingkirkan dari sistem. Proses menjadi mendapatkan jatah pemroses.
Process Control Block (PCB)
Sistem
operasi membutuhkan banyak informasi mengenai proses guna pengelolaan proses.
Semua informasi ini ada pada PCB. PCB mengandung beberapa informasi seperti
berikut :
1. Process
State >> berisi informasi status proses.
(new,running,waiting,ready,terminated)
2. Program
counter >> berisi informasi mengenai alamat instruksi yang akan digunakan
selanjutnya.
3. CPU
register >> berisi register2 CPU apa saja yang digunakan
4. CPU
scheduling information >> berisis penjadwalan proses beserta algoritmanya
5. Memory
management information >> berisi informasi tentang berapa jumlah memory
yang digunakan, limit register, tabel segment, dll berkenaan dengan penggunaan
memory.
6. I/O
status information >> berisi informasi tentang perangkat apa saja yang
digunakan dalam proses
7.
Accounting >> berisi informasi tentang statistik eksekusi proses seperti
waktu yang diperlukan, jumlah proses, dll.
Thread
Thread
merupakan
unit dasar dari penggunaan CPU, yang terdiri dari Thread_ID, program counter,register set, dan stack.
Sebuah thread berbagi code section, data section, dan sumber daya sistem operasi dengan Thread lain
yang dimiliki oleh proses yang sama Thread juga sering disebut lightweight process.
Keuntungan dari penerapan thread adalah sebagai
berikut:
1.
Lebih responsif.
Karena sebuah
proses dapat terdiri dari beberapa thread, sehingga jika ada satu thread yang
terhenti atau melakukan operasi yang cukup lama maka thread lain dalam proses
tersebut masih dapat berjalan dan dapat menjawab permintaan pemakai.
2.
Berbagi sumber daya
Beberapa threads yang menyusun sebuah proses
akan berbagi kode, data, dan berkas secara
bersama-sama.
3.
Lebih ekonomis
Nilai ekonomi
diperoleh karena usaha yang dikeluarkan untuk penciptaan dan context switch
sebuah thread jauh lebih kecil dibandingkan dengan untuk sebuah proses.
4.Pemanfaatan arsitektur multi-processor
Beberapa thread dapat berjalan secara bersamaan pada
sistem komputer paralel atau berprosesor
jamak (multiprocessor ).
PENJADWALAN
PROSES
Antrian
Penjadwalan
Penjadwalan direpresentasikan dalam
bentuk antrian yang disimpan
sebagai linkedlist dan berisi pointer awal dan akhir PCB. Tiap-tiap PCB memiliki suatu pointer
field yang menunjuk
ke proses berikutnya. Jenis-jenis
antrian penjadwalan adalah sebagai berikut :
·
Job Queue. Semua proses yang masuk pada suatu
sistem akan diletakkan ke dalam job queue
·
Ready Queue. Sedangkan proses-proses yang ada di
memori utama dan menunggu
untuk dieksekusi
diletakkan pada suatu list yang disebut dengan ready queue.
·
Device Queue. Deretan proses yang sedang
menunggu peralatan I/O tertentu disebut
dengan device queue.
Penjadwalan
Ada terdapat dua penjadwalan yaitu :
1.
Longterm-Scheduler (job
scheduler), menyeleksi proses-proses
mana yang harus
dibawa
ke ready queue.
2.
Short-term
Scheduler (CPU scheduler), memilih
proses-proses yang siap
untuk
dieksekusi, dan mengakolakasikan CPU ke salah
satu dari proses-proses tersebut.
Short-term scheduler terjadi sangat sering (dalam
milidetik), jadi setiap proses dijadwal dengan cepat,
sedangkan long-term scheduler
terjadi sangat jarang
(dalam detik atau menit), sehingga setiap proses dijadwal dengan
lambat. Long-term scheduler digunakan
untuk mengontrol tingkat multiprogramming
Secara umum, proses dapat digambarkan sebagai :
·
I/O
bound process, yaitu
proses-proses yang membutuhkan
lebih banyak waktu untuk menjalankan
I/O daripada melakukan
komputasi, sehingga CPU
burst yang dibutuhkan lebih
singkat.
·
CPU bound process, yaitu
proses-proses yang membutuhkan
lebih banyak waktu
untuk melakukan
komputasi daripada menjalankan
I/O sehingga CPU burst
yang dibutuhkan lebih lama.
Context
Switch
Ketika CPU
berpindah dari proses
satu ke proses
lainnya, sistem harus menyimpan status
dari proses yang
lama dan membuka state
proses baru yang
sudah disimpan. Contex switch
adalah proses penyimpanan
status proses dan
mengambil status proses yang
baru pada saat
terjadi switching. Pada saat
terjadi perpindahan proses, sistem tidak bekerja. Waktu context switch tergantung pada
perangkat keras yang digunakan.
Operasi pada Proses
Sistem operasi dalam mengelola proses dapat melakukan
operasi-operasi tehadap proses. Operasi-operasi yang dapat dilakukan terhadap
proses diantaranya :
1.
Penciptaan Proses ( Create Of Process )
2.
Penghancuran/Terminasi Process (Destory a Process)
3.
Penundaan Proses
4.
Pelanjutan Kembali Proses (Resume a Process)
5.
Pengubahan Prioritas Proses
6.
Memblock Proses
7.
Membangunkan Proses
8.
Menjadwalkan Proses
9.
Memungkinkan Proses Berkomunikasi dengan Proses Lain
1.
Penciptaan Proses ( Create Of Process )
Penciptaan proses
melibatkan banyak aktivitas, yaitu :
·
Menamai (memberi identitas) proses
· -
Menyisipkan proses pada senarai proses atau
tabel proses
· -
Menentukan prioritas awal proses
· -
Menciptakan PCB
· -
Mengalokasikan sumberdaya awal bagi proses
· -
Pada lingkungan batch, sebagai tanggapan atas
pemberian suatu kerja (job)
· -
Pada lingkungan interaktif, ketika pemakai baru
berusaha logon
· -
Sebagai tanggapan suatu aplikasi, seperti
permintaan pencetakan file, SO dapat menciptakan proses yang akan mengelola
pencetakan itu
· -
Proses menciptakan proses lain (proses anak)
2.
Penghancuran/Terminasi Process (Destory a Process)
Melibatkan pembebasan
proses dari sistem, yaitu :
· -
Sumber daya-sumber daya yang dipakai
dikembalikan
· -
Proses dihancurkan dari senarai atau tabel
sistem
· -
PCB dihapus (ruang memori PCB dikembalikan ke
pool bebas)
· -
Pada beberapa sistem, proses-proses turunan
dihancurkan saat proses-proses induk dihancurkan secara otomatis
· -
Beberapa sistem lain menganggap proses anak
independen terhadap proses induk sehingga proses anak tidak secara otomatis
dihancurkan saat proses induk dihancurkan
KOMUNIKASI
ANTARPROSES (INTERPROCESS COMMUNICATION)
Eksekusi proses dapat
dibedakan menjadi dua yaitu:
1.
Proses yang berdiri sendiri (independent process),
proses yang tidak mempengaruhi dan tidak terpengaruh oleh proses lain yang
sedang diekseskusi.
2.
Proses yang saling bekerja sama (cooperation process),
proses yang dapat terpengaruh atau mempengaruhi proses lain yang sedang
dieksekusi.
Kenapa proses perlu
saling berkerja sama?
1.
Penggunaan informasi secara bersama-sama.
2.
Kecepatan komputasi.
3.
Modularitas.
4.
Kenyamanan.
Proses yang saling
bekerja sama memerlukan sebuah mekanisme komunikasi antar proses atau interprocess communication (IPC) yang
memungkinkan pertukaran data dan informasi.
Terdapat dua model
komunikasi antar proses:
1. Shared memory (penggunaan memori bersama) Merupakan
komunikasi antarproses yang memungkinan pertukaran informasi dengan membaca dan
menulis data pada bagian memori yang sudah dialokasikan. Karakteristiknya:
-
Lebih cepat dari messgae passing.
-
Memerlukan bagian memori yang sudah
dialokasikan.
-
Tidak perlu didampingi kernel.
2. Message passing (mengirim pesan) Merupakan
komunikasi antarproses yang memungkinan komunikasi antarproses yang saling
berkerja sama dengan cara pertukaran pesan.
-
Berguna untuk pertukaran data yang berukuran
kecil.
-
Lebih mudah diimplentasikan pada intercomputer
communication dibandingkan dengan shared memory.
-
Membutuhkan waktu lebih lama karena ada
intervensi kernel.
Model
Shared-Memory (Pemakaian Memori Besama)
Metode shared memory
dapat dianalogikan sebagai berikut:
Misalnya terdapat dua
proses, namai saja dengan producer process dan consumer process. Producer
process bertugas memproduksi item, sementara consumer process bertugas
mengunakan item yang diproduksi producer process. Dengan kata lain, producer
process dan consumer process saling berkerja sama dalam hal memproduksi dan
menggunakan. Agar dua proses tersebut berjalan berkesinambungan maka dibutuhkan
sebuah buffer (penampungan) yang dapat diisi oleh item yang diproduksi procuder
process dan dapat dikosongkan oleh consumer process. Buffer ini akan terletak
pada memori yang sudah dialokaskikan tadi. Producer process dapat memproduksi
item sementara consumer process sedang menggunakan sebuah item. Dua proses
tersebut harus berkesinambungan sehingga consumer process tidak mencoba
mengambil item yang belum dibuat oleh producer process.
Buffer dapat dibedakan
menjadi dua yaitu:
1.
Unbounded buffer, ukurannya tidak pasti.
2.
Bounded buffer, ukurannya sudah ditentukan, dengan kata
lain consumer process harus menunggu jika buffernya kosong dan producer process
harus menunggu jika buffernya penuh.
Shared buffer diimplementasikan dengan array sirkular dengan dua
variabel: in dan out. Variabel in menunjukan posisi kosong selanjutnya pada
buffer, sedangkan variabel out menunjukan posisi yang sudah penuh pada buffer.
Buffer kosong ketika in = out; buffernya penuh ketika ((in + 1) % BUFFER_SIZE))
== out
Producer process
mempunyai variabel lokal nextProduced yang berfungsi menyimpan item yang
dihasilkan sedangkan cosumed process mempunyai variabel lokal nextConsumed yang
berfungsi menyimpan item yang akan digunakan.
Model
Message-Passing (Berkirim Pesan)
Sistem message-passing
memungkinkan mekanisme komunikasi dan sinkronisasi sebuah aksi tanpa perlu
menggunakan address space yang sama dan berguna dalam lingkungan komputer yang
terdistribusi, di mana komunikasi dapat dilakukan pada komputer yang berbeda yang
dihubungkan sebuah jaringan. Sebuah sistem message-passing memungkinan dua
operasi yaitu: send (message) dan receive (message).
Misalnya terdapat dua
proses P dan Q, dan ingin berkomunikasi satu sama lain maka kedua proses
tersebut harus saling mengirim (send) dan menerima (receive) pesan. Harus
terdapat sebuah link komunikasi diantara kedua proses tersebut.
Berikut adalah beberapa
metode implementasi send dan receive:
-
Komunikasi langsung dan tak langsung (direct and
indirect communication)
-
Synchronus dan asyncrhonus communication.
-
Automatic and explicit buffering
Naming
Pada direct communication (komunikasi langsung) proses-proses yang ingin
berkomunikasi harus mempunyai cara agar dapat terhubung satu sama lain. Oleh
karena itu, proses-proses tersebut harus memberi nama pada penerima dan
pengirim pesan. Dalam hal ini, send() dan receive() dapat didefinisikan
sebagai:
-
Send (P, message) – mengirim pesan ke proses P.
-
Receive (Q, message) – menerima pesan dari
proses Q.
Link komunikasi dalam
skema ini mempunyai sifat:
-
Sebuah link secara otomatis terbentuk pada
pasangan proses yang ingin berkomunikasi. Proses harus mengetahui identitas
pasangan yang akan diajak berkomunikasi.
-
Sebuah link berhubungan tepat dengan satu pasang
proses komunikasi.
-
Dalam sebuah pasangan komunikasi, terdapat tepat
satu link.
Skema ini memperlihatkan
sebuah cara simetris dalam pengalamatannya, baik pengirim dan penerima harus
menamakan proses lainnya untuk berkomunikasi. Varian dari skema ini
memperlihatkan cara asimetri dalam pengalamatannya, hanya pengirim yang
memberikan nama bagi penerima sedangkan penerima tidak menyediakan nama bagi
pengirim. Dalam konteks ini, send() dan receive(), didefinisikan sebagai:
-
Send (P, message) – mengirim pesan ke proses P.
-
Receive (id, message) – menerima pesan dari
proses manapun; variabel id diatur sebagai nama dari proses dengan komunikasi.
Dengan indirect communication (komunikasi
tidak langsung), pesan dikirim dan diterima dari mailbox (kotak surat) dan
port. Mailbox dapat didefinisikan sebagai tempat meletakkan pesan oleh sebuah
proses dan tempat pesan bisa dipindahkan dari sebuah proses. Setiap mailbox
mempunyai identitas unik. Sebuah proses dapat berkomunikasi dengan beberapa
proses lain dengan nomor dari mailbox yang berbeda. Dua proses dapat saling
berkomunikasi hanya jika proses tersebut mempunyai mailbox bersama. Send() dan
receive() pada kasus ini dapat didefinisikan sebagai:
-
Send (A, message) – mengirim pesan ke mailbox A.
-
Receive (A, message) – menerima pesan dari
mailbox A.
Dengan skema ini, link
komunikasi mempunyai karakteristik:
-
Sebuah link dapat dibentuk dari sepasang proses
jika keduanya mempunyai sebuah mailbox bersama (shared mailbox).
-
Sebuah link mungkin dapat berasosiasi dengan dua
proses.
-
Diantara setiap pasang proses komunikasi,
mungkin terdapat jumlah link yang berbeda-beda, di mana setiap link berhubungan
dengan satu mailbox.
0 Comments