Tuesday, November 23, 2010

Penciptaan Proses Pada Sistem Operasi

Proses merupakan komponen pokok dalam sistem operasi. Konsep ini pertama kali digunakan di Sistem Operasi Multics tahun 1960-an. Definisi proses adalah program yang sedang dieksekusi. Sistem Operasi mengelola semua proses disistem dan mengalokasikan sumber daya ke proses-proses sesuai kebijakan untuk memenuhi sasaran sistem.

Penciptaan proses melibatkan banyak aktivitas, yaitu:
  • Memahami (memberi identitas) proses yang akan diciptakan dengan process id.
  • Menyisipkan proses pada senarai proses atau tabel proses.
  • Menentukan prioritas awal proses.
  • Menciptakan PCB (Process Control Block).
  • Mengalokasikan sumber daya - sumber daya awal bagi proses.
Ketika proses baru ditambahkan, sistem operasi membangun struktur data untuk mengelola dan alokasi ruang alamat proses itu.

Alasan-alasan penciptaan proses:

  1. Terdapat batch-job baru => Sistem Operasi dengan kendali batch-job, setelah menciptakan proses baru, kemudian melanjutkan membaca job selanjutnya.
  2. Satu pemakaian interaktif log-on  => Seorang pemakai pada satu terminal sedang melakukan log-on ke sistem.
  3. Sistem Operasi menciptakan proses untuk memberi layanan => Sistem Operasi menciptakan proses untuk memenuhi satu fungsi pada program pemakai, tanpa mengharuskan pemakai menunggu.
  4. Proses menciptakan proses anak => Untuk mencapai modularitas atau mengeksploitasi kongkuresi, progaram pemakaian memerintahkan pembuatan sejumlah proses.
Untuk pembuatan proses baru di sistem, GNU C menyediakan system call  fork() yang disertakan pada pustaka unistd.h dengan bentuk prototype sebagai berikut : 

pid_t fork (void);

fork() mengembalikan suatu besaran bertipe pid_t yang dapat bernilai : 

-1  menandakan pembuatan proses baru (child) gagal 
0  menandakan proses child
selain itu merupakan proses parent dan jika variabel PID diakses akan berisi PID child.
Apabila operasi sukses akan terdapat 2 proses yang dieksekusi yaitu proses parent dan proses child, eksekusi akan dilanjutkan pada kedua proses setelah  fork() sampai selesai. Seperti yang telah dijelaskan bahwa proses parent dan child dapat membuat proses  - proses baru yang lain sehingga terdapat banyak proses yang berjalan pada waktu bersamaan (Multitasking). Berikut contoh program yang melakukan forking sebuah proses tanpa memeriksa nilai yang dikembalikan.
/* contoh.c */

        #include <stdio.h>          /* standard I/O     */
        #include <unistd.h>          /* fork()      */
        #include <sys/types.h>      /* pid_t       */

        int 
        main() {
  
        printf("Hello\n");          /* tampilkan Hello   */
        fork();                      /* buat proses child  */
        printf("Nuzita wanty\n");    /* dieksekusi oleh parent dan child */
        }
gcc contoh.c -o contoh

./contoh

        Hello
        Nuzita wanty
        Nuzita wanty

String  “Hello” ditampilkan oleh parent sedangkan string  “Nuzita wanty” masing  – masing dieksekusi oleh parent dan child.

Pada Linux/Unix, Sistem Operasi menciptakan proses pertama init. Proses initid0. Proses init memperole merupakan moyang pertama dari semua proses yang terdapat di system Linux/Unix.


Sumber : 


Kuliah Umum IlmuKomputer.Com
Copyright © 2004 IlmuKomputer.Com  

Moh. Fajar


Sistem Operasi Revisi Keempat 
oleh DR.Bambang Hariyanto
INFORMATIKA BANDUNG