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