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