Sistem Operasi Pertemuan 2

Session 3 – Process(1)

Process vs Program

Process adalah eksekusi dari sebuah program.

Program adalah terdiri dari banyak instruksi yang bisa melakukan tugas.

Karakteristik dari Proses yaitu :

  • Identifier

Untuk membedakan satu proses dengan proses yang lainnya.

  • State

Untuk menggambarkan keadaan, apakah sedang running/suspended/terminated.

  • Priority

Prioritas terhadap suatu proses.

  • Program Counter

Untuk menyimpan alamat instruksi selanjutnya.

  • Memory Pointers

Untuk menunjuk letak memory dari suatu program.

  • Context Data

Data yang disimpan pada saat execution.

  • I/O Status Information

Perangkat input output yang dimasukkan kedalam proses, daftar file yang digunakan proses dan lainnya.

  • Accounting Information

Untuk mengetahui jumlah waktu suatu komputer digunakan, waktu clock, limit dan jumlah user.

Langkah Pembuatan Suatu Proses :

  • Buat ID yang unik
  • Pastikan ada tempat untuk proses tersebut
  • Mengetahui balasan dan kegunaan dari proses tersebut
  • Mengatur hubungan yang tepat
  • Memperluas data struktur lainnya

Process Termination

  • Normal Completion
  • Time Limit Exceeded
  • Memory Unavailable
  • Bounds Violation
  • Protection Error
  • Arithmetic Error
  • Time Overrun
  • I/O Failure
  • Invalid Instructions
  • Privileged Instruction
  • Data misuse
  • Operating System Intervention
  • Parents Terminates so Child Processes Terminate
  • Parent Request

Process Table

Process table berfungsi  menyimpan informasi mengenai lokasi process, beserta atribut process.

Properti yang dibutuhkan:

  • Process ID
  • Process State
  • Location in memory

Process Location

–   Proses mencakup sekumpulan program yang akan dieksekusi :

  • Lokasi data untuk variabel lokal dan global
  • Setiap konstanta yang didefinisikan
  • Stack

–   Process Control Block

Merupakan sekumpulan atribut yang ada pada table process.

–   Process Image

Sekumpulan program, data, stack dan atribut.

Process Control Block

  • Pengidentifikasian Proses
    • Identifier -> Mengindentifikasi pengguna
  • Informasi State Prosesor
    • User-Visible Registers -> Yaitu referensi dari prosesor untuk mengeksekusi bahasa mesin.
    • Control and Status Registers -> Berbagai register prosesor yang digunakan untuk mengendalikan operasi prosesor. Terdiri dari :
      • Program Counter
      • Condition Codes
      • Status Information
    • Stack Pointers (LIFO)
  • Informasi proses control

 

Five State Process Model

5state

Merupakan kondisi model yang mungkin dialami oleh suatu process.

  1. New ->  Process baru saja di bentuk dan belum memasuki mekanisme antrian eksekusi.
  2. Ready -> Process tinggal menunggu giliran untuk dieksekusi.
  3. Running -> Process sedang dieksekusi.
  4. Blocked -> Process tidak dapat dieksekusi sampai suatu event terjadi, misalnya operasi I/O, dan kontrol atas processor diberikan ke process yang lain.
  5. Terminated/exit  -> Process berakhir.

Reason for Process Switch

  • Clock interrupt
    • Proses yang dieksekusi telah mencapai waktu yang telah ditentukan
  • I/O interrupt
  • Memory fault
    • Alamat memory terdapat di vitual memory sehingga harus dipindahkan ke memory utama
  • Trap
    • Terjadi error
    • Menyebabkan proses ke jalan keluar
  • Supervisor call
    • Seperti file terbuka

Suspended Processes

  • Processor lebih cepat dari I/O sehingga semua process dapat menunggu I/O.
  • Melakukan swap proses ke disk untuk membebaskan lebih banyak memori.
  • State yang di block menjadi suspend ketika di-swap ke disk.
  • 2 State Baru :
  • Blocked, Suspend
  • Ready, Suspend

Modes of Execution

  • User Mode
  • System mode, control mode, or kernel mode

Session 4 – Process (2)

Process Management System ~ Call – fork() 

  • Membuat proses baru (child)
  • Parent dan child dapat dieksekusi secara bersamaan
  • Setiap proses dapat berkesinambungan dengan proses yang lainnya sehingga menciptakan hirarki proses
  • Dalam sebuah proses parent dapat memilih untuk menunggu child atau mengakhiri

Fork()

  • Mengembalikan nilai -1 jika gagal
  • Mengembalikan nilai 0 pada anak
  • Mengembalikan nilai > 1 pada parentnya
  • Ketika fork ( ) dieksekusi , dapat membuat dua salinan identik dari address space
  • Kedua proses dimulai setelah eksekusi
  • Parent dan child dapat berjalan masing-masing

pc1

pc2

Tentang Fork () 

  • Perintah pelaksanaan parent dan child mungkin berbeda pada berbagai platform. Parent dan child berjalan secara independen.
  • Pada Ubuntu Linux urutannya, 1-2-3-4 (child kemudian kembali ke parent)
  • Sedangkan di Solaris, 1-3-4-2 (parent lalu child)
  • Secara umum, kita tidak pernah tahu apakah anak mulai dijalankan sebelum orang tua atau sebaliknya. Hal ini tergantung pada algoritma penjadwalan yang digunakan oleh kernel.
  • fork () dipanggil sekali tetapi return dua kali
  • Return nilai pada child adalah 0
  • Return nilai di induk adalah PID anak
  • Sebuah fork () sering diikuti dengan exec ()

System()

  • Memanggil beberapa program
  • Membuat subprocess yang berjalan dalam standar Bornue shell
  • (/bin/sh) adalah command dari shall tersebut
  • Execution : melihat fitur, pembatasan dan keamanan
  • Shell umumnya terdapat pada GNU/Linux system, atau disebut bash

System() – Contoh

#include <stdlib.h>

int main ( )

{

int return_value ;

return_value = system ( “ls -l /” );

return return_value;

}

Exec()

  • Hanya bisa memanggil 1 program
  • Process ID tidak terganti

Exec () Family System Call

  • Execvp and execlp (with p)

Menerima nama program dan mencari sebuah program dengan nama tersebut di jalur eksekusi yang sedang dilalui; fungsi yang tidak mengandung p harus diberi path lengkap dari program yang akan dieksekusi

  • Execv, execvp, and execve (with v)

Menerima daftar argumen untuk program baru sebagai NULL-terminated array dari pointer ke string

  • Execl, execlp, and execle (with l)

Menerima daftar argumen menggunakan bahasa C.

  • Execve and execle (with e)

Menerima argumen tambahan, sebuah array dari variabel lingkungan.

  • execve and execle (with e)

Execv()

  • Mengeksekusi file, merubahnya dari calling-process menjadi new process
  • Setelah eksekusi berhasil tidak ada return ke calling process

Other System Calls

  • exit()
    • Menghentikan proses secara normal
  • wait()
    • Digunakan oleh parent
    • Menunggu child menyelesaikan eksekusi
  • getpid()
    • Return child
  • getppid()
    • Return parent

www.binus.ac.id

www.skyconnectiva.com

Leave a Reply

Your email address will not be published. Required fields are marked *