pertemuan #2: proses dan thread · pdf fileprosesor memiliki sumber daya fisik terbatas....

Post on 06-Feb-2018

235 Views

Category:

Documents

5 Downloads

Preview:

Click to see full reader

TRANSCRIPT

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

top related