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