Anda di halaman 1dari 26

D

I
S
U
S
U
N
OLEH :

1. Debora Sijabat
2. Elsya Sabrina A.S
3. Kamariah
4. Novia Sari
5. Sari Agustina Lumbangaol

Group

: A/Pagi

Jurusan

: D-III (Komputerisasi Akuntansi)

STMIK BUDIDARMA
MEDAN
0

BAB I
PENDAHULUAN
1.1 Latar Belakang
Sistem Operasi merupakan sebuah penghubung antara pengguna dari komputer dengan
perangkat keras komputer. Sebelum ada sistem operasi, orang hanya menggunakan komputer
dengan menggunakan sinyal analog dan sinyal digital. Seiring dengan berkembangnya
pengetahuan dan teknologi, pada saat ini terdapat berbagai sistem operasi dengan keunggulan
masing-masing. Sistem Operasi yang semakin berkembang saat ini memberikan sebuah
kemajuan

bagi para pengguna sistem. Berkembangnya Sistem Operasi

diawali dari

bertambahnya kebutuhan pengguna sistem dalam penyelesaian tugas atau pekerjaan. Lancarnya
proses pada sistem operasi berhubungan dengan Manajemen Proses dan Thread. Seiring dengan
kebutuhan penggunaan sistem, maka manajemen Proses dan Thread perlu diperhatikan guna
kelancaran operasi sebuah sistem. Adapun pengertian Proses yaitu unit kerja terkecil yang

secara individu memiliki sumber daya-sumber daya dan dijadwalkan sistem operasi.
Selain itu proses juga diartikan program yang sedang dieksekusi sedangkan Thread
merupakan unit dasar dari penggunaan CPU, yang terdiri dari Thread ID, program counter,
register set, dan stack. Oleh karena itu pentingnya pengetahuan mengenai Manajemen Proses
dan Thread.

BAB II
PEMBAHASAN
MANAJEMEN PROSES AND THREAD
A. MANAJEMEN PROSES
1. Pengertian Proses
Proses merupakan unit kerja terkecil yang secara individu memiliki sumber
daya-sumber daya dan dijadwalkan sistem operasi. Selain itu proses juga diartikan
program yang sedang dieksekusi. Sedangkan menurut Silberschatz proses tidak hanya
sekedar 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. Perbedaan antara program
dengan proses adalah program merupakan entitas yang pasif, yaitu suatu file yang berisi
kumpulan instruksi-instruksi yang disimpan di dalam disk (file executable), sedangkan
proses merupakan entitas yang aktif, dengan sebuah program counter yang menyimpan
alamat instruksi selanjut yang akan dieksekusi dan seperangkat sumber daya (resource)
yang dibutuhkan agar sebuah proses dapat dieksekusi.
1.1. Karakteristik Proses
Proses memiliki dua karakteristik:
a) Resource ownership (kepemilikan sumber daya)
b) Scheduling-execution (penjadwalan eksekusi)
1.2. Hal-hal yang berkaitan dengan proses :
a) Multiprogramming (Multitasking)
b) Multiprocessing
c) Distributed processing
1.2.1 Multiprogramming (Multitasking)
Definisi : Manajemen banyak proses pada satu pemroses
Banyak proses yang dijalankan bersamaan, masing-masing proses
1.2.2

mendapat bagian memori dan kendali sendiri.


Multiprocessing
Definisi : Manajemen banyak proses di komputer multiprocessor
Dengan kata lain komputer dengan banyak pemroses di satu sistem
komputer dengan masing-masing pemroses melakukan pemrosesan secara

1.2.3

independent.
Distributed processing
2

Manajemen banyak proses yang dieksekusi di banyak sistem komputer


yang tersebar (terdistribusi).
1.3. Status Proses
Proses yang dieksekusi mempunyai lima status yang terdiri dari:
a. New

: Pembentukan suatu proses.

b. Running

: Instruksi-instruksi yang sedang dieksekusi. Pada status ini CPU


sedang mengeksekusi instruksi-instruksi pada proses.

c. Waiting

: Proses menunggu untuk beberapa event yang terjadi. Misalnya


sedang menunggu operasi I/O selesai, menunggu signal dari
proses lain, tersedianya memori, dsb.

d. Ready

: Proses menunggu untuk dialirkan ke pemroses (processor).

e. Terminated

: Proses telah selesai dieksekusi.

Kelima status proses tersebut dapat di gambarkan pada diagram berikut :

1.4. Process Control Block (PCB)


Setiap proses digambarkan dalam sistem operasi oleh sebuah Process Control
Block (PCB), juga disebut sebuah Control Block Proses sehingga dapat terjadi siklus
3

hidup proses. PCB berisikan banyak bagian dari informasi yang berhubungan dengan
sebuah proses yang spesifik.
Status proses

: Status yang mungkin adalah new, ready, running,


waiting, halted, dan seterusnya.

Program counter

: Suatu penghitung yang mengindikasikan alamat


dari instruksi selanjutnya yang akan dieksekusi
untuk proses tersebut.

CPU register

: Register bervariasi dalam jumlah dan tipenya,


tergantung pada arsitektur komputer. Register
tersebut termasuk accumulator, index register,
stack

pointer,

general-purposes

register,

ditambah informasi condition-code. Bersama


dengan

program

counter,

keadaan/status

informasi harus disimpan ketika gangguan


terjadi, untuk memungkinkan proses tersebut
berjalan/bekerja dengan benar.
Informasi manajemen memori

: Informasi ini dapat termasuk suatu informasi


sebagai nilai dari dasar dan batas register, tabel
page/halaman, atau tabel segmen tergantung
pada sistem memori yang digunakan oleh sistem
operasi.

Informasi pencatatan

: Informasi ini termasuk jumlah dari CPU dan


waktu nyata yang digunakan, batas waktu,
jumlah account, jumlah pekerjaan atau proses,
dan banyak lagi.

Informasi status I/O

: Informasi termasuk daftar dari perangkat I/O


yang di gunakan pada proses ini, suatu daftar
berkas-berkas yang sedang diakses dan banyak
lagi.

PCB hanya berfungsi sebagai tempat penyimpanan informasi yang dapat bervariasi dari
proses yang satu dengan yang lain.
Dibawah ini adalah gambar diagram PCB(Process Control Block) :

Berikut ini adalah gambar status proses :

Gambar di atas menerangkan status proses pada PCB (Proses Control Block)
yaitu:
1. Proses yang baru diciptakan akan mempunyai state ready.
2. Proses berstate running menjadi blocked, karena sumber daya yang diminta
belum tersedia atau meminta layanan perangkat masukan/keluaran, sehingga
menunggu kejadian muncul. Proses menunggu kejadian alokasi sumber daya
atau selesainya layanan perangkat masukan/keluaran (event wait).
3. Proses berstate running menjadi ready, karena penjadwal memutuskan eksekusi
proses lain karena jatah waktu untuk proses tersebut telah habis (time out).
4. Proses berstate blocked menjadi ready saat sumber daya yang diminta/
diperlukan telah tersedia atau layanan perangkat masukan/keluaran selesai
(event occurs).
5. Proses berstate ready menjadi running, karena penjadwal memutuskan
penggunaan pemroses utnuk proses itu karena proses yang saat itu running
berubah statenya (menjadi ready ata blocked) atau telah menyelesaikan sehingga
disingkirkan dari sistem. Proses menjadi mendapatkan jatah pemroses.

2.

Komunikasi Antar Proses


Komunikasi antar proses adalah mekanisme proses-proses untuk berkomunikasi

dan melakukan sinkronisasi aksinya. Komunikasi dilakukan dengan sistem pesan,


dimana proses berkomunikasi dengan proses lain tanpa menggunakan variabel yang
dishare.
Implementasi saluran komunikasi dalam bentuk :
Fisik , misalnya shared memory, hardware bus
Logika, misalnya properti logika
Komunikasi antar proses terbagi menjadi dua, yaitu :
1. Komunikasi Langsung(direct communication)
2. Komunikasi Tak Langsung(indirect communication)

2.1. Komunikasi Langsung


Bentuk. Pada komunikasi langsung, harus disebutkan nama proses secara eksplisit.
send(P,pesan); mengirim pesan ke proses P. receive(Q,pesan); menerima pesan dari proses Q.

Properti yang harus terdapat pada saluran komunikasi terdiri dari :


a. Terdapat sambungan yang dapat bekerja secara otomatis antara tiap pasangan
proses yang ingin berkomunikasi.
b. Sambungan tersebut menghubungkan tepat satu pasangan proses yang akan
berkomunikasi.
c. Antar tiap-tiap pasangan proses terdapat tepat pada saluran.
d. Sambungan tersebut mungkin bersifat unidirectional, namun biasanya
bidirectional.
2.2 Komunikasi Tak Langsung
Pada komunikasi tak langsung pengiriman atau penerimaan pesan dilakukan
melalui mailbox (port). Mailbox adalah suatu objek yang mana pesan-pesan
ditempatkan oleh proses atau dapat dihapus. Tiap-tiap mailbox memiliki identitas unik.
Dua buah proses dapat saling berkomunikasi hanya jika mereka saling menggunakan
mailbox secara bersama-sama.

Properti yang harus disediakan pada saluran komunikasi adalah :


a. Sambungan antara 2 proses diberikan jika antara kedua proses tersebut saling
menggunakan mailbox secara bersama-sama.
b. Sambungan tersebut dihubungkan dengan beberapa proses.
c. Antar tiap-tiap pasangan proses yang saling berkomunikasi, ada sejumlah
sambungan yang berbeda, tiap-tiap link berhubungan dengan satu mailbox.
d. Sambungan tersebut mungkin bersifat unidirectional, namun biasanya
bidirectional.Sambungan mempunyai beberapa kapasitas yang menentukan
jumlah pesan yang dapat ditampung sementara. Bentuknya berupa antrian
pesan yang dilewatkan ke sambungan.
3. Operasi-Operasi Pada Proses
3.1.

Pembuatan Proses
Ada beberapa aktifitas berkenaan dengan pembuatan proses, antara lain :
a. Memberi identitas (nama) pada proses yang dibuat;
b. Menyisipkan proses pada list proses atau tabel proses;
c.

Menentukan prioritas awal proses;

d. Membuat PCB;
e. Mengalokasikan resource awal bagi proses tersebut.
Ada beberapa kejadian yang menyebabkan pembuatan suatu proses baru, antara
lain:
1. Pada lingkungan batch sebagai tambahan atas pemberian job. Setelah
menciptakan proses baru, sistem operasi melanjutkan untuk membaca job
selanjutnya
2. Pada ingkungan interaktif, pada saat user baru saja logam;

3. Sebagai tanggapan atas suatu aplikasi (seperti: mencetak file, sistem operasi
dapat menciptakan proses yang akan mengelola pencetakan itu);
4. Proses menciptakan proses lain (child). Untuk mencapai modularitas atau
mengeksploitasi kongkurensi, program pemakai memerintahkan pembuatan
sejumlah proses. Proses dapat menciptakan proses baru yaitu anak proses
(child process), sedangkan proses yang menciptakannya disebut proses induk
(parent process). Proses anakpun kembali dapat menciptakan proses-proses
anak lainnya. Proses-proses dapat membentuk pohon hirarki proses.
Selama eksekusi, suatu proses mungkin akan membuat suatu proses yang
baru.Proses tersebut dinamakan parent, sedangkan proses yang dibuat dinamakan child.
Proses pembuatan proses anak membentuk pohon proses.
Pembagian sumber daya :

Parent dan child membagi semua sumber daya yang ada

Child menggunakan sebagian dari sumber daya yang digunakan parent

Parent dan child tidak membagi sumber daya

Bentuk eksekusi :

Parent melanjutkan eksekusi beriringan dengan children.

Parent menunggu hingga beberapa atau seluruh children selesai.

Bentuk ruang alamat :


Child adalah duplikat dari proses parent.

Child mempunyai program yang diambil dari dirinya.

3.2.

Penghancuran/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. Proses dapat mengembalikan data keluaran
kepada proses induk-nya melalui system call wait.
Penghancuran proses melibatkan pembebasan proses dari sistem, yaitu :
a. Sumber daya-sumber daya yang dipakai dikembalikan.
b. Proses dihancurkan dari senarai atau tabel sistem.
c. PCB dihapus (ruang memori PCB dikembalikan ke pool memori bebas).
Penghancuran lebih rumit bila proses telah menciptakan proses-proses lain. Terdapat
dua pendekatan, yaitu :
a. Pada beberapa sistem, proses-proses turunan dihancurkan saat proses induk
dihancurkan

secara otomatis.

b. Beberapa sistem lain menganggap proses anak independen terhadap proses


induk, sehingga proses anak tidak secara otomatis dihancurkan saat proses induk
dihancurkan.
3.3 Penundaan Proses
Penundaan (suspension) adalah operasi penting dan telah diterapkan dengan
beragam cara. Penundaan biasanya berlangsung singkat. Penundaan sering dilakukan
sistem untuk memindahkan proses-proses tertentu guna mereduksi beban sistem selama
beban puncak.
Proses yang ditunda (suspended process) tidak berlanjut sampai proses lain
me-resume. Untuk jangka panjang, sumber daya-sumber daya proses dibebaskan
(dilucuti). Keputusan membebaskan sumber daya-sumber daya bergantung sifat
masing-masing sumber daya. Memori utama seharusnya segera dibebaskan begitu
proses tertunda agar dapat dimanfaatkan proses lain. Resuming (pengaktifan kembali)
proses yaitu menjalankan proses dari titik (instruksi) dimana proses ditunda.
3.4 Pengalihan Proses

10

Pengalihan proses terjadi jika proses yang running beralih menjadi state lain (ready,
blocked) kemudian sistem operasi membuat perubahan-perubahan berarti terhadap
lingkungan.
Kejadian-kejadian yang menyebabkan terjadinya alih proses adalah :
3.4.1 Interupsi system
Disebabkan kejadian eksternal dan tak bergantung proses yang saat itu sedang
running. Contoh : selesainya operasi masukan/keluaran. Pada kejadian interupsi, kendali
lebih dulu ditransfer ke interrupt handler yang melakukan penyimpanan data-data dan
kemudian beralih ke rutin sistem operasi yang berkaitan dengan tipe interupsi itu.
Tipe-tipe Interupsi itu antara lain :
a. Interupsi clock (clock interrupt)
Sistem operasi (penjadwal) menentukan apakah proses yang sedang running
telah mengeksekusi selama jatah waktunya. Jika telah mencapai jatahnya maka
proses dialihkan ke state ready dan proses lain dijadwalkan running
b. Interupsimasukan/keluaran
Kejadian dimana peralatan masukan/keluaran melakukan interupsi meminta
layanan

sistem

operasi.

Sistem

operasi

segera

menentukan

aksi-aksi

masukan/keluaran yang harus dilakukan.


c.

Page/memory fault
Pemroses menemui pengacuan alamat memori maya yang tidak terdapat di
memori utama (fisik). Sistem operasi segera memerintahkan untuk mengambil
page yang terdapat alamat yang dimaksud untuk dipindah ke memori utama.

3.4.2. Trap
Adalah interupsi karena terjadinya kesalahan atau kondisi kekecualian
(exception conditions) yang dihasilkan proses yang running, seperti usaha illegal dalam
mengakses file. Dengan trap, sistem operasi menentukan apakah kesalahan yang dibuat
merupakan kesalahan fatal :
11

a. Jika fatal, proses yang saat itu running disingkirkan dan terjadi alih proses.
b. Jika kesalahan tidak fatal maka bergantung sifat kesalahan dan rancangan sistem
operasi.
Kemungkinan yang dilakukan adalah menjalankan prosedur pemulihan atau
memperingkatkan ke pemakai. Saat terjadi trap, mungkin terjadi pengalihan proses
mungkin pula resume proses.
3.4.3 Supervisor call
Yaitu panggilan meminta atau mengaktifkan bagian sistem operasi. Contoh :
Proses pemakai running meminta layanan masukan/keluaran seperti membuka file.
Panggilan ini menghasilkan transfer ke rutin bagian sistem operasi. Biasanya,
penggunaan system call membuat proses pemakai blocked karena diaktifkan proses
kernel (sistem operasi).
3.5 Pengalihan Konteks
Pengalihan konteks dapat terjadi tanpa pengalihan state process yang sedang
running, sedang pengalihan proses pasti melibatkan juga pengalihan konteks.Siklus
penanganan interupsi adalah :
a. Pemroses menyimpan konteks program saat itu yang sedang dieksekusi ke stack.
b. Pemroses menset register PC dengan alamat awal program untuk interuppet handler.
Setelah kedua aktivitas itu, pemroses melanjutkan menjalankan instruksi-instruksi
berikutnya di interuppt handler yang melayani interrupt. Pelaksanaan interupsi ini
belum tentu mengakibatkan pengalihan ke proses lain (yaitu pengalihan PCB proses
dari senarai running ke senarai lain (blocked, ready), dan sebaliknya. Kita menyebut
pengalihan konteks adalah untuk pengalihan sementara yang singkat, misalnya untuk
mengeksekusi program interrupt handler.Setelah penanganan interupsi selesa maka
konteks yang terdapat pada stack kembalikan sehingga kembali ke konteks proses
semula tanpa terjadi pengalihan ke proses lain. Pengalihan proses terjadi jika proses
yang running beralih menjadi state lain (ready, blocked).

12

B. THREAD
1. Pengertian Thread
Proses merupakan sebuah program yang mengeksekusi thread tunggal. Kendali
thread tunggal ini hanya memungkinkan proses untuk menjalankan satu tugas pada satu
waktu. Banyak sistem operasi modern telah memiliki konsep yang dikembangkan agar
memungkinkan sebuah proses untuk mengeksekusi multi-threads. Misalnya user
melakukan pekerjaan secara bersamaan yaitu mengetik dan menjalankan pemeriksaan
ejaan didalam proses yang sama. 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
banyakmengerjakan lebih dari satu tugas pada satu satuan waktu.
Pada umumnya, perangkat lunak yang berjalan pada komputer modern
dirancang secara multithreading. Sebuah aplikasi biasanya diimplementasi sebagai
proses yang terpisah dengan beberapa thread yang berfungsi sebagai pengendali.
Contohnya sebuah web browser mempunyai thread untuk menampilkan gambar atau
tulisan sedangkan thread yang lain berfungsi sebagai penerima data dari network.
Terkadang ada sebuah aplikasi yang perlu menjalankan beberapa tugas yang
serupa. Sebagai contohnya sebuah web server dapat mempunyai ratusan klien yang
mengaksesnya secara concurrent. Kalau web server berjalan sebagai proses yang hanya
13

mempunyai thread tunggal maka ia hanya dapat melayani satu klien pada pada satu
satuan waktu. Bila ada klien lain yang ingin mengajukan permintaan maka ia harus
menunggu sampai klien sebelumnya selesai dilayani. Solusinya adalah dengan membuat
web server menjadi multi-threading. Dengan ini maka sebuah web server akan membuat
thread yang akan mendengar permintaan klien, ketika permintaan lain diajukan maka
web server akan menciptakan thread lain yang akan melayani permintaan tersebut
[MDGR2006].
1.1. Keuntungan Thread
Beberapa keuntungan dari penggunaan thread adalah sebagai berikut:
a. 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.
b. 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.
c. 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 konteks penukaran 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 konteks penukaran proses lima kali lebih lama
dibandingkan konteks penukaran thread.
d. 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,
14

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 (satusatuan waktu pada CPU
biasa disebut time slice atau quantum).

1.2. Single Thread dan Multi Thread


1. Single Thread >> process hanya mengeksekusi satu thread saja pada satu waktu
2. Multi Thread >> process dapat mengeksekusi sejumlah thread dalam satu waktu.

Thread Karnel
Thread kernel didukung langsung oleh sistem operasi. Pembuatan, penjadwalan,
dan manajemen thread dilakukan oleh kernel pada kernel space.
Thread diatur oleh kernel, karena itu jika sebuah thread menjalankan blocking
system call maka kernel dapat menjadwalkan thread lain di aplikasi untuk
melakukan eksekusi.

15

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.
2. Model Multithreading
Dukungan thread disediakan pada tingkat user yaitu user threads atau tingkat
kernel untuk kernel threads. User Threads disediakan oleh kernel dan diatur tanpa
dukungan kernel, sedangkan kernel therads didukung dan diatur secara langsung oleh
sistem operasi.
Hubungan antara user threads dan kernel threads terdiri dari tiga model relasi, yaitu:
2.1. Model 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 paralel pada multiprocessor. Thread
tingkat pengguna yang diimplementasi pada sistem operasi yang tidak mendukung
thread kernel menggunakan model Many-to-One.
Disamping

ini

adalah

model

Many-to-One

2.2. Model 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.
Disamping

ini

adalah

16

gambar

model

One-to-One

2.3. Model Many To Many


Model ini me-multipleks banyak thread tingkatan pengguna ke thread kernel
yang jumlahnya lebih sedikit atau sama dengan tingkatan pengguna. thread. Jumlah
thread kernel spesifik untuk sebagian aplikasi atau sebagian mesin. Many-to-One model
mengizinkan developer untuk membuat user thread sebanyak yang ia mau tetapi
concurrency (berjalan bersama) tidak dapat diperoleh karena hanya satu thread yang
dapat dijadwal oleh kernel pada suatu waktu. One-to-One menghasilkan concurrency
yang lebih tetapi developer harus hati-hati untuk tidak menciptakan terlalu banyak
thread dalam suatu aplikasi (dalam beberapa hal, developer hanya dapat membuat
thread dalam jumlah yang terbatas). Model Many-to-Many tidak mengalami kelemahan
dari dua model di atas. Developer dapat membuat user thread sebanyak yang
diperlukan, dan kernel thread yang bersangkutan dapat bejalan secara paralel pada
multiprocessor. Dan juga ketika suatu thread menjalankan blocking system call maka
kernel dapat menjadwalkan thread lain untuk melakukan eksekusi. Contoh sistem
operasi yang mendukung model ini adalah Solaris, IRIX, dan Digital UNIX.
Disamping ini adalah gambar model Many-to-Many
3. Pembatalan Thread
Pembatalan

thread

merupakan

penghentian

tugas

sebelum prosesnya selesai, sebagai contoh dalam web page,


pemanggilan suatu gambar menggunakan beberapa thread. Jika
penggambaran belum sempurna sedangkan user menekan
tombol stop, maka seluruh penggambaran oleh tiap-tiap thread tersebut akan dibatalkan
secara kesuluruhan. Pembatalan suatu thread dapat terjadi dalam dua skenario yang
berbeda, yaitu:
a. Asynchronous cancellation
Suatu thread seketika itu juga memberhentikan target thread.
b. Deferred cancellation
Target thread secara perodik memeriksa apakah dia harus berhenti, cara ini
memperbolehkan target thread untuk memberhentikan dirinya sendiri secara berurutan.
Kejaidan yang sulit dari pembatalan suatu thread adalah ketika terjadi situasi dimana
sumber daya sudah dialokasikan untuk thread yang akan dibatalkan. Selain itu kesulitan

17

lain adalah ketika thread yang dibatalkan sedang meng-update data yang ia bagi dengan
thread lain. Hal ini akan menjadi masalah yang sulit apabila menggunakan
asynchronous cancellation. Sistem operasi akan mengambil kembali sumber daya dari
thread yang dibatalkan namun seringkali sistem operasi tidak mengambil kembali
seluruh sumber daya dari thread tersebut. Alternatifnya adalah dengan menggunakan
deffered cancellation. Cara kerja dari deffered cancellation adalah dengan
menggunakan satu thread yang berfungsi sebagai pengindikasi bahwa target thread akan
dibatalkan. Tetapi pembatalan hanya akan terjadi jika target thread telah memeriksa
apakah ia harus batal atau tidak. Hal ini memperbolehkan thread untuk memeriksa
apakah ia harus berhenti pada titik tersebut secara aman.
4. PENJADWALAN
Penjadwalan adalah pengaturan proses dengan urutan tertentu. Ururtan penjadwalan
sebagai berikut :
a) Penjadwalan proses : menentukan proses yang digunakan atau yang akan
dieksekusi
b) Penjadwalan Antrian : untuk menentukan urutan pekerjaan atau proses dari
system operasi komputer.
4.1.

Pembagian Penjadwalan

Penjadwalan terbagi menjadi 2 strategi, yaitu :


1. Penjadwalan Preemptive
Penjadwalan CPU mungkin akan dijalankan ketika proses dalam keadaan:
1. Berubah dari running ke waiting state.
2. Berubah dari running ke ready state.
3. Berubah dari waiting ke ready state.
4. Dihentikan.
Penjadwalan Preemptive mempunyai arti kemampuan sistem operasi untuk
memberhentikan sementara proses yang sedang berjalan untuk memberi ruang kepada
proses yang prioritasnya lebih tinggi. Penjadwalan ini bisa saja termasuk penjadwalan
proses. Penjadwalan Preemptive memungkinkan sistem untuk lebih bisa menjamin
bahwa setiap proses mendapat sebuah slice waktu operasi. Dan juga membuat sistem
18

lebih cepat merespon terhadap event dari luar (contohnya seperti ada data yang masuk)
yang membutuhkan reaksi cepat dari satu atau beberapa proses. Membuat penjadwalan
yang Preemptive mempunyai keuntungan yaitu sistem lebih responsif daripada sistem
yang memakai penjadwalan Non Preemptive.
Proses diberi jatah waktu oleh pemroses, maka pemroses dapat diambil alih
proses lain, sehingga proses disela sebelum selesai dan harus dilanjutkan menunggu
jatah waktu pemroses tiba kembali pada proses itu. Berguna pada sistem dimana prosesproses yang mendapat perhatian/tanggapan pemroses secara cepat, misalnya :
a. Pada sistem realtime,Kehilangan interupsi (tidak layani segera) dapat berakibat fatal.
b. Pada sistem interaktif, agar dapat menjamin waktu tanggap yang memadai.
2. Penjadwalan Non Preemptive
Penjadwalan Non Preemptive ialah salah satu jenis penjadwalan dimana
sistem operasi tidak pernah melakukan context switch dari proses yang sedang berjalan
ke proses yang lain. Dengan kata lain, proses yang sedang berjalan tidak bisa diinterupt. Penjadwalan Non Preemptive terjadi ketika proses hanya:
a. Berjalan dari running state sampai waiting state.
b. Dihentikan.
Ini berarti CPU menjaga proses sampai proses itu pindah ke waiting state
ataupun dihentikan (proses tidak diganggu)

19

KESIMPULAN
Dengan selesainya tugas kami yang berjudul Manajemen Proses dan Thread
ini, kami dapat menyimpulkan bahwa pengertian Proses dan thread yaitu;
Proses yaitu unit kerja terkecil yang secara individu memiliki sumber dayasumber daya dan dijadwalkan sistem operasi. Selain itu proses juga diartikan program
yang sedang dieksekusi. Sedangkan Thread adalah kepemilikan sumber daya dan
eksekusi. SO mengelola semua proses di sistem dan mengalokasikan sumber daya ke
proses-proses sesuai dengan kebijaksanaan untuk memenuhi sasaran system. Dengan
demikian pengertian Manajemen Proses dan Thread yaitu Proses yang sedang
dieksekusi yang memiliki kepemilikan sumber daya.
Adapun Hal-hal yang berkaitan dengan proses yaitu :
1. Multiprogramming (Multitasking)
2. Multiprocessing
3. Distributed processing

Process Control Block (PCB)


Setiap proses digambarkan dalam sistem operasi oleh sebuah Process Control Block
(PCB), juga disebut sebuah Control Block Proses sehingga dapat terjadi siklus hidup
proses.
Dibawah ini adalah gambar diagram PCB(Process Control Block) :

20

Keuntungan Thread
Beberapa keuntungan dari penggunaan thread adalah sebagai berikut :
a)Responsif.
b)Berbagi sumber daya
c)Ekonomis
d)Utilasi arsitektur multiprocessor
Single Thread dan Multi Thread

Hubungan antara user threads dan kernel threads terdiri dari tiga model relasi,
yaitu:
a)Model Many to One
b)Model One to One
c)Model One to One
PENJADWALAN
Penjadwalan terbagi menjadi 2 strategi, yaitu :
a)Penjadwalan Preemptive
b)Penjadwalan Non Preemptive

21

Daftar Pustaka
http://74.125.153.132/search?q=cache:zcrkbvHl0joJ:download-book.net/proses-danthreads-ppt.html+manajemen+proses+dan+thread&cd=9&hl=id&ct=clnk&gl=id
http://dewa18.wordpress.com/2009/10/28/manajemen-proses/
http://nyoe.wordpress.com/2009/11/04/manajemen-proses-diagram-keadaan-proses-danpenjadwalan-proses/
http://ekohandoyo.blog.undip.ac.id/2009/12/08/proses-dan-thread/
http://rabbitluverz.blogspot.com/2009/04/pengertian-thread.html

http://yayangarya-blog.blogspot.com/2009/11/manajemen-proses-diagramkeadaan-dan.html

22

Kata Pengantar

Puji dan syukur kami ucapkan kehadirat Tuhan Yang Maha Esa atas
berkah dan rahmatNya yang telah memberikan kesehatan dan kesempatan,
sehingga kami dapat menyelesaikan Makalah ini sebagai tugas kelompok.
Adapun Makalah ini berjudul tentang Manajemen Proses dan
Thread, dengan penuh usaha kami menyusun Makalah ini sesempurna
mungkin, tetapi kami juga mengharapkan kritik dan saran yang bersifat
membangun dari para pembaca guna peningkatan wawasan.
Dalam menyelesaikan Makalah ini, kami banyak mendapatkan
bimbingan, pengarahan, nasehat dan saran dari berbagai pihak. Pada
kesempatan ini kami mengucapkan terimakasih kepada Bapak Dosen dan
teman-teman semua.

Medan, 28 April
2010

23
i

DAFTAR ISI
KATA PENGANTAR ...........................................................

DAFTAR ISI .....................................................................

ii

BAB I PENDAHULUAN .....................................................

1.1 Latar Belakang ..............................................

BAB II PEMBAHASAN .......................................................

A. MANAJEMEN PROSES
1. Pengertian Proses .......................................
2
1.1.............................................Karakteristik Proses
................................................................
2
1.2..................Hal-hal yang berkaitan dengan Proses
................................................................
2
1.2.1 MultiProgreming (Multitasking) .......
2
1.2.2 Multiprocessing ..............................
3
1.2.3 Distributed Processing ....................
3
1.3....................................................Status Proses
................................................................
3
1.4.....................................Proses controlblock (PCB)
................................................................
4
2. Komunikasi antar Proses .............................
7
2.1...........................................Komunikasi Langsung
................................................................
7
2.2..................................Komunikasi Tidak Langsung
................................................................
7
3. Operasi-operasi pada Proses ........................
8
3.1...............................................Pembuatan Proses
................................................................
8
3.2..............................Pengancuran Terminasi Proses
................................................................
9
3.3................................................Penundaan Proses
................................................................
10
3.4................................................Pengalihan Proses
................................................................
10
3.4.1 Interupsi Sistem .............................
10
3.4.2 Trap ...............................................
11
3.4.3 Supervisor Call ...............................
12
3.5..............................................Pengalihan Konteks
................................................................
12
B. THREAD
1. Pengertian Thread .................................................
13
1.1........................................................Keuntungan Thread
..........................................................................
14
1.2.......................................Single Thread dan Multi Thread
..........................................................................
15
24

2. Model Multithreading .............................................


15
2.1.........................................................Model Many to One
..........................................................................
16
2.2.............................................................Model On to One
..........................................................................
16
2.3.......................................................Model Many to Many
..........................................................................
17
3. Pembatalan Thread ................................................
17
4. Penjadwalan ..........................................................
18
4.1..................................................Pembagian Penjadwalan
..........................................................................
18
KESIMPULAN ..................................................................
20
DAFTAR PUSTAKA ...........................................................

ii

25

22