MAKALAH SISTEM OPERASI
“PROSES”
Disusun oleh:
KELOMPOK 3
MUHIBIN ANNUR (16101415)
PUTRI MEILUKI (16101963)
BAIQ SUPIANTI (16101812)
RINA ANDIRA (16101780)
STIKI/STIKOM
INDONESIA
Jl.
Tukad Pakarisan 97 Denpasar
KATA
PENGANTAR
Puja dan puji syukur kehadirat ALLAH
SWT yang telah memberikan rahmat dan hidayah serta inayah-Nya kepada kita.
Sehingga dengan rahmat-Nya, Alhamdulillah makalah Sistem Operasi yang berjudul
“proses ” ini dapat terselesaikan dangan tepat waktu. Makalah ini kami buat
untuk memenuhi tugas dari mata kuliah sistem operasi.
Terima kasih kami ucapkan kepada semua pihak yang telah membantu
dalam bentuk materi dan saran, serta dibuat dengan segala masukan dan
kekurangan yang telah diberikan pada saya sehingga makalah ini dapat selesai.
Saya berharap kepada semua pihak dengan segala kritik
dan saran yang bersifat membangun, sangat kami harapkan
untuk dimasa yang akan datang agar bisa menyempurnakan makalah ini, sebab
makalah ini masih banyak kekurangannya.
Denpasar, April 2017
Penulis
BAB I
PENDAHULUAN
1.1 Latar Belakang
Sistem
operasi merupakan suatu program yang memantau dan mengatur pemakaian sumber
daya computer serta menjembatani antara user/pengguna dengan perangkat keras
computer.Yang mana didalam sistem operasi tersebut memiliki banyak komponen –
komponen yang sangat berperan didalamnya. Salah satu komponen yang ada
didalamnya adalah proses dan thread (multithreading).
Hal
tersebutlah yang melatar belakangi pembuatan makalah ini, yaitu untuk mengupas
isi yang terkandung dalam proses dan thread (multithreading). Dengan tujuan
mahasiswa sedikit banyaknya dapat memahami apa itu proses dan apa itu thread
pada sebuah sistem operasi.
1.2 Rumusan Masalah
Dalam
penulisan makalah ini membatasi permasalahan yang akan dibahas hanya pada:
v Proses
ü Pengertian
Proses
ü Keadaan
Proses / Status Proses
ü Process
Control Block
ü Penjadwalan
Process
ü Operasi-operasi
pada proses
ü Hubungan Antar Proses
BAB II
PEMBAHASAN
MATERI
2.1 PROSES
A. Pengertian Proses
Proses merupakan aktivitas yang sedang terjadi, sebagaimana digambarkan
oleh nilai pada program counter dan isi dari daftar prosesor / procesor’s
registry. Umumnya suatu proses juga termasuk proses stuck, yang berisikan data
temporer (seperti parameter metoda, address yang kembali dan variable local)
dan sebuah data section yang berisikan variable global, atau
lebih jelasnya proses adalah keadaan
ketika sebuah program sedang di eksekusi. Saat komputer berjalan, terdapat
banyak proses yang berjalan secara bersamaan. Sebuah proses dibuat melalui
system call create-process yang membentuk proses turunan ( child process) yang
dilakukan oleh proses induk (parent process). Proses turunan tersebut juga
mampu membuat proses baru sehingga semua proses ini pada akhirnya membentuk
pohon proses.
Ketika
sebuah proses dibuat maka proses tersebut dapat memperoleh sumber-daya seperti
waktu CPU, memori, berkas, atau perangkat I/O. Sumber daya ini dapat diperoleh
langsung dari sistem operasi, dari proses induk yang membagi-bagikan sumber
daya kepada setiap proses turunannnya, atau proses turunan dan proses induk
berbagi sumber-daya yang diberikan sistem operasi.
B. Keadaan Proses / Status Proses
Sebagaimana
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 satu dari keadaan berikut ini :
v
New :
Proses sedang dikerjakan/dibuat.
v
Running :
Intruksi sedang dikerjakan.
v
Waiting
: Proses sedang menunggu sejumlah kejadian untuk terjadi
(seperti sebuah penyelesaian I/O atau penerimaan
sebuah
Tanda/signal.)
v
Ready : Proses sedang menunggu untuk
ditugaskan pada sebuah prosesor.
v
Terminated : Proses
telah selesai melaksanakan tugasnya/mengeksekusi.
v
Suspend : ketika process yang sedang di block
yang dipindah ke secondary
memory.
C. Process Control Block
Setiap
proses dalam system operasi digambarkan oleh sebuah Process Control Block
(PCB), yang disebut juga dengan Control Block. PCB berfungsi sebagai tempat
menyimpan/gudang informasi apapun yang berfariasi dari proses ke proses.
v
BAGIAN-BAGIAN
PCB
ü Trace adalah suatu bagian pada PCB yang digunakan sebagai jalannya arus listrik atau
bisa juga disebut sebagai jalur kelistrikan. supaya jalur ini tidak short
dengan jalur lain yang tidar satu jalur maka trace ini ditutup/dilapisi oleh
suatu lapisan yang biasa disebut solder mask coating/solder resist
coating/green mask meskipun tidak semua lapisan ini berwarna hijau.
ü Via adalah suatu bagian biasanya berbentuk lubang yang berfungsi sebagai penghubung
antar lapisan pada PCB
ü Pad adalah suatu bagian pada PCB yang yang digunakan untuk meletakkan terminal/kaki
komponen Jenis SMT
ü PTH adalah suatu bagian pada PCB yang digunakan untuk memasukkan terminal/kaki
komponen ajenis THT dimana bagian tong/barrel dilapisis oleh metal sehingga
solder tidak hanya mengikat pada land tapi juga pada bagian barrel.
ü Non PTH adalah hampir sama dengan PTH,
namun bagian tengah/tong/barrel tidak dilapisi oleh metal sehingga solder hanya
mengikat pada land saja
ü CRD adalah suatu tanda, huruf atau angka yang berada pada permukaan PCB yang digunakan
sebagai petunjuk komponen atau part lain dipasang di PCB
ü PCB Model adalah suatu tanda atau informasi yang bisa
digunakan untuk membedakan model PCA yang satu dengan yang lain.
PCB
berisikan banyak bagian dari informasi yang berhubungan dengan sebuah proses
yang spesifik, termasuk hal-hal berikut :
v Status
proses
Status proses merupakan keadaan yang memungkinkan terjadinya aktivitas new,
ready, running, waiting, halted,terminated dan banyak juga yang lainya.
v program
counter
Counter mengidentifikasikan address dari perintah selanjutnya untuk
dijalankan dalam proses ini.
v CPU register
Jumlah dan jenis register memiliki banyak fariasinya, tergantung pada
rancangan komputernya. Register tersebut termasuk accumulator, index register,
stack pointer, general popuses register, kode-kode informasi dalam bentuk
apapun. Besertaan dengan program counter, keadaan/status informasi harus
disimpan ketika terjadi gangguan, dan memungkinkan proses tersebut
berjalan/bekerja dengan benar setelahnya.
v Informasi manajemen memori
Suatu informasi sebagai nilai dari dasar dan batas register, tabel
page/halaman, atau tabel segmen yang tergantung pada system memori yang
digunakan oleh system operasi.
v Informasi pencatatan
Informasi yang menyatakan jumlah dari CPU dan waktu real yang digunakan,
batas waktu, jumlah akun, jumlah job atau proses, dan lainya.
v Informasi status I/O
Informasi ini merupakan daftar dari perangkat I/O yang digunakan dalam
suatu proses.
D. Penjadwalan Process
Penjadwalan
proses merupakan pembagian waktu yang dilakukan agar suatu proses dapat
berjalan sepanjang waktu dan penggunaan CPU menjadi lebih maksimal. Tujuan dari
pembagian waktu adalah untuk mengganti CPU diantara proses-proses yang begitu
sering dilakukan sehingga pengguna dapat berinteraksi dengan program lain
disaat CPU sedang bekerja.
v Penjadwalan
Antrian
Setiap proses yang memasuki sebuah sistem akan
diletakan pada antrian job, yang terdiri dari seluruh proses dalam sistem.
Meliputi proses yang hidup pada memori utama, siap dan dan menunggu untuk
dieksekusi yang disimpan dalam sebuah daftar antrian yang disebut ready queue.
Dalam sebuah header queue berisikan penunjuk pada PCB-PCB awal dan akhir, dan
setiap PCB memiliki pointer field ysng menunjuksn proses dalam ready queue.
Ketika sebuah proses mengalokasikan CPU, proses
tersebut berjalan lalu berhenti, di intrupsi, atau menunggu suatu kejadian
tertentu, seperti penyelesaian suatu permintaan I/O. Daftar dari proses yang
menunggu untuk peralatan I/O tertentu disebut dengan device queue.
Representasi umum untuk suatu diskusi mengenai
penjadwalan proses adalah diagram antrian, seperti gambar berikut:
Setiap kotak segi empat menunjukan sebuah
antrian.Dua tipe antrian yang menunjukan antrian yang siap dan suatu perangkat
device queue.Lingkaran menunuukan sumber-sumber yang melayani sistem. Satu dari
beberapa kejadian dapat terjadi seperti berikut :
§ Proses dapat mengeluarkan permintaan
I/O dan diletakan dalam antrian I/O.
§ Proses dapat membuka subproses yang
baru dan menunggu terminasinya sendiri.
§ Proses dapat diganti secara paksa
dari CPU, sebagai hasil dari intrupsi dan diletakan kembali dalam ready queue.
Dalam dua kasus pertama proses akhirnya berhenti
dari waiting state menjadi ready state dan diletakan kembali kedalam ready
queue.
v Scheduler
Sebuah proses dapat mengeksekusi hanya untuk
bebereapa milidetik debelum meminta permintaan I/O. penjadwalan shorter
mengeksekusi paling sedikit sekali dalam 100 milidetik. Penjadwalan longterm
memiliki interval yang lebih panjang antara eksekusi, sehingga memakai waktu
lebih lama untuk menentukan proses mana yang harus dipilih untuk dieksekusi.
Secara umum proses dapat dijelaskan sebagai I/O
bound dan CPU bound. Proses I/O bound adalah salah satu proses yang membuang
waktunya untuk mengerjakan I/O dari pada melakukan perhitungan. Sedangkan
proses CPU bound adalah salah satu proses yang jarang menghasilkan permintaan
I/O dan menggunakan lebih banyak waktunya untuk melakukan komputasi daripada
yang digunakan oleh proses I/O bound.
Jika seluruh proses adalah I/O bound, ready
queue hampir akan selalu kosong dan penjadwalan shorter akan memiliki sedikit
tugas. Jika seluruh proses adalah CPU bound, I/O waiting queue hampir akan
selalu kosong, peralatan tidak terpakai dan sistem akan menjadi tidak seimbang.
Sistem yang memiliki kinerja yang baik adalah yang mengkombinasikan proses I/O
bound dan proses CPU bound.
Penjadwal medium term memiliki tujuan untuk
memindahkan proses dari memori (dari pengisian aktif dari CPU) dan untuk
mengurangi derajat dari multi programming. Kemudian proses dapat diperkenalkan
kedalam memori dan eksekusinya dapat dilanjutkan dimana proses tersebut
diangkat. Skema ini disebut swapping. Proses di swapped out dan diswapped in
oleh penjadwal jangka menengah untuk meningkatkan pencampuran proses atau suatu
perubahan dalam persyaratan memori untuk dibebaskan.
v Switch
Context
Alih konteks atau switch context adalah kegiatan
mengganti CPU ke proses lain dan kemudian beralih ke proses yang baru yang
memerlukan penyimpanan suatu keadaan proses lama (state of old process).
Ketika alih konteks terjadi , karnel menyimpan konteks dari proses lama kedalam
PCB nya dan mengisi konteks yang telah disimpan dari proses baru yang telah
terjadwal untuk berjalan. Pergantian waktu konteks adalah murni overhead,
karena sistem melakukan pekerjaan yang tidak perlu.Kecepatanya bervariasi dari
masing-masing mesin, bergantung pada kecepatan memori, jumlah register yang
harus dicopy, dan keberadaan instruksi khusus (seperti instruksi tunggal untuk
mengisi atau menyimpan seluruh register).Tingkat kecepatan biasanya berkisar
antara 1 – 1000 mikro detik.
E. Operasi-operasi pada proses
Proses dalam
sistem dapat dieksekusi secara bersamaan, proses tersebut harus dibuat dan
dihapus secara dinamis. Maka sistem operasi harus menyediakan suatu mekanisme
untuk pembuatan proses dari terminasi proses.
a.
Pembuatan Proses
Suatu proses dapat membuat beberapa proses baru
melalui sistem pemanggilan pembuatan proses selama jalur eksekusi. Pembuatan
proses dinamakan induk proses dan proses baru disebut anak proses dari proses
tersebut. Secara umum suatu proses memerlukan sumber tertentu (waktu CPU,
memori, berkas, perangkat I/O) untuk menyelesaikan tugasnya.
Ketika suatu proses membuat sebuah subproses,
sehingga subproses mampu untuk memperoleh sumbernya secara langsung dari sistem
operasi. Induk operasi harus membatasi sumber dan berbagi sumber (seperti
memori berkas) diantara beberapa anaknya. Membatasi suatu anak proses menjadi
subset sumber daya induknya mencegah proses apapun dari pengisian sistem yang
terlalu banyak dengan menciptakan terlalu banyak subsistem.
Ketika suatu proses membuat proses baru, ada dua
kemungkinan yang terjadi dalam term eksekusi :
v Induk terus
menerus mengeksekusi secara bersama-sama dengan anaknya.
v Induk
menunggu hingga sebagian dari anaknya telah diakhiri/terminasi. Selain itu juga
ada dua kemungkinan yang terjadi dalam term dari address space pada proses
baru, yaitu:
·
Anak proses adalah duplikat dari induk proses.
·
Anak proses
memiliki program yang terisikan didalamnya.
b. Terminasi
Proses
Terminasi proses merupakan sebuah proses mengakhiri proses ketika proses
tersebut selesai mengeksekusi pernyataan akhirnya dan meminta sistem operasi
untuk menghapusnya dengan menggunakan sistem pemanggilan exit. Pada saat itu,
proses 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. Suatu proses dapat menyebabkan terminasi dari proses ini melalui
sistem pemanggilan yang tepat (contohnya abort). Biasanya hal tersebut hanya
dapat dipanggil oleh induk proses tersebut yang akan diterminasi.
Induk proses dapat menterminasi/mengakhiri satu dari anaknya untuk beberapa
alas an, seperti :
v Anak telah
melampaui kegunaanya atas sebagian sumber yang telah diperuntukan untuknya.
v Pekerjaan
yang ditugaskan pada anak telah keluar dan sistem operasi tidak memperbolehkan
sebuah anak untuk meneruskan jika induknya
berakhir.
F. Hubungan Antar Proses
Ada sebab
beberapa proses dapat saling berkomunikasi dan bekerja sama :
a.
Proses yang kooperatif
Proses yang bersifat simultan (concurrent) dijalankan pada sistem operasi
dapat dibedakan menjadi dua, yaitu proses independent dan proses kooperatif.
Suatu proses dikatakan independent apabila proses tersebut tidak dapat
terpengaruh atau dipengaruhi oleh proses lain yang sedang dijalankan pada
sistem. Sedangkan proses kooperatif adalah proses yang dapat dipengaruhi atau
pun terpengaruhi oleh proses lain yang sedang dijalankan pada sistem. Ada empat
alasan untuk penyediaan sebuah lingkungan yang dibolehkan terjadi proses
kooperatif, yaitu:
·
Pembagian informasi, apabila beberapa pengguna
tertarik pada bagian informasi yang sama (contohnya berkas bersama) dan harus
tersedia tempat yang memungkinkan akses terus menerus ke tipe dari
sumber-sumber tersebut.
·
Kecepatan penghitungan/komputasi, supaya sebuah tugas
dapat berjalan lebih cepat kita harus membaginya kedalam subtask. Setiap bagian
subtask akan dijalankan secara parallel dengan yang lainya. Dan peningkatan
kecepatan dapat dilakukan jika computer tersebut memiliki elemen pemrosesan
ganda (seperti CPU atau jalur I/O).
·
Modularitas, untuk membangun sebuah sistem pada sebuah
model modular-modular, fungsi sistem perlu dibagi menjadi beberapa proses atau
threads.
·
Kenyamanan, pengguna memiliki banyak tugas untuk
dikerjakan secara bersamaan pada satu waktu, seperti mengedit, mencetak, dan
mengcompile secara parallel.
b. Komunikasi
Proses dalam Sistem
Untuk berkomunikasi dengan yang lain perlu diediakan sebuah alat-alat
proses kooperatif yaitu sebuah komunikasi dalam proses (IPC=Inter Process
Comunication). IPC menyediakan mekanisme untuk mengizinkan proses-proses untuk berkomunikasi
dan menyelaraskan aksi-aksi mereka tanpa berbagi ruang alamat yang sama. IPC
merupakan penyedia layanan terbaik dengan menggunakan sebuah sistem penyampaian
pesan, dan sistem-sistem pesan dapat diberikan dalam banyak cara :
Ø Sistem
penyampaian pesan
Sistem pesan
berfungsi untuk mempperbolehkan komunikasi satu dengan yang lain tanpa
menggunakan pembagian data. Fasilitas IPC menyediakan paling sedikit dua
operasi yaitu kirim pesan dan terima pesan.
Berikut ada
beberapa 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 variable.
Ø Komunikasi
Langsung
Setiap proses yang ingin
dikomunikasikan harus memiliki nama yang bersifat eksplisit baik penerima atau
pengirim dari komunikasi tersebut. Pengiriman dan penerimaan pesan secara
primitive dapat dijabarkan sebagai berikut :
·
Send (P,message), mengirim sebuah pesan ke proses P.
·
Receive (Q,message), menerima sebuah pesan dari proses
Q.
Ada beberapa sifat jaringan komunikasi diantaranya adalah:
·
Sebuah jaringan yang didirikan secara otomatis
diantara setiap pasang dari proses yang ingin dikomunikasikan. Proses tersebut
harus mengetahui identitas dari semua yang akan dikomunikasikan.
·
Sebuah
jaringan terdiri dari penggabungan dua buah proses.
·
Diantara setiap pesan dari proses terdapat tempat
sebuah jaringan.
Ø Komunikasi
tidak langsung
Dengan komunikasi tidak
langsung, pesan akan dikirimkan melalui mailbox (kotak surat) atau
terminal-terminal, sebuah mailbox secara abstrak dapat dilihat sebagai sebuah
objek dalam sebuah pesan yang dapat ditempatkan dari proses dan dari setiap pesan
yang bisa dipindahkan. Setiap mailbox memiliki identitas yang unik dan
dapat berkomunikasi dengan beberapa pesan lain melalui nomor dari mailbox yang
berbeda. Pengirim dan penerima dapat dijabarkan sebagai berikut :
·
Send (A,message), mengirim pesan ke mailbox A.
·
Receive (A,message), menerima pesan dari mailbox A.
Ada beberapa sifat yang dimiliki link komunikasi, diantaranya :
·
Sebuah link dibangun diantara sepasang proses dimana
kedua proses tersebut membagi mailbox.
·
Sebuah link mungkin dapat berasosiasi dengan lebih
dari dua proses.
·
Diantara setiap pasang proses komunikasi terdapat link
yang berbeda-beda, dimana setiap link berhubungan pasa satu mailbox.
·
Jika mailbox dimiliki oleh proses, maka mendefinisikan
pemilik sebagai yang dapat menerima pesan melalui mailbox. Dan pengguna sebagai
yang dapat mengirim pesan ke mailbox. Sistem operasi memiliki mekanisme
yang mengizinkan proses untuk melakukan hal-hal berikut :
·
Membuat mailbox baru.
·
Mengirim dan menerima pesan melalui mailbox.
·
Menghapus mailbox.
Ø Sinkronisasi
Komunikasi antar proses
membutuhkan place by calls untuk mengirim dan menerima data primitive. Yang
dikenal sebagai sinkron atau asinkron adalah sebagai berikut :
·
Pengiriman
yang diblock, proses pengiriman diblock sampai pesan diterima oleh proses
penerima (receiving process) atau oleh mailbox.
·
Pengirim yang tidak diblock, proses pengiriman pesan
dan mengkalkulasi operasi.
·
Penerimaan yang diblock, penerima memblock sampai
pesan tersedia.
·
Penerimaan
yang tidak diblock, penerima mengembalikan pesan valid atau null.
Ø Buffering
Meskipun komunikasi itu
langsung atau tidak langsung, penukaran pesan oleh proses memerlukan antrian
sementara. Pada dasarnya terdapat tiga jalan dimana antrian tersebut
diimplementasikan :
·
Kapasitas nol; antrian mempunyai panjang maksimum
0,dan link tidak mempunyai penungguan pesan (message waiting). Sehingga
pengirim harus memblock sampai penerima menerima pesan.
·
Kapasitas terbatas; antrian
mempunyai panjang yang telah ditentukan, paling banyak n pesan dapat dimasukan.
Jika antrian tidak penuh ketika pesan dikirimkan, pesan baru akan menimpa dan
pengirim dapat melanjutkan eksekusi tanpa menunggu. Jika link penuh maka
pengirim harus memblock sampai terdapat ruang pada antrian.
·
Kapasitas tak terbatas; antrian mempunyai batas yang
tak hingga, maka semua pesan dapat menunggu dan pengirim tidak akan pernah
diblock.
G. Alasan –
alasan penciptaan proses
Alasan penciptaan proses memiliki
penyebab dan deskripsi seperti yang tercantum pada
H. Model proses
1. Model 2 status
Biasanya, dalam menjalankan
tuganya, proses berada pada salah satu dua status yaitu running atau not
running. Selain itu, terdapat suatu antrian untuk mendapatkan eksekusi yang
akan dijalankan. Dibawah ini adalah diagram antrian suatu proses.
Keterangan : Proses
dipindahkan oleh dispatcher dari SO ke CPU kemudian kembali ke antrian (Queue) sampai tugas tersebut selesai (lengkap) dan
seterusnya.
2. Lima
Status Model Proses
v Lima keadaan
di dalam diagram ini adalah :
- Running (berjalan) : Proses yang dieksekusi.
- Ready (siap) : Suatu proses yg disiapkan untuk melakukan eksekusi bila ada kesempatan.
- Blocked (diblokir) : Suatu proses yg tidak dapat mengeksekusi sampai beberapa event terjadi, seperti misalnya selesainya operasi I/O.
- New (baru) : Suatu proses yg baru dibuat tetapi belum diizinkan masuk ke pool proses-proses yg dapat dieksekusi oleh system operasi.
-
Exit (keluar) : Suatu proses yg telah di bebaskan dari pool proses-proses yg dapat dieksekusi oleh system operasi, baik karena dihentikan maupun dibatalkan dengan alasan tertentu.
Pada saat
sebuah proses diizinkan masuk ke system, proses tersebut ditaruh di antrian
Ready.Pada saat system operasi memilih proses lainnya berjalan, maka system
operasime milih salah satu proses yg berada di dalam antrian Ready. Apabila
tidak terdapat prioritas, pemilihan ini akan menjadi antrian FIFO yg sederhana.
Pada saat
proses yg sedang berjalan dihapuskan dari eksekusi, maka prose situ dihentikan
atau ditempatkan di antrian Ready atau antrian Blocked, bergantung pada
keadaannya.dan apabila suatu event terjadi, maka seluruh proses yg berada di
dalam natrian blocked yg sedang menunggu event itu akan dipindahkan ke antrian
Ready.
3. Enam status model proses
v Satu Status
Suspend
·
Ready :Proses berada di dalam memory utama
dan bias dieksekusi
- Blocked : Proses berada di dalam memory utama dan sedang menunggu event.
- Blocked/Suspend: Proses berada di dalam memory sekunder dan sedang menunggu event.
- Ready/Suspend : Proses berada di dalam memory sekunder namun dapat dieksekusi setelah dimuatkan ke dalam memory utama.
4. Tujuh status model proses
v Dua Status
Suspend
v Garis
putus-putus menandakan suatu transisi namun tidak diperlukan.Transisi-transisi
yg penting adalah sbb :
- Blocked à Blocked,Suspend : Apabila tidak terdapat proses dalam keadaan siap, maka sebuah prosesyg di blokir di swap-out untuk memberi ruang proses-proses lainnya yg tidak diblokir.
- Blocked, Suspend à Ready, Suspend : Suatu proses di dalam keadaan Blocked, suspend dipindahkan ke keadaan Ready, suspend apabila event yg ditunggunya terjadi.
- Ready, Suspend à Ready : Apabila di dalam memory utama tidak ada proses yg siap, maka system operasi harus membawa sebuah proses ke dalam memoryutama untuk melanjutkan eksekusi.
- ReadyàReady, suspend : Sistem operasi akan lebih menyukaimenunda prosesyg diblokir daripada menunda proses yg sudah siap, karena proses yg siap dapat segera dieksekusi, sedangkan proses yg diblokir memerlukan ruang memory dantidak dapat dieksekusi.
- Blocked -Blocked/Suspend : Jika tidak ada proses siap maka setidaknya satu diblokir proses swapped keluar untuk memberikan ruang bagi proses lain yang tidak diblokir.
- Blocked/Suspend -Ready/Suspend : Sebuah proses dalam Diblokir / Suspend negara tersebut akan dipindahkan ke Siap / Suspend saat acara yang telah menunggu terjadi.
- Ready/Suspend – Ready : Bila tidak ada siap proses di memori utama OS perlu membawa satu untuk melanjutkan eksekusi. Selain itu mungkin dengan kasus yang di proses Siap / Suspend negara memiliki prioritas lebih besar dari salah satu proses di Siap negara.
- Ready -Ready/Suspend: Biasanya OS memilih untuk menunda proses yang diblokir daripada satu siap karena proses siap sekarang dapat dijalankan sedangkan yang diblokir adalah proses mengambil atas ruang memori utama dan tidak dapat dijalankan.
- New – Ready/Suspend and New – Ready : Ketika sebuah proses baru dibuat maka dapat ditambahkan ke antrian Siap atau Siap / Suspend antrian.
- Blocked/Suspend -Blocked : Pencantuman ini tampaknya transisi jika proses belum siap untuk dijalankan dan belum di utama memori tetapi mempertimbangkan skenario berikut Sebuah proses terminates freeing beberapa memory.memory utama akan memproses dalam (Diblokir / Suspend) antrian dengan prioritas yang lebih tinggi daripada salah satu dalam proses (Ready / Suspend) antrian dan OS memiliki alasan percaya bahwa memblokir kegiatan untuk proses yang akan terjadi segera.
- Running – Ready/Suspend:Biasanya yang menjalankan proses tersebut akan dipindahkan ke negara Siap jika alokasi waktu berakhir.
- Any State – Exit: Biasanya, proses terminates ketika sedang berjalan baik karena telah selesai atau karena kondisi beberapa kesalahan fatal.
Setelah tahap ini, proses
memberikan beberapa intruksi pada beberapa temenya yaitu penjelasan pada tabel
kontrol sistem operasi windows diatas :
Gambar Tabel Kontrol Dalam Proses Windows
Didalam proses sistem
operasi windows, terdapat switc yaitu :memungkinkan berpindahnya proses.
Suatu process switchdapat terjadi kapapun SO memperoleh kontrol dari proses yang
sedang (currently) berjalan. Event yang mungkin memberikan SO
kontrol adalah :
H. Langkah-langkah
dalam process switch:
1.
Simpan context dari processor termasuk program counter (PC) & register lain
2.
Update process control block (PCB) dariproses yang saat
terkini dalam status Running
3.
Pindahkan PCB ke antrian
yang tepat –ready; blocked; ready/suspend
4.
Pilih proses lain untuk dieksekusi
5.
Update PCB dari proses
terpilih
6.
Update struktur data memorymanagement
7.
Restore (kembalikan) contextdari proses terpilih
2.2 THREAD
A. Konsep dasar thread
Thread
disebut juga sebagai proses ringan (lightweight) yang merupakan unit dasar dari
utilitas CPU, yang mana didalamnya terdapat id trhead, program counter,
register, dan stuck. Thread saling berbagi bagian program, bagian data, dan
sumber daya sistem operasi dengan thread lain yang mengacu pada proses yang
sama disebut dengan multithreading. Dengan banyak control thread proses dapat
melakukan lebih dari satu pekerjaan dalam waktu yang sama.
B. Keuntungan Multithreading
a. Responsive
Aplikasi interaktif
menjadi tetap responsif meskipun sebagian dari program sedang diblok atau
melakukan operasi lain yang panjang. Umpamanya, sebuah thread dari web browser
dapat melayani permintaan pengguna sementara thread yang lain berusaha
menampilkan gambar.
b. Berbagi
sumber daya
Beberapa
thread yang melakukan proses yang sama akan berbagi sumber daya. Keuntungannya
adalah mengizinkan sebuah aplikasi untuk mempunyai beberapa thread yang berbeda
dalam lokasi memori yang sama.
c. Ekonomis
Pembuatan sebuah
proses memerlukan pengalokasian memori dan sumber daya. Alternatifnya adalah
dengan menggunakan thread, karena thread membagi memori dan sumber daya yang
dimilikinya sehingga lebih ekonomis untuk membuat thread dan contextswitching
thread.
d. Utilisasi
arsitektur multiprosesor
Keuntungan
dari multithreading dapat sangat meningkat pada arsitektur multiprosesor,
dimana setiap thread dapat berjalan secara paralel di atas procesor yang
berbeda. Pada arsitektur processor tunggal, CPU menjalankan setiap thread
secara bergantian tetapi hal ini berlangsung sangat cepat sehingga menciptakan
ilusi paralel, tetapi pada kenyataanya hanya satu thread yang dijalankan CPU
pada satu-satuan waktu.
·
User Threads
Thread yang pengaturannya dilakukan oleh pustaka thread pada
tingkatan pengguna. Karena pustaka yang menyediakan fasilitas untuk pembuatan
dan penjadwalan thread, thread pengguna cepat dibuat dan dikendalikan.
·
Kernel
Threads
Thread yang didukung langsung oleh kernel. Pembuatan,
penjadwalan dan manajemen thread dilakukan oleh kernel pada kernel space.
Karena dilakukan oleh sistem operasi, proses pembuatannya akan lebih lambat
jika dibandingkan dengan thread pengguna.
C. Model Multithreading
a. Model Many
to One
Model ini
memetakan beberapa thread tingkatan pengguna ke sebuah thread. tingkatan
kernel. Pengaturan thread dilakukan dalam ruang pengguna sehingga efisien.
Hanya satu thread pengguna yang dapat mengakses thread kernel pada satu saat. Jadi
Multiple thread tidak dapat berjalan secara paralel pada multiprosesor. Contoh:
Solaris Green Threads dan GNU Portable Threads.
b. Model One to
One
Model ini
memetakan setiap thread tingkatan pengguna ke setiap thread. Ia menyediakan
lebih banyak concurrency dibandingkan model Many-to-One. Keuntungannya sama
dengan keuntungan thread kernel. Kelemahan model ini ialah setiap pembuatan
thread pengguna memerlukan tambahan thread kernel. Karena itu, jika
mengimplementasikan sistem ini maka akan menurunkan kinerja dari sebuah
aplikasi sehingga biasanya jumlah thread dibatasi dalam sistem. Contoh: Windows
NT/XP/2000 , Linux, Solaris 9.
c. Model Many
to Many
Model ini
memultipleks banyak thread tingkatan pengguna ke thread kernel yang jumlahnya
sedikit atau sama dengan tingkatan pengguna. Model ini mengizinkan developer
membuat thread sebanyak yang ia mau tetapi concurrency tidak dapat diperoleh
karena hanya satu thread yang dapat dijadwalkan oleh kernel pada suatu waktu.
Keuntungan dari sistem ini ialah kernel thread yang bersangkutan dapat berjalan
secara paralel pada multiprosessor.
D. Pustaka Thread
Pustaka Thread atau yang lebih
familiar dikenal dengan Thread Library bertugas untuk menyediakan API untuk
programmer dalam menciptakan dan memanage thread. Ada dua cara dalam
mengimplementasikan pustaka thread:
·
Menyediakan API dalam level pengguna tanpa dukungan
dari kernel sehingga pemanggilan fungsi tidak melalui system call. Jadi, jika
kita memanggil fungsi yang sudah ada di pustaka, maka akan menghasilkan
pemanggilan fungsi call yang sifatnya lokal dan bukan sistem call.
·
Menyediakan API di level kernel yang didukung secara
langsung oleh sistem operasi. Pemanggilan fungsi call akan melibatkan sistem call ke kernel.
Ada tiga pustaka thread yang sering
digunakan saat ini, yaitu: POSIX Pthreads, Java, dan Win32. Implementasi POSIX
standard dapat dengan cara user level dan kernel level, sedangkan Win32 adalah
kernel level. Java API thread dapat diimplementasikan oleh Pthreads atau Win32
BAB III
PENUTUP
3.1
Kesimpulan
A.
Proses merupakan aktivitas yang sedang terjadi,
sebagaimana digambarkan oleh nilai pada program counter dan isi dari daftar
prosesor / procesor’s registry.
B.
Tiap proses mungkin satu dari keadaan berikut ini :
·
New
·
Running
·
Waiting
·
Ready
·
Terminated
disebut juga
sebagai proses ringan (lightweight) yang merupakan unit dasar dari utilitas
CPU, yang mana didalamnya terdapat id trhead, program counter, register, dan
stuck.
3.2 Saran
Setelah
makalah ini ditulis hendaknya dosen yang bersangkutan dapat menjalaskan ataupun
menambahkan materi yang berkaitan dengan makalah ini kepada mahasiswa. Agar
mahasiswa dapat lebih memahami materi pembahasan tentang proses dan thread.
3.3 daftar
pustaka
Tidak ada komentar:
Posting Komentar