Anda di halaman 1dari 16

1.

SISTEM OPERASI
1.1  Definisi Proses
Proses pada sistem operasi adalah program yang sedang dieksekusi, merupakan unit kerja
terkecil yang secara individu memiliki sumber sumber daya yang dijadwalkan oleh sistem
operasi. Awalnya proses dijalankan secara sekuensial atau berurut, suatu proses akan di eksekusi
sampai selesai baru kemudian berpindah ke proses selanjutnya. Sistem sekuensial memiliki
kelemahan yakni tingkat pengguna atau utilitas prosesor yang rendah.
1.2  Status Proses
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 : menunggu untuk dialirkan ke pemroses (processor)
5. Terminated : proses telah selesai dieksekusi
1.3  Proses Control Block (PCB)
Tiap proses digambarkan dalam sistem operasi oleh sebuah process control block PCB – juga
disebut sebuah control block. PCB berisikan banyak bagian dari informasi yang berhubungan
dengan sebuah proses yang spesifik, termasuk hal-hal dibawah ini:
1.   Status proses: status mungkin new, ready, running, waiting, halted, dll.
2. Program counter: suatu stack yang berisi alamat dari instruksi selanjutnya untuk
dieksekusi untuk proses ini.
3. CPU register: Register bervariasi dalam jumlah dan jenis, tergantung pada rancangan
komputer. Register  tersebut termasuk accumulator , indeks register, stack pointer ,
general-purposes register , ditambah code information pada kondisi apa pun. Besertaan
dengan program counter, keadaaan/status informasi harus disimpan ketika gangguan
terjadi, untuk memungkinkan proses tersebut berjalan/bekerja dengan benar setelahnya
4. Informasi managemen memori: Informasi ini dapat termasuk suatu informasi sebagai
nilai dari dasar dan batas register, tabel page/halaman, atau tabel segmen tergantung pada
sistem memori yang digunakan oleh sistem operasi (lihat Bab Managemen memori).
5. Informasi pencatatan: Informasi ini termasuk jumlah dari CPU dan waktu riil yang
digunakan, batas waktu, jumlah akun jumlah job atau proses, dan banyak lagi.
6. Informasi status I/O: Informasi termasuk daftar dari perangkat I/O yang di gunakan
pada proses ini, suatu daftar berkas-berkas yang sedang diakses dan banyak lagi.
7. PCB hanya berfungsi sebagai tempat penyimpanan informasi yang dapat bervariasi dari
proses yang satu dengan yang lain.

Elemen-elemen dari Process Control Block (PCB) :


1. Identifier : menjelaskan proses yang sedang terjadi
2. State : kondisi yang terjadi pada proses
3. Priority : urutan perintah yang jelas pad suatu proses
4. Program counter : instruksi pada proses
5. Memory pointers : media penyimpanan (penunjuk alamat) pada proses
6. Context data : data yang berkaitan dengan proses
7. I/O status information : terdapat masukan dan keluaran yang diinginkan
8. Accounting information : memberikan informasi yang dibutuhkan
2. Konsep Penjadwalan
Terdapat 3 konsep dasar Penjadwalan proses yaitu :
2.1 Penjadualan Antrian (Scheduling Queue)
Ketika proses memasuki sistem, mereka diletakkan dalam antrian job. Antrian ini terdiri dari
seluruh proses dalam sistem. Proses yang hidup pada memori utama dan siap dan menunggu/
wait untuk mengeksekusi disimpan pada sebuah daftar bernama ready queue. Antrian ini
biasanya disimpan sebagai daftar penghubung. Sebuah header ready queue berisikan penunjuk
kepada PCB-PCB awal dan akhir. Setiap PCB memiliki pointer field yang menunjukkan proses
selanjutnya dalam ready queue.
2.2 Penjadual / Scheduler
Sebuah proses berpindah antara berbagai penjadualan antrian selama umur hidupnya. Sistem
operasi harus memilih, untuk keperluan penjadualan, memproses antrian-antrian ini dalam cara
tertentu. Pemilihan proses dilaksanakan oleh penjadual yang tepat/ cocok. Dalam sistem batch,
sering ada lebih banyak proses yang diserahkan daripada yang dapat dilaksanakan segera. Proses
ini dipitakan/ disimpan pada suatu alat penyimpan masal (biasanya disket), dimana proses
tersebut disimpan untuk eksekusi dilain waktu. Penjadualan long term, atau penjadual job,
memilih proses dari pool ini dan mengisinya kedalam memori eksekusi.
2.3 Alih Konteks / Switch Context
Mengganti CPU ke proses lain memerlukan penyimpanan suatu keadaan proses lama (state of
old process) dan kemudian beralih ke proses yang baru. Tugas tersebut diketahui sebagai alih
konteks (context switch). Alih konteks sebuah proses digambarkan dalam PCB suatu proses;
termasuk nilai dari CPU register, status proses (lihat Gambar 7). dan informasi managemen
memori. Ketika alih konteks terjadi, kernel menyimpan konteks dari proses lama kedalam PCB
nya dan mengisi konteks yang telah disimpan dari process baru yang telah terjadual untuk
berjalan. Pergantian waktu konteks adalah murni overhead, karena sistem melakukan pekerjaan
yang tidak perlu. Kecepatannya bervariasi dari mesin ke mesin, bergantung pada kecepatan
memori, jumlah register yang harus di copy, dan keberadaan instruksi khusus (seperti instruksi
tunggal untuk mengisi atau menyimpan seluruh register). Tingkat kecepatan umumnya berkisar
antara 1 sampai 1000 mikro detik
3. OPERASI - OPERASI PADA PROSES
A. PENCIPTAAN PROSES
Penciptaan proses adalah hal yang paling pertama dilakukan sistem operasi, karena yang pertama
dilakukan ketika kita mengakses aplikasi adalah terlebih dahulu harus ada proses yang bisa
diakses.

Konsep penciptaan proses


Setiap proses memiliki nomer ID proses dan ini bersifat unik. Proses akan berakhir ketika dia
sudah sampai termination atau tahap dimana proses telah selesai di eksekusi. Ketika hal ini
terjadi maka akan dilamporkan ke proses utama dan seketika itu juga resource yang diambil oleh
proses tadi juga nomer ID-nya akan dikembalikan ke prosesor agar proses lain bisa memakainya.
Proses diciptakan dengan fork system call (operasi penciptaan proses yang baru adalah sesuatu
yang diberi nama forking a process). Anak atau sub dari proses yang tercipta oleh fork adalah
salinan dari proses utama (parent process), kecuali dia memiliki ID proses sendiri.
Proses anak yang baru di forking akan terus berlanjut mengeksekusi program yang sama seperti
yang dilakukan proses utamanya,pada titik di mana fork kembali dipanggil. Kita dapat
menggunakan nilai kembali dari fork untuk mengetahui program itu sedang bekerja di proses
anak atau di proses utama.

Aktivitas pada penciptaan proses:

 Memberi identitas proseS


 Menyisipkan proses pada senarai atau tabel proses
 Menentukan prioritas awal prose
 Menciptakan PCB
 Mengalokasikan resource awal bagi proses

Tahap-tahap penciptaan proses


Penciptaan proses dapat disebabkan beragam sebab. Penciptaan proses meliputi beberapa tahap:
• Beri satu identifier unik ke proses baru. Isian baru ditambahkan ke tabel proses utama yang
berisi satu isisan perproses.
• Alokasikan ruang untuk proses.
• PCB harus diinisialisasi
• Kaitan-kaitan antar tabel dan senarai yang cocok dibuat.
• Bila diperlukan struktur data lain maka segera dibuat struktur data itu.

Alasan-alasan penciptaan proses.


• Terdapat batch baru. SO dengan kendali batch job, setelah menciptakan proses baru, kemudian
melanjutkan membaca job selanjutnya.
• Satu pemakai interaktif logon. Seorang pemakai pada satu terminal sedang melakukan logon ke
system.
• Sistem operasi menciptakan proses untuk memberi layanan. SO menciptakan proses untuk
memenuhi satu fungsi pada program pemakai, tanpa mengharuskan pemakai menunggu.
• Proses menciptakan proses anak. Untuk mencapai modularitas atau mengekploitasi
kongkurensi, program pemakai memerintahkan pembuatan sejumlah proses.
Proses dapat menciptakan proses baru yaitu proses anak (child process). Proses yang
menciptakan proses disebut proses induk (parent process). Proses anak-pun kembali dapat
menciptakan proses-proses anak. Proses-proses dapat membentuk pohon hirarki proses.

B. PENGHANCURAN/TERMINASI PROSES
Penghancuran proses melibatkan pembebasan proses dari sistem,yaitu :
• sumber daya – sumber daya yang dipakai dikembalikan
• proses dihancurkan dari senarai atau tabel system
• PCB dihapus (ruang memori PCB dikembalikan ke pool memori bebas)
Penghancuran lebih rumit bila proses telah menciptakan prose-proses lain.terdapat 2
pendekatan,yaitu:
- Pada beberapa sistem,proses-proses turunan dihancurkan saat proses induk di hancurkan secara
otomatis.
- Beberapa sistem lain menganggap proses anak independen terhadap proses induk sehingga
proses anak tidak secara otomatis di hancurkan saat proses induk di hancurkan.
Alasan-alasan penghancuran proses (penyebab terminasi):
1. selesainya proses secara normal
Proses mengeksekusi panggilan layanan sistem operasi untuk menandakan bahwa proses telah
berjalan secara lengkap.
2. batas waktu terlewati
Proses telah berjalan melebihi batas waktu total yang dispesifikasikan.
3. Memori tidak tersedia
Proses memerlukan memori lebih banyak dari pada yang dapat disediakan sistem.
4. Pelanggaran terhadap batas memori
Proses mencoba mengakses lokasi memori yang tidak di izinkan di akses
5. Terjadi kesalahan karena pelanggaran proteksi
Proses berusaha menggunakan sumber daya atau file yang tidak di ijinkan di pakainya,atau
proses mencoba menggunakannya tidak untuk peruntukkannya, seperti menulis file read-only.
6. Terjadi kesalahan aritmatika
Proses mencoba perhitungan terlarang,seperti pembagiaan dengan nol atau mencoba menyimpan
angka yang lebih besar dari pada yang di akomodasi oleh perangkat keras.
7. Waktu tel;ah kadaluwarsa
Proses telah menunggu lebih lama dari pada maksimum yang di tentukan untuk terjadinya suatu
kejadian spesifik.
8. Terjadi kegagalan masukan/keluaran
Kesalahan muncul pada masukan atau keluaran,seperti ketidakmampuan menemukan
file,kegagalan membaca atau menulis setelah sejumlah maksimum percobaan di tentukan (misal :
area rusak didapatkan pada disk,atau operasi tak valis seperti membaca dari line printer).

C. PENUNDAAN PROSES
Penundaan (suspend) sering dilakukan sistem untuk memindahkan proses-proses tertentu guna
mereduksi bebansistem selama beban puncak. Penundaan biasanya berlangsung singkat.
• Penundaan (suspension) adalah operasi penting dan telah diterapkan dengan beragam cara.
Penundaan biasanya berlangsung singkat. Penundaan sering dilakukan sistem untuk
memindahkan proses proses tertentu guna mereduksi beban sistem selama beban puncak.
• Proses yang ditunda (suspended process) tidak berlanjut sampai proses lain me resume. Untuk
jangka panjang, sumber daya sumber daya proses dibebaskan (dilucuti). Keputusan
membebaskan sumber daya sumber daya bergantung sifat masing masing sumber daya. Memori
utama seharusnya segera dibebaskan begitu proses tertunda agar dapat dimanfaatkan proses lain.
Resuming (pengaktifan kembali) proses yaitu menjalankan proses dari titik (instruksi) dimana
proses ditunda.

D. PELANJUTAN KEMBALI PROSES


Pengaktifan kembali (resuming) proses yaitu menjalankan proses dari titik (instruksi) dimana
proses ditunda.

E. PERUBAHAN PRIORITAS PROSES

F. MEMBLOCK PROSES
Komunikasi antara proses membutuhkan place by calls untuk mengirim dan menerima data
primitive. Terdapat rancangan yang berbeda-beda dalam implementasi setiap primitive.
Pengiriman pesan mungkin dapat diblok (blocking) atau tidak dapat dibloking (nonblocking) -
juga dikenal dengan nama sinkron atau asinkron.
• Pengiriman yang diblok: Proses pengiriman di blok sampai pesan diterima oleh proses
penerima (receiving process) atau oleh mailbox.
• Pengiriman yang tidak diblok: Proses pengiriman pesan dan mengkalkulasi operasi.
• Penerimaan yang diblok: Penerima mem blok samapai pesan tersedia.
• Penerimaan yang tidak diblok: Penerima mengembalikan pesan valid atau null.

Buffering
Baik komunikasi itu langsung atau tak langsung, penukaran pesan oleh proses memerlukan
antrian sementara. Pada dasarnya, terdapat tiga jalan dimana antrian tersebut diimplementasikan:

• Kapasitas nol (zero capacity): antrian mempunyai panjang maksimum 0, maka link tidak dapat
mempunyai penungguan pesan (message waiting). Dalam kasus ini, pengirim harus memblok
sampai penerima menerima pesan.
• Kapasitas terbatas (Bounded capacity): antrian mempunyai panjang yang telah ditentukan,
paling banyak pesan dapat dimasukkan. Jika antrian tidak penuh ketika pesan dikirimkan, pesan
yang baru akan menimpa, dan pengirim pengirim dapat melanjutkan eksekusi tanpa menunggu.
Link mempunyai kapasitas terbatas.
• Jika link penuh, pengirim harus memblok sampai terdapat ruang pada antrian.
• Kapasitas tak terbatas(Unbounded capacity): antrian mempunyai panjang yang tak terhingga,
maka, semua pesan dapat menunggu disini. Pengirim tidak akan pernah di blok.

G. MEMBANGUNKAN PROSES
Suatu pendekatan kejuteraan sistematik tekini untuk menganilisis masalah dan menambah baik
kualiti produk atau proses. Kajian ini hanya memfokuskan kepada masalah proses pengeluaran
dan penambahbaikan ke atas proses pengeluaran lampin pakai buang (diaper). Kajian ini
dilakukan ke atas salah satu mesin (Mesin Technipro) pembuat lampin pakai buang. Kombinasi
kawalan proses statistik dan pendekatan lain seperti Kepner Tregoe, Poka Yoke, SMED, zero
setting, centerlining, F1 Pit Stop dan rakaman video digunakan untuk melakukan
penambahbaikan. Ukuran masa perjalanan mesin, masa mesin berhenti akibat mengalami
kerosakan, masa penyelenggaraan mesin, peratus kecekapan mesin, peratus produk yang
dihasilkan dalam sejam, peratus masa lengah mesin dan peratus kecacatan yang terhasil
digunakan bagi membandingkan hasil dari proses penambahbaikan yang dijalankan. Kajian ini
telah berjaya membangunkan dan mereka bentuk sistem pembangunan proses bagi memperbaiki
proses- proses yang sedia ada.

H. PENJADWALAN PROSES
Merupakan kumpulan kebijaksanaan didalam sitem operasi yang berkaitan dengan urutan kerja
yang dilakukan sistem computer, penjadwalan juga bertugas untuk memutuskan :
• Proses yang harus berjalan
• Kapan dan selama berapa lama proses berjalan.
Multiprogramming bertujuan untuk memaksimalkan penggunaan CPU dengan cara mengatur
alokasi waktu yang digunakan oleh CPU, sehingga proses berjalan sepanjang waktu dan
memperkecil waktu idle.
• Ketika sebuah proses memasuki sistem, proses itu diletakkan di dalam job queue
• proses yang berada pada memori utama, siap dan menunggu untuk dieksekusi disimpan dalam
sebuah daftar yang bernama ready queue
• Antrian ini biasanya disimpan sebagai linked list.
• Header ready queue berisi pointer untuk PCB pertama & PCB terakhir pada list.
• Ketika sebuah proses dialokasikan ke CPU, proses tersebut berjalan sebentar lalu berhenti, di-
interupsi, atau menunggu suatu hal tertentu, seperti selesainya suatu permintaan I/O.
• Daftar dari proses-proses yang menunggu peralatan I/O tertentu disebut dengan device queue.
• peralatan memiliki device queue-nya masing-masing

I. MEMUNGKINKAN PROSES BERKOMUNIKASI DENGAN PROSES LAIN


• Proses yang Kooperatif
Proses yang bersifat simultan (concurrent) dijalankan pada sistem operasi dapat dibedakaan
menjadi yaitu proses independent dan proses kooperatif. Suatu proses dikatakan independen
apabila proses tersebut tidak dapat terpengaruh atau dipengaruhi oleh proses lain yang sedang
dijalankan pada sistem.
Berarti, semua proses yang tidak membagi data apa pun (baik sementara/ tetap) dengan proses
lain adalah independent. Sedangkan proses kooperatif adalah proses yang dapat dipengaruhi atau
pun terpengaruhi oleh proses lain yang sedang dijalankan dalam sistem. Dengan kata lain, proses
dikatakan kooperatif bila proses dapat membagi datanya dengan proses lain. Ada empat alasan
untuk penyediaan sebuah lingkungan yang memperbolehkan terjadinya proses kooperatif:
1) Pembagian informasi: apabila beberapa pengguna dapat tertarik pada bagian informasi yang
sama (sebagai contoh, sebuah berkas bersama), kita harus menyediakan sebuah lingkungan yang
mengizinkan akses secara terus menerus ke tipe dari sumber-sumber tersebut.
2) Kecepatan penghitungan/ komputasi: jika kita menginginkan sebuah tugas khusus untuk
menjalankan lebih cepat, kita harus membagi hal tersebut ke dalam subtask, setiap bagian dari
subtask akan dijalankan secara parallel dengan yang lainnya. Peningkatan kecepatan dapat
dilakukan hanya jika komputer tersebut memiliki elemen-elemen pemrosesan ganda (seperti
CPU atau jalur I/O).
3) Modularitas: kita mungkin ingin untuk membangun sebuah sistem pada sebuah model
modular-modular, membagi fungsi sistem menjadi beberapa proses atau threads.
4) Kenyamanan: bahkan seorang pengguna individu mungkin memiliki banyak tugas untuk
dikerjakan secara bersamaan pada satu waktu. Sebagai contoh, seorang pengguna dapat
mengedit, memcetak, dan meng-compile secara paralel.

4 . KOMUNIKASI ANTAR PROSES

Sistem Berbagi Memori

Sistem Berbagi Memori atau yang disebut juga sebagai Shared Memory System merupakan salah
satu cara komunikasi antar proses dengan cara mengalokasikan suatu alamat memori untuk
dipakai berkomunikasi antar proses. Alamat dan besar alokasi memori yang digunakan biasanya
ditentukan oleh pembuat program. Pada metode ini, sistem akan mengatur proses mana yang
akan memakai memori pada waktu tertentu sehingga pekerjaan dapat dilakukan secara efektif.

Sistem Berkirim Pesan

Sistem berkirim pesan adalah proses komunikasi antar bagian sistem untuk membagi variabel
yang dibutuhkan. Proses ini menyediakan dua operasi yaitu mengirim pesan dan menerima
pesan. Ketika dua bagian sistem ingin berkomunikasi satu sama lain, yang harus dilakukan
pertama kali adalah membuat sebuah link komunikasi antara keduanya. Setelah itu, kedua bagian
itu dapat saling bertukar pesan melalui link komunikasi tersebut.

Sistem berkirim pesan sangat penting dalam sistem operasi. Karena dapat diimplementasikan
dalam banyak hal seperti pembagian memori, pembagian bus, dan melaksanakan proses yang
membutuhkan pengerjaan bersama antara beberapa bagian sistem operasi.

Terdapat dua macam cara berkomunikasi, yaitu:

1. Komunikasi langsung.

Dalam komunikasi langsung, setiap proses yang ingin berkirim pesan harus mengetahui
secara jelas dengan siapa mereka berkirim pesan. Hal ini dapat mencegah pesan salah
terkirim ke proses yang lain. Karakteristiknya antara lain:

a. Link dapat otomatis dibuat


b. Sebuah link berhubungan dengan tepat satu proses komunikasi berpasangan
c. Diantara pasangan itu terdapat tepat satu link
d. Link tersebut biasanya merupakan link komunikasi dua arah

2. Komunikasi tidak langsung.

Berbeda dengan komunikasi langsung, jenis komunikasi ini menggunakan sejenis kotak
surat atau port yang mempunyai ID unik untuk menerima pesan. Proses dapat
berhubungan satu sama lain jika mereka membagi port mereka. Karakteristik komunikasi
ini antara lain:

a. Link hanya terbentuk jika beberapa proses membagi kotak surat mereka
b. Sebuah link dapat terhubung dengan banyak proses
c. Setiap pasang proses dapat membagi beberapa link komunikasi
d. Link yang ada dapat merupakan link terarah ataupun link yang tidak terarah
5. THREAD PADA SISTEM OPERASI

1.Thread

 Thread adalah unit terkecil dalam suatu proses yang bisa dijadwalkan oleh sistem operasi.
 Merupakan sebuah status eksekusi (ready, running, suspend, block, queue, dll)
 Kadang disebut sebagai proses ringan (lightweight).
 Unit dasar dari dari sistem utilisasi pada processor (CPU).
 Dalam thread terdapat: ID Thread, Program Counter, Register dan Stack.
 Sebuah thread berbagi code section, data section dan resource sistem operasi dengan
thread yang lain yang memiliki proses yang sama.

2.Single-Threading dan Multi-Threading Single

Threading adalah sebuah lightweight process (proses sederhana) yang mempunyai thread tunggal
yang berfungsi sebagai pengendali/ controller. Multi-Threading adalah proses dengan thread
yang banyak dan mengerjakan lebih dari satu tugas dalam satu waktu.
3. Keuntungan Multi-Threading

1. Responsive; tanggap: Multi-Threading mengizinkan program untuk berjalan terus walau-


pun pada bagian program tersebut di block atau sedang dalam keadaan menjalankan
operasi yang lama/ panjang. Sebagai contoh, multithread web browser dapat mengizinkan
pengguna berinteraksi dengan suatu thread ketika suatu gambar sedang diload oleh thread
yang lain.
2. Pembagian sumber daya: Secara default, thread membagi memori dan sumber daya dari
proses.Ketika thread berjalan pada data yang sama, thread tersebut bisa berbagi cache
memory.
3. Ekonomis: Mengalokasikan memori dan sumber daya untuk membuat proses adalah
sangat mahal. Alternatifnya, karena thread membagi sumber daya dari proses, ini lebih
ekonomis untuk membuat threads.
4. Pemberdayaan arsitektur multiprosesor: Keuntungan dari multi-threading dapat
ditingkatkan dengan arsitektur multiprosesor, dimana setiap thread dapat jalan secara
paralel pada prosesor yang berbeda. Pada arsitektur prosesor tunggal, CPU biasanya
berpindah-pindah antara setiap thread dengan cepat, sehingga terdapat ilusi paralelisme,
tetapi pada kenyataannya hanya satu thread yang berjalan di setiap waktu.

4. Kerugian Multi-Threading

1. Multiple thread bisa mengganggu satu sama lain saat berbagi hardware resource,
misalnya chace memory.
2. Execution time (waktu proses) dari sebuah single-thread tidak dapat diimprove
(ditambah), tapi malah bisa diturunkan. Ini terjadi karena penurunan frequensi yang
dibutuhkan ketika terjadi pergantian thread yang berjalan.
3. Harus ada dukungan dari hardware ataupun software untuk melakukan multi-Threading.

5. Model-Model Threading

1. Kernel-level threading; thread ini dibuat oleh pengguna yang berkorespondensi 1-1
dengan entitas-entitas yang terjadwalkan yang berada di kernel. Ini merupakan
implementasi (penerapaan) paling sederhana dari threading.

 Thread kernel didukung langsung oleh sistem operasi.


 Pembuatan, penjadwalan, dan manajemen thread dilakukan oleh kernel pada kernel
space.
 Pengaturan thread dilakukan oleh sistem operasi, sehingga pembuatan dan pengaturan
kernel thread lebih lambat dibandingkan user thread.

2. User-level threading; sebuah pemetaan N-1, yang berarti bahwa semua level aplikasi
thread dipetakan ke entitas tunggal yang ada di kernel. Dengan pendekatan ini, switching proses
dapat dilakukan dengan sangat cepat.

 Thread pengguna didukung kernel serta diimplementasikan dengan pustaka (library)


thread pada tingkatan pengguna.
 Pustaka (library) menyediakan fasilitas untuk pembuatan thread, penjadwalan thread,
dan manajemen thread tanpa dukungan dari kernel.
 Semua pembuatan dan penjadwalan thread dilakukan dalam ruang pengguna tanpa
campur tangan kernel.

6. Thread dalam Sistem Operasi

 Sistem operasi telah mendukung proses multithreading.


 Setiap sistem operasi memiliki konsep tersendiri dalam pengimplementasiannya.
 Sistem operasi dapat mendukung thread pada tingkatan kernel maupun tingkatan
pengguna.

1. Model Multi-Threading

1. Many-to-One

 Memetakan beberapa thread tingkatan pengguna


 ke sebuah thread tingkatan kernel.
 Pengaturan thread dilakukan dalam ruang
 pengguna, sehingga efisien.
 Hanya satu thread pengguna yang dapat
 mengakses thread kernel pada satu saat.

2. One-to-One
 Memetakan setiap thread tingkatan pengguna ke thread kernel.
 Model ini menyediakan lebih banyak concurrency dibandingkan model Many-to-One.
 D3 KomSI UGM Sistem Operasi

3. Many-to-Many

 Mengelompokkan banyak thread pengguna untuk dipetakan ke thread kernel yang


 jumlahnya lebih sedikit atau sama dengan tingkatan pengguna.
 Mengijinkan sistem operasi untuk membuat sejumlah thread kernel.

7. Cancellation

Thread cancellation ialah pemberhentian thread sebelum tugasnya selesai. Umpama, jika dalam
program Java hendak mematikan Java Virtual Machine (JVM). Sebelum JVM dimatikan, maka
seluruh thread yang berjalan harus dihentikan terlebih dahulu. Thread yang akan diberhentikan
biasa disebut target thread.Pemberhentian target thread dapat terjadi melalui dua cara yang
berbeda:Asynchronous cancellation: suatu thread seketika itu juga memberhentikan target thread.

Defered cancellation: target thread secara perodik memeriksa apakah dia harus berhenti, cara ini
memperbolehkan target thread untuk memberhentikan dirinya sendiri secara terurut.

Alternatifnya adalah dengan menggunakan deffered cancellation. Cara kerja dari deffered
cancellation adalah dengan menggunakan satu thread yang berfungsi sebagai pengindikasi bahwa
target thread hendak diberhentikan. Tetapi pemberhentian hanya akan terjadi jika target thread
memeriksa apakah ia harus berhenti atau tidak. Hal ini memperbolehkan thread untuk memeriksa
apakah ia harus berhenti pada waktu dimana ia dapat diberhentikan secara aman yang aman.
Pthread merujuk tersebut sebagai cancellation points.

8.Threads Pools

Pada web server yang multithreading ada dua masalah yang timbul:Ukuran waktu yang
diperlukan untuk menciptakan thread untuk melayani permintaan yang diajukan terlebih pada
kenyataannya thread dibuang ketika ia seketika sesudah ia menyelesaikan tugasnya.Pembuatan
thread yang tidak terbatas jumlahnya dapat menurunkan performa dari sistem.Solusinya adalah
dengan penggunaan Thread Pools, cara kerjanya adalah dengan membuat beberapa thread pada
proses startup dan menempatkan mereka ke pools, dimana mereka duduk diam dan menunggu
untuk bekerja. Jadi ketika server menerima permintaan maka maka ia akan membangunkan
thread dari pool dan jika thread tersedia maka permintaan tersebut akan dilayani.Ketika thread
sudah selesai mengerjakan tugasnya maka ia kembali ke pool dan menunggu pekerjaan lainnya.
Bila tidak thread yang tersedia pada saat dibutuhkan maka server menunggu sampai ada satu
thread yang bebas.

9. Keuntungan thread pool:

Biasanya lebih cepat untuk melayani permintaan dengan thread yang ada dibanding dengan
menunggu thread baru dibuat.Thread pool membatasi jumlah thread yang ada pada suatu waktu.
Hal ini pentingpada sistem yang tidak dapat mendukung banyak thread yang berjalan secara
concurrent.

Anda mungkin juga menyukai