Uploaded by knrkwrgpqdqrpaclet

CII2H3 Sistem operasi Materi 2 Proses

advertisement
CII2H3
SISTEM OPERASI
MATERI 2:
Proses
Tujuan
•
•
•
•
•
•
•
•
2
Definisi proses
Process Control Block
Process Creation
Process Termination
Context Switching
Trap, Interrupt, Syscall
States
Suspend
2020
CII2H3 – Sistem Operasi
PROSES
3
2020
CII2H3 – Sistem Operasi
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
2020
CII2H3 – Sistem Operasi
Program vs Proses
Program
Proses
• Statik instruksi dan data
• Ada di secondary memory
• Contoh: notepad.exe
• Dinamis instruksi dan data
• Ada di RAM
• Contoh: notepad (task
manager)
• Ada stack section
• Tidak punya stack section
5
2020
CII2H3 – Sistem Operasi
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
2020
CII2H3 – Sistem Operasi
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
2020
CII2H3 – Sistem Operasi
8
2020
CII2H3 – Sistem Operasi
9
2020
CII2H3 – Sistem Operasi
PROCESS CONTROL BLOCK
10
2020
CII2H3 – Sistem Operasi
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
2020
CII2H3 – Sistem Operasi
Kategori PCB
• Process Identification: identifikasi unik untuk
setiap proses (pid, ppid, uid)
• Processor 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
2020
CII2H3 – Sistem Operasi
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
2020
CII2H3 – Sistem Operasi
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
2020
CII2H3 – Sistem Operasi
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
2020
CII2H3 – Sistem Operasi
PROCESS CREATION
16
2020
CII2H3 – Sistem Operasi
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
2020
CII2H3 – Sistem Operasi
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
2020
CII2H3 – Sistem Operasi
Fork()
19
2020
CII2H3 – Sistem Operasi
20
2020
CII2H3 – Sistem Operasi
Exec()
21
2020
CII2H3 – Sistem Operasi
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
2020
CII2H3 – Sistem Operasi
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
2020
CII2H3 – Sistem Operasi
PID Unix
• Pada OS UNIX, proses pertama yang dibuat
adalah init (pid = 1).
• Dari PID 1 itulah semua proses akan
diturunkan
24
2020
CII2H3 – Sistem Operasi
Pohon Proses
25
2020
CII2H3 – Sistem Operasi
Contoh
• Ketika mengeksekusi program “ls” dari
terminal (bash) maka terminal adalah parent
process sedangkan “ls” adalah child process
dari terminal
26
2020
CII2H3 – Sistem Operasi
27
2020
CII2H3 – Sistem Operasi
PROCESS TERMINATION
28
2020
CII2H3 – Sistem Operasi
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
2020
CII2H3 – Sistem Operasi
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
2020
CII2H3 – Sistem Operasi
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
2020
CII2H3 – Sistem Operasi
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
2020
CII2H3 – Sistem Operasi
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
2020
CII2H3 – Sistem Operasi
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
2020
CII2H3 – Sistem Operasi
CONTEXT SWITCH
35
2020
CII2H3 – Sistem Operasi
Context Switch
• Perpindahan dari satu proses ke proses yang
lain oleh CPU
• OS melakukan 100-1000 switch/detik
• Membutuhkan waktu 5-7 ms
36
2020
CII2H3 – Sistem Operasi
Kapan dilakukan Context Switch
• Multitasking
• Interrupt Handling
37
2020
CII2H3 – Sistem Operasi
Tahapan Context Switch
• Ketika CPU switch ke proses yang lain, OS
harus menyimpan informasi state (PCB,
register, PC, dll) dari proses yang lama
• Load informasi state proses yang baru
• Context switch adalah overhead, sistem tidak
melakukan hal yang berguna saat context
switch
38
2020
CII2H3 – Sistem Operasi
39
2020
CII2H3 – Sistem Operasi
Ilustrasi Proses Switch
40
2020
CII2H3 – Sistem Operasi
INTERRUPT, TRAP, SYSCALL
41
2020
CII2H3 – Sistem Operasi
Struktur OS Sederhana
42
2020
CII2H3 – Sistem Operasi
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
2020
CII2H3 – Sistem Operasi
STATE
44
2020
CII2H3 – Sistem Operasi
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
2020
CII2H3 – Sistem Operasi
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
2020
CII2H3 – Sistem Operasi
5 State Model
47
2020
CII2H3 – Sistem Operasi
Antrian Status
• OS mengelola antrian dari setiap status proses
48
2020
CII2H3 – Sistem Operasi
49
2020
CII2H3 – Sistem Operasi
SUSPEND
50
2020
CII2H3 – Sistem Operasi
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
2020
CII2H3 – Sistem Operasi
52
2020
CII2H3 – Sistem Operasi
Download