Anda di halaman 1dari 53

CSH3A3

SISTEM OPERASI A

MATERI 2:
Proses

1 8/30/2018
Tujuan
• Definisi proses
• Process Control Block
• Process Creation
• Process Termination
• Context Switching
• Trap, Interrupt, Syscall
• States
• Suspend
2 8/30/2018 CSH3A3 – Sistem Operasi A
PROSES

3 8/30/2018 CSH3A3 – Sistem Operasi A


Definisi Proses
• Program yang dieksekusi
• Instance dari program yang berjalan di komputer
• Entitas yang ditugaskan dan dieksekusi oleh
prosesor
• Unit aktivitas yang mempunyai karakteristik:
eksekusi urutan intsruksi, state unit saat ini dan
resource yang digunakan oleh unit.
• A process consists of program code and
associated data plus a process control block

4 8/30/2018 CSH3A3 – Sistem Operasi A


Program vs Proses
Program Proses

• Statik instruksi dan data • Dinamis instruksi dan data


• Ada di secondary memory • Ada di RAM
• Contoh: notepad.exe • Contoh: notepad (task
manager)
• Tidak punya stack section • Ada stack section

5 8/30/2018 CSH3A3 – Sistem Operasi A


Tugas OS Terhadap Proses
• Mengeksekusi banyak proses secara interleave
(selang-seling) agar utilisasi prosesor
maksimal dan response time setiap proses
masih bisa diterima
• Menyediakan resource bagi setiap proses
• Mendukung komunikasi antar proses dan
penciptaan proses baru oleh user

6 8/30/2018 CSH3A3 – Sistem Operasi A


Tahap dari Program menjadi Proses
1. OS melakukan loading kode dan data
program dari harddsik ke memori utama
2. OS mengalokasikan stack, heap, insialisasi
resource I/O, inisialisasi PCB, dll*
3. OS menjalankan proses dengan
mengeksekusi instruksi pada main()

7 8/30/2018 CSH3A3 – Sistem Operasi A


8 8/30/2018 CSH3A3 – Sistem Operasi A
9 8/30/2018 CSH3A3 – Sistem Operasi A
PROCESS CONTROL BLOCK

10 8/30/2018 CSH3A3 – Sistem Operasi A


Process Control Block (PCB)
• Struktur data yang berisi informasi mengenai
karakteristik dan state dari proses.
• PCB dikelola oleh kernel
• Terletak di memori (kernel)
• Bersama-sama dengan kode program dan data
yang diperlukan membentuk sebuah proses
– Proses = PCB + kode program + data yang
diperlukan

11 8/30/2018 CSH3A3 – Sistem Operasi A


Kategori PCB
• Process Identification: identifikasi unik untuk
setiap proses (pid, ppid, uid)
• Process State Information: informasi berisi
register processor. Informasi-informasi yang
disimpan jika proses diinterupsi
• Process Control Information: informasi yang
digunakan OS untuk managemen proses. Contoh:
status, prioritas, penjadwalan, resource, dll

12 8/30/2018 CSH3A3 – Sistem Operasi A


Elemen dalam PCB (1)
• Identifier
– Identitas unik untuk membedakan suatu proses dengan proses lainnya
• State
– Status (kondisi) suatu proses (sedang dieksekusi, sedang diblok, dll)
• Priority
– Prioritas suatu proses terhadap proses yang lain
• Program counter
– Alamat instruksi berikutnya yang akan dieksekusi
• Memory pointers
– Pointer yang menunjuk pada alamat memori kode program dan data yang
berhubungan dengan proses dan blok memori yang di-shared dengan
proses lain (jika ada)

13 8/30/2018 CSH3A3 – Sistem Operasi A


Elemen dalam PCB (2)
• Context data
– Data yang terdapat pada register prosesor ketika suatu proses
sedang dieksekusi
• I/O status information
– Informasi tentang permintaan terhadap I/O device yang belum
terpenuhi (misal akses ke harddisk), daftar file yang sedang
digunakan oleh proses, dll
• Accounting information
– Informasi tentang jumlah waktu prosesor yang telah digunakan,
jumlah waktu proses, batas waktu proses, nomor account, dsb.

14 8/30/2018 CSH3A3 – Sistem Operasi A


PCB Linux
• Linux menyimpan PCB (linux: process
descriptor) dalam struct task_struct di
<linux/sched.h>
• Linux menyimpan PCB dalam bentuk double
linked list <linux/list.h>

15 8/30/2018 CSH3A3 – Sistem Operasi A


PROCESS CREATION

16 8/30/2018 CSH3A3 – Sistem Operasi A


Pembuatan Proses
• Proses dapat membuat proses lain melalui
syscall yang telah disediakan misal: fork() atau
exec()
• Proses yang membuat disebut parent,
sedangkan proses yang dibuat disebut child

17 8/30/2018 CSH3A3 – Sistem Operasi A


Syscall
• Terdapat 2 kemungkinan ketika membuat
proses baru:
– Child process merupakan duplikasi proses yang
sama dengan parent. Pada linux disebut fork()
– Child process load program pada address space
yang baru. Pada linux disebut exec()

18 8/30/2018 CSH3A3 – Sistem Operasi A


Fork()

19 8/30/2018 CSH3A3 – Sistem Operasi A


20 8/30/2018 CSH3A3 – Sistem Operasi A
Exec()

21 8/30/2018 CSH3A3 – Sistem Operasi A


Event yang menyebabkan proses baru
• Masuknya job baru (program aplikasi)
• Pada model batch system: proses terbentuk akibat job baru (berupa
baris-baris program) yang ditulis pada tape magnetic atau harddisk yang
sedang dieksekusi
• Log on dari user
• Pada sistem interaktif: proses terbentuk ketika user melakukan log on
pada sistem
• Sebagai bentuk layanan OS kepada program aplikasi
• Misal: Ada program aplikasi yang perlu mencetak ke printer → OS
membentuk proses yang mengatur printer
• Dibentuk oleh proses lain (process spawning)
• Parent process = proses induk = proses yang membentuk proses lain
• Child process = proses anak = proses yang dibentuk oleh proses induk
• Misal: Print server atau file server akan selalu membentuk proses baru
• setiap ada permintaan dari client

22 8/30/2018 CSH3A3 – Sistem Operasi A


Identifikasi
• Setiap proses mempunyai identifikasi (id) yang
unik yang disebut sebagai process identifier
(pid)
• Selain pid, setiap proses juga mempunyai ppid
(parent pid) karena proses dibuat dari proses
lainnya membentuk pohon proses

23 8/30/2018 CSH3A3 – Sistem Operasi A


PID Unix
• Pada OS UNIX, proses pertama yang dibuat
adalah init (pid = 1).
• Dari PID 1 itulah semua proses akan
diturunkan

24 8/30/2018 CSH3A3 – Sistem Operasi A


Pohon Proses

25 8/30/2018 CSH3A3 – Sistem Operasi A


Contoh
• Ketika mengeksekusi program “ls” dari
terminal (bash) maka terminal adalah parent
process sedangkan “ls” adalah child process
dari terminal

26 8/30/2018 CSH3A3 – Sistem Operasi A


27 8/30/2018 CSH3A3 – Sistem Operasi A
PROCESS TERMINATION

28 8/30/2018 CSH3A3 – Sistem Operasi A


Terminasi Proses
• Ketika proses berakhir, kernel akan
melepaskan semua resource yang dimiliki oleh
proses
• Proses akan terminasi jika:
– Secara explisit memanggil syscall: exit()
– Proses mendapatkan sinyal dari proses lain atau
exception yang tidak dapat ditangani

29 8/30/2018 CSH3A3 – Sistem Operasi A


Tahapan Terminasi
• Terdapat 2 tahap terminasi proses:
melepaskan semua resource (terminasi
proses) dan menghapus PCB di kernel
• Pada saat terminasi proses: semua resource
(semaphore, i/o, address space, dll)
dilepaskan dari proses kemudian parent
proses akan diberi notifikasi bahwa child telah
terminasi
30 8/30/2018 CSH3A3 – Sistem Operasi A
Tahapan Terminasi
• Menghapus PCB: setelah terminasi proses
(proses disebut sebagai zombie dan tidak bisa
berjalan), PCB masih ada di kernel. Pada tahap
ini PCB dihapus.
• Jika PCB tidak dihapus OS menganggap
alamat, file, dst masih dipegang oleh proses
dan akan menyia-nyiakan resource yang ada

31 8/30/2018 CSH3A3 – Sistem Operasi A


Event yang menyebabkan terminasi proses (1)
• Proses telah selesai secara normal:
– Model batch job: terdapat instruksi halt yang menandakan proses telah
selesai
– Sistem interaktif: proses di-close oleh user (close, log off, turn off, dsb)
• Jatah waktu telah habis:
– Total waktu sejak proses dibentuk
– Total waktu proses aktif
– Total waktu sejak user memberikan input
– Dsb
• Memori tidak tersedia:
– Proses membutuhkan memori lebih besar tetapi tidak terpenuhi
• Bounds violation:
– Proses mencoba mengakses lokasi memori proses lain

32 8/30/2018 CSH3A3 – Sistem Operasi A


Event yang menyebabkan terminasi proses (2)
• Protection error:
– Proses mencoba menggunakan resource (file) yang tidak boleh diakses
– Misal: mencoba menulis pada file dengan atribut read only
• Arithmatic error:
– Kesalahan komputasi, misal division by zero
• Time overrun:
– Proses telah menunggu melebihi batas waktu yang telah ditentukan
• I/O failure:
– Terjadi kesalahan pada saat mengakses I/O
– Misal:
• Tidak dapat menemukan file yang dicari
• Gagal membaca/menulis file sesudah mencoba beberapa kali (akibat adanya
bad sector atau membaca data dari printer)

33 8/30/2018 CSH3A3 – Sistem Operasi A


Event yang menyebabkan terminasi proses (3)
• Instruksi invalid:
– Proses mencoba mengeksekusi instruksi yang tidak ada (akibat
pencabangan mengarah pada area data)
• Privileged instruction:
– Proses mencoba menggunakan instruksi yang disediakan khusus bagi
sistem operasi (misal perintah ke I/O)
• Kesalahan data
– Tipe data salah atau data tidak diinisialisasi
• Ada intervensi dari operator atau OS
– Dilakukan pada saat terjadi deadlock (hang)
• Proses induk (parent) diterminasi
– Jika proses induk diterminasi → proses semua proses anaknya ikut
terterminasi
• Diterminasi proses induk
– Proses induk berhak untuk melakukan terminasi terhadap proses anaknya

34 8/30/2018 CSH3A3 – Sistem Operasi A


CONTEXT SWITCH

35 8/30/2018 CSH3A3 – Sistem Operasi A


Context Switch
• Perpindahan dari satu proses ke proses yang
lain oleh CPU
• OS melakukan 100-1000 switch/detik
• Membutuhkan waktu 5-7 ms

36 8/30/2018 CSH3A3 – Sistem Operasi A


Kapan dilakukan Context Switch
• Multitasking
• Interrupt Handling

37 8/30/2018 CSH3A3 – Sistem Operasi A


Tahapan Context Switch
• Ketika CPU switch ke proses yang lain, OS
harus menyimpan informasi state (PCB,
register, PC, dll) dari proses yang lama dan
• Load informasi state proses yang baru
• Context switch adalah overhead, sistem tidak
melakukan hal yang berguna saat context
switch

38 8/30/2018 CSH3A3 – Sistem Operasi A


39 8/30/2018 CSH3A3 – Sistem Operasi A
Ilustrasi Proses Switch

40 8/30/2018 CSH3A3 – Sistem Operasi A


INTERRUPT, TRAP, SYSCALL

41 8/30/2018 CSH3A3 – Sistem Operasi A


Struktur OS Sederhana

42 8/30/2018 CSH3A3 – Sistem Operasi A


Perbedaan
• Aplikasi/proses memanggil OS melalui trap
• Trap memanggil kernel dari user code
– Syscall adalah kasus special dari trap
– Exception/error adalah user code mengalami masalah
(dibagi dengan 0, error tidak bisa buka file)
• Hardware/eksternal device (disk, mouse, dll)
memanggil OS melalui interrupt
• Interrupt memanggil kernel dari hardware
43 8/30/2018 CSH3A3 – Sistem Operasi A
STATE

44 8/30/2018 CSH3A3 – Sistem Operasi A


State Process
• State process = kondisi/status eksekusi dari
sebuah proses untuk mengindikasikan hal
yang sedang dilakukan proses
• Ketika proses berjalan, proses akan berpindah
dari satu state ke state yang lainnya
• State dapat dilihat menggunakan perintah top
(pada linux)

45 8/30/2018 CSH3A3 – Sistem Operasi A


5 State
• New: proses baru dibuat, belum di load ke
memori, PCB telah dibuat
• Ready: proses telah siap dan berada di antrian
menuggu giliran dijalankan oleh CPU
• Running: proses dieksekusi
• Blocked/waiting: proses tidak dapat dieksekusi
karena menunggu event lain seperti: i/o write
• Exit: proses berakhir
46 8/30/2018 CSH3A3 – Sistem Operasi A
5 State Model

47 8/30/2018 CSH3A3 – Sistem Operasi A


Antrian Status
• OS mengelola antrian dari setiap status proses

48 8/30/2018 CSH3A3 – Sistem Operasi A


49 8/30/2018 CSH3A3 – Sistem Operasi A
SUSPEND

50 8/30/2018 CSH3A3 – Sistem Operasi A


Suspend
• Suspend process: proses yang tidak ada dalam
memori utama dan tidak bisa langsung
dieksekusi
• Swapping: memindahkan proses dari memori ke
harddisk
• Alasan: ukuran memori terbatas
• Kekurangan: kecepatan harddisk < memori,
proses swapping lama (jangan sering lakukan
swapping)
51 8/30/2018 CSH3A3 – Sistem Operasi A
52 8/30/2018 CSH3A3 – Sistem Operasi A
THANK YOU

Anda mungkin juga menyukai