Definisi Proses
- Proses adalah konsep dasar sistem operasi.
- Secara sederhana proses adalah sebuah program yang dieksekusi.
- Konsep dasar proses secara informal adalah program dalam eksekusi.
Keadan Proses
- Sebagaimana proses bekerja, maka proses tersebut merubah state (keadaan statis/ asal). Status dari sebuah proses didefinisikan dalam bagian oleh aktivitas yang ada dari proses tersebut
(b) Conceptual model of 4 independent, sequential processes
(c) Multiprogramming of four programs
Process Creation
yaitu tindakan yang dilakukan sistem operasi pada saat sebuah proses akan ditambahkan ke proses yang sedang dikelola, sistem operasi membuat struktur data yang digunakan untuk mengelola proses dan mengalokasikan ruang alamat ke proses itu
- Alur Pembuatan Proses adalah sebagai berikut:
- Memberi identitas (nama) pada proses yang dibuat
- Menyisipkan proses pada list proses atau tabel proses
- Menentukan prioritas awal proses
- Membuat PCB
- Mengalokasikan resource awal bagi proses tersebu
- Satu proses dimungkinkan untuk membuat sejumlah proses baru melalui system call create-process.
- Proses yang dibuat sebelumnya disebut parent process, sedangkan proses yang baru disebut childern process.
- Proses baru ini juga dimungkinkan membuat proses yang lebih baru lagi.
Pada saat sebuah proses membuat proses baru, terdapat dua kemungkinan pada proses eksekusi.
- Parent melanjutkan eksekusi secara konkuren dengan childern
- Parent menunggu sampai beberapa atau semua childern terminate.
- Proses-proses disebut kongkuren jika proses-proses berada / berjalan pada saat yang sama.
- Proses-proses kongkuren dapat sepenuhnya tidak bergantung dengan lainnya, tetapi dapat juga saling berinteraksi
- Proses-proses yang berinteraksi memerlukan sinkronisasi agar terkendali dengan baik.
- Alokasi waktu pemroses untuk proses-proses
- Pemakaian bersama dan persaingan untuk mendapatkan sumber daya
- Komunikasi antar proses
- Sinkronisasi aktivitas banyak proses
Terdapat pula dua kemungkinan pada address space proses baru :
- Child process merupakan duplikat dari parent process
- Child Process memiliki program untuk di-load ke dalam address space.
- UNIX examples:
- forksystem call creates new process
- execsystem call, used after a fork to replace the process’memory space with a new program
Sebuah proses terminate ketika proses itu selesai mengeksekusi instruksi terakhir dan meminta sistem operasi untuk menghapusnya melalui system call.
Kondisi yang menyebabkan proses berhenti:
- normal exit (voluntary) à prosedur sudah selesai – keluar
- error exit (voluntary) à suatu proses berjalan, tiba2 ada yang salah/error. Mis: yg diminta int, yang dimasukkan string
- fatal error (involuntary) à kesalahan2 yang gak bisa ditolerir. Mis: proses gak berjalan, trus dibagi 0 – terpaksa berhenti, kalo gak hasilnya kacau
- killed by another process (involuntary) à terpaksa keluar oleh proses lain. Mis: dengerin mp3 trus maen game yang ada suaranya juga – terpaksa berhenti mp3nya gara2 game
- Sistem operasi yang mendukung konsep mengenai proses harus menyediakan suatu cara untuk mengcreate semua proses yang diperlukan
- Untuk system yang sederhana sangat mungkin bahwa semua proses yang akan diperlukan harus sudah ada pada saat system dihidupkan.
- Pada kebanyakan system , perlu suatu cara tertentu untuk dapat menciptakan dan menghapus proses yang diperlukan selama operasi.
- Suatu proses dapat membentuk sub proses dan subproses dapat membentuk subproses yang lain, sehingga secara keseluruhan membentuk struktur pohon.
Fungsi : sebagai tempat menyimpan/ gudang untuk informasi apa pun yang dapat bervariasi dari proses ke proses.
PCB berisikan banyak bagian dari informasi yang berhubungan dengan sebuah proses yang spesifik, yaitu:
- Keadaan proses
- Program counter
- CPU register
- Informasi managemen memori
- Informasi pencatatan
- Informasi status I/O
- Scheduling information
- Keadaan proses : Keadaan mungkin, new, ready, running, waiting, halted, dan juga banyak lagi.
- Program counter : Counter mengindikasikan address dari perintah selanjutnya untuk dijalankan untuk proses ini.
- CPU register : Register bervariasi dalam jumlah dan jenis, tergantung pada rancangan komputer.
- Register tersebut termasuk accumulator, index register, stack pointer, general-puposes register, ditambah code information pada kondisi apa pun. Besertaan dengan program counter, keadaan/status informasi harus disimpan ketika gangguan terjadi, untuk memungkinkan proses tersebut berjalan/bekerja dengan benar setelahnya.
- 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.
- Informasi pencatatan: Informasi ini termasuk jumlah dari CPU dan waktu riil yang digunakan, batas waktu, jumlah akun, jumlah job atau proses, dan banyak lagi.
- Informasi status I/O: Informasi termasuk daftar dari perangkat I/O yang di gunakan pada proses ini, suatu daftar open berkas dan banyak lagi.
- Scheduling information : berisis penjadwalan proses beserta algoritmanya
Konsep Dasar
- Secara informal, proses adalah program yang sedang dieksekusi. Ada dua jenis proses, proses berat (heavyweight) atau biasa dikenal dengan proses tradisional, dan proses ringan (lightweight) atau kadang disebut thread.
Dengan banyak kontrol thread, proses dapat melakukan lebih dari satu pekerjaan pada waktu yang sama.
Setiap thread memiliki stack tersendiri masing-masing.
- Tiga proses dengan masing-masing satu thread.
- Satu proses yang terdiri dari tiga thread.

Kernel Threads
Didukung secara langsung oleh sistem operasi: pembentukan thread, penjadualan, dan managemen dilakukan oleh kernel dalam ruang kernel. Karena managemen thread telah dilakukan oleh sistem operasi, kernel thread biasanya lebih lambat untuk membuat dan mengelola daripada pengguna thread.
- Sejauh ini suatu proses adalah sebuah program yang menjalankan eksekusi thread tunggal. Kontrol thread tunggal ini hanya memungkinkan proses untuk menjalankan satu tugas pada satu waktu.
- Sistem operasi modern telah memiliki konsep yang dikembangkan agar memungkinkan sebuah proses untuk memiliki eksekusi multithreads, agar dapat dapat secara terus menerus proses yang berkesinambungan.
Thread Scheduling
- Local Scheduling
- Global Scheduling
Management Thread
Java menyediakan beberapa fasilitas untuk mengatur thread — thread, diantaranya adalah:
- Suspend(): berfungsi untuk menunda eksekusi dari thread yang sedang berjalan.
- Sleep(): berfungsi untuk menempatkan thread yang sedang berjalan untuk tidur dalam beberapa waktu.
- Resume(): hasil eksekusi dari thread yang sedang ditunda.
- Stop(): menghentikan eksekusi dari sebuah thread; sekali thread telah dihentikan dia tidak akan memulainya lagi.
Multi Thread
Thread States
Pada setiap saat, thread dikatakan dalam satu atau lebih oleh beberapa thread seperti yang ditunjukkan oleh properti Thread.Thread diilustrasikan pada diagram alir di bawah ini:
- Unstarted : Ketika sebuah thread baru dibuat oleh runtime.
- Running : Thread baru dibuat tetap dalam keadaan Unstarted sampai program panggilan Thread Start.
- bortRequested : Fungsi Thread ini adalah Thread Abort telah dipanggil tetapi thread belum menerima pengecualian Thread AbortException yang akan mencoba untuk menghentikannya.
- Stopped : Sebuah thread aktif memasuki state Berhenti ketika delegasi ThreadStart tersebut berakhir.
- WaitSleepJoin : Jika kode thread pertemuan tidak dapat mengeksekusi (karena beberapa kondisi tidak selesai).
- Suspended : Jika thread aktif menjalankan Thread Suspend, thread akan memasuki kondisi Suspended.Sebuah state Suspended kembali ke keadaan aktif jika thread lain dalam program memanggil thread ditangguhkans Thread Resume.













Leave a comment