Proses Thread Sistem Operasi

7. Resource allocation, di mana beberapa user dan beberapa job berjalan bersama, sumber daya harus dialokasikan. 8. Accounting, menjaga jalur di mana user menggunakan berapa dan apa jenis sumber daya komputer tersebut. 9. Protection and security, perlindungan sangat diperlukan sistem dari berbagai gangguan yang berasal dari luar maupun di dalam sistem tersebut.

2.1.4. Proses

Menurut Silberschatz 2005, proses tidak hanya sekedar suatu kode program, melainkan meliputi beberapa aktivitas yang bersangkutan seperti program counter dan stack. Sebuah proses juga melibatkan stack yang berisi data sementara parameter fungsimetode, return address, dan variabel lokal dan data section yang menyimpan variabel-variabel global. Menurut Tanenbaum 2001, proses adalah sebuah program yang dieksekusi yang mencakup program counter, register, dan variabel di dalamnya. Proses yang dieksekusi mempunyai lima status yang terdiri dari: 1. New : Pembentukan suatu proses. 2. Running : Instruksi-instruksi yang sedang dieksekusi. 3. Waiting : Proses menunggu untuk beberapa event yang terjadi. 4. Ready : Proses menunggu untuk dialirkan ke pemroses processor. 5. Terminated : Proses telah selesai dieksekusi. Gambar 2. 1 : Diagram status proses Sebuah proses dapat memiliki karakteristik sebagai unit of resource ownership atau unit of dispatching. Unit of resource ownership akan mengabstraksi alamat virtual untuk menyimpan proses image dan dari waktu ke waktu, proses diberi memori utama ditambah kendali terhadap sumber daya lain. Biasa disebut dengan proses atau task.

2.1.5. Thread

Unit of dispatching akan memiliki satu jalur eksekusi trace. Eksekusi ini mungkin bergantian interleaving dengan proses lain. Sebuah proses memiliki status proses dan prioritas penjadwalan yang digunakan oleh sistem operasi sebagai informasi untuk melakukan penjadwalan processor. Biasa disebut dengan thread atau lightweight process . Thread terdiri dari dua bentuk, yaitu user thread dan kernel thread. User thread adalah thread yang diatur dengan menggunakan pustaka level thread . Sedangkan kernel thread adalah thread yang didukung oleh kernel. Proses merupakan sebuah program yang mengeksekusi thread tunggal. Kendali thread tunggal ini hanya memungkinkan proses untuk menjalankan satu tugas pada satu waktu. Maka dari itu dikembangkan sebuah konsep agar memungkinkan sebuah proses untuk mengeksekusi multi-threads . Salah satu contoh aplikasi yang perlu menjalankan beberapa tugas serupa adalah web server. Gambar 2. 2 : Proses single thread dan multithread Beberapa keuntungan penggunaan thread sebagai berikut: 1. Responsif, menjadi tetap responsif meski sebagian dari program sedang melakukan operasi atau tugas kepada pengguna. 2. Berbagi sumber daya, mengizinkan sebuah aplikasi untuk mempunyai beberapa thread yang berbeda dalam lokasi memori yang sama. 3. Ekonomis, lebih ekonomis dalam pembuatan sebuah proses. 4. Utilisasi arsitektur multiprocessor, setiap thread dapat berjalan secara paralel di atas processor yang berbeda.

2.1.6. Kernel