Proses dan implementasi Sistem Operasi
PROSES DAN IMPLEMENTASI SISTEM OPERASI
A.
Pengertian Proses
Proses pada sistem operasi adalah
program yang sedang dieksekusi, merupakan unit kerja terkecil yang secara
individu memiliki sumber sumber daya yang dijadwalkan oleh sistem operasi.
Awalnya proses dijalankan secara berurut (sekwensial) sesuai dengan “line code”
(stored program concept), suatu proses akan di eksekusi sampai selesai baru
kemudian berpindah ke proses selanjutnya. Sistem sekwensial memiliki kelemahan
yakni tingkat pengguna atau utilitas prosesor yang rendah.
Proses dapat melakukan lebih dari “program code yang
aktif”, seperti :
·
Melacak posisi instruksi (sequential
execution) program counter.
·
Menyimpan data sementara var, parameter,
return value stack.
·
Menyimpan data (initial, global variable
dll) : data section
·
Menyimpan status proses (contoh, aktif,
wait I/O request dll.)
B. Status
Proses
Proses yang dieksekusi
mempunyai lima status yang terdiri dari :
·
New : pembentukan suatu proses
·
Running : instruksi-instruksi yang sedang
dieksekusi
·
Waiting : proses menunggu untuk beberapa
event yang terjadi
·
Ready : menunggu untuk dialirkan ke
pemroses (processor)
·
Terminated : proses telah selesai
dieksekusi
![https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEib3vi6MC35mZBWvGRdG5pOp9Iemh2Uy9-RR9Al6w9a7wVr58AId4aXThm9oql5NbQ5BxnB6Zoy3RknY1HSFzZDAIMZnumWHdJwp7HYI9TsQaSxs4eHC57Co3viZCZSue0hd4DRGVf4__-k/s320/Picture1.png](file:///C:/Users/User/AppData/Local/Temp/msohtmlclip1/01/clip_image001.png)
Gambar 3.1 Diagram Proses
Saat proses dijalankan (executed) maka
status dari proses akan berubah
·
Status proses tidak selamanya aktif menggunakan
CPU).
·
Sering proses menunggu I/O complete =>
status wait, sebaiknya CPU diberikan kepada proses yang lain.
·
Mendukung multi-tasking – utilisasi CPU
dan I/O.
C. Pembentukan
Proses
Saat
komputer berjalan, terdapat banyak proses yang berjalan secara bersamaan.
Sebuah proses dibuat melalui system call createn process membentuk proses
turunan (child process) yang dilakukan oleh proses induk parent process. Proses
turunan tersebut juga mampu membuat proses baru sehingga kesemua proses-proses
ini pada akhirnya membentuk pohon proses.
Ketika
sebuah proses dibuat maka proses tersebut dapat memperoleh sumber daya seperti
"waktu CPU", "memori", "berkas" atau peerangkat
"M/K". Sumber daya ini dapat diperoleh langsung dari Sistem Operasi,
dari Proses Induk yang membagi-bagikan sumber daya kepada setiap proses
turunannya, atau proses turunan dan proses induk berbagi sumber daya yang
diberikan Sistem Operasi.
Ada
dua kemungkinan bagaimana jalannya (running) proses induk dan turunan berjalan
(running). Proses-proses tersebut berjalan secara konkuren atau proses induk
menunggu sampai beberapa/seluruh proses turunannya selesai berjalan.
D. Pengelolaan
Proses
Proses
perlu dikelola karena dalam sebuah proses membutuhkan beberapa sumber daya
untuk menyelesaikan tugasnya. Sumber daya tersebut dapat berupa CPU time,
memori, berkas-berkas, dan perangkat-perangkat I/O.
Sistem
operasi bertanggung jawab atas aktivitas - aktivitas yang
berkaitan dengan managemen
proses seperti :
·
Pembuatan dan penghapusan proses pengguna dan
sistem proses
- Menunda atau melanjutkan proses
- Menunda atau melanjutkan proses
·
Menyediakan mekanisme untuk proses
sinkronisasi
·
Menyediakan mekanisme untuk proses
komunikasi
·
Menyediakan mekanisme untuk penanganan
deadlock
Perkembangan
sistem komputer mendatang adalah menuju ke sistem multiprocessing,
multiprogramming, terdistribusi dan paralel yang mengharuskan adanya proses -
proses yang berjalan bersama dalam waktu yang bersamaan. Hal demikian merupakan
masalah yang perlu perhatian dari perancang sistem operasi. Kondisi dimana pada
saat yang bersamaan terdapat lebih dari satu proses disebut dengan kongkurensi
(proses-proses yang kongkuren). Proses - proses yang mengalami kongkuren dapat
berdiri sendiri (independen) atau dapat saling berinteraksi, sehingga membutuhkan
sinkronisasi atau koordinasi
proses yang baik.
E. Proses
Control Block (PCB)
Proses
Control Block adalah bentuk informasi-informasi lain yang diperlukan sistem
operasi untuk mengendalikan dan mengoordinasikan beragam proses aktif dalam
suatu proses. Dalam kenyataannya, proses banyak mengalami gangguan dalam
menjalankan tugasnya oleh karena itu, ada PCB (Proses Control Block) untuk
membantu dan memberikan dukungan kepada proses itu.
![https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhtBclNHFba_Vd4RWgGKTznKrAev5hrYMchbsfLxn5xj0-djAhYVoE3XGqi6DJs0F1QUgk4b-rQynKbENW3IVFIuqFcQk6z3e0SvKJbrGuYUQKdgzPpmDHhw3_Xl3sCo8ixsgH3Mswl9pGU/s1600/Picture2.jpg](file:///C:/Users/User/AppData/Local/Temp/msohtmlclip1/01/clip_image003.jpg)
Gambar
4.2 Proses Control Block
Tiap
proses digambarkan dalam sistem operasi oleh sebuah process control block (PCB)
disebut sebuah control block.PCB berisikan banyak bagian dari informasi yang
berhubungan dengan sebuah proses yang spesifik, seperti status proses, program
counter, CPU register, Informasi manajemen memori, informasi pencatatan,
informasi status I/O. PCB hanya berfungsi sebagai tempat penyimpanan informasi
yang dapat bervariasi dari proses yang satu dengan yang lain.
![https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi2LP2vCrZ8nXpt5PhO1L14Ag_2S7fIWFzrR_ziN8b5xJS6S2gT0uEabfHrRczLRYGdb6RK7B6zYmMCHzLuhFiFQ2eL6JXvoq4JXPn2V2JzAR1XcCfYBNO1DdIYZjbS7z3fJgY2uUNNH8kp/s1600/Picture3.png](file:///C:/Users/User/AppData/Local/Temp/msohtmlclip1/01/clip_image005.png)
Gambar
4.3 Proses PCB
·
Status proses :
status mungkin new, ready, running, waiting, halted, dll.
·
Program counter:
suatu stack yang berisi alamat dari instruksi selanjutnya untuk dieksekusi
untuk proses ini.
·
CPU register:
Register bervariasi dalam jumlah dan jenis, tergantung pada rancangan komputer.Register tersebut termasuk
accumulator, indeks register, stack pointer, general-purposes register,
ditambah code information pada kondisi apa pun. Besertaan dengan program
counter, keadaaan/status informasi harus disimpan ketika gangguan terjadi,
untuk memungkinkan proses tersebut
berjalan/bekerja dengan benar setelahnya.
·
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.
·
Informasi pencatatan:
Informasi ini termasuk jumlah dari CPU dan waktu riil yang digunakan, batas waktu, jumlah akun jumlah job atau proses,
dan banyak lagi.
·
Informasi
status I/O: Informasi termasuk daftar dari
perangkat I/O yang di gunakan pada proses ini, suatu daftar berkas-berkas yang
sedang diakses dan banyak lagi.
Elemen-elemen dari Process Control Block
(PCB) :
·
Identifier : menjelaskan proses yang sedang
terjadi
·
State : kondisi yang terjadi pada
proses
·
Priority : urutan perintah yang jelas pad
suatu proses
·
Program counter : instruksi pada proses
·
Memory pointers : media penyimpanan (penunjuk
alamat) pada proses
·
Context data : data yang berkaitan dengan
proses
·
I/O status information : terdapat masukan dan
keluaran yang diinginkan
·
Accounting information : memberikan informasi
yang dibutuhkan
F. Konsep Penjadwalan
Terdapat
3 konsep dasar Penjadwalan proses yaitu :
Ø
Penjadwalan
Antrian (Scheduling Queue)
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 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.
Ø
Penjadwalan /
Scheduler
Sebuah proses berpindah antara berbagai
penjadwalan antrian selama hidupnya. Sistem operasi harus memilih, untuk
keperluan penjadwalan, memproses antrian-antrian ini dalam cara tertentu.
Pemilihan proses dilaksanakan oleh penjadwal yang tepat/cocok. Dalam sistem
batch, sering ada lebih banyak proses yang diserahkan daripada yang dapat
dilaksanakan segera. Proses ini disimpan pada suatu alat penyimpan masal
(disket), dimana proses tersebut disimpan untuk eksekusi dilain waktu.
Penjadwalan long term, atau penjadwalan job, memilih proses dari pool ini dan mengisinya kedalam
memori eksekusi.
Ø
Alih Konteks /
Switch Contex
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. Ketika alih konteks terjadi, kernel menyimpan konteks dari proses lama kedalam PCB nya dan
mengisi konteks yang telah disimpan dari process baru yang telah terjadwal
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.
G.
Terminasi Proses
Suatu proses diterminasi ketika proses
tersebut telah selesai mengeksekusi perintah terakhir serta meminta sistem
operasi untuk menghapus perintah tersebut dengan menggunakan system call exit.
Pada saat itu, proses dapat mengembalikan data keluaran kepada proses induk-nya
melalui system call wait. Semua sumber-daya yang digunakan oleh proses akan dialokasikan
kembali oleh system operasi agar dapat dimanfaatkan oleh proses lain. Suatu
proses juga dapat diterminasi dengan sengaja oleh proses lain melalui system
call abort. Biasanya proses induk melakukan hal ini pada turunannya.
Alasan
terminasi tersebut seperti:
Ø
Turunan melampaui penggunaan sumber daya yang telah dialokasikan. Dalam
keadaan ini, proses induk perlu mempunyai mekanisme untuk memeriksa status turunannya-nya.
Ø
Task yang ditugaskan kepada turunan tidak lagi diperlukan.
Ø
Proses
induk selesai, dan sistem operasi tidak mengizinkan proses turunan untuk tetap
berjalan.
H.
Kerjasama Proses
Ø Proses independent
tidak mempengaruhi eksekusi proses yang lain
Ø Kerjasama proses
dapat mempengaruhi atau dipengaruhi oleh eksekusi proses yang lain
Ø Keuntungan
kerjasama proses :
·
Sharing
informasi
·
Meningkatkan
kecepatan komputasi
·
Modularitas
·
Kemudahan
Ø Masalah
Producer-Consumer
Paradigma
kerjasama proses – proses Producer menghasilkan informasi yang akan dikonsumsi
oleh proses Consumer :
·
Unbounded-buffer
– tidak menggunakan batasan ukuran di buffer.
·
Consumer
selalu dapat meminta item baru dan Producer selalu dapat menghasilkan item-item
baru.
·
Bounded-buffer
– menggunakan buffer dengan ukuran tertentu
·
Consumer
harus menunggu jika buffer kosong dan Producer harus menunggu jika buffer penuh
Ø Interprocess
Communication (IPC)
1). Komunikasi Langsung
Proses harus
diberi nama secara jelas :
·
send
(P, message) – kirim pesan ke proses P
·
receive(Q,
message) – terima pesan dari proses Q
Properti Jalur Komunikasi :
·
Jalur
dibangun secara otomatis
·
Setiap
jalur memiliki pasangan masing-masing dalam proses komunikasi
·
Jalur
komunikasi tersebut biasanya directional
2). Komunikasi Tidak Langsung
·
Pesan
dikirim dan diterima melalui mailboxes (yang ditunjuk sebagai port)
·
Properti
jalur komunikasi
·
Operasi
: Membuat mailbox baru, Mengirim dan menerima pesan melalui mailbox,
Menghapus/memusnahkan mailbox
·
Primitive
didefinisikan :
-
send(A,
message) – kirim pesan ke mailbox A
-
receive(A,
message) – terima pesan dari mailbox A
Ø Komunikasi Cilent-Server
-
Socket
![](file:///C:/Users/User/AppData/Local/Temp/msohtmlclip1/01/clip_image007.jpg)
-
Remote
Procedure Calls (RPC)
![](file:///C:/Users/User/AppData/Local/Temp/msohtmlclip1/01/clip_image009.jpg)
Gambar 4.4 RPC Cilent-server
-
Remote
Method Invocation (Java)
![](file:///C:/Users/User/AppData/Local/Temp/msohtmlclip1/01/clip_image011.jpg)
Gambar 4.5 Java Cilent-Server
Komentar
Posting Komentar