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 :
- 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.
|
Pembuatan Proses
Ada beberapa aktifitas berkenaan dengan pembuatan proses, antara lain :
- Memberi identitas (nama) pada proses yang dibuat;
- Menyisipkan proses pada list proses atau tabel proses;
- Menentukan prioritas awal proses;
- Membuat PCB;
- Mengalokasikan resource awal bagi proses tersebut.
- Pada lingkungan batch sebagai tambahan atas pemberian job. Setelah menciptakan
- proses baru, sistem operasi melanjutkan untuk membaca job selanjutnya.
- Pada ingkungan interaktif, pada saat user baru saja logam;
- Sebagai tanggapan atas suatu aplikasi (seperti: mencetak file, sistem operasi dapat
- menciptakan proses yang akan mengelola pencetakan itu);
- 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 :- Parent dan child membagi semua sumber daya yang ada
- Child menggunakan sebagian dari sumber daya yang digunakan parent
- Parent dan child tidak membagi sumber daya
- Parent melanjutkan eksekusi beriringan dengan children.
- Parent menunggu hingga beberapa atau seluruh children selesai.
- 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:
0 komentar:
Post a Comment