Proses dan Thread

advertisement
Pertemuan #2:
Proses dan Thread
Lecturer:
Abdusy Syarif
Prodi Teknik Informatika
Fakultas Ilmu Komputer
Tujuan
Memahami konsep dasar dan definisi dari proses
Menjelaskan keadaan/status proses
Memahami Process Control Block
Memahami operasi-operasi Proses
Memahami Hubungan antar Proses
Memahami konsep Thread
Memahami konsep dasar Penjadualan CPU
Memahami algoritma-algoritma Penjadualan CPU,
meliputi FCFS, SJF, Prioritas, Round Robin,
Multiprocessor
Sistem Operasi #2
Slide - 2
Proses
 Dalam banyak hal, seluruh aktivitas ini
adalah serupa, maka kita menyebut
seluruh program itu proses-proses
(processes).
 Secara informal; proses adalah program
dalam eksekusi.
 Suatu proses adalah lebih dari kode
program, dimana kadang kala dikenal
sebagai bagian tulisan
Sistem Operasi #2
Slide - 3
Keadaan Proses
New: Proses sedang dikerjakan/ dibuat.
Running: Instruksi sedang dikerjakan.
Waiting: Proses sedang menunggu sejumlah kejadian untuk
terjadi (seperti sebuah penyelesaian I/Oatau penerimaan
sebuah tanda/ signal).
Ready: Proses sedang menunggu untuk ditugaskan pada
sebuah prosesor.
Terminated: Proses telah selsesai melaksanakan tugasnya/
mengeksekusi
Sistem Operasi #2
Slide - 4
Sistem Operasi #2
Slide - 5
Informasi Status Proses
 Status Proses biasanya termasuk
(tetapi tidak keharusan):
 Register
 Stack
 Memory (global variables and dynamically
allocated memory)
 Open file tables
 Signal management information
Sistem Operasi #2
Slide - 6
Proses adalah kunci abstraksi SO
 Penglihatan Pengguna – lingkungan
tempat berinteraksi ~>Proses.
 Perintah yang diketikan.
 Mengeksekusi program.
 WWW browser.
Sistem Operasi #2
Slide - 7
Studi Kasus : Proses di Linux
- Pada Linux, ketika kita memulai sebuah proses,
Linux akan memberikan sebuah nomer unik yg
disebut PID atau Process-ID.
- PID mulai dari 0 sampai 65535.
- PID 1 selalu dimiliki oleh proses 'init', yg menjadi
proses pertama saat booting.
- ketik perintah ini pada CLI : “ps -C init -o pid=,cmd”
Maka output sistem akan seperti ini :
CMD
1 /sbin/init
Sistem Operasi #2
Slide - 8
Studi Kasus : Proses di Linux
- Untuk melihat seluruh Proses :
~$ sudo ps -aux
- Untuk melihat single proses :
~$ sudo ps -C chrome -o pid=,cmd,stat
- Untuk memfilter proses :
~$ sudo ps -aux | grep “chrome”
- Untuk melihat pohon proses :
~$ pstree
- Untuk mematikan sebuah proses :
~$ sudo kill 2222
Sistem Operasi #2
Slide - 9
Uniprogramming
 Hanya 1 proses dalam 1 waktu. Contoh : DOS.
 Problem: user sering meminta lebih dari 1
aktifitas dalam satu waktu (contoh : memanggil
remote file ketika sedang mengedit program),
dan uniprogramming tidak memungkinkan hal
ini.
 Jadi DOS dan uniprogrammed lain meletakkan
sesuatu seperti program memory-resident.
 Satu kunci masalah DOS adalah tidak adanya
proteksi memori – satu program bisa menulis
memori program lain.
Sistem Operasi #2
Slide - 10
Multiprogramming
 Multiple proses pada satu waktu.
 Linux/unix saat ini telah
menerapkannya.
 Memungkinkan sistem untuk
memisahkan aktifitas.
Sistem Operasi #2
Slide - 11
Multiprogramming
dan resource sharing
 Proses apa yang menggunakan sumber
daya mesin? Kapan? → CPU.
 Solusi dasar adalah memanfaatkan
preemptive multitasking – SO
menjalankan proses sesaat, kemudian
CPU meninggalkannya serta
mengizinkan proses lain berjalan.
 Harus 'save and restore' status proses.
 Kunci : kelayakan (fairness). Harus dipastikan
bahwa semua proses mendapatkan pembagian
CPU yang layak.
Sistem Operasi #2
Slide - 12
Implementasi
proses abstraksi
 Q: Bagaimana SO
mengimplementasikan proses
abstraksi?
 A: Menggunakan 'context switch'
untuk beralih dari menjalankan 1
proses ke yang lain.
Sistem Operasi #2
Slide - 13
Implementasi
'Context Switch'
 Q: Bagaimana mesin
mengimplementasikan 'context
switch'? Prosesor memiliki sumber
daya fisik terbatas. Contoh,
keterbatasan set register. Tetapi
setiap proses pada mesin memiliki set
register tersendiri.
 S: 'save and restore' status hardware
pada 'context switch'. Save status
pada 'Process Control Block (PCB)'.
Sistem Operasi #2
Slide - 14
Proses Control Block (PCB) & CPU
Register
Sistem Operasi #2
Slide - 15
Thread
Model proses yang didiskusikan sejauh
ini telah menunjukkan bahwa suatu
proses adalah sebuah program yang
menjalankan eksekusi thread tunggal.
Sebagai contoh, jika sebuah proses
menjalankan sebuah program Word
Processor, ada sebuah thread tunggal
dari instruksi-instruksi yang sedang
dilaksanakan.
Sistem Operasi #2
Slide - 16
Multithreading vs. Single threading
Single threading: when the OS does not
recognize the concept of thread.
Multithreading: when the OS supports
multiple threads of execution within a
single process.
MS-DOS supports a single user process and
a single thread.
Older UNIXs supports multiple user
processes but only support one thread per
process.
Solaris and Windows NT support multiple
threads.
Sistem Operasi #2
Slide - 17
Multithreading Levels
Multithreading Models
Threading Issues
A. Frank - P. Weisberg
Sistem Operasi #2
Slide - 18
Multithreading Levels
•
•
»
»
»
Thread library provides programmer with
API for creating and managing threads.
Three multithreading levels:
User-Level Threads (ULT)
– Library entirely in user space.
Kernel-Level Threads (KLT)
– Kernel-level library supported
by the OS.
Hybrid ULT/KLT Approach
Sistem Operasi #2
Slide - 19
1) User-Level Threads (ULT)
Thread management
done by user-level
threads library
The kernel is not aware
of
the existence of
threads.
All thread management
is
done by the application
by
using
a thread library.
Sistem Operasi #2
Slide - 20
Implementing Threads in User Space
Sistem Operasi #2
Slide - 21
2) Kernel-Level Threads (KLT)
All thread
management is done
by kernel.
No thread library but
an API to the kernel
thread facility.
Kernel maintains
context information
for the process and
the threads.
Switching between
threads
requires the
Sistem Operasi #2
Slide - 22
Implementing Threads in the Kernel
Sistem Operasi #2
A. Frank - P. Weisberg
Slide - 23
KLT Idea
Threads supported by the
Kernel.
Examples:
Windows 2000/XP
OS/2
Linux
Solaris
Tru64 UNIX
Mac OS X A. Frank - P. Weisberg
Sistem Operasi #2
Slide - 24
3) Hybrid ULT/KLT Approaches
Thread creation done
in the user space.
Bulk of scheduling and
synchronization of
threads done in the
user space.
The programmer may
adjust the number of
KLTs.
May combine the best
of both approaches.
A. Frank - P. Weisberg
Example is Solaris
Sistemto
Operasi
#2
prior
version
9.
Slide - 25
Studi Kasus: Thread di Linux
- Instal terlebih dahulu tools 'htop'
~$ sudo apt-get install htop
- Menjalankan htop
~$ htop
Sistem Operasi #2
Slide - 26
Sistem Operasi adalah event-driven
 SO menunggu sebuah 'event' terjadi,
meresponnya, lalu menunggu 'event'
berikutnya.
 User menekan tombol.
 Program mengeluarkan 'system call' untuk membaca
sebuah file. SO mecari 'disk blocks' ke dalam, dan
membuat permintaan (request) kepada 'disk
controller' untuk membaca 'disk blocks' kedalam
memori.
 Disk controller selesai membaca dan menginterupsi.
SO bergerak membaca data kedalamprogram dan
restarts program.
Sistem Operasi #2
Slide - 27
Event-driven
Sistem Operasi #2
Slide - 28
Contoh event-driven
 Sebuah web browser meminta URL.
Hal ini akan meminta SO untuk
mengirim permintaan (request)
melalui jaringan ke WWW server. SO
akan mengirim paket.
 Response packet datang dari WWW
server, menginterupsi prosesor. SO
menterjemahkan proses mana yang
akan mendapatkan paket, lalu
menghantarkan paket tersebut ke
proses.
Sistem Operasi #2
Slide - 29
Event-driven dan threads
 Ketika sebuah 'event-driven'
terbuat, dengan beberapa aktifitas,
thread adalah sebuah kunci
mekanisme terstruktur pada SO.
Sistem Operasi #2
Slide - 30
Penjadwalan Proses & Antrian
Sistem Operasi #2
Slide - 31
Penjadwalan (Scheduler)
Sistem Operasi #2
Slide - 32
Operasi pada Proses
Sistem Operasi #2
Slide - 33
Download