• Tidak ada hasil yang ditemukan

ModulSO 02 Proses&Thread

N/A
N/A
Protected

Academic year: 2017

Membagikan "ModulSO 02 Proses&Thread"

Copied!
7
0
0

Teks penuh

(1)

18

BAB II

PROSES & THREAD

A.

Definisi Proses

Menurut Silberschatz proses tidak hanya sekadar suatu kode program (text section), melainkan meliputi beberapa aktivitas yang bersangkutan seperti program counter

dan stack. Sebuah proses juga melibatkan stack yang berisi data sementara (parameter fungsi/metode, return address, dan variabel lokal) dan data section yang menyimpan variabel-variabel global. Tanenbaum juga berpendapat bahwa proses adalah sebuah program yang dieksekusi yang mencakup program counter, register, dan variabel di dalamnya.

Sistem Operasi mengeksekusi proses dengan dua cara :  Batch System yang mengeksekusi jobs

Time-shared System yang mengatur pengeksekusian program pengguna (user) atau tasks.

Proses dapat didefinisikan sebagai program yang sedang berjalan/dieksekusi. Proses merupakan unit kerja terkecil yang memiliki sumberdaya-sumberdaya dan dijadwalkan oleh sistem operasi.

B.

Penciptaan dan Terminasi Proses

1. Penciptaan Proses

Aktivitas penciptaan proses antara lain :

a. Menamai proses yang akan diciptakan dengan memberi prosess id

b. Menyisipkan proses pada senarai proses atau tabel c. Menentukan prioritas awal proses

d. Menciptakan Process Control Block (PCB)

e. Mengalokasikan sumber daya-sumber daya awal bagi proses

Penyebab terjadinya penciptaan proses :

a. Tanggapan atas pemberian job di lingkungan batch b. Pemakai baru berusaha log in pada lingkungan interaktif c. Tanggapan dari permintaan yang dilakukan aplikasi d. Proses menciptakan proses lain (child process)

2. Terminasi Proses

Suatu proses diterminasi ketika proses tersebut telah selesai mengeksekusi perintah terakhir serta meminta sistem operasi untuk menghapus perintah tersebut dengan menggunakan system call exit. Pada saat itu, proses dapat mengembalikan data keluaran kepada proses induk-nya melalui system call

(2)

19

✓ Turunan melampaui penggunaan sumber-daya yang telah dialokasikan. Dalam keadaan ini, proses induk perlu mempunyai mekanisme untuk memeriksa status turunannya-nya.

✓ Task yang ditugaskan kepada turunan tidak lagi diperlukan. ✓ Proses induk selesai, dan sistem operasi tidak mengizinkan proses

turunan untuk tetap berjalan. Jadi, semua proses turunan akan berakhir pula. Hal ini yang disebut cascading termination

C.

Status Proses

1. New : Status yang dimiliki saat proses baru saja dibuat 2. Ready : Status yang dimiliki saat proses siap untuk dieksekusi 3. Running : Instruksi-instruksi sedang dieksekusi

4. Waiting : Status yang dimiliki saat proses menunggu sebuah event

5. Terminated : Status yang dimiliki proses ketika proses telah selesai dieksekusi

Diagram State Proses

Gambar 2.1 : Diagram State Proses

Process Control Block

PCB merupakan struktur data yang menyimpan data lengkap mengenai proses sehingga sistem dapat mengelola seluruh siklus hidup semua proses di sistem. Ada tiga kelompok utama informasi dalam PCB yaitu :

1. Informasi Identifikasi Proses ➢ Identifier Proses

➢ Identifier Proses yang menciptakan ➢ Identifier Pemakai

2. Informasi Status Pemroses

➢ Register-register yang terlihat pemakai ➢ Register-register kendali dan status ➢ Pointer Stack

3. Informasi Kendali Proses

➢ Informasi penjadualan status

Ready Running

Blocked

Submit Dispatch Completed

Timeout

Suspended Blocked Suspended Ready

Event Wait

Suspend Resume

Suspend Resume

Event Occur

(3)

20

➢ Penstrukturan data ➢ Komunikasi antar proses ➢ Kewenangan proses ➢ Manajemen memori

➢ Kepemilikan dan utilisasi sumber daya

Gambar 2.2 : Process Control Block (PCB)

D.

Implementasi Proses

Tabel atau senarai proses yang dicatat oleh sistem operasi : 1. Tabel informasi manajemen memori

2. Tabel informasi manajemen masukan/keluaran 3. Tabel informasi sistem file

4. Tabel proses

PCB berperan penting di sistem operasi. PCB berisi informasi mengenai proses yang diperlukan sistem operasi. PCB dibaca/dimodifikasi rutin sistem operasi seperti penjadualan, alokasi sumberdaya, pemrosesan interupsi, monitoring, dan analisa kerja. Untuk menyatakan senarai proses di sistem operasi dibuat senarai PCB.

Tiap proses dilengkapi ID unik yang digunakan sebagai indeks ke tabel untuk mengambil PCB. Namun, kesalahan bisa saja terjadi saat pengaksesan berlangsung. Kesalahan bukan pada mekanisme pengaksesan, tetapi masalah proteksi terhadap PCB. Masalah utama proteksi terhadap PCB, yaitu :

1. Bug (kesalahan pemrograman) pada rutin tunggal misalnya interrupt handler dapat merusak PCB sehingga dapat berakibat menghancurkan kemampuan sistem mengelola proses-proses yang diasosiasikan dengan PCB.

2. Perubahan rancangan struktur dan semantiks PCB dapat berdampak ke sejumlah modul sistem operasi yang memakai PCB.

E.

Multiprogramming

,

Multiprocessing

dan

Distributed

Processing

1. Multiprogramming

✓ Manajemen banyak proses di satu pemroses

✓ Proses dijalankan secara bersamaan pada satu waktu

(4)

21

2. Multiprocessing

✓ Manajemen banyak proses di komputer multiprocessor ✓ Digunakan untuk peningkatan kinerja

✓ Memberikan kemampuan fault tolerant

3. Distributed Process

✓ Manajemen banyak proses yang dieksekusi di sistem komputer tersebar dalam sebuah jaringan.

✓ Pemrogram tidak perlu menyadari keberadaan banyak pemroses.

F.

Pengalihan Proses

(Process Switching)

Beberapa penyebab terjadinya pengalihan proses : 1. Interupsi Sistem ---> terjadi karena faktor eksternal

Tipe-tipe interupsi : ➢ Interupsi clock

➢ Interupsi masukan/keluaran ➢ Page/memory fault

2. Trap ----> Terjadi karena kesalahan yang dihasilkan proses running, misal : usaha untuk mengakses file secara ilegal

3. Supervisor Call ---> Panggilan meminta atau mengaktifkan bagian sistem operasi

G.

Penjadualan Proses

Penjadualan adalah kumpulan kebijaksanaan dan mekanisme di sistem operasi yang berkaitan dengan urutan kerja yang dilakukan sistem komputer, bertugas mengatur proses yang harus berjalan dan waktu selama proses berjalan.

Kriteria untuk mengukur dan optimasi kinerja penjadualan : 1. Adil (Fairness)

2. Efisiensi

3. Waktu Tanggap (Response Time)

4. Turn Arround Time 5. Throughtput

Tipe-tipe penjadualan :

1. Penjadualan Jangka Pendek

Menjadualkan alokasi pemroses di antara proses-proses ready yang berada di memori utama.

2. Penjadualan Jangka Menengah

Bertugas menangani proses-proses swapping. 3. Penjadulan Jangka Panjang

Bekerja terhadap antrian batch dan memilih batch yang harus dieksekusi sistem.

H.

Strategi Penjadualan

1. Penjadualan Pre-emptive ---> Proses dapat disela oleh proses lain

2. Penjadualan Non pre-emptive ---> Proses tidak dapat disela oleh proses lain

I.

Algoritma Penjadualan

1. Round Robin (RR)

(5)

22

c. Jika waktu belum habis dan proses selesai ---> Running > Completed

2. Multiple Feedback Quenes (MFQ)

a. Menjalankan proses yang berada pada kelas prioritas tertinggi.

b. Jika proses telah menggunakan waktu yang dialokasikan maka proses diturunkan kelas prioritasnya.

c. Proses yang masuk pertama kali langsung diberi kelas tertinggi.

3. Shortest Remaining First (SRF)

Proses dengan sisa waktu jalan diestimasi terendah.

4. Highest Ratio Next (HRN)

Pemroses memberikan prioritas layanan kepada proses yang telah menunggu lebih lama.

5. Priority Schedulling (PS)

Proses yang memliki prioritas tinggi menjadi running.

6. Guaranteed Schedulling (GS)

Penjadual akan menjalankan proses dengan rasio terendah sampai rasio proses di atas pesaing terdekatnya.

7. First in, First Out (FIFO) atau First Come First Serve (FCFS)

a. Proses diberi jatah waktu pemroses berdasarkan urutan kedatangan b. Proses dijalankan hingga selesai

8. Shortest Job First (SJF)

Lebih mengutamakan proses dengan waktu terpendek.

J.

Thread

Thread merupakan unit dasar dari penggunaan CPU, yang terdiri dari Thread_ID,

program counter, register set, dan stack. Sebuah thread berbagi code section, data section, dan sumber daya sistem operasi dengan Thread lain yang dimiliki oleh proses yang sama. Thread juga sering disebut lightweight process. Sebuah proses tradisional atau heavyweight process mempunyai thread tunggal yang berfungsi sebagai pengendali. Perbedaannya ialah proses dengan thread yang banyak mengerjakan lebih dari satu tugas pada satu satuan waktu.

(6)

23

Keuntungan dari program yang multithreading terbagi menjadi empat kategori: 1. Responsif

Aplikasi interaktif menjadi tetap responsif meski pun sebagian dari program sedang diblok atau melakukan operasi yang panjang kepada pengguna. Umpamanya, sebuah thread dari web browser dapat melayani permintaan pengguna sementara

thread lain berusaha menampilkan gambar.

2. Berbagi sumber daya

Thread berbagi memori dan sumber daya dengan thread lain yang dimiliki oleh proses yang sama. Keuntungan dari berbagi kode adalah mengizinkan sebuah aplikasi untuk mempunyai beberapa thread yang berbeda dalam lokasi memori yang sama.

3. Ekonomis

Pembuatan sebuah proses memerlukan dibutuhkan pengalokasian memori dan sumber daya. Alternatifnya adalah dengan penggunaan thread, karena thread

berbagi memori dan sumber daya proses yang memilikinya maka akan lebih ekonomis untuk membuat dan context switch thread. Akan susah untuk mengukur perbedaan waktu antara proses dan thread dalam hal pembuatan dan pengaturan, tetapi secara umum pembuatan dan pengaturan proses lebih lama dibandingkan

thread. Pada Solaris, pembuatan proses lebih lama 30 kali dibandingkan pembuatan

thread, dan context switch proses 5 kali lebih lama dibandingkan context switch thread.

4. Utilisasi arsitektur multiprocessor

Keuntungan dari multithreading dapat sangat meningkat pada arsitektur

multiprocessor, dimana setiap thread dapat berjalan secara pararel di atas processor yang berbeda. Pada arsitektur processor tunggal, CPU menjalankan setiap thread

secara bergantian tetapi hal ini berlangsung sangat cepat sehingga menciptakan ilusi pararel, tetapi pada kenyataannya hanya satu thread yang dijalankan CPU pada satu-satuan waktu (satu-satuan waktu pada CPU biasa disebut time slice atau

quantum).

K.

Thread Pengguna dan Thread Kernel

1. Thread Pengguna

Thread pengguna didukung kernel serta diimplementasikan dengan pustaka

(7)

24

2. Thread Kernel

Thread kernel didukung langsung oleh sistem operasi. Pembuatan, penjadwalan, dan manajemen thread dilakukan oleh kernel pada kernel space. Karena pengaturan thread dilakukan oleh sistem operasi maka pembuatan dan pengaturan kernel thread lebih lambat dibandingkan user thread. Keuntungannya adalah thread diatur oleh kernel, karena itu jika sebuah thread

menjalankan blocking system call maka kernel dapat menjadwalkan thread lain di aplikasi untuk melakukan eksekusi. Keuntungan lainnya adalah pada lingkungan multiprocessor, kernel dapat menjadwal thread-thread pada processor yang berbeda. Contoh sistem operasi yang mendukung kernel thread

adalah Windows NT, Solaris, Digital UNIX.

L.

Model Penggunaan

1. Many to One

Model Many-to-One memetakan beberapa thread tingkatan pengguna ke sebuah

thread tingkatan kernel. Pengaturan thread dilakukan dalam ruang pengguna, sehingga efisien. Hanya satu thread pengguna yang dapat mengakses thread

kernel pada satu saat. Jadi, multiple thread tidak dapat berjalan secara pararel pada multiprocessor. Thread tingkat pengguna yang diimplementasi pada sistem operasi yang tidak mendukung thread kernel menggunakan model many to one.

2. One to One

Model One-to-One memetakan setiap thread tingkatan pengguna ke thread

kernel. Ia menyediakan lebih banyak concurrency dibandingkan model Many-to-One. Keuntungannya sama dengan keuntungan thread kernel. Kelemahannya model ini ialah setiap pembuatan thread pengguna memerlukan pembuatan

thread kernel. Karena pembuatan thread dapat menurunkan kinerja dari sebuah aplikasi maka implmentasi dari model ini, jumlah thread dibatasi oleh sistem. Contoh sistem operasi yang mendukung model One-to-One ialah

Windows NT dan OS/2.

3. Many to Many

Model Many-to-Many memultipleks banyak thread tingkatan pengguna ke

Gambar

Gambar 2.1 :  Diagram State Proses
Gambar 2.2 :  Process Control Block (PCB)

Referensi

Dokumen terkait

Jadi Seorang juru kamera dituntut untuk dapat mengambil gambar dengan baik, tetapi tidak hanya itu, ia juga harus memahami gambar, kemampuan yang baru sebatas dapat

telah ia ketahui, akan tetapi selanjutnya ia kurang dapat melanjutkan rencana.. penyelesaian dari masalah yang ia temukan pada soal. Berdasarkan hal. tersebut disimpulkan

Jika proses Pi ingin masuk ke critical section, tetapi belum dapat masuk, maka ia akan membandingkan timestamp request miliknya dengan timestamp request yang datang dari Pj. jika

Guru, tentu saja, dapat menuntun anak-anak dengan menyediakan bahan yang tepat, tetapi yang terpenting agar anak dapat memahami sesuatu, ia harus membangun pengertian