Terdapat beberapa definisi mengenai proses, antara lain : Pertama proses merupakan konsep pokok dalam sistem operasi, sehingga masalah manajemen proses adalah masalah utama dalam perancangan sistem operasi. Kedua, Proses adalah program yang sedang dieksekusi. Ketiga, Proses adalah unit kerja terkecil yang secara individu memiliki sumber daya dan dijadwalkan oleh sistem operasi.
Proses adalah sebuah program yang sedang dieksekusi. Sedangkan program adalah kumpulan instruksi yang ditulis ke dalam bahasa yang dimengerti sistem operasi. Sebuah proses membutuhkan sejumlah sumber daya untuk menyelesaikan tugasnya. Sumber daya tersebut dapat berupa CPU time, alamat memori, berkas-berkas, dan perangkat-perangkat I/O.
Sistem operasi mengalokasikan sumber daya-sumber daya tersebut saat proses itu diciptakan atau sedang diproses/dijalankan. Ketika proses tersebut berhenti dijalankan, sistem operasi akan mengambil kembali semua sumber daya agar bisa digunakan kembali oleh proses lainnya.
Proses adalah sebuah program yang sedang dieksekusi. Sedangkan program adalah kumpulan instruksi yang ditulis ke dalam bahasa yang dimengerti sistem operasi. Sebuah proses membutuhkan sejumlah sumber daya untuk menyelesaikan tugasnya. Sumber daya tersebut dapat berupa CPU time, alamat memori, berkas-berkas, dan perangkat-perangkat I/O.
Sistem operasi mengalokasikan sumber daya-sumber daya tersebut saat proses itu diciptakan atau sedang diproses/dijalankan. Ketika proses tersebut berhenti dijalankan, sistem operasi akan mengambil kembali semua sumber daya agar bisa digunakan kembali oleh proses lainnya.
Sistem operasi bertanggung jawab atas aktivitas yang berkaitan dengan manajemen proses
- Membuat dan menghapus proses pengguna dan sistem proses. Sistem operasi bertugas mengalokasikan sumber daya yang dibutuhkan oleh sebuah proses dan kemudian mengambil sumber daya itu kembali setelah proses tersebut selesai agar dapat digunakan untuk proses lainnya.
- Menunda atau melanjutkan proses. Sistem operasi akan mengatur proses apa yang harus dijalankan terlebih dahulu berdasarkan berdasarkan prioritas dari proses-proses yang ada. Apa bila terjadi 2 atau lebih proses yang mengantri untuk dijalankan, sistem operasi akan mendahulukan proses yang memiliki prioritas paling besar.
- Menyediakan mekanisme untuk proses sinkronisasi. Sistem operasi akan mengatur jalannya beberapa proses yang dieksekusi bersamaan. Tujuannya adalah menghindarkan terjadinya inkonsistensi data karena pengaksesan data yang sama, juga untuk mengatur urutan jalannya proses agar setiap proses berjalan dengan lancar.
- Menyediakan mekanisme untuk proses komunikasi. Sistem operasi menyediakan mekanisme agar beberapa proses dapat saling berinteraksi dan berkomunikasi (contohnya berbagi sumber daya antar proses) satu sama lain tanpa menyebabkan terganggunya proses lainnya.
- Menyediakan mekanisme untuk penanganan deadlock. Deadlock adalah suatu keadaan dimana sistem seperti terhenti karena setiap proses memiliki sumber daya yang tidak bisa dibagi dan menunggu untuk mendapatkan sumber daya yang sedang dimiliki oleh proses lain. Saling menunggu inilah yang disebut deadlock (kebuntuan). Sistem operasi harus bisa mencegah, menghindari, dan mendeteksi adanya deadlock. Jika deadlock terjadi, sistem operasi harus dapat memulihkan kondisinya.
A. Model Proses
Dua hal penting yang mendasari manajemen proses sistem operasi yaitu : Pertama, Multiprogramming, yaitu melakukan proses satu persatu secara bergantian dalam waktu yang sangat cepat atau bersamaan (hardware level). Setiap proses mempunyai satu virtual CPU.
Kedua, Pseudoparallelism, yaitu Melakukan lebih dari satu pekerjaan dalam waktu yang bersamaan / pseudoparallelism (user level). Dua hal diatas memunculkan beberapa jenis model proses yang dilakukan oleh sistem operasi yaitu 1) Proses Serentak / Concurrent Process. 2) Proses Serentak Berpenggalan. 3) Proses Berurutan dan 4) Proses Paralel.
1. Proses Serentak
Proses Serentak atau Concurrent Process adalah suatu proses dimana unit pemroses atau prosesor menghadapi banyak tugas dan proses. Dalam proses ini beberapa istilah yang digunakan ialah :
- Multiprogramming, ialah sistem menjalankan lebih dari satu program sekaligus dalam satu proses.
- Multitasking, yaitu menyiapkan beberapa program bagian untuk diolah oleh prosesor tetapi belum sempat dijadwalkan untuk dijalankan oleh prosesor.
- Multiprocessing, yaitu sejumlah tugas yang telah dijadwalkan untuk dijalankan oleh prosesor.
- Multiplexing, yaitu menggunakan pertukaran kendali dalam selang waktu terpisah-pisah.
- Time sharing / rentang waktu, yaitu secara bersamaan, sejumlah pemakai dapat menggunakan satu sistem komputer, sehingga setiap pemakai merasa bahwa seluruh sistem komputer dimanfaatkan oleh dirinya sendiri.
2. Proses Serentak Berpenggalan
Proses Serentak Berpenggalan, yaitu suatu proses secara serentak dimana terdapat beberapa potongan atau penggalan dari satu proses yang berselingan dengan potongan dari proses lain. Dalam proses ini memungkinkan Potongan dari proses pertama waktunya saling tumpang tindih dengan potongan proses kedua.
3. Proses Berurutan Proses berurutan yaitu sejumlah proses berlangsung secara berselingan dalam satu waktu dan diantara proses tersebut tidak saling tumpang tindih, sebelum satu proses diselesaikan sementara proses berikutnya belum bekerja.
Proses Paralel, yaitu sejumlah proses (banyak proses) dapat dilaksanakan secara serempak oleh banyak prosesor. Sementara itu dalam sebuah proses (tunggal) , proses serentak bukan proses paralel karena proses tersebut dijalankan satu demi satu atau sepenggal demi sepenggal.
B. Hirarki dan Status Proses.
Pemanggilan proses oleh proses lain disebut parallel. Sistem operasi menyediakan apa yang dibutuhkan oleh proses. Umumnya proses diciptakan dan dihilangkan selama operasi berlangsung.
Proses yang dijalankan oleh sistem operasi memiliki tiga jenis keadaan atau status proses yaitu sebagai berikut:
B. Hirarki dan Status Proses.
Pemanggilan proses oleh proses lain disebut parallel. Sistem operasi menyediakan apa yang dibutuhkan oleh proses. Umumnya proses diciptakan dan dihilangkan selama operasi berlangsung.
- Create & Destroy Proses. Sistem operasi yang mendukung konsep proses, harus menyediakan suatu cara untuk membuat (create) proses dan menghilangkan (destroy) proses.
- Fork System Call. Mekanisme untuk membuat (create) proses yang identik dengan proses yang memanggilnya. Pada sistem operasi UNIX, parent dan child process berjalan secara parallel. Sementara iti pada sistem operasi DOS, parent dan child process berjalan secara bergantian (sequential). Contohnya : MSDOS sebagai parent dan program aplikasi sebagai child.
- Process scheduler atau penjadwalan proses digunakan untuk pengaturan eksekusi proses.
Proses yang dijalankan oleh sistem operasi memiliki tiga jenis keadaan atau status proses yaitu sebagai berikut:
- Running / kerja, benar-benar menggunakan CPU pada saat itu (sedang mengeksekusi instruksi proses itu).
- Blocked / terhenti, tidak dapat berjalan sampai kegiatan eksternal terlaksana (proses menunggu kejadian untuk melengkapi tugasnya) Bisa berupa proses menunggu : Selesainya operasi perangkat I/O;; Tersedianya memori;; Tibanya pesan jawaban
- Ready / siap, proses siap dikerjakan tetapi menunggu giliran dengan proses lain yang sedang dikerjakan (bisa berjalan, sementara berhenti untuk memungkinkan proses lain dikerjakan)
Sementara itu transisi atau status perubahan proses yang dilakukan oleh sistem operasi adalah sebagai berikut: 1) Proses di blok untuk melayani input karena sumber daya yang diminta belum tersedia / meminta layanan I/O sehingga menunggu kejadian muncul. 2) Penjadwalan mengambil proses lain. 3) Penjad-walan mengambil proses ini (baru). 4) Input telah tersedia.
C. Implementasi Proses
Untuk mengimplementasikan model proses, sistem operasi menggunakan suatu tabel atau array yang disebut tabel proses dengan 1 entry per-proses. Setiap entry berisi tentang : status proses, program counter, stack pointer, alokasi memori, status file, informasi schedulling atau penjadwalan informasi, dll dari status kerja ke status siap. Contoh Tabel Proses :
Proses management | Memory management | File management |
---|---|---|
Register | Pointer to text segment | UMASK mask |
Program counter | Pointer to data segment | Root directory |
Program status word | Pointer to bss segment | Working directory |
Process state | Signal status | Effective uid |
Time when process started | Process id | Effective gid |
CPU time used | Parent process | System call parameters |
Children’s CPU time | Process group | Various flag bits |
Time of next alarm | Real uid | - |
Message queue pointers | Effective uid | - |
Pending signal bits | Real gid | - |
Process id | Effective gid | - |