Selasa, 26 Oktober 2021

GSLC: Operating System - Session 04 - Thread

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:

  1. Thread Pengguna / User Thread
  2. 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


 2. One-To-One Model


                    Figure 2 One-To-One Model

 

3. Many-To-Many Model


                Figure 3 Many-To-Many Model

 4. Two-level model


                        Figure 4 Two-level model

 

Contoh Sistem Operasi -> Windows XP Thread



        Figure 5 Data structures of a Windows thread


 

Beberapa kesimpulan yang dapat diambil adalah

1.      Sebuah aplikasi dapat memiliki lebih dari satu (1) proses
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