DASAR SISTEM OPERASI : MANAJEMEN PROSES~
ABSTRAK :
n KONSEP PROSES
Secara informal;
n proses adalah program dalam eksekusi.
n Suatu proses adalah lebih dari kode program,
dimana kadang kala dikenal sebagai bagian tulisan.
n Manajemen Proses
n Dasar Sistem Operasi
n Proses juga termasuk aktivitas yang sedang
terjadi, sebagaimana digambarkan oleh nilai pada program counter dan isi dari
daftar prosesor/ processor's register.
n Suatu proses umumnya juga termasuk process
stack, yang berisikan data temporer (seperti parameter metoda, address yang
kembali, dan variabel lokal) dan sebuah data section, yang berisikan variabel
global.
n KONSEP PROSES
n program itu sendiri bukanlah sebuah proses;
suatu program adalah satu entitas pasif; seperti isi dari sebuah berkas yang
disimpan didalam disket, sebagaimana sebuah proses dalam suatu entitas aktif,
dengan sebuah program counter yang mengkhususkan pada instruksi
selanjutnya untuk dijalankan dan seperangkat sumber daya/ resource yang
berkenaan dengannya.
n Walau dua proses dapat dihubungkan dengan
program yang sama, program tersebut dianggap dua urutan eksekusi yang berbeda.
Sebagai contoh, beberapa pengguna dapat menjalankan copy yang berbeda pada mail
program, atau pengguna yang sama dapat meminta banyak copy dari program editor.
Tiap-tiap proses ini adakah proses yang berbeda dan walau bagian tulisan-text
adalah sama, data section bervariasi. Juga adalah umum untuk memiliki proses
yang menghasilkan banyak proses begitu ia bekerja.
n STATUS PROSES
n Ketika proses bekerja, maka proses tersebut
merubah state (keadaan statis/ asal). Status dari sebuah proses didefinisikan
dalam bagian oleh aktivitas yang ada dari proses tersebut. Tiap proses mungkin
adalah satu dari keadaan berikut ini:
1. New: Proses sedang
dikerjakan/ dibuat.
2. Running: Instruksi sedang dikerjakan.
3. Waiting: Proses sedang menunggu sejumlah kejadian untuk terjadi (seperti sebuah
penyelesaian I/O atau penerimaan sebuah tanda/ signal).
4. Ready: Proses sedang
menunggu untuk ditugaskan pada sebuah prosesor.
5. Terminated: Proses telah selsesai melaksanakan tugasnya/ mengeksekusi.
n Istilah-istilah tersebut adalah arbitrer/
berdasar opini, istilah tersebut bervariasi disepanjang sistem operasi. Keadaan
yang mereka gambarkan ditemukan pada seluruh sistem. Namun, sistem operasi
tertentu juga lebih baik menggambarkan keadaan/ status proses. Adalah penting
untuk menyadari bahwa hanya satu proses dapat berjalan pada prosesor mana pun
pada waktu kapan pun. Namun, banyak proses yang dapat ready atau waiting.
n STATUS PROSES
n Process Control Block
n Tiap proses digambarkan dalam sistem operasi
oleh sebuah process control block (PCB) - juga disebut sebuah control
block.
n PCB berisikan banyak bagian dari informasi yang
berhubungan dengan sebuah proses yang spesifik, yaitu :
1. Keadaan proses: Keadaan mungkin, new, ready,
running, waiting, halted, dan juga banyak lagi.
2. Program counter: Counter mengindikasikan address dari
perintah selanjutnya untuk dijalankan untuk proses ini.
3. CPU register: Register bervariasi dalam jumlah
dan jenis, tergantung pada rancangan komputer. Register tersebut termasuk
accumulator, index register, stack pointer, general-puposes register, ditambah
code information pada kondisi apa pun. Besertaan dengan program counter,
keadaan/ status informasi harus disimpan ketika gangguan terjadi, untuk
memungkinkan proses tersebut berjalan/ bekerja dengan benar setelahnya.
n Process Control Block
1. Informasi managemen memori: Informasi ini dapat
termasuk suatu informasi sebagai nilai dari dasar dan batas register, tabel
page/ halaman, atau tabel segmen tergantung pada sistem memori yang digunakan
oleh sistem operasi.
2. Informasi pencatatan: Informasi ini termasuk
jumlah dari CPU dan waktu riil yang digunakan, batas waktu, jumlah akun, jumlah
job atau proses, dan banyak lagi.
3. Informasi status I/O: Informasi termasuk daftar
dari perangkat I/O yang di gunakan pada proses ini, suatu daftar open berkas
dan banyak lagi.
n PCB hanya berfungsi sebagai tempat menyimpan/
gudang untuk informasi apa pun yang dapat bervariasi dari prose ke proses.
n Process Control Block
n KONSEP PENJADUALAN
n Tujuan dari multiprogramming adalah untuk
memiliki sejumlah proses yang berjalan pada sepanjang waktu, untuk
memaksimalkan penggunaan CPU. Tujuan dari pembagian waktu adalah untuk
mengganti CPU diantara proses-proses yang begitu sering sehingga pengguna dapat
berinteraksi dengan setiap program sambil CPU bekerja. Untuk sistem
uniprosesor, tidak akan ada lebih dari satu proses berjalan. Jika ada proses yang
lebih dari itu, yang lainnya akan harus menunggu sampai CPU bebas dan dapat
dijadualkan kembali.
n 1. Penjadualan Antrian
n Ketika proses memasuki sistem, mereka
diletakkan dalam antrian job. Antrian ini terdiri dari seluruh proses dalam
sistem. Proses yang hidup pada memori utama dan siap dan menunggu/ wait untuk
mengeksekusi disimpan pada sebuah daftar bernama ready queue. Antrian ini
biasanya disimpan sebagai daftar penghubung. Sebuah header ready queue
berisikan penunjuk kepada PCB-PCB awal dan akhir. Setiap PCB memiliki pointer
field yang menunjukkan proses selanjutnya dalam ready queue.
n Juga ada antrian lain dalam sistem. Ketika
sebuah proses mengalokasikan CPU, proses tersebut berjalan/bekerja sebentar
lalu berhenti, di interupsi, atau menunggu suatu kejadian tertentu, seperti
penyelesaian suatu permintaan I/O. Pada kasus ini sebuah permintaan I/O,
permintaan seperti itu mungkin untuk sebuah tape drive yang telah
diperuntukkan, atau alat yang berbagi, seperti disket. Karena ada banyak proses
dalam sistem, disket bisa jadi sibuk dengan permintaan I/O untuk proses
lainnya. Maka proses tersebut mungkin harus menunggu untuk disket tersebut.
Daftar dari proses yang menunggu untuk peralatan I/O tertentu disebut sebuah
device queue. Tiap peralatan memiliki device queuenya sendiri
n 1. Penjadualan Antrian
n 1. Penjadualan Antrian
n Reprensentasi umum untuk suatu diskusi mengenai
penjadualan proses adalah diagram antrian. Setiap kotak segi empat menunjukkan
sebuah antrian. Dua tipe antrian menunjukan antrian yang siap dan suatu
perangkat device queues. Lingkaran menunjukkan sumber-sumber yang melayani
sistem. Sebuah proses baru pertama-tama ditaruh dalam ready queue. Lalu
menunggu dalam ready queue sampai proses tersebut dipilih untuk
dikerjakan/lakukan atau di dispatched. Begitu proses tersebut mengalokasikan
CPU dan menjalankan/ mengeksekusi, satu dari beberapa kejadian dapat terjadi.
1. Proses tersebut dapat mengeluarkan sebuah
permintaan I/O, lalu di tempatkan dalam sebuah antrian I/O.
2. Proses tersebut dapat membuat subproses yang
baru dan menunggu terminasinya sendiri.
3. Proses tersebut dapat digantikan secara paksa
dari CPU, sebagai hasil dari suatu interupsi, dan diletakkan kembali dalam
ready queue.
n 1. Penjadualan Antrian
n 2. Penjadualan
n Sebuah proses berpindah antara berbagai
penjadualan antrian selama umur hidupnya. Sistem operasi harus memilih, untuk
keperluan penjadualan, memproses antrian-antrian ini dalam cara tertentu.
Pemilihan proses dilaksanakan oleh penjadual yang tepat/ cocok. Dalam sistem
batch, sering ada lebih banyak proses yang diserahkan daripada yang dapat
dilaksanakan segera. Proses ini dipitakan/ disimpan pada suatu alat penyimpan
masal (biasanya disket), dimana proses tersebut disimpan untuk eksekusi dilain
waktu. Penjadualan long term, atau penjadual job, memilih proses dari pool ini
dan mengisinya kedalam memori eksekusi.
n Sebuah proses dapat mengeksekusi untuk hanya
beberapa milidetik sebelum menunggu permintaan I/O. Seringkali, penjadualan
shorterm mengeksekusi paling sedikit sekali setiap 100 milidetik. Karena durasi
waktu yang pendek antara eksekusi, penjadualan shorterm haruslah cepat. Jika
memerlukan 10 mili detik untuk menentukan suatu proses eksekusi selama 100 mili
detik, maka 10/(100 + 10) = 9 persen CPU sedang digunakan (terbuang) hanya untuk
pekerjaan penjadualan.
n 2. Penjadualan
n Penjadualan longterm pada sisi lain,
mengeksekusi jauh lebih sedikit. Mungkin ada beberapa menit antara pembuatan
proses baru dalam sistem. Penjadualan longterm mengkontrol derajat
multiprogramming (jumlah proses dalam memori). Jika derajat multiprogramming
stabil, lalu tingkat rata-rata dari penciptaan proses harus sama dengan tingkat
kepergian rata rata dari proses yang meninggalkan sistem. Maka penjadualan
longterm mungkin diperlukan untuk dipanggil hanya ketika suatu proses
meninggalkan sistem. Karena interval yang lebih panjang antara eksekusi,
penjadualan longterm dapat memakai waktu yang lebih lama untuk menentukan
proses mana yang harus dipilih untuk dieksekusi.
n 2. Penjadualan
n Adalah penting bagi penjadualan longterm
membuat seleksi yang hati-hati. Secara umum, kebanyakan proses dapat dijelaskan
sebagai I/O bound atau CPU bound. Sebuah proses I/O bound adalah salah satu
yang membuang waktunya untuk mengerjakan I/O dari pada melakukan perhitungan.
Suatu proses CPU-bound, pada sisi lain, adalah salah satu yang jarang
menghasilkan permintaan I/O, menggunakan lebih banyak waktunya melakukan banyak
komputasi daripada yang digunakan oleh proses I/O bound. Penting untuk
penjadualan longterm memilih campuran proses yang baik antara proses I/O bound
dan CPU bound. Jika seluruh proses adalah I/O bound, ready queue akan hampir
selalu kosong, dan penjadualan short term akan memiliki sedikit tugas. Jika
seluruh proses adalah CPU bound, I/O waiting queue akan hampir selalu kosong,
peralatan akan tidak terpakai, dan sistem akan menjadi tidak imbang. Sistem
dengan kinerja yang terbaik akan memiliki kombinasi proses CPU bound dan I/O
bound.
n 2. Penjadualan
Ilustrasi Penjadualan
Medium-term
n 2. Penjadualan
n Ide utama/kunci dibelakang sebuah penjadual
medium term adalah kadang kala akan menguntungkan untuk memindahkan proses dari
memori (dan dari pengisian aktif dari CPU), dan maka untuk mengurangi derajat
dari multiprogramming. Dikemudian waktu, proses dapat diperkenalkan kedalam
memori dan eksekusinya dapat dilanjutkan dimana proses itu di tinggalkan/
diangkat. Skema ini disebut swapping. Proses di swapped out, dan
lalu di swapped in, oleh penjadual jangka menengah. Swapping
mungkin perlu untuk meningkatkan pencampuran proses, atau karena suatu
perubahan dalam persyaratan memori untuk dibebaskan.
n 3. Alih Konteks
n Mengganti CPU ke proses lain memerlukan
penyimpanan suatu keadaan proses lama (state of old process) dan
kemudian beralih ke proses yang baru. Tugas tersebut diketahui sebagai alih
konteks (context switch). Alih konteks sebuah proses digambarkan dalam
PCB suatu proses; termasuk nilai dari CPU register, status proses dan informasi
managemen memori.
n Ketika alih konteks terjadi, kernel menyimpan
konteks dari proses lama kedalam PCB nya dan mengisi konteks yang telah
disimpan dari process baru yang telah terjadual untuk berjalan. Pergantian
waktu konteks adalah murni overhead, karena sistem melakukan pekerjaan yang
tidak perlu. Kecepatannya bervariasi dari mesin ke mesin, bergantung pada
kecepatan memori, jumlah register yang harus di copy, dan keberadaan instruksi
khusus (seperti instruksi tunggal untuk mengisi atau menyimpan seluruh
register). Tingkat kecepatan umumnya berkisar antara 1 sampai 1000 mikro detik
n 3. Alih Konteks
n 3. Alih Konteks
n Waktu alih konteks sangat begantung pada
dukungan perangkat keras. Sebagai contoh, prosesor seperti UltraSPARC
menyediakan dua rangkap register. Sebuah alih konteks hanya memasukkan
perubahan pointer ke perangkat register yang ada. Tentu saja, jika ada lebih
proses-proses aktif yang ada dari pada yang ada di perangkat register, sistem
menggunakan bantuan untuk meng-copy data register pada dan dari memori,
sebagaimana sebelumnya. Semakin sistem operasi kompleks, makin banyak pekerjaan
yang harus dilakukan selama alih konteks.
n 3. Alih Konteks
n OPERASI PADA PROSES
n 1. Pembuatan Proses
n Secara umum, suatu proses akan memerlukan
sumber tertentu (waktu CPU, memori, berkas, perangkat I/O) untuk menyelesaikan
tugasnya. Ketika suatu proses membuat sebuah subproses, sehingga subproses
dapat mampu untuk memperoleh sumbernya secara langsung dari sistem operasi.
Induk mungkin harus membatasi sumber diantara anaknya, atau induk dapat berbagi
sebagian sumber (seperti memori berkas) diantara beberapa dari anaknya.
Membatasi suatu anak proses menjadi subset sumber daya induknya mencegah proses
apa pun dari pengisian sistem yang telalu banyak dengan menciptakan terlalu
banyak subproses.
n 1. Pembuatan Proses
n Sebagai tambahan pada berbagai sumber fisik dan
logis bahwa suatu proses diperoleh ketika telah dibuat, data pemula (masukan)
dapat turut lewat oleh induk proses sampai anak proses. Sebagai contoh, anggap
suatu proses yang fungsinya untuk menunjukkan status sebuah berkas, katakan F1,
pada layar terminal. Ketika dibuat, akan menjadi sebagai sebuah masukan dari
proses induknya, nama dari berkas F1, dan akan mengeksekusi menggunakan kumpulan
data tersebut untuk memperoleh informasi yang diinginkan. Proses tersebut juga
mendapat nama dari perangkat luar. Sebagian sistem operasi melewati
sumber-sumber ke anak proses. Pada sistem tersebut, proses baru bisa mendapat
dua berkas terbuka yang baru, F1 dan perangkat terminal dan hanya perlu untuk
mentransfer data antara kedua berkas tersebut.
n 1. Pembuatan Proses
n Ketika suatu proses membuat proses baru, dua
kemungkinan ada dalam term eksekusi:
1. Induk terus menerus untuk mengeksekusi secara
bersama-sama dengan anaknya.
2. Induk menunggu sampai sebagian dari anaknya
telah diakhiri/terminasi.
n Juga ada dua kemungkinan dalam term dari address
space pada proses baru:
1. Anak proses adalah duplikat dari induk proses.
2. Anak proses memiliki program yang terisikan
didalamnya.
n 2. Penghentian Proses
n Sebuah proses berakhir ketika proses tersebut
selesai mengeksekusi pernyataan akhirnya dan meminta sistem operasi untuk
menghapusnya dengan menggunakan sistem pemanggilan exit. Pada titik itu, proses
tersebut dapat mengembalikan data (keluaran) pada induk prosesnya (melalui
sistem pemanggilan wait) Seluruh sumber-sumber dari proses-termasuk memori
fisik dan virtual, membuka berkas, dan penyimpanan I/O di tempatkan kembali
oleh sistem operasi.
n Ada situasi tambahan tertentu ketika terminasi
terjadi. Sebuah proses dapat menyebabkan terminasi dari proses lain melalui
sistem pemanggilan yang tepat (contoh abort). Biasanya, sistem seperti itu
dapat dipanggil hanya oleh induk proses tersebut yang akan diterminasi. Bila tidak,
pengguna dapat secara sewenang-wenang membunuh job antara satu sama lain. Catat
bahwa induk perlu tahu identitas dari anaknya. Maka, ketika satu proses membuat
proses baru, identitas dari proses yang baru diberikan kepada induknya.
n 2. Penghentian Proses
n Induk dapat menterminasi/ mengakhiri satu dari
anaknya untuk beberapa alasan, seperti:
1. Anak telah melampaui kegunaannya atas sebagaian
sumber yang telah diperuntukkan untuknya.
2. Pekerjaan yang ditugaskan kepada anak telah
keluar, dan sistem operasi tidak memeperbolehkan sebuah anak untuk meneruskan
jika induknya berakhir.
n Untuk menentukan kasus pertama, induk harus
memiliki mekanisme untuk memeriksa status anaknya. Banyak sistem, termasuk VMS,
tidak memperbolehkan sebuah anak untuk ada jika induknya telah berakhir. Dalam
sistem seperti ini, jika suatu proses berakhir (walau secara normal atau tidak
normal), maka seluruh anaknya juga harus diterminasi. Fenomena ini, mengacu
pada terminasi secara cascading, yang normalnya dimulai oleh sistem
operasi.
n 2. Penghentian Proses
n Untuk mengilustrasikan proses eksekusi dan
proses terminasi, kita menganggap bahwa, dalam UNIX, kami dapat mengakhiri
suatu proses dengan sistem pemanggilan exit; proses induknya dapat menunggu
untuk terminasi anak proses dengan menggunakan sistem pemanggilan wait. Sistem
pemanggilan wait kembali ke pengidentifikasi proses dari anak yang telah
diterminasi, maka induk dapat memberitahu kemungkinanan anak mana yang telah
diterminasi. Jika induk menterminasi. Maka, anaknya masih punya sebuah induk
untuk mengumpulkan status mereka dan mengumpulkan statistik eksekusinya.
n HUBUNGAN ANTAR PROSES
n Proses yang bersifat simultan (concurrent)
dijalankan pada sistem operasi dapat dibedakan menjadi yaitu proses independent
dan proses kooperatif.
•
Suatu
proses dikatakan independen apabila proses tersebut tidak dapat terpengaruh
atau dipengaruhi oleh proses lain yang sedang dijalankan pada sistem. Berarti,
semua proses yang tidak membagi data apa pun (baik sementara/ tetap) dengan
proses lain adalah independent.
•
Sedangkan
proses kooperatif adalah proses yang dapat dipengaruhi atau pun terpengaruhi
oleh proses lain yang sedang dijalankan dalam sistem. Dengan kata lain, proses
dikatakan kooperatif bila proses dapat membagi datanya dengan proses lain.
n HUBUNGAN ANTAR PROSES
Syarat lingkungan
yang memperbolehkan terjadinya proses kooperatif:
- Pembagian informasi: apabila beberapa
pengguna dapat tertarik pada bagian informasi yang sama (sebagai contoh,
sebuah berkas bersama), kita harus menyediakan sebuah lingkungan yang
mengizinkan akses secara terus menerus ke tipe dari sumber-sumber
tersebut.
- Kecepatan penghitungan/ komputasi: jika
kita menginginkan sebuah tugas khusus untuk menjalankan lebih cepat, kita
harus membagi hal tersebut ke dalam subtask, setiap bagian dari subtask
akan dijalankan secara parallel dengan yang lainnya. Peningkatan kecepatan
dapat dilakukan hanya jika komputer tersebut memiliki elemen-elemen
pemrosesan ganda (seperti CPU atau jalur I/O).
n HUBUNGAN ANTAR PROSES
Syarat lingkungan
yang memperbolehkan terjadinya proses kooperatif (lanjutan):
- Modularitas: kita mungkin ingin untuk
membangun sebuah sistem pada sebuah model modular-modular, membagi fungsi
sistem menjadi beberapa proses atau threads.
- Kenyamanan: bahkan seorang pengguna
individu mungkin memiliki banyak tugas untuk dikerjakan secara bersamaan
pada satu waktu. Sebagai contoh, seorang pengguna dapat mengedit,
memcetak, dan meng-compile secara paralel.
n HUBUNGAN ANTAR PROSES
2. Komunikasi
Proses Dalam Sistem
n Cara lain untuk meningkatkan efek yang sama
adalah untuk sistem operasi yaitu untuk menyediakan alat-alat proses kooperatif
untuk berkomunikasi dengan yang lain lewat sebuah komunikasi dalam proses (IPC
= Inter-Process Communication).
n IPC menyediakan sebuah mekanisme untuk
mengizinkan proses-proses untuk berkomunikasi dan menyelaraskan aksi-aksi
mereka tanpa berbagi ruang alamat yang sama.
n IPC adalah khusus digunakan dalam sebuah
lingkungan yang terdistribusi dimana proses komunikasi tersebut mungkin saja
tetap ada dalam komputer-komputer yang berbeda yang tersambung dalam sebuah
jaringan.
n IPC adalah penyedia layanan terbaik dengan
menggnakan sebuah sistem penyampaian pesan, dan sistem-sistem pesan dapat
diberikan dalam banyak cara.
n HUBUNGAN ANTAR PROSES
2.1. Sistem
Penyampaian Pesan
n Fungsi dari sebuah sistem pesan adalah untuk
memperbolehkan komunikasi satu dengan yang lain tanpa perlu menggunakan
pembagian data.
n Sebuah fasilitas IPC menyediakan paling sedikit
dua operasi yaitu kirim (pesan) dan terima (pesan).
n Pesan dikirim dengan sebuah proses yang dapat
dilakukan pada ukuran pasti atau variabel. Jika hanya pesan dengan ukuran pasti
dapat dikirimkan, level sistem implementasi adalah sistem yang sederhana.
n Pesan berukuran variabel menyediakan sistem
implementasi level yang lebih kompleks.
n HUBUNGAN ANTAR PROSES
2.2. Metode untuk
mengimplementasikan sebuah jaringan dan operasi pengiriman/ penerimaan secara
logika:
- Komunikasi langsung atau tidak langsung.
- Komunikasi secara simetris/ asimetris.
- Buffer otomatis atau eksplisit.
- Pengiriman berdasarkan salinan atau
referensi.
- Pesan berukuran pasti dan variabel.
n HUBUNGAN ANTAR PROSES
2.2.1. Komunikasi
Langsung
n Proses-proses yang ingin dikomunikasikan harus
memiliki sebuah cara untuk memilih satu dengan yang lain. Mereka dapat
menggunakan komunikasi langsung/ tidak langsung.
n Setiap proses yang ingin berkomunikasi harus
memiliki nama yang bersifat eksplisit baik penerimaan atau pengirim dari
komunikasi tersebut. Dalam konteks ini, pengiriman dan penerimaan pesan secara
primitive dapat dijabarkan sebagai:
1. Send (P, message) - mengirim sebuah pesan ke
proses P.
2. Receive (Q, message) - menerima sebuah pesan
dari proses Q.
n HUBUNGAN ANTAR PROSES
2.2.1. Komunikasi
Langsung (Lanjutan)
n Sebuah jaringan komunikasi pada bahasan ini
memiliki beberapa sifat, yaitu:
1. Sebuah jaringan yang didirikan secara otomatis
diantara setiap pasang dari proses yang ingin dikomunikasikan. Proses tersebut
harus mengetahui identitas dari semua yang ingin dikomunikasikan.
2. Sebuah jaringan adalah terdiri dari
penggabungan dua proses.
3. Diantara setiap pesan dari proses terdapat
tepat sebuah jaringan.
n Pembahasan ini memperlihatkan sebuah cara
simetris dalam pemberian alamat. Oleh karena itu, baik keduanya yaitu pengirim
dan penerima proses harus memberi nama bagi yang lain untuk berkomunikasi,
hanya pengirim yang memberikan nama bagi penerima sedangkan penerima tidak
menyediakan nama bagi pengirim. Dalam konteks ini, pengirim dan penerima secara
sederhana dapat dijabarkan sebagai:
1. Send (P, message) - mengirim sebuah pesan
kepada proses P.
2. Receive (id, message) - menerima sebuah pesan
dari semua proses. Variabel id diatur sebagai nama dari proses dengan
komunikasi.
n HUBUNGAN ANTAR PROSES
2.2.2. Komunikasi
Tidak Langsung
n Dengan komunikasi tidak langsung, pesan akan
dikirimkan pada dan diterima dari/ melalui mailbox (kotak surat) atau
terminal-terminal, sebuah mailbox dapat dilihat secara abstrak sebagai
sebuah objek didalam setiap pesan yang dapat ditempatkan dari proses dan dari
setiap pesan yang bias dipindahkan.
n Setiap kotak surat memiliki sebuah identifikasi
(identitas) yang unik, sebuah proses dapat berkomunikasi dengan beberapa proses
lain melalui sebuah nomor dari mailbox yang berbeda.
n Dua proses dapat saling berkomunikasi apabila
kedua proses tersebut sharing mailbox.
n Pengirim dan penerima dapat dijabarkan sebagai:
1. Send (A, message) - mengirim pesan ke mailbox
A.
2. Receive (A, message) - menerima pesan dari mailbox
A.
n HUBUNGAN ANTAR PROSES
2.2.2. Komunikasi
Tidak Langsung (Lanjutan)
n Dalam masalah ini, link komunikasi mempunyai
sifat sebagai berikut:
1. Sebuah link dibangun diantara sepasang proses
dimana kedua proses tersebut membagi mailbox.
2. Sebuah link mungkin dapat berasosiasi dengan
lebih dari dua proses.
3. Diantara setiap pasang proses komunikasi,
mungkin terdapat link yang berbeda-beda, dimana setiap link berhubungan pada
satu mailbox.
n Misalkan terdapat proses P1, P2 dan P3 yang
semuanya share mailbox. Proses P1 mengirim pesan ke A, ketika P2 dan P3
masing-masing mengeksekusi sebuah kiriman dari A. Proses mana yang akan
menerima pesan yang dikirim P1? Jawabannya tergantung dari jalur yang kita
pilih:
1. Mengizinkan sebuah link berasosiasi dengan
paling banyak 2 proses.
2. Mengizinkan paling banyak satu proses pada
suatu waktu untuk mengeksekusi hasil kiriman (receive operation).
3. Mengizinkan sistem untuk memilih secara mutlak
proses mana yang akan menerima pesan (apakah itu P2 atau P3 tetapi tidak
keduanya, tidak akan menerima pesan). Sistem mungkin mengidentifikasi penerima
kepada pengirim.
n HUBUNGAN ANTAR PROSES
2.2.2. Komunikasi
Tidak Langsung (Lanjutan)
n Mailbox mungkin dapat dimiliki oleh sebuah
proses atau sistem operasi. Jika mailbox dimiliki oleh proses, maka kita
mendefinisikan antara pemilik (yang hanya dapat menerima pesan melalui mailbox)
dan pengguna dari mailbox (yang hanya dapat mengirim pesan ke mailbox).
n Selama setiap mailbox mempunyai
kepemilikan yang unik, maka tidak akan ada kebingungan tentang siapa yang harus
menerima pesan dari mailbox. Ketika proses yang memiliki mailbox
tersebut diterminasi, mailbox akan hilang. Semua proses yang mengirim
pesan ke mailbox ini diberi pesan bahwa mailbox tersebut tidak
lagi ada. Dengan kata lain, mempunyai mailbox sendiri yang independent,
dan tidak melibatkan proses yang lain. Maka sistem operasi harus memiliki
mekanisme yang mengizinkan proses untuk melakukan hal-hal dibawah ini:
1. Membuat mailbox baru.
2. Mengirim dan menerima pesan melalui mailbox.
3. Menghapus mailbox.
n Proses yang membuat mailbox pertama kali
secara default akan memiliki mailbox tersebut. Untuk pertama kali,
pemilik adalah satu-satunya proses yang dapat menerima pesan melalui mailbox
ini.
n HUBUNGAN ANTAR PROSES
3. Sinkronisasi
n Komunikasi antara proses membutuhkan place by
calls untuk mengirim dan menerima data primitive. Terdapat rancangan yang
berbeda-beda dalam implementasi setiap primitive. Pengiriman pesan mungkin
dapat diblok (blocking) atau tidak dapat dibloking (nonblocking)
- juga dikenal dengan nama sinkron atau asinkron.
1. Pengiriman yang diblok: Proses pengiriman di
blok sampai pesan diterima oleh proses penerima (receiving process) atau
oleh mailbox.
2. Pengiriman yang tidak diblok: Proses pengiriman
pesan dan mengkalkulasi operasi.
3. Penerimaan yang diblok: Penerima mem blok
samapai pesan tersedia.
4. Penerimaan yang tidak diblok: Penerima
mengembalikan pesan valid atau null.
n HUBUNGAN ANTAR PROSES
4. Buffering
n Baik komunikasi itu langsung atau tak langsung,
penukaran pesan oleh proses memerlukan antrian sementara. Pada dasarnya,
terdapat tiga jalan dimana antrian tersebut diimplementasikan:
1. Kapasitas nol: antrian mempunyai panjang
maksimum 0, maka link tidak dapat mempunyai penungguan pesan (message
waiting). Dalam kasus ini, pengirim harus memblok sampai penerima menerima pesan.
2. Kapasitas terbatas: antrian mempunyai panjang
yang telah ditentukan, paling banyak n pesan dapat dimasukkan. Jika antrian
tidak penuh ketika pesan dikirimkan, pesan yang baru akan menimpa, dan pengirim
pengirim dapat melanjutkan eksekusi tanpa menunggu. Link mempunyai kapasitas
terbatas. Jika link penuh, pengirim harus memblok sampai terdapat ruang pada
antrian.
3. Kapasitas tak terbatas: antrian mempunyai
panjang yang tak terhingga, maka, semua pesan dapat menunggu disini. Pengirim
tidak akan pernah di blok.
n THREAD
n Thread, atau kadang-kadang disebut proses ringan (lightweight), adalah
unit dasar dari utilisasi CPU. Di dalamnya terdapat ID thread, program counter,
register, dan stack. Dan saling berbagi dengan thread lain dalam proses yang
sama.
n THREAD
1. Konsep Dasar
n Secara informal, proses adalah program yang
sedang dieksekusi. Ada dua jenis proses, proses berat (heavyweight) atau
biasa dikenal dengan proses tradisional, dan proses ringan atau kadang disebut
thread.
n Thread saling berbagi bagian program, bagian
data dan sumber daya sistem operasi dengan thread lain yang mengacu pada proses
yang sama. Thread terdiri atas ID thread, program counter, himpunan register,
dan stack. Dengan banyak kontrol thread proses dapat melakukan lebih dari satu
pekerjaan pada waktu yang sama.
n THREAD
2. Keuntungan
n Tanggap: Multithreading mengizinkan
program untuk berjalan terus walau pun pada bagian program tersebut di block
atau sedang dalam keadaan menjalankan operasi yang lama/ panjang. Sebagai
contoh, multithread web browser dapat mengizinkan pengguna berinteraksi dengan
suatu thread ketika suatu gambar sedang diload oleh thread yang lain.
n Pembagian sumber daya: Secara default, thread
membagi memori dan sumber daya dari proses. Keuntungan dari pembagian kode
adalah aplikasi mempunyai perbedaan aktifitas thread dengan alokasi memori yang
sama.
n THREAD
2. Keuntungan
(LANJUTAN)
n Ekonomis: Mengalokasikan memori dan sumber daya
untuk membuat proses adalah sangat mahal. Alternatifnya, karena thread membagi
sumber daya dari proses, ini lebih ekonomis untuk membuat threads.
n Pemberdayaan arsitektur multiprosesor:
Keuntungann dari multithreading dapat ditingkatkan dengan arsitektur
multiprosesor, dimana setiap thread dapat jalan secara parallel pada prosesor
yang berbeda. Pada arsitektur prosesor tunggal, CPU biasanya berpindah-pindah
antara setiap thread dengan cepat, sehingga terdapat ilusi paralelisme, tetapi
pada kenyataannya hanya satu thread yang berjalan di setiap waktu.
n THREAD
3. User thread
n Didukung oleh kernel dan diimplementasikan oleh
thread library ditingkat pengguna. Library mendukung untuk pembentukan thread,
penjadualan, dan managemen yang tidak didukung oleh kernel.
n THREAD
4. Kernel
Threads
n Kernel thread didukung secara langsung oleh
sistem operasi: pembentukan thread, penjadualan, dan managemen dilakukan oleh
kernel dalam ruang kernel. Karena managemen thread telah dilakukan oleh sistem
operasi, kernel thread biasanya lebih lambat untuk membuat dan mengelola
daripada pengguna thread.
n Bagaimana pun, selama kernel mengelola thread,
jika suatu thread di block tehadap sistem pemanggilan, kernel dapat
menjadualkan thread yang lain dalam aplikasi untuk dieksekusi. Juga, di dalam
lingkungan multiprosesor, kernel dapat menjadualkan thread dalam prosesor yang
berbeda. Windows NT, Solaris, dan Digital UNIX adalah sistem operasi yang
mendukung kernel thread.
n MULTI THREADING
n MULTI THREADING
Model Many to
One
n Model many-to-one ini memetakan beberapa
tingkatan pengguna thread hanya ke satu buah kernel thread. Managemen proses
thread dilakukan oleh (di ruang) pengguna, sehingga menjadi efisien, tetapi
apabila sebuah thread melakukan sebuah pemblokingan terhadap sistem
pemanggilan, maka seluruh proses akan berhenti (blocked). Kelemahan dari
model ini adalah multihreads tidak dapat berjalan atau bekerja secara paralel
di dalam multiprosesor dikarenakan hanya satu thread saja yang bisa mengakses
kernel dalam suatu waktu.
n MULTI THREADING
Model One to One
n Model one-to-one memetakan setiap thread
pengguna ke dalam satu kernel thread. Hal ini membuat model one-to-one lebih
sinkron daripada model many-to-one dengan mengizinkan thread lain untuk
berjalan ketika suatu thread membuat pemblokingan terhadap sistem pemanggilan;
hal ini juga mengizinkan multiple thread untuk berjalan secara parallel dalam
multiprosesor.
n MULTI THREADING
Model Many to
Many
n Beberapa tingkatan thread pengguna dapat
menggunakan jumlah kernel thread yang lebih kecil atau sama dengan jumlah
thread pengguna. Jumlah dari kernel thread dapat dispesifikasikan untuk
beberapa aplikasi dan beberapa mesin (suatu aplikasi dapat dialokasikan lebih
dari beberapa kernel thread dalam multiprosesor daripada dalam uniprosesor)
dimana model many-to-one mengizinkan pengembang untuk membuat thread pengguna
sebanyak mungkin, konkurensi tidak dapat tercapai karena hanya satu thread yang
dapat dijadualkan oleh kernel dalam satu waktu.
DEVELOPER : DANI ADITYA PANGESTU
ADVISER : UMAM ALMUTAQSHID S.KOM
SEKOLAH : SMK INDUSTRI AL KAAFFAH, KEPANJEN
Komentar
Posting Komentar