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