Definisi Proses

advertisement
SISTEM
OPERASI
Management Process
Oleh : Mufadhol, S.Kom
Operating System
[email protected]
Copyright © Mufadhol
[email protected]
1
Konsep Dasar Proses
Jika kita berdiskusi mengenai sistem operasi, maka akan
timbul sebuah pertanyaan yaitu mengenai istilah apa yang
tepat untuk menyebut semua kegiatan yang dilakukan
oleh CPU, bahwa program itu sendiri bukanlah sebuah
proses, suatu program adalah satu
entitas pasif, seperti isi dari sebuah berkas yang disimpan
didalam media penyimpanan.
Sedangkan sebuah proses dalam suatu entitas 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.
Operating System
[email protected]
Copyright © Mufadhol
[email protected]
2
Definisi Proses
Secara tidak langsung, proses merupakan program yang
sedang dieksekusi. Menurut Silberschatz,
suatu proses adalah lebih dari sebuah kode program, yang
terkadang disebut text section. Proses
juga mencakup program counter, yaitu sebuah stack untuk
menyimpan alamat dari instruksi yang
akan dieksekusi selanjutnya dan register. Sebuah proses
pada umumnya juga memiliki sebuah stack
yang berisikan data-data yang dibutuhkan selama proses
dieksekusi seperti parameter metoda,
alamat return dan variabel lokal, dan sebuah data section
yang menyimpan variabel global.
Operating System
[email protected]
Copyright © Mufadhol
[email protected]
3
Perbedaan Program
dengan Proses
Untuk mempermudah membedakan program dengan proses,
kita akan menggunakan analogi yang diberikan oleh
Tanenbaum. Misalnya ada seorang tukang kue yang ingin
membuat kue ulang tahun untuk anaknya. Tukang kue
tersebut memiliki resep kue ulang tahun dan bahan-bahan
yang dibutuhkan untuk membuat kue ulang tahun di dapurnya
seperti: tepung terigu, telur, gula, bubuk vanila dan bahanbahan lainnya. Dalam analogi ini, resep kue ulang tahun
adalah sebuah program, si tukang kue tersebut adala prosesor
(CPU), dan bahan-bahan untuk membuat kue tersebut adalah
data input. Sedangkan proses-nya adalah kegiatan sang
tukang kue untuk membaca resep, mengolah bahan, dan
memanggang kue tersebut.
Operating System
[email protected]
Copyright © Mufadhol
[email protected]
4
Pembuatan Proses



Sebuah proses dibuat melalui system call createprocess yang dilakukan oleh parent process.
Setiap proses anakan (child process) dapat juga
membuat proses baru.
Ketika sebuah proses dibuat maka proses tersebut
dapat memperoleh resource (waktu CPU, memory,
berkas atau perangkat I/O) secara langsung dari
sistem operasi atau proses tersebut berbagi resource
dengan resource orang tuanya. Orang tua proses
tersebut dapat membagi-bagi resource yang
dimilikinya atau menggunakan secara bersama- sama
resource yang dimilikinya dengan proses anakannya.
Operating System
[email protected]
Copyright © Mufadhol
[email protected]
5
Kemungkinan Pelaksanaan
Proses Baru

Orang tua proses tersebut berjalan secara
konkuren dengan proses anaknya.

Orang tua proses tersebut menunggu hingga
beberapa atau seluruh proses anakannya
selesai.
Operating System
[email protected]
Copyright © Mufadhol
[email protected]
6
Kemungkinan Pemberian
Ruang Alamat Proses Baru

Proses tersebut merupakan duplikasi orang
tuanya.

Proses tersebut memiliki program yang diload
ke ruang alamatnya.
Operating System
[email protected]
Copyright © Mufadhol
[email protected]
7
Terminasi Proses







Suatu proses diterminasi ketika proses tsb telah selesai
mengeksekusi statement terakhir dan meminta sistem operasi untuk
menghapus statement tsb dengan menggunakan system call exit.
Pada saat diterminasi, proses dapat mengembalikan data (output)
kepada proses parent-nya melalui system call wait.
Semua resource yang digunakan oleh proses akan dialokasikan
kembali ke tempat asalnya oleh sistem operasi.
Suatu proses dapat menyebabkan terminasi proses yang lain dalam
sistem operasi melalui system call abort.
Biasanya hanya parent dari proses yang akan diterminasi yang dapat
menjalankan system call abort ini.
Parent sebaiknya mengetahui identitas dari children-nya.
Pada saat suatu proses menciptakan sebuah proses baru, identitas
dari proses yang baru diciptakan ini diperoleh dari parent-nya.
Operating System
[email protected]
Copyright © Mufadhol
[email protected]
8
Alasan Parent Mengakhiri
Proses Children-nya



Child melampaui penggunaan resource yang telah
dialokasikan. Dalam keadaan ini, parent perlu
mempunyai mekanisme untuk memeriksa status
children-nya.
Task yang ditugaskan kepada child tidak lagi
diperlukan.
Parent berakhir dan sistem operasi tidak
memperbolehkan suatu child untuk tetap menjalankan
proses jika parent-nya sudah tidak ada.
Operating System
[email protected]
Copyright © Mufadhol
[email protected]
9
Status Proses

Menurut Tanenbaum :



Running
Pada saat menggunakan CPU pada suatu waktu.
Ready
Proses diberhentikan sementara karena menunggu
proses lain untuk dieksekusi.
Blocked
Tidak dijalankan sampai event dari luar, yang
berhubungan dengan proses tersebut terjadi.
Operating System
[email protected]
Copyright © Mufadhol
[email protected]
10
Status Proses

Menurut Silberschatz :





New : status yang dimiliki pada saat proses baru
saja dibuat.
Running : status yang dimiliki pada saat instruksiinstruksi dari sebuah proses dieksekusi.
Waiting : status yang dimiliki pada saat proses
menunggu suatu event (contohnya: proses M/K).
Ready : status yang dimiliki pada saat proses siap
untuk dieksekusi oleh prosesor.
Terminated : status yang dimiliki pada saat proses
telah selesai dieksekusi.
Operating System
[email protected]
Copyright © Mufadhol
[email protected]
11
Tiga kemungkinan bila sebuah
Proses memiliki status Running:



Jika program telah selesai dieksekusi maka status dari
proses tersebut akan berubah menjadi Terminated.
Jika waktu yang disediakan oleh OS untuk proses
tersebut sudah habis maka akan terjadi interrupt dan
proses tersebut kini berstatus Ready.
Jika suatu event terjadi pada saat proses dieksekusi
(seperti ada request M/K) maka proses tersebut akan
menunggu event tersebut selesai dan proses berstatus
Waiting.
Operating System
[email protected]
Copyright © Mufadhol
[email protected]
12
Process Control Block
Sebuah proses direpresentasikan pada sistem operasi
dalam bentuk Process Control Block, PCB disebut juga
sebagai deskriptor proses. Setiap PCB harus memiliki
identitas unik, untuk membedakannya dengan prosesproses lain yang berjalan pada sistem yang sama.
Sebuah sistem operasi harus menyimpan kumpulan
PCB yang melambangkan antrian proses (process
queue). Implementasi untuk menyimpan kumpulan PCB
ini dapat dilakukan secara statik maupun dinamik.
Secara statik dilakukan dengan menggunakan tabel PCB
berukuran tetap. Secara dinamik dilakukan dengan
menggunakan linked list untuk PCB.
Operating System
[email protected]
Copyright © Mufadhol
[email protected]
13
Informasi yang dismpan pada PCB







Keadaan proses (process state)
Program counter
Nilai register CPU
Informasi penjadwalan
Informasi manajemen memori
Informasi akunting
Informasi status I/O.
Operating System
[email protected]
Copyright © Mufadhol
[email protected]
14
Konsep Thread
Thread merupakan unit dasar dari penggunaan CPU,
yang terdiri dari Thread_ID adalah : 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. Perbedaan antara proses dengan thread
tunggal dengan proses dengan thread yang banyak
adalah proses dengan thread yang banyak dapat
mengerjakan lebih dari satu tugas pada satu waktu.
Operating System
[email protected]
Copyright © Mufadhol
[email protected]
15
Keuntungan Multithreading

Responsi (tanggap)
Membuat aplikasi yang interaktif menjadi
multithreading dapat membuat sebuah program terus
berjalan meski pun sebagian dari program tersebut
diblok atau melakukan operasi yang panjang, karena
itu dapat meningkatkan respons kepada pengguna.
Sebagai contohnya dalam web browser yang
multithreading, sebuah thread dapat melayani
permintaan pengguna sementara thread lain berusaha
menampilkan image.
Operating System
[email protected]
Copyright © Mufadhol
[email protected]
16
Keuntungan Multithreading

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.
Operating System
[email protected]
Copyright © Mufadhol
[email protected]
17
Keuntungan Multithreading

Ekonomis
Dalam pembuatan sebuah proses banyak dibutuhkan
pengalokasian memori dan sumber daya.
Alternatifnya adalah dengan penggunaan 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.
Operating System
[email protected]
Copyright © Mufadhol
[email protected]
18
Keuntungan Multithreading

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).
Operating System
[email protected]
Copyright © Mufadhol
[email protected]
19
Download