Halo guys dulur-dulur sekalian
Gak terasa udah lama banget gak buka blogspot dan akhirnya buka lagi untuk mata kuliah Operating System oleh pak Henry Chong. sedikit nostalgia sih soalnya di tahun 2019-2020 pas semester 2 pada mata kuliah data structures juga kurang lebih tugasnya sistem pengumpulannya seperti ini hehe.
kalo gitu Langsung aja berikut adalah rangkuman untuk GSLC Session 4 mengenai Thread dan Process.
pertama-tama kita mulai dari Konsep Process terlebih dahulu
Konsep Proses
Konsep dari Process sendiri maksudnya adalah suatu hal yang
sedang berjalan atau dieksekusi. Jadi didalam proses ini terdapat beberapa
aktivitas yang sedang berjalan juga menyimpan memori, fungsi/metode, return
address, dan variable local.
Dalam sebuah Sistem Operasi, OS juga mempunyai proteksi
untuk melindungi sebuah process yang berjalan. Dikarenakan, apabila terjadi
sebuah gangguan pada process yang fatal maka bisa menyebabkan PC crash dan
bahkan mungkin saja bisa menyebabkan kerusakan pada PC.
Process juga memiliki tahapan -> Ready, Running,
Terminated, etc
- Ready -> adalah process yang siap dijalankan kapanpun dan mungkin saja bisa diatur pada task scheduler untuk berjalan pada waktu tertentu misalnya.
- Running -> merujuk pada process yang berjalan misalnya saja, kita sedang membuka Microsoft Word maka status process nya adalah Running
- Suspend -> misalnya kita menutup suatu aplikasi maka processnya tersebut menjadi stopped/Suspend. Kita juga bisa menutup paksa dengan command end task di windows OS
Pada Android misalnya :
OS Android memiliki beberapa logika misalnya saja saat
pengguna membuka apps baru padahal apps lama belum ditutup maka secara system
akan menentukan apakah proses yang lama penting ataupun tidak. Jika misalnya
tidak terlalu penting maka akan dimatikan dan misalnya penting akan dikeep
maupun masuk kedalam mode hemat daya.
Selain itu keputusan untuk mematikan proses tersebut juga
bergantung dari ketersediaan sumber daya / resources yang dimiliki seperti
misalnya anggaplkah kedua aplikasi sama sama penting namun RAM nya kurang. Maka
salah satu akan dimatikan dan biasanya yang lebih lama atau sedang tidak aktif
apps nya akan di terminated/suspend.
Konsep Thread
Thread ini merupakan sebuah “petugas” atau sebuah unit yang
terdapat pada CPU. Pada proses tradisional setiap proses hanya bisa dijalankan
oleh satu (1) thread saja oleh sebab itu, banyak istilah seperti aplikasi
single thread.
Pada aplikasi modern yang sudah support atau mendukung multi
thread maka istilah “1 proses 1 thread” sudah mulai tidak berlaku dikarenakan
sekarang banyak bermunculan CPU dengan jumlah Thread yang banyak.
Fungsi Thread
Sebagai yang kita ketahui tadi Thread pada proses berfungsi
untuk menjalankan suatu tugas atau job. Yang dimana, semakin banyak thread saat
menjalankan suatu tugas maka biasanya tugas tersebut akan lebih cepat atau
lebih baik performanya.
Namun, pada praktik real nya tidak selalu yang banyak thread
berarti lebih baik performanya. Oleh karena itu banyak istilah seperti “single
thread performance” yang dimana misalnya performa single thread ini (performa
thread tunggal) biasanya diminati untuk beberapa kalangan misalnya saja gamer
yang dimana ada beberapa game yang benar-benar butuh single thread yang baik
agar game kesayangannya memiliki Framerate Per Second yang lebih tinggi.
Key Benefits Thread
Ada beberapa alasan mengapa banyak developer dan juga para
produsen cpu mengembangkan teknologi mereka agar dapat memaksimalkan optimisasi
thread pada suatu program.
·
Pertama, membuat sebuah thread berjalan bisa
lebih cepat daripada membuat sebuah proses baru pada cpu. Jadi yang
menjalankannnya adalah thread di cpu bukan langsung di core nya (CMIIW).
·
Kedua, waktu yang dibutuhkan untuk terminated
thread lebih cepat
·
Ketiga, Berganti antar dua thread juga lebih
cepat daripada harus mengganti dua proses
·
Keempat, meningkatkan efisiensi.
Thread Implementasi
Saat membandingan implementasi thread pada saat mengeksekusi
suatu program maka biasanya terbagi menjadi single thread vs multi thread.
Single thread -> 1 process = 1 thread -> sebuah cara
tradisional
Multi thread -> 1 process = >= 1 thread
Multithread memiliki benefit yang lebih misalnya pada
- · Multithreaded native applications
- · Multiprocess applications
- · Java applications
- · Responsiveness
- · Resource sharing
- · Economy
- · Scalability
Thread Process pada Operating System
Semua system operasi (OS) yang modern, semua sudah mendukung
multi-threading meskipun belum tentu semua aplikasi sudah mendukung
multi-threading. Namun terdapat beberapa perbedaan kompabilitas atau tingkatan
sejauh mana sebuah system operasi dapat mendukungnya. Terdapat 2 tipe thread
yaitu:
- Thread
Pengguna / User Thread
- Thread
Kernel / Kernel Thread
User Threads harus dipetakan kedalam Kernel thread menggunakan beberapa strategi seperti Berikut :
1. Many-To-One Model
Figure 1 Many-to-one model
Beberapa kesimpulan yang dapat diambil adalah
2. Setiap proses memiliki resources yang dibutuhkan untuk mengeksekusi program
3. Thread adalah sebuah entity dalam sebuah proses yang bisa dijalankan
4. Istilah Thread pada software tidak sama dengan yang ada pada hardware
Reference :
https://socs.binus.ac.id/2020/12/13/thread-unit-pemanfaatan-cpu/
https://www.cs.uic.edu/~jbell/CourseNotes/OperatingSystems/4_Threads.html
https://developer.android.com/guide/components/processes-and-threads?hl=id
https://gustibgsbayu.medium.com/sistem-operasi-thread-c7fb4a35d89a
https://repository.dinus.ac.id/docs/ajar/Sister_3_Proses_dan_Thread.pdf
Tidak ada komentar:
Posting Komentar