Process dalam Sistem Operasi
Artikel ini merupakan resume dari ‘Modul 3: Proses’, serta referensi dari textbook ‘Modern Operating System 4th Edition by Andrew S. Tanenbaum and Herbert Bos’.
Konsep Proses
Dalam Sistem Operasi mengeksekusi ada berbagai jenis
- Batch System: job
- Time-shared systems: user program or tasks
Pada textbook biasanya menggunakan istilah job atau process.
Proses: Merupakan program yang sedang dieksekusi. Eksekusi proses dilakukan secara berurutan. Proses meliputi:
- Program Counter
- Stack
- Data Section
Status Proses
Pada saat proses dieksekusi, akan terjadi perubahan status. Status proses terdiri dari:
- New: proses sedang dibuat
- Running: proses sedang dieksekusi
- Waiting: proses sedang menunggu beberapa event yang akan terjadi (seperti menunggu untuk menyelesaikan I/O atau menerima sinyal)
- Ready: proses menunggu jatah waktu dari CPU untuk diproses
- Terminated: proses telah selesai dieksekusi
Process Control Block (PCB)
Informasi pada setiap proses meliputi:
- Process State: New, ready, running, waiting dan terminated
- Process Number: Informasi berisi jumlah CPU dan real time yang digunakan, time limits, account numbers, jumlah job atau proses, dll.
- Program Counter: Menunjukkan alamat berikutnya yang akan dieksekusi oleh proses tsb.
- Registers: Accumulator, index register, stack pointer, dan register serbaguna serta beberapa informasi tentang kode kondisi.
- Memory Limits: Informasi berisi nilai (basis) dan limit register, page table, atau segment table bergantung pada sistem memory yang digunakan oleh OS.
- List Open Files: Informasi berisi deretan I/O device yang dialokasiskan untuk proses tersebut, deretan file yang dibuka, dll.
- Informasi Penjadwalan CPU: Informasi berisi prioritas dari suatu proses, pointer ke antrian penjadwalan, dan beberapa parameter penjadwalan yang lainnya.
Penjadwalan Proses
Penjadwalan, ditampilkan dalam bentuk antrian disimpan sebagai linkedlist dan berisi pointer awal dan akhir PCB. Berikut jenis-jenis antrian penjadwalan:
- Job Queue: Kumpulan semua proses yang ada di dalam sistem.
- Ready Queue: Proses-proses yang ada di main memory, ready dan waiting akan dieksekusi.
- Device Queue: Deretan proses yang sedang menunggu peralatan I/O device.
Penjadwal (Scheduler)
Dalam proses penjadwalan terdapat dua bentuk penjadwal (Scheduler), yang pertama yaitu Long-term Scheduler (Job scheduler), menyeleksi proses-prose mana yang harus dibawa ke ready queue. Lalu kedua, Short-term Scheduler (CPU Scheduler), memilih proses yang siap untuk dieksekusi dan mengakolakasikan CPU ke salah satu dari proses-proses tersebut. Perbedaan utama antara kedua penjadwal ini terletak pada frekuensi eksekusi. Short-term scheduler harus sering memilih proses baru untuk CPU dengan cepat (dalam milidetik). Sedangkan, Long-term scheduler terjadi sangat jarang dan lambat (dalam detik atau menit).
Context Switch
Proses penyimpanan status proses dan mengambil proses yang baru pada saat terjadi switching. Proses ini disebut context switch.
Operasi Pada Proses
Pada bagian ini kita akan membahas operasi pada proses, yaitu pembuatan proses (Process Creation) dan penghentian proses (Process Deletion).
Pembuatan proses (Process Creation)
Dalam sistem operasi, sebuah proses dapat membuat proses baru. Proses tersebut dinamakan parent, sedangkan proses yang dibuat dinamakan child. Jadi, hubungan terakhir terlihat seperti pohon proses. Sebagian besar sistem operasi mengidentifikasi proses sesuai dengan process identifier (atau pid), yang berupa bilangan bulat.
Pembagian sumber daya:
- Parent dan child membagi semua sumber dayayang ada.
- Child menggunakan sebagian dari sumber daya yang digunakan parent.
- Parent dan child tidak membagi sumber daya.
Bentuk eksekusi:
- Parent melanjutkan eksekusi beriringan dengan children.
- Parent menunggu hingga beberapa atau seluruh children selesai.
Bentuk ruang alamat:
- Child adalah duplikat dari proses parent.
- Child mempunyai program yang diambil dari dirinya.
Contoh dalam UNIX:
- Fork, system call untuk membuat proses baru.
- Exec, system call digunakan seteah system call fork mengganti alamat memori proses dengan program baru.
Penghentian Proses (Process Termination)
Proses berhenti jika telah menyelesaikan last statement dan meminta pada operasi sistem untuk dihapus (Exit).
- Output data dari child ke parent (via wait)
- Sumber daya proses dialokasikan oleh sistem operasi
Parent dapat menghentikan eksekusi proses child (abort).
- Child mengalokasikan sumber daya melampaui batas
- Task child tidak dibutuhkan lebih lanjut
- Parent berhenti karena sistem operasi tidak mengijinkan child untuk melanjutkan jika parent berhenti (All children terminated- cascading termination)
Proses yang saling bekerja sama (Cooperating Process)
- Proses yang terpisah (Independence): Proses yang tidak berakibat atau diakibatkan leh ekskusi dari proses lain.
- Proses yang saling bekerja sama (Cooperate): Proses yang dapat berakibat atau diakibatkan oleh ekskusi dari proses lain.
Keuntungan dari proses yang saling bekerja sama:
- Information sharing
- Computation speed-up
- Modularity
- Convenience
Komunikasi antar proses (Inter Process Communication)
Mekanisme proses-proses untuk berkomunikasi dan melakukan sinkronisasi aksinya. Proses komunikasi dengan proses lain tanpa menggunakan variabel yang dishare. Fasilitas IPC terdiri dari dua operasi:
- Send (pesan), ukuran pesan bisa berbeda-beda atau tetap
- Receive (pesan)
Dalam komunikasi antar proses ada dua jenis, yaitu pertama Komunikasi Langsung (Direct Communication) merupakan bentuk komunikasi langsung ke proses lain. Lalu kedua, Komunikasi Tak Langsung (Indirect Communication) penerimaan pesan dilakukan melalui mailbox (port). Mailbox memiliki identitas unik dan dua buah proses dapat saling berkomunikasi hanya jika mereka sharing mailbox.
Buffering
Sambungan mempunyai beberapa kapasitas yang menentukan jumlah pesan yang dapat ditampung sementara. Berikut tiga cara implementasi antrian:
- Zero Capacity — 0 messages, sender must wait for receiver (rendezvous).
- Bounded Capacity — finite length of messages (n), sender must wait if link full.
- Unbounded Capacity — infinite length, sender never waits.
Client-Server Communication
- Sockets — endpoint for communication (alamat IP dan Port)
- Remote procedure calls — prosedur pemanggilan abstrak antar proses-proses pada sistem jaringan. Terdapat ‘stub’ yaitu proxy pada sisi client untuk prosedur aktual ke server.
- Remote method invocation — mekanisme Java yang mempunyai bentuk sejenis dengan RPCs.
Summary
Jadi, proses adalah program yang sedang dieksekusi. Eksekusi proses dilakukan secara berurutan. Dalam suatu proses terdapat program counter, stack, dan daerah data.