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
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
·         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
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
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
Gambar 4.4 Socket Cilent-Server

-          Remote Procedure Calls (RPC)
Gambar 4.4 RPC Cilent-server

-          Remote Method Invocation (Java)
Gambar 4.5 Java Cilent-Server

Komentar

Postingan Populer