Jumat, 23 Januari 2015

PROSES (Operating System Concepts oleh Abraham Silberschatz, Peter Baer Galvin, Greg Gagne)


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


1 komentar: