Kamis, 07 Mei 2015

Processes and Threads

4.1 Processes

Perbedaan Proses dan Program

  • Program : merupakan instruksi untuk melakukan suatu tugas.
  • Proses : merupakan eksekusi dari suatu program.
Process Model
(a). Multiprogramming of four program
(b). Conceptual model of four independent, sequential processes
(c). Only one program is active at one

Process Creation
Event yang menyebabkan process creation:
  • Inisialisasi system.
  • Eksekusi dari sebuah pemanggilan process creation dengan sebuah proses yang sedang berjalan (fork()).
  • User meminta untuk membuat proses baru.
  • inisialisasi batch job.
Process

Disebut juga sebagai task atau pelaksanaan program secara individu, merupakan eksekusi dari sebuah program, dan dapat ditelusuri karena adanya daftar urutan instruksi yang sudah di eksekusi.

Suspended Process

  • Prosesor lebih cepat daripada I/O sehingga semua proses dapat menunggu I/O.
  • Memindahkan proses ke disk untuk membebaskan lebih banyak memory.
  • State yang diblokir menjadi suspend state ketika bertukar ke disk.
  • Dua jenis state : Blocked-suspend, Ready-suspend.

Processes Table

Merupakan tempat dimana suatu proses ditempatkan. Atribut yang diperlukan untuk management:
  • Process ID.
  • Process State.
  • Location in Memory.
Processes Location
  • Proses mencakup sekumpulan program yang akan dieksekusi : Lokasi data untuk variabel lokal dan global.- Setiap konstanta yang didefinisikan.- Stack.
  •  Process Control Block
    - Control and status register.- Processor state information.- Process control information.
  • Process Image
Processes Termination
Penyebab terjadinya proses terminasi :
  • Normal exit (voluntary)
  • Error exit (voluntary)
  • Fatal error (involuntary)
  • Killed by another process (involuntary)
System() : untuk mengeksekusi perintah dalam suatu program.

Fork()
  • Program akan melakukan proses duplikasi yang disebut pembuatan proses child.
  • Proses parent terus melaksanakan program dari titik yang disebut fork.
  • Proses child mengeksekusi program yang sama dari tempat yang sama pid_t fork (void).
Exec() : untuk mengterminate process.
  •  execvp dan execlp (dengan p)
  •  execv, execvp, dan execve (dengan v)                                
  •  execve dan execle (dengan e)

4.2 Threads

Thread memungkinkan beberapa eksekusi berlangsung dalam lingkungan proses yang sama.
Ada 2 Karakteristik Thread yang menjadi pembeda, yaitu:

  • Lightweight process : Terjadi karena thread mempunyai sifat yang sama dengan proses.
  • Multithreading : Memperbolehkan multiple thread dalam proses yang sama.
Contoh dari thread terdapat pada Figure 4.1


Figure 4.1 Thread Model

Figure 4.2 menggambarkan perbedaan antara thread dan proses dari sudut pandang manajemen proses.

Figure 4.2 Single-Threaded and Multithreaded Process Models

Dalam model proses single-threaded, representasi proses termasuk yang blok kontrol proses dan ruang alamat pengguna, serta pengguna dan kernel tumpukan untuk mengelola perilaku call / kembalinya pelaksanaan proses. Sementara proses sedang berjalan, ia mengendalikan register prosesor.
Dalam model proses multi-threaded, masih ada single proses kontrol blok dan asosiasi alamat user dengan proses, tetapi sekarang sudah ada pemisah untuk stack pada masing - masing thread.

Kelebihan dari Thread:
  • Waktu yang panjang untuk membuat thread baru dari suatu proses.
  • Cepat untuk mengakhiri thread dari sebuah proses.
  • Cepat untuk beralih di antara dua benang dalam proses yang sama.
  • Sejak thread dalam memori yang sama berbagi proses dan file, mereka dapat berkomunikasi satu sama lain tanpa memanggil kernel.
Table 4.1 menampilkan hubungan - hubungan yang dapat terjadi antara threads dan processes.

Table 4.1 Relationship between Threads and Processes


Tidak ada komentar:

Posting Komentar