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.
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.)
- 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 :
1. New : pembentukan suatu proses
2. Running : instruksi-instruksi yang sedang dieksekusi
3. Waiting : proses menunggu untuk beberapa event yang terjadi
4. Ready : menunggu untuk dialirkan ke pemroses (processor)
5. Terminated : proses telah selesai dieksekusi
Kelima status proses tersebut dapat digambarkan pada diagram berikut:
Saat-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
- 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 dibuatmelalui 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
- Menyediakan mekanisme untuk proses sinkronisasi
- Menyediakan mekanisme untuk proses komunikasi
- Menyediakan mekanisme untuk penanganan deadlock
- Pembuatan dan penghapusan proses pengguna dan sistem 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.
Tiap proses digambarkan dalam sistem operasi oleh sebuah process control block (PCB) disebut sebuahcontrol block.PCB berisikan banyak bagian dari informasi yang berhubungan dengan sebuah proses yangspesifik, seperti status proses, program counter, CPU register, Informasi manajemen memori, informasipencatatan, informasi status I/O. PCB hanya berfungsi sebagai
tempat penyimpanan informasi
yangdapat bervariasi dari proses yang satu dengan yang lain.
1. Status proses : status mungkin new, ready, running, waiting, halted, dll.
2. Program counter: suatu stack yang berisi alamat dari instruksi selanjutnya untuk dieksekusi untuk
proses ini.
proses ini.
3. 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.
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.
4. 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.
dasar dan batas register, tabel page/halaman, atau tabel segmen tergantung pada sistem memori
yang digunakan oleh sistem operasi.
5. Informasi pencatatan: Informasi ini termasuk jumlah dari CPU dan waktu riil yang digunakan, batas
waktu, jumlah akun jumlah job atau proses, dan banyak lagi.
6. Informasi status I/O: Informasi termasuk daftar dari perangkat I/O yang di gunakan pada proses ini,
waktu, jumlah akun jumlah job atau proses, dan banyak lagi.
6. 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) :1. Identifier : menjelaskan proses yang sedang terjadi 2. State : kondisi yang terjadi pada proses 3. Priority : urutan perintah yang jelas pad suatu proses 4. Program counter : instruksi pada proses 5. Memory pointers : media penyimpanan (penunjuk alamat) pada proses 6. Context data : data yang berkaitan dengan proses 7. I/O status information : terdapat masukan dan keluaran yang diinginkan 8. Accounting information : memberikan informasi yang dibutuhkan
F. Konsep Penjadwalan
Terdapat 3 konsep dasar Penjadwalan proses yaitu :
1. 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.
2. 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.
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.
3. 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:
Alasan terminasi tersebut seperti:
- Turunan melampaui penggunaan sumberdaya yang telah dialokasikan.
Dalam keadaan ini, proses indukperlu 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
- 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
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
- 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 Client-Server
- Sockets
- Remote Procedure Calls (RPC)
- Remote Method Invocation (Java)
- Remote Procedure Calls (RPC)
- Remote Method Invocation (Java)
Comments
Post a Comment