Rangkuman Pertemuan 4

Nama : Ivan Bontor B
Mata Kuliah : Sistem Operasi
Dosen Pengampu : Suhendi, S.Kom, M.Kom.

Secara informal; proses adalah program dalam eksekusi. Suatu proses adalah lebih dari kode program, dimana kadang kala dikenal sebagai bagian tulisan. Proses juga termasuk aktivitas yang sedang terjadi, sebagaimana digambarkan oleh nilai pada program counter dan isi dari daftar prosesor/ processor’s register. Suatu proses umumnya juga termasuk process stack, yang berisikan data temporer (seperti parameter metoda, address yang kembali, dan variabel lokal) dan sebuah data section, yang berisikan variabel global.

Thread adalah sebuah alur kontrol dari sebuah proses. Suatu proses yang multithreaded mengandung beberapa perbedaan alur kontrol dengan ruang alamat yang sama. Keuntungan dari multithreaded meliputi peningkatan respon dari user, pembagian sumber daya proses, ekonomis, dan kemampuan untuk mengambil keuntungan dari arsitektur multiprosesor. User level thread adalah thread yang tampak oleh programmer dan tidak diketahui oleh kernel. User level thread secara tipikal dikelola oleh sebuah library thread di ruang user. Kernel level thread didukung dan dikelola oleh kernel sistem operasi.

Konsep Proses

• Kepemilikan resource:
– Process memerlukan ruang alamat virtual untuk menyimpan process image
– Process image = program + data + stack + PCB
– Unit terkecil yang dapat memiliki resource adalah proses atau task
– Resource = memori, I/O channel, I/O device, file, CPU, dll
• Penjadualan/eksekusi:
– Mengikuti jalur eksekusi (trace)
– Eksekusi suatu proses bisa secara interleaving (selang-seling) dengan proses lain
– Thread = pecahan dari suatu proses yang dapat dijadualkan atau dieksekusi = lightweight process (LWP)

Multithreading
• Merupakan kemampuan sistem operasi dalam mengeksekusi banyak thread yang berasal dari sebuah proses
• OS tradisional:
– Satu proses hanya terdiri dari satu thread
– MS-DOS: hanya satu proses dan tiap proses hanya satu thread
– UNIX tradisional: banyak proses, tetapi tiap proses hanya satu thread
• OS modern:
– Banyak proses dan tiap proses terdiri dari banyak thread
– Misal: Windows, Solaris, Linux, Mach, dan OS/2.

Manfaat Thread
• Pembentukan suatu thread jauh lebih cepat daripada pembentukan proses baru
– Penelitian menunjukkan pembentukan thread 10x lebih cepat daripada pembentukan proses
• Terminasi suatu thread jauh lebih cepat daripada terminasi proses
• Perpindahan eksekusi antar thread jauh lebih cepat
• Antar thread dapat berkomunikasi tanpa melibatkan kernel
– Sebagai efek dari penggunaan share memori dan file

Jenis Thread

• User-Level Thread (ULT)
– Semua manajemen thread dilakukan oleh program aplikasi
– Tidak ada code program untuk mengatur thread pada program kernel

• Kernel-Level Thread (KLT)
– kernel supported threads = lightweight process
– Semua manajemen thread dilakukan oleh kernel
– Tidak ada code program untuk mengatur thread pada program aplikasi

Model Multithreading

– Model One to One
Model one-to-one memetakan setiap thread pengguna ke dalam satu kernel thread. Hal ini membuat
model one-to-one lebih sinkron daripada model many-to-one dengan mengizinkan thread lain untuk
berjalan ketika suatu thread membuat pemblokingan terhadap sistem pemanggilan; hal ini juga
mengizinkan multiple thread untuk berjalan secara parallel dalam multiprosesor. Kelemahan model ini
adalah dalam pembuatan thread pengguna dibutuhkan pembuatan korespondensi thread pengguna.
Karena dalam proses pembuatan kernel thread dapat mempengaruhi kinerja dari aplikasi maka
kebanyakan dari implementasi model ini membatasi jumlah thread yang didukung oleh sistem. Model
one-to-one diimplementasikan oleh Windows NT dan OS/2.

– Model Many to One

Model many-to-one ini memetakan beberapa tingkatan pengguna thread hanya ke satu buah kernel
thread. Managemen proses thread dilakukan oleh (di ruang) pengguna, sehingga menjadi efisien, tetapi
apabila sebuah thread melakukan sebuah pemblokingan terhadap sistem pemanggilan, maka seluruh
proses akan berhenti (blocked). Kelemahan dari model ini adalah multihreads tidak dapat berjalan atau
bekerja secara paralel di dalam multiprosesor dikarenakan hanya satu thread saja yang bisa mengakses
kernel dalam suatu waktu.

– Model Many to Many

Beberapa tingkatan thread pengguna dapat menggunakan jumlah kernel thread yang lebih kecil atau
sama dengan jumlah thread pengguna. Jumlah dari kernel thread dapat dispesifikasikan untuk beberapa
aplikasi dan beberapa mesin (suatu aplikasi dapat dialokasikan lebih dari beberapa kernel thread dalam
multiprosesor daripada dalam uniprosesor) dimana model many-to-one mengizinkan pengembang untuk
membuat thread pengguna sebanyak mungkin, konkurensi tidak dapat tercapai karena hanya satu thread
yang dapat dijadualkan oleh kernel dalam satu waktu. Model one-to-one mempunyai konkurensi yang
lebih tinggi, tetapi pengembang harus hati-hati untuk tidak membuat terlalu banyak thread tanpa aplikasi
dan dalam kasus tertentu mungkin jumlah thread yang dapat dibuat dibatasi.

Postingan populer dari blog ini

Review Materi Sistem Operasi

Pertemuan 11

Pertemuan 12