PROSES
Secara informal, seperti
yang disebutkan , proses adalah program
dalam eksekusi. Sebuah proses lebih
dari kode program, yang kadang-kadang dikenal sebagai bagian teks. Hal ini juga mencakup kegiatan saat ini, yang
diwakili oleh nilai program counter dan isi dari register prosesor. Sebuah
proses pada umumnya juga termasuk tumpukan proses, yang berisi data sementara
(seperti fungsi parameter, alamat kembali, dan variabel lokal), dan bagian
data, yang mengandung proses variables.A global yang juga mungkin termasuk
tumpukan, yang merupakan memori yang dialokasikan secara dinamis selama waktu
proses berjalan. Struktur dari suatu proses dalam memori ditunjukkan pada
Gambar 3.1. Kami menekankan bahwa program dengan sendirinya bukan proses. Suatu program adalah entitas pasif,
seperti file yang berisi daftar instruksi yang tersimpan pada disk (sering
disebut file executable). Sebaliknya,
proses adalah suatu entitas aktif, dengan
program counter menentukan instruksi berikutnya untuk mengeksekusi dan set dari
sumber terkait. Sebuah program menjadi suatu proses ketika file eksekusi dimuat
ke memori. Dua teknik umum untuk memuat file executable
3.1 Proses Concept
Mengklik dua kali ikon
yang mewakili file eksekusi dan memasuki nama file executable pada baris perintah
(seperti dalam prog.exe atau a.out). Meskipun
dua proses dapat dikaitkan dengan program yang sama, mereka yang tetap dianggap
dua urutan eksekusi yang terpisah. Misalnya, beberapa pengguna mungkin
menjalankan salinan yang berbeda dari program mail, atau pengguna yang sama dapat
memanggil banyak salinan dari program browser. Masing-masing adalah proses yang terpisah; dan meskipun bagian teks
adalah sama, data, heap, dan bagian
tumpukan bervariasi. Hal ini juga umum untuk memiliki proses yang memunculkan
banyak proses seperti itu runs. Kami mendiskusikan
hal-hal tersebut dalam Bagian 3.4. Perhatikan
bahwa proses itu sendiri dapat menjadi lingkungan eksekusi untuk kode lainnya.
Lingkungan pemrograman Java memberikan contoh yang baik. Dalam kebanyakan
keadaan, program Java dieksekusi dalam virtual Java mesin (JVM). JVM mengeksekusi sebagai proses
yang menafsirkan Jawa dimuat kode dan mengambil tindakan (melalui instruksi
mesin asli) atas nama kode tersebut. Sebagai contoh, untuk menjalankan program
Java dikompilasi Program.class, kami akan masuk Program java. Perintah java
menjalankan JVM sebagai proses biasa, yang pada gilirannya mengeksekusi program
Program Java di mesin virtual. Konsep adalah sama seperti simulasi, kecuali
bahwa kode, bukannya ditulis untuk berbeda set instruksi, ditulis dalam bahasa
Java.
3.1.2 Status Proses
Sebuah proses sedang
dieksekusi dan mungkin akan merubah status, dan statusnya mungkin salah satu
dari status dibawah ini :
• Baru. Proses sedang
dibuat.
• Menjalankan.
Instruksi yang sedang dieksekusi.
• Waiting. Proses ini
menunggu beberapa peristiwa terjadi (seperti I / O
penyelesaian atau penerimaan sinyal).
• Siap. Proses sedang
menunggu untuk ditugaskan ke prosesor.
• Dihentikan. Proses
selesai eksekusi.
Nama-nama ini
sewenang-wenang, dan mereka bervariasi di seluruh sistem operasi. Status bahwa
mereka mewakili ditemukan pada semua sistem, namun operasi tertentu sistem juga
lebih halus menggambarkan keadaan proses. Adalah penting untuk menyadari bahwa
hanya satu proses dapat berjalan pada setiap prosesor pada setiap instan.
Banyak proses mungkin siap dan menunggu, namun diagram keadaan yang sesuai untuk
status ini disajikan pada Gambar 3.2
.
3.1.3 Process Control Block
Setiap
proses direpresentasikan dalam sistem operasi dengan blok kontrol proses (PCB) -juga disebut block.
APCBis kontrol tugas yang ditunjukkan pada Gambar 3.3. Ini berisi
banyak potongan
informasi yang terkait dengan proses tertentu, termasuk ini:
• Status proses. Status
mungkin baru, siap, berjalan, menunggu,
berhenti, dan seterusnya.
• Program counter.
Penghitung menunjukkan alamat dari instruksi berikutnya untuk dieksekusi untuk
proses ini.
• CPU register.
Register bervariasi dalam jumlah dan jenis, tergantung pada arsitektur
komputer. Mereka termasuk akumulator, register indeks, tumpukan pointer, dan
register tujuan umum, ditambah kondisi-kode informasi. Seiring dengan program
counter, informasi status ini harus
menjadi disimpan ketika interrupt terjadi, untuk memungkinkan proses untuk
dilanjutkan benar sesudahnya (Gambar 3.4).
• CPU-penjadwalan
informasi. Informasi ini mencakup prioritas proses, pointer ke antrian penjadwalan,
dan setiap parameter penjadwalan lainnya.
(Bab 6 menjelaskan
proses penjadwalan.)
• Informasi Memori-manajemen. Informasi ini mungkin termasuk seperti item sebagai nilai dasar dan batas register dan tabel halaman, atau tabel segmen, tergantung pada sistem memori yang digunakan oleh operasi sistem (Bab 8).
3.1 Proses Concept
Gambar
3.4 Diagram yang menunjukkan beralih CPU dari proses ke proses.
• Informasi Akuntansi.
Informasi ini mencakup jumlah CPU dan real time yang digunakan, batas waktu,
nomor rekening, nomor pekerjaan atau proses, dan sebagainya.
• I / O informasi
status. Informasi ini mencakup daftar perangkat I / O dialokasikan untuk
proses, daftar file yang terbuka, dan sebagainya.
Secara singkat, PCB
hanya berfungsi sebagai repositori untuk informasi yang mungkin bervariasi dari
proses ke proses.
3.1.4 Threads
Model proses dibahas
sejauh ini telah tersirat bahwa proses adalah sebuah program yang melakukan
satu benang eksekusi. Sebagai
contoh, ketika proses sedang berjalan program word processor, sebuah thread
tunggal dari instruksi yang sedang dieksekusi. Ini thread tunggal kontrol
memungkinkan proses untuk melakukan hanya satu tugas pada waktu. Pengguna tidak
bisa mengetik secara bersamaan dalam karakter dan menjalankan perintah checker
dalam proses yang sama, misalnya. Sebagian besar sistem operasi modern telah
memperluas konsep proses untuk memungkinkan proses untuk memiliki beberapa
benang eksekusi dan dengan demikian untuk melakukan lebih dari satu tugas pada
satu waktu. fitur ini sangat bermanfaat pada sistem multicore, di mana beberapa
thread dapat berjalan secara paralel. Pada sistem yang mendukung benang, PCB
diperluas untuk mencakup informasi untuk setiap thread. Perubahan lain di
seluruh sistem juga diperlukan untuk mendukung benang. Bab 4 membahas benang
secara rinci
:-d
BalasHapus