Keseluruhan alokasi memori-utama untuk eksekusi suatu proses disebut process image. Lokasi process image tergantung dari mekanisme manajemen memori yang digunakan. Pada kasus yang sederhana, process image dialokasikan sebagai sebuah blok-berurutan (contiguous block) pada memori-utama. Pada sebagian besar sistem operasi modus, process image disimpan dalam kumpulan blok memori yang letaknya tidak harus berurutan. Blok-blok memori tersebut ukurannya dapat bervariasi (disebut Sistem Segmentasi) ataupun berukuran sama (disebut Sistem Halaman) ataupun kombinasi keduanya (disebut Sistem Hybrid).
Setiap rekaman di process table mengandung paling sedikit sebuah pointer ke sebuah process image. Jika process image memiliki beberapa blok memori maka informasi ini disimpan di process table atau lewat referensi-silang ke memory table. Sebuah process image memiliki elemen-elemen sebagai berikut:
1. Data pengguna (User Data)
Data pengguna merupakan bagian image proses yang dapat dimodifikasi, yang meliputi data-data program.
2. Kode program (User Program)
Kode program merupakan bagian image proses yang menyimpan kode-kode instruksi program yang akan dieksekusi.
3. Sistem Stack (User Stack)
Setiap proses memiliki satu/lebih sistem stack yang merupakan struktur data yang bekerja berdasarkan prinsip LIFO (Last In First Out). Area stack digunakan untuk menyimpan parameter dan alamat terpanggil dari prosedur atau system call.
4. Process Control Block(PCB)
Process Control Block merupakan bagian image proses yang menyimpan informasi yang diperlukan sistem operasi untuk mengontrol proses. PCB juga digunakan untuk menyimpan konteks prosesor, yaitu isi register prosesor saat terakhir eksekusi proses sebelum dialihkan ke proses lain ataupun karena terjadi interupsi.
3.5.1 ATRIBUT PROSES
Dalam suatu sistem operasi multitasking, banyak informasi yang perlu dikumpulkan dari masing-masing proses agar pengaturan dapat dilakukan dengan baik. Informasi ini terletak dalam sebuah Process Control Block (PCB). Elemen data yang terdapat pada suatu PCB dapat dikelompokkan dalam 3 kategori:
1. Process Identification
Kategori ini berkaitan dengan identifikasi proses secara unik, seperti proses yang menciptakannya serta identitas pengguna yang men- ciptakannya. Dengan identifikasi ini proses akan dikaitkan ke tabel- tabel lain. Elemen data yang termasuk dalam kategori ini adalah ID proses, ID proses parent yang menciptakannya, dan ID user.
2. Processor State Information
Kategori ini terdiri dari isi register-register prosesor. Pada saat proses berstatus running, informasi ini berada di register-register. Ketika proses diinterupsi, semua informasi register harus disimpan agar dapat dikembalikan pada saat proses dieksekusi kembali. Elemen-elemen dari kategori ini adalah user-visible register, control and status register, dan stack pointer.
3. Process Control Information
Kategori ini berisi informasi yang diperlukan sistem operasi untuk mengendalikan dan mengoordinasikan beragam proses aktif. Elemen elemen dari kategori ini adalah:
a. Scheduling and State Information
Berisi informasi yang digunakan dalam penjadwalan, antara lain status proses, prioritas, informasi yang berkaitan dengan penjadwalan (durasi eksekusi terakhir kali, durasi eksekusi dalam modus kernel, durasi eksekusi dalam modus user), serta identitas event.
b. Data Structuring
Proses dapat dikaitkan (link) dengan proses lain dalam sebuah antrian atau ring. Informasi ini merupakan pointer yang memben- tuk rantai link-list antrian ready.
c. Interprocess Communication
Flag, sinyal, dan pesan yang digunakan untuk komunikasi antar proses.
d. Process Privilages
Kewenangan proses atas memori dan tipe instruksi
e. Memory Management
Pointer ke tabel segmen ataupun tabel halaman dari memori maya.
f. Resource Ownership and Utilization
Berisi histori penggunaan sumberdaya yang akan digunakan untuk penjadwalan.
Setiap proses yang tercipta memiliki nomor ID sebagai tanda pengenal yang unik. Saat suatu proses menciptakan proses lainnya. ID proses pencipta akan digunakan untuk mengindikasi parent process dan sebagai informasi untuk melacak user yang bertanggung jawab atas proses baru bersangkutan.
PCB dari proses-proses yang sedang menunggu dieksekusi akan terangkai sebagai suatu link-list yang merupakan implementasi dari atrian ready. PCB suatu proses akan dipindahkan dari link-list (antrian ready) ke antrian I/O jika proses bersangkutan beralih ke status blocked karena me- nunggu pembacaan dari peranti I/O.
3.5.2 ATURAN PENGAKSESAN PCB
PCB memiliki peran yang penting bagi sistem operasi, karena berisi semua informasi mengenai proses-proses yang aktif. PCB dibaca dan dimodifikasi oleh hampir semua rutin sistem operasi seperti scheduler. rutin penanganan interupsi, rutin monitoring atau auditing sistem.
Mengingat pentingnya informasi yang terdapat pada PCB maka pengaksesan terhadap PCB harusnya diproteksi sedemikian rupa sehingga tidak menyebabkan informasi pada PCB menjadi korup. Selain itu struk- tur PCB tidak boleh berubah, karena jika berubah dapat menyebabkan rutin-rutin yang mengaksesnya tidak mengenalinya lagi sehingga rutin tersebut tidak berjalan dengan benar. Solusinya adalah sistem operasi menyediakan rutin-rutin khusus untuk mengakses (baca maupun tulis) PCB. Seluruh rutin sistem operasi lainnya hanya boleh mengakses PCB melalui pemanggilan rutin-rutin khusus tersebut. Kelemahan mekanisme ini adalah terjadinya overhead kinerja.
(PCB (Process Control Block), User Stack, Pointer, Status Proses, ID Proses ID Proses parent, dll., PC (Program Counter), Register CPU, Private User Address Space (Program, Data), Limit Memori, List file yang dibuka, Shared Address Space, Struktur Image proses, Diagram PCB)
Gambar 3.6 Struktur Image Proses dan PCB
Tidak ada komentar:
Posting Komentar