Catatan Kuliah: Memahami Konsep Proses dalam Sistem Operasi

Catatan Kuliah: Memahami Konsep Proses dalam Sistem Operasi

Dalam dunia komputasi, perangkat keras komputer tidak akan berarti apa-apa tanpa adanya instruksi yang dijalankan. Di sinilah konsep Proses (Process) menjadi sangat krusial. Sederhananya, jika program adalah entitas pasif, maka proses adalah entitas aktifnya. Artikel ini akan membedah secara ringkas bagaimana Sistem Operasi (SO) mengelola proses-proses tersebut.

3.1 Konsep Proses (Process Concept)

Secara definisi, Proses adalah program yang sedang dieksekusi. Sebuah program hanyalah entitas pasif (seperti file biner yang disimpan di harddisk), sedangkan proses adalah entitas aktif yang memiliki program counter yang menentukan instruksi berikutnya untuk dieksekusi, beserta kumpulan sumber daya yang terkait.

Struktur Memori Sebuah Proses

Ketika program dimuat ke dalam memori, sebuah proses dibagi menjadi beberapa bagian utama:

  • Text Section: Berisi kode program yang dapat dieksekusi.
  • Data Section: Menyimpan variabel global dan statis.
  • Heap: Memori yang dialokasikan secara dinamis selama waktu tunggu (runtime) program (misalnya melalui perintah malloc atau new).
  • Stack: Menyimpan data sementara seperti parameter fungsi, alamat kembali (return addresses), dan variabel lokal.

Status Proses (Process State)

Selama siklus hidupnya, sebuah proses akan berubah dari satu status ke status lainnya. Status-status tersebut meliputi:

  1. New: Proses sedang dibuat.
  2. Running: Instruksi-instruksi dari proses sedang dieksekusi oleh CPU.
  3. Waiting: Proses sedang menunggu beberapa peristiwa terjadi (seperti penyelesaian operasi I/O atau penerimaan sinyal).
  4. Ready: Proses sedang menunggu untuk dialokasikan ke prosesor (CPU).
  5. Terminated: Proses telah selesai melaksanakan eksekusinya.

Process Control Block (PCB)

Setiap proses direpresentasikan di dalam sistem operasi oleh Process Control Block (PCB), yang bertindak sebagai repositori informasi spesifik proses, termasuk:

  • Status proses saat ini.
  • Program Counter (alamat instruksi berikutnya).
  • Isi dari register CPU.
  • Informasi penjadwalan CPU (seperti prioritas proses).
  • Informasi manajemen memori (seperti batas tabel halaman).
  • Informasi akuntansi dan status I/O (seperti daftar file yang sedang dibuka).

3.2 Penjadwalan Proses (Process Scheduling)

Tujuan utama dari sistem multiprogramming adalah untuk menjalankan beberapa proses secara bersamaan demi memaksimalkan utilitas CPU. Pada sistem dengan prosesor tunggal, hanya boleh ada satu proses yang berjalan di CPU pada satu waktu. Proses lainnya harus menunggu sampai CPU kosong dan dapat dijadwalkan kembali.

Antrean Penjadwalan (Scheduling Queues)

Saat proses memasuki sistem, mereka dimasukkan ke dalam antrean:

  • Job Queue: Berisi semua proses yang ada di dalam sistem.
  • Ready Queue: Berisi proses-proses yang menetap di memori utama, dalam kondisi siap, dan menunggu untuk dieksekusi di CPU.
  • Device Queue: Berisi daftar proses yang sedang menunggu perangkat I/O tertentu.

Penjadwal (Schedulers)

Sistem operasi menggunakan selektor khusus yang disebut Scheduler untuk memindahkan proses antar-antrean:

  • Long-Term Scheduler (Job Scheduler): Memilih proses dari penampungan disk (pool) dan memuatnya ke memori untuk dieksekusi. Tugas utamanya adalah menjaga keseimbangan yang baik antara proses yang terikat I/O (I/O-bound processes) dan proses yang terikat CPU (CPU-bound processes).
  • Short-Term Scheduler (CPU Scheduler): Memilih proses dari Ready Queue yang ada di memori dan mengalokasikan CPU kepadanya. Penjadwal ini bekerja sangat cepat (dalam hitungan milidetik).
  • Medium-Term Scheduler: Kadang digunakan untuk mengeluarkan proses dari memori (dan memasukkannya kembali nanti) guna mengurangi tingkat multiprogramming jika memori penuh. Proses ini dikenal dengan istilah Swapping.

Context Switch

Ketika CPU beralih dari satu proses ke proses lain, sistem harus menyimpan status proses lama dan memuat status proses baru yang telah disimpan melalui PCB. Mekanisme ini disebut Context Switch. Waktu context switch murni merupakan overhead (waktu terbuang) karena sistem tidak melakukan pekerjaan produktif apa pun saat perpindahan terjadi.

3.3 Operasi pada Proses (Operations on Processes)

Sistem operasi harus menyediakan mekanisme untuk pembuatan proses (process creation) dan penghentian proses (process termination).

Pembuatan Proses (Process Creation)

Sebuah proses dapat membuat beberapa proses baru melalui system call pembuat proses selama siklus eksekusinya. Proses pembuatan ini membentuk struktur pohon (tree of processes):

  • Proses yang membuat disebut Parent Process (Induk).
  • Proses baru yang dibuat disebut Child Process (Anak).
  • Di sistem UNIX/Linux: Pembuatan proses diawali dengan system call fork(), yang membuat duplikat persis dari proses parent. Setelah itu, system call exec() biasanya dipanggil oleh proses child untuk mengganti ruang memorinya dengan program baru. Parent dapat menggunakan wait() untuk menunggu child selesai bekerja.

Penghentian Proses (Process Termination)

Proses berhenti ketika telah selesai mengeksekusi instruksi terakhirnya dan meminta SO untuk menghapusnya menggunakan system call exit().

  • Semua sumber daya proses (memori, file yang dibuka) dikembalikan ke SO.
  • Zombie Process: Proses yang telah selesai (exit), tetapi informasi statusnya masih dibutuhkan oleh parent yang belum memanggil fungsi wait().
  • Orphan Process: Proses child yang tetap berjalan padahal proses parent-nya telah berhenti tanpa memanggil fungsi wait().

3.4 Komunikasi Antar-Proses (Interprocess Communication - IPC)

Proses yang berjalan bersamaan di sistem operasi dapat bersifat independen (tidak memengaruhi dan tidak dipengaruhi proses lain) atau kooperatif (saling bekerja sama dan berbagi data). Proses kooperatif membutuhkan mekanisme Interprocess Communication (IPC).

Terdapat dua model utama IPC:

  1. Shared Memory (Memori Bersama): Wilayah memori yang dapat diakses bersama oleh proses-proses kooperatif didirikan. Proses dapat bertukar informasi dengan membaca dan menulis data di memori tersebut. Model ini sangat cepat karena tidak memerlukan intervensi kernel SO setelah wilayah memori terbentuk.
  2. Message Passing (Pertukaran Pesan): Proses berkomunikasi dengan cara saling mengirim dan menerima pesan melalui kernel SO. Metode ini lebih mudah diimplementasikan (terutama untuk sistem terdistribusi/antar-komputer) tetapi memiliki overhead waktu yang lebih tinggi karena melibatkan system call untuk setiap pengiriman data.

Kesimpulan

Memahami manajemen proses adalah kunci utama untuk mengerti bagaimana sistem operasi modern dapat menjalankan ratusan aplikasi secara bersamaan dengan mulus (multitasking). Mulai dari pengalokasian struktur memori, penjadwalan antrean CPU yang ketat, hingga penyediaan jalur komunikasi antar-proses yang aman, semuanya dirancang agar efisiensi sistem komputasi tetap terjaga secara optimal.

Referensi

  1. Abraham Silberschatz, Greg Gagne, and Peter Baer Galvin, "Operating System Concepts, Ninth Edition ", Chapter 3