1. Proses
Proses
dalam sistem operasi adalah suatu bagian dari program yang berada pada
status tertentu dalam rangkaian eksekusinya. Di dalam bahasan Sistem
Operasi, kita lebih sering membahas proses dibandingkan dengan
program. Pada Sistem Operasi modern, pada satu saat tidak seluruh
program dimuat dalam memori, tetapi hanya satu bagian saja dari program
tersebut. Sedangkan bagian lain dari program tersebut tetap
beristirahat di media penyimpan disk. Hanya pada saat dibutuhkan saja,
bagian dari program tersebut dimuat di memory dan dieksekusi oleh
prosesor. Hal ini akan sangat menghemat pemakaian memori.
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.
Kami
tekankan bahwa program itu sendiri bukanlah sebuah proses; suatu
program adalah satu entitas pasif; seperti isi dari sebuah berkas yang
disimpan didalam disket, sebagaimana sebuah proses dalam suatu entitas
aktif, dengan sebuah program counter yang mengkhususkan pada instruksi selanjutnya untuk dijalankan dan seperangkat sumber daya/ resource yang berkenaan dengannya.
Walau
dua proses dapat dihubungkan dengan program yang sama, program
tersebut dianggap dua urutan eksekusi yang berbeda. Sebagai contoh,
beberapa pengguna dapat menjalankan copy yang berbeda pada mail
program, atau pengguna yang sama dapat meminta banyak copy dari program
editor. Tiap-tiap proses ini adakah proses yang berbeda dan walau
bagian tulisan-text adalah sama, data section bervariasi. Juga adalah
umum untuk memiliki proses yang menghasilkan banyak proses begitu ia
bekerja.
2. Thread
Thread
dalam sistem operasi dapat diartikan sebagai sekumpulan perintah
(instruksi) yang dapat dilaksanakan (dieksekusi) secara sejajar dengan
ulir lainnya, dengan menggunakan cara time slice (ketika satu CPU melakukan perpindahan antara satu ulir ke ulir lainnya) atau multiprocess (ketika ulir-ulir tersebut dilaksanakan oleh CPU yang berbeda dalam satu sistem).
Ulir sebenarnya mirip dengan proses, tapi cara berbagi sumber daya antara proses dengan ulir sangat berbeda. Multiplethread dapat dilaksanakan secara sejajar pada sistem komputer. Secara umum multithreading melakukan time-slicing (sama dengan time-division
multipleks), di mana sebuah CPU bekerja pada ulir yang berbeda, di
mana suatu kasus ditangani tidak sepenuhnya secara serempak, untuk CPU
tunggal pada dasarnya benar-benar melakukan sebuah pekerjaan pada satu
waktu.
Thread
saling berbagi bagian program, bagian data dan sumber daya sistem
operasi dengan thread lain yang mengacu pada proses yang sama. Thread
terdiri atas ID thread, program counter, himpunan register, dan stack.
Dengan banyak kontrol thread proses dapat melakukan lebih dari satu
pekerjaan pada waktu yang sama.
Program yang dieksekusi :
a.Proses berat (heavyweight) => proses tradisional
b.Proses ringan (lightweight) => THREAD
a.Proses berat (heavyweight) => proses tradisional
b.Proses ringan (lightweight) => THREAD
Thread
terdiri dari ID thread, program counter,himpunan register dan stack.
Thread dapat melakukan lebih dari satu pekerjaan pada waktu yang sama
(multithreading). Thread bekerja sama dengan thread lain dalam
penggunaan bagian kode, bagian data, dan resource. Dengan penggunaan
thread CPU dapat secara ekstensif di antara peer thread tanpa
menggunakan manajemen memori.
Keuntungan penggunaan thread :
>Tanggap
>Pemberdayaan resorce
>Ekonomis
>Pemberdayaan arsitektur multiprocessor
>Tanggap
>Pemberdayaan resorce
>Ekonomis
>Pemberdayaan arsitektur multiprocessor
Single thread dan multi thread
1.Single thread >> process hanya mengeksekusi satu thread saja pada satu waktu
2.Multi thread >> process dapat mengeksekusi sejumlah thread dalam satu waktu.
2.Multi thread >> process dapat mengeksekusi sejumlah thread dalam satu waktu.
Model Multithread
Sebelumnya, perlu diketahui apa itu user thread dan kernel thread.
User thread >> pengelolaan thread dilakukan oleh user level (pengguna)
Kernel thread >> pengelolaan thread dilakukan oleh kernel komputer User tidak dapat menginterupsi.
Sebelumnya, perlu diketahui apa itu user thread dan kernel thread.
User thread >> pengelolaan thread dilakukan oleh user level (pengguna)
Kernel thread >> pengelolaan thread dilakukan oleh kernel komputer User tidak dapat menginterupsi.
Model-model multithreading :
1. Many to one.
- Beberapa thread user-lever dipetakan ke dalam single kernel thread
- Penggunaannya pada sistem tidak memerlukan dukungan kernel thread
- Beberapa thread user-lever dipetakan ke dalam single kernel thread
- Penggunaannya pada sistem tidak memerlukan dukungan kernel thread
2. One to one
- Setiap user-level thread dipetakan ke kernel thread.
- Contoh : Windows 95/98/NT/2000
- Setiap user-level thread dipetakan ke kernel thread.
- Contoh : Windows 95/98/NT/2000
3. Many to many
- Membolehkan setiap user-level thread dipetakan ke banyak kernel thread
- Membolehkan sistem operasi membuat sejumlah kernel thread
- Contoh : Windows NT/2000 dengan paket ThreadFiber 10, Solaris 2.
- Membolehkan setiap user-level thread dipetakan ke banyak kernel thread
- Membolehkan sistem operasi membuat sejumlah kernel thread
- Contoh : Windows NT/2000 dengan paket ThreadFiber 10, Solaris 2.
Contoh thread :
-
Java Thread, Java threads dikelola oleh JVM dan biasanya dilaksanakan
dengan menggunakan benang model yang disediakan oleh OS. Java threads
dapat digunakan untuk Memperluas kelas Thread dan Pelaksanaan
Runnableinterface.
3. Perbedaan proses dan thread
Proses: Gabungan dari ruang virtual memori, kode, data, dan resource sistem.
Thread: Kode yang secara serial akan diproses per satu proses.
Prosesor mengeksekusi thread, bukan proses, jadi tiap aplikasi setidaknya memiliki satu proses, dan tiap proses paling tidak memiliki satu thread eksekusi yang dinamakan primary thread. Sebuah proses dapat memiliki banyak thread selain primary thread.
3.1 tentang daemon dan contohnya
DAEMON adalah program komputer yang menjalankan background proses, yaitu proses yang aktif namun tidak secara langsung dikontrol oleh user, misalnya daemon untuk menjalankan layanan login: syslogd, dan daemon untuk melayani koneksi SSH: sshd
3.2 bagaimana terjadinya thread
Thread dibuat saat suatu proses akan dieksekusi oleh prosesor, ada berbagai macam model diantaranya: satu proses satu thread, satu proses banyak thread, dan banyak proses ke banyak thread.
Berikut diagram kedudukan thread dalam aplikasi:
3.3 Cari tahu tentang fork()
Fork pada lingkungan ultithreading berarti suatu thread diduplikasi, membuat child thread sebagai duplikat dari parent thread. Child dan parent thread dapat berkomunikasi dengan memeriksa kembaliab dari system call fork(). Pada child, nilai kembalian fork() adalah 0. Pada parent, nilainya adalah PID dari child proses yang baru dibuat.
Process State
Status proses selalu berubah-ubah selama suatu program dieksekusi atau dijalankan. Beberapa status tersebut ialah :
- New : proses baru diciptakan
- Running : proses sedang dijalankan
- Waiting : proses sedang menunggu suatu kondisi tertentu untuk bisa berjalan. (misalkan menunggu respon dari perangkat I/O)
- Ready : proses menunggu untuk dilayani processor
- terminated : proses telah menyelesaikan eksekusi.
Diagram status proses
Process Control Block (PCB)
Sistem operasi membutuhkan banyak informasi mengenai proses guna pengelolaan proses. Semua informasi ini ada pada PCB. PCB mengandung beberapa informasi seperti berikut :
1. Process State >> berisi informasi status proses.
(new,running,waiting,ready,terminated)
2. Program counter >> berisi informasi mengenai alamat instruksi yang akan digunakan selanjutnya.
3. CPU register >> berisi register2 CPU apa saja yang digunakan.
4. CPU scheduling information >> berisis penjadwalan proses beserta algoritmanya.
5. Memory management information >> berisi informasi tentang berapa jumlah memory yang digunakan, limit register, tabel segment, dll berkenaan dengan penggunaan memory.
6. I/O status information >> berisi informasi tentang perangkat apa saja yang digunakan dalam proses.
7. Accounting >> berisi informasi tentang statistik eksekusi proses seperti waktu yang diperlukan, jumlah proses, dll.
Diagram PCB
Sumber :
http://ulpiupie.blogspot.com/2012/04/proses-thread-dalam-sistem-operasi.html
http://forza-septiawan.blogspot.com/2012/04/konsep-dasar-proses-dan-thread-dalam.html
http://blog.ub.ac.id/briandanaa/2012/05/10/perbedaan-proses-dan-thread/
http://bebas.vlsm.org/v06/Kuliah/SistemOperasi/BUKU/SistemOperasi-4.X-1/img/c310-f01-status.gif
http://agungsetiawan.students-blog.undip.ac.id/files/2010/09/2.jpg
Proses: Gabungan dari ruang virtual memori, kode, data, dan resource sistem.
Thread: Kode yang secara serial akan diproses per satu proses.
Prosesor mengeksekusi thread, bukan proses, jadi tiap aplikasi setidaknya memiliki satu proses, dan tiap proses paling tidak memiliki satu thread eksekusi yang dinamakan primary thread. Sebuah proses dapat memiliki banyak thread selain primary thread.
3.1 tentang daemon dan contohnya
DAEMON adalah program komputer yang menjalankan background proses, yaitu proses yang aktif namun tidak secara langsung dikontrol oleh user, misalnya daemon untuk menjalankan layanan login: syslogd, dan daemon untuk melayani koneksi SSH: sshd
3.2 bagaimana terjadinya thread
Thread dibuat saat suatu proses akan dieksekusi oleh prosesor, ada berbagai macam model diantaranya: satu proses satu thread, satu proses banyak thread, dan banyak proses ke banyak thread.
Berikut diagram kedudukan thread dalam aplikasi:
3.3 Cari tahu tentang fork()
Fork pada lingkungan ultithreading berarti suatu thread diduplikasi, membuat child thread sebagai duplikat dari parent thread. Child dan parent thread dapat berkomunikasi dengan memeriksa kembaliab dari system call fork(). Pada child, nilai kembalian fork() adalah 0. Pada parent, nilainya adalah PID dari child proses yang baru dibuat.
Process State
Status proses selalu berubah-ubah selama suatu program dieksekusi atau dijalankan. Beberapa status tersebut ialah :
- New : proses baru diciptakan
- Running : proses sedang dijalankan
- Waiting : proses sedang menunggu suatu kondisi tertentu untuk bisa berjalan. (misalkan menunggu respon dari perangkat I/O)
- Ready : proses menunggu untuk dilayani processor
- terminated : proses telah menyelesaikan eksekusi.
Diagram status proses
Process Control Block (PCB)
Sistem operasi membutuhkan banyak informasi mengenai proses guna pengelolaan proses. Semua informasi ini ada pada PCB. PCB mengandung beberapa informasi seperti berikut :
1. Process State >> berisi informasi status proses.
(new,running,waiting,ready,terminated)
2. Program counter >> berisi informasi mengenai alamat instruksi yang akan digunakan selanjutnya.
3. CPU register >> berisi register2 CPU apa saja yang digunakan.
4. CPU scheduling information >> berisis penjadwalan proses beserta algoritmanya.
5. Memory management information >> berisi informasi tentang berapa jumlah memory yang digunakan, limit register, tabel segment, dll berkenaan dengan penggunaan memory.
6. I/O status information >> berisi informasi tentang perangkat apa saja yang digunakan dalam proses.
7. Accounting >> berisi informasi tentang statistik eksekusi proses seperti waktu yang diperlukan, jumlah proses, dll.
Diagram PCB
Sumber :
http://ulpiupie.blogspot.com/2012/04/proses-thread-dalam-sistem-operasi.html
http://forza-septiawan.blogspot.com/2012/04/konsep-dasar-proses-dan-thread-dalam.html
http://blog.ub.ac.id/briandanaa/2012/05/10/perbedaan-proses-dan-thread/
http://bebas.vlsm.org/v06/Kuliah/SistemOperasi/BUKU/SistemOperasi-4.X-1/img/c310-f01-status.gif
http://agungsetiawan.students-blog.undip.ac.id/files/2010/09/2.jpg