PROSES-PROSES 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 :
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

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

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.
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.
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.
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,
    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.

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:
- 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
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 Client-Server
- Sockets
- Remote Procedure Calls (RPC)
- Remote Method Invocation (Java)

Comments