Pertemuan #2: Proses dan Thread · PDF fileProsesor memiliki sumber daya fisik terbatas....
-
Upload
phungkhanh -
Category
Documents
-
view
233 -
download
5
Transcript of Pertemuan #2: Proses dan Thread · PDF fileProsesor memiliki sumber daya fisik terbatas....
Pertemuan #2:Pertemuan #2:
Proses dan Thread Proses dan Thread
Lecturer: Lecturer: Abdusy SyarifAbdusy Syarif
Prodi Teknik InformatikaProdi Teknik InformatikaFakultas Ilmu KomputerFakultas Ilmu Komputer
Slide - Slide - 22Sistem Operasi #2Sistem Operasi #2
Tujuan 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
Slide - Slide - 33Sistem Operasi #2Sistem Operasi #2
ProsesProses
Dalam banyak hal, seluruh aktivitas ini Dalam banyak hal, seluruh aktivitas ini adalah serupa, maka kita menyebut adalah serupa, maka kita menyebut seluruh program itu proses-proses seluruh program itu proses-proses (processes). (processes).
Secara informal; proses adalah program Secara informal; proses adalah program dalam eksekusi. dalam eksekusi.
Suatu proses adalah lebih dari kode Suatu proses adalah lebih dari kode program, dimana kadang kala dikenal program, dimana kadang kala dikenal sebagai bagian tulisansebagai bagian tulisan
Slide - Slide - 44Sistem Operasi #2Sistem Operasi #2
Keadaan ProsesKeadaan 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
Slide - Slide - 55Sistem Operasi #2Sistem Operasi #2
Slide - Slide - 66Sistem Operasi #2Sistem Operasi #2
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
Slide - Slide - 77Sistem Operasi #2Sistem Operasi #2
Proses adalah kunci abstraksi SO
Penglihatan Pengguna – lingkungan tempat berinteraksi ~>Proses. Perintah yang diketikan. Mengeksekusi program. WWW browser.
Slide - Slide - 88Sistem Operasi #2Sistem Operasi #2
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
Slide - Slide - 99Sistem Operasi #2Sistem Operasi #2
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
Slide - Slide - 1010Sistem Operasi #2Sistem Operasi #2
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.
Slide - Slide - 1111Sistem Operasi #2Sistem Operasi #2
Multiprogramming
Multiple proses pada satu waktu. Linux/unix saat ini telah
menerapkannya. Memungkinkan sistem untuk
memisahkan aktifitas.
Slide - Slide - 1212Sistem Operasi #2Sistem Operasi #2
Multiprogrammingdan 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.
Slide - Slide - 1313Sistem Operasi #2Sistem Operasi #2
Implementasiproses abstraksi
Q: Bagaimana SO mengimplementasikan proses abstraksi?
A: Menggunakan 'context switch' untuk beralih dari menjalankan 1 proses ke yang lain.
Slide - Slide - 1414Sistem Operasi #2Sistem Operasi #2
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)'.
Slide - Slide - 1515Sistem Operasi #2Sistem Operasi #2
Proses Control Block (PCB) & CPU Register
Slide - Slide - 1616Sistem Operasi #2Sistem Operasi #2
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.
Slide - Slide - 1717Sistem Operasi #2Sistem Operasi #2
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.
Slide - Slide - 1818Sistem Operasi #2Sistem Operasi #2
A. Frank - P. Weisberg
Multithreading LevelsMultithreading ModelsThreading Issues
Slide - Slide - 1919Sistem Operasi #2Sistem Operasi #2
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
Slide - Slide - 2020Sistem Operasi #2Sistem Operasi #2
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.Thread switching does not require kernel mode privileges.Scheduling is application specific.
Slide - Slide - 2121Sistem Operasi #2Sistem Operasi #2
Implementing Threads in User Space
Slide - Slide - 2222Sistem Operasi #2Sistem Operasi #2
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 kernel.Scheduling on a thread basis.
Slide - Slide - 2323Sistem Operasi #2Sistem Operasi #2 A. Frank - P. Weisberg
Implementing Threads in the Kernel
Slide - Slide - 2424Sistem Operasi #2Sistem Operasi #2
A. Frank - P. Weisberg
KLT Idea
Threads supported by the Kernel.Examples:
Windows 2000/XPOS/2LinuxSolarisTru64 UNIXMac OS X
Slide - Slide - 2525Sistem Operasi #2Sistem Operasi #2
A. Frank - P. Weisberg
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.
Example is Solaris prior to version 9.
Slide - Slide - 2626Sistem Operasi #2Sistem Operasi #2
Studi Kasus: Thread di Linux
- Instal terlebih dahulu tools 'htop'
~$ sudo apt-get install htop
- Menjalankan htop
~$ htop
Slide - Slide - 2727Sistem Operasi #2Sistem Operasi #2
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.
Slide - Slide - 2828Sistem Operasi #2Sistem Operasi #2
Event-driven
Slide - Slide - 2929Sistem Operasi #2Sistem Operasi #2
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.
Slide - Slide - 3030Sistem Operasi #2Sistem Operasi #2
Event-driven dan threads
Ketika sebuah 'event-driven' terbuat, dengan beberapa aktifitas, thread adalah sebuah kunci mekanisme terstruktur pada SO.
Slide - Slide - 3131Sistem Operasi #2Sistem Operasi #2
Penjadwalan Proses & Antrian
Slide - Slide - 3232Sistem Operasi #2Sistem Operasi #2
Penjadwalan (Scheduler)
Slide - Slide - 3333Sistem Operasi #2Sistem Operasi #2
Operasi pada ProsesOperasi pada Proses