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.
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.
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
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 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.
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:
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.
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
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.
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.
1. Model Multi-Threading
1. Many-to-One
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
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.
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.