Proses


Sistem operasi mengeksekusi berbagai jenis program. Pada sistem batch program tersebut biasanya disebut dengan job, sedangkan pada sistem time sharing, program disebut dengan program user atau task. Beberapa buku teks menggunakan istilah job atau proses.

Proses adalah program yang sedang dieksekusi. Eksekusi proses dilakukan secara  berurutan. Dalam suatu proses terdapat program counter, stack dan daerah data. Pada saat proses dieksekusi, akan terjadi perubahan status. Status proses terdiri dari :

  1. New: proses sedang dibuat.
  2. Running: proses sedang dieksekusi.
  3. Waiting: proses sedang menunggu beberapa event yang akan terjadi (seperti menunggu untuk menyelesaikan I/O atau menerima sinyal).
  4. Ready: proses menunggu jatah waktu dari CPU untuk diproses.
  5. Terminated: proses telah selesai dieksekusi.

proses

status proses

Process Control Block (PCB)

pcb

proses control block

  1. Status Proses. New, ready, running, waiting dan terminated.
  2. Program Counter. Menunjukkan alamat berikutnya yang akan dieksekusi oleh proses tersebut.
  3. CPU Registers. Register bervariasi tipe dan jumlahnya tergantung arsitektur komputer yang bersangkutan. Register-register tersebut terdiri-atas: accumulator,index register, stack pointer, dan register serbaguna dan beberapa informasi tentang kode kondisi.
  4. Selama Program Counter berjalan, status informasi harus disimpan pada saat terjadi interrupt.
  5. d. Informasi Penjadwalan CPU. Informasi tersebut berisi prioritas dari suatu proses, pointer ke antrian penjadwalan, dan beberapa parameter penjadwalan yang lainnya.
  6. Informasi Manajemen Memori. Informasi tersebut berisi nilai (basis) dan limit register, page table, atau segment table tergantung pada sistem memory yang digunakan oleh SO.
  7. Informasi Accounting. Informasi tersebut berisi jumlah CPU dan real time yang digunakan, time limits, account numbers, jumlah job atau proses, dll.
  8. Informasi Status I/O. Informasi tersebut berisi deretan I/O device (seperti tape driver) yang dialokasikan untuk proses tersebut, deretan file yang dibuka, dll.

Pembuatan Proses

Ada beberapa aktifitas berkenaan dengan pembuatan proses, antara lain :

  1. Memberi identitas (nama) pada proses yang dibuat;
  2. Menyisipkan proses pada list proses atau tabel proses;
  3. Menentukan prioritas awal proses;
  4. Membuat PCB;
  5. Mengalokasikan resource awal bagi proses tersebut.

Ada beberapa kejadian yang menyebabkan pembuatan suatu proses baru, antara lain:

  1. Pada lingkungan batch sebagai tambahan atas pemberian job. Setelah menciptakan
  2. proses baru, sistem operasi melanjutkan untuk membaca job selanjutnya.
  3. Pada ingkungan interaktif, pada saat user baru saja logam;
  4. Sebagai tanggapan atas suatu aplikasi (seperti: mencetak file, sistem operasi dapat
  5. menciptakan proses yang akan mengelola pencetakan itu);
  6. Proses menciptakan proses lain (child).

Selama eksekusi, suatu proses mungkin akan membuat suatu proses yang baru. Proses tersebut dinamakan parent, sedangkan proses yang dibuat dinamakan child. Proses pembuatan proses anak membentuk pohon proses.

Pembagian sumber daya :

  1. Parent dan child membagi semua sumber daya yang ada
  2. Child menggunakan sebagian dari sumber daya yang digunakan parent
  3. Parent dan child tidak membagi sumber daya

Bentuk eksekusi :

  1. Parent melanjutkan eksekusi beriringan dengan children.
  2. Parent menunggu hingga beberapa atau seluruh children selesai.

Bentuk ruang alamat :

  • Child adalah duplikat dari proses parent.
  • Child mempunyai program yang diambil dari dirinya.

Pada UNIX, parent akan membentuk child dengan menggunakan system call fork. Setelah pemanggilan fork, parent kembali berjalan secara pararel dengan child. Demikian pula, child dapat memanggil fork untuk membentuk child lainnya. System call exec digunakan setelah system call fork mengganti alamat memori proses dengan program baru. Lain halnya dengan DOS, pada MS-DOS, system call akan memanggil binary file tertentu yang ada pada memori dan mengeksekusinya sebagai child. Parent akan running kembali setelah child selesai eksekusi. Dengan demikian parent dan child tidak dapat berjalan secara pararel. Bentuk pohon proses pada UNIX dapat dilihat pada gambar di bawah ini:

pohon

pohon proses UNIX

2 Comments

Leave a comment