Konsep Thread Dan Konsep Penjadwalan [PDF]

  • 0 0 0
  • Suka dengan makalah ini dan mengunduhnya? Anda bisa menerbitkan file PDF Anda sendiri secara online secara gratis dalam beberapa menit saja! Sign Up
File loading please wait...
Citation preview

TUGAS KELOMPOK SISTEM OPERASI KOMPUTER “KONSEP THREAD DAN KONSEP PENJADWALAN”



Disusun oleh : DIKI HAIRUL SIAGIAAN (5191151013) SYARIFAH SHEILY AZMI (5191151016)



FAKULTAS TEKNIK PENDIDIKAN TEKNOLOGI INFORMATIKA DAN KOMPUTER UNIVERSITAS NEGERI MEDAN T.A 2019 / 2020



THREAD Pengertian 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.



Model Multithread Beberapa terminologi yang akan di bahas,yaitu : 



User (pengguna) thread User thread didukung di atas kernel dan diimplementasi oleh thread library pada user level. Library menyediakan fasilitas untuk pembuatan thread, penjadualan thread, dan managemen thread tanpa dukungan dari kernel. Adapun kelemahannya yang dialami yaitu apabila kernelnya merupakan thread tunggal maka apabila salah satu user-level thread menjalankan blocking system call maka akan mengakibatkan seluruh proses diblok walau pun ada thread lain yang dapat jalan dalam aplikasi tersebut







Kernel tread Kernel thread didukung langsung oleh sistem operasi. Pembuatan, penjadualan, dan managemen thread dilakukan oleh kernel pada kernel space. Pembuatan dan pengaturan kernel thread lebih lambat dibandingkan user thread. Keuntungannya adalah jika sebuah thread menjalankan blocking system call maka kernel dapat menjadualkan thread lain di aplikasi untuk melakukan eksekusi. Pada lingkungan multiprocessor, kernel dapat menjadual thread-thread pada processor yang berbeda. Contoh sistem operasi yang mendukung kernel thread adalah Windows NT, Solaris, Digital UNIX.



a.



Berdasarkan Pemetaan Thread Model multithreading berdasarkan dengan pemetaan dibedakan menjadi tiga bagian, yaitu: 1) Many to One Model ini memetakan beberapa thread tingkatan user ke sebuah thread tingkatan kernel. Pengaturan thread dilakukan dalam ruang user sehingga efisien. Hanya satu thread user yang dapat mengakses thread kernel pada satu saat. Jadi Multiple thread tidak dapat berjalan secara paralel pada multiprosesor. Contoh dari many to one adalah Solaris Green Threads dan GNU Portable Threads. Model Many to One



2) One to One Model ini memetakan setiap thread tingkatan user ke setiap thread. One to One menyediakan lebih banyak concurrency dibandingkan model Many to One. Keuntungannya sama dengan keuntungan thread kernel. Kelemahan model ini ialah setiap pembuatan thread user memerlukan tambahan thread kernel. Karena itu, jika mengimplementasikan sistem ini maka akan menurunkan kinerja dari sebuah aplikasi sehingga biasanya jumlah thread dibatasi dalam sistem. Adapun contoh dari one to one, yaitu Windows NT/XP/2000, Linux, Solaris 9.



3) Many to Many Model ini memultipleks banyak thread tingkatan user ke thread kernel yang jumlahnya sedikit atau sama dengan tingkatan user. Model ini mengizinkan developer membuat thread sebanyak yang developer inginkan tetapi concurrency tidak dapat diperoleh karena hanya satu thread yang dapat dijadwalkan oleh kernel pada suatu waktu. Keuntungan dari sistem ini ialah kernel thread yang bersangkutan dapat berjalan secara



paralel



pada multiprosessor. Model Many to Many



ditunjukkan pada gambar dibawah ini.



Jenis-Jenis Proses Thread Pada proses thread terdapat dua jenis thread, yaitu: 1. Single Thread Process Sebuah proses tradisional atau heavyweight process mempunyai single thread yang berfungsi sebagai pengendali. Dapat diartikan sebagai proses yang bekerja secara berurutan sesuai dengan urutan masing-masing thread (terstruktur) dan hanya mengerjakan satu tugas dalam satu waktu. Di bawah ini merupakan gambar single thread.



2. Multithread Process Merupakan satu atau beberapa thread yang dijalankan secara bersamaan (multiproses), dimana masing-masing thread tersebut dijalankan pada jalur masingmasing. Setiap thread pada multithread menjalankan kode atau script program secara berurutan. Multithread dapat diartikan juga sebagai suatu proses dengan thread banyak dapat mengerjakan lebih dari satu tugas pada satu satuan waktu. Multithread sering pula disebut dengan multiproses atau multitasking pada sistem operasi.



Banyak perangkat lunak yang berjalan pada PC modern dirancang secara multithreading. Sebuah aplikasi biasanya diimplementasi sebagai



proses yang terpisah



dengan beberapa thread yang berfungsi sebagai pengendali. Contohnya sebuah web browser mempunyai thread untuk



menampilkan gambar atau tulisan sedangkan thread yang lain



berfungsi sebagai penerima data dari network. Kadang kala ada situasi dimana sebuah aplikasi diperlukan untuk menjalankan beberapa tugas yang serupa. Sebagai contohnya sebuah web server dapat mempunyai ratusan klien yang mengaksesnya secara concurrent. Kalau web server berjalan sebagai proses yang hanya mempunyai single thread maka ia hanya dapat melayani satu klien pada pada satu satuan waktu. Bila ada klien lain yang ingin mengajukan permintaan maka ia harus menunggu sampai klien sebelumnya selesai dilayani. Solusinya adalah dengan membuat web server menjadi multithreading. Dengan ini maka sebuah web server akan membuat thread yang akan



mendengar permintaan klien, ketika permintaan lain diajukan maka web server akan menciptakan thread lain yang akan melayani permintaan tersebut.



Keuntungan Thread Terdapat empat keuntungan utama dari program yang multithreading, yaitu sebagai berikut: 1. Responsiveness Membuat aplikasi yang interaktif menjadi multithreading dapat membuat sebuah program terus berjalan meski pun sebagian dari program tersebut diblok atau melakukan operasi yang panjang, karena itu dapat meningkatkan respons kepada user. Sebagai contohnya dalam web browser yang multithreading, sebuah thread dapat melayani permintaan user sementara thread lain berusaha menampilkan image. 2. Resource sharing Thread berbagi memori dan sumber daya dengan thread lain yang dimiliki oleh proses yang sama. Keuntungan dari berbagi kode adalah mengizinkan sebuah aplikasi untuk mempunyai beberapa thread yang berbeda dalam lokasi memori yang sama. 3. Economy Dalam pembuatan sebuah proses banyak dibutuhkan pengalokasian memori dan sumber daya. Alternatifnya adalah dengan useran thread, karena thread berbagi memori dan sumber daya proses yang memilikinya maka akan lebih ekonomis untuk membuat dan context switch thread. Akan sulit untuk mengukur perbedaan waktu



antara proses



dan thread dalam hal pembuatan dan pengaturan,tetapi secara umum pembuatan dan pengaturan proses lebih lama dibandingkan thread. Pada Solaris, pembuatan proses lebih lama 30 kali dibandingkan pembuatan thread, dan context switch proses 5 kali lebih lama dibandingkan context switch thread. 4.



Utilization of multiprocessor architectures Keuntungan dari multithreading dapat sangat meningkat pada arsitektur multiprocessor, dimana setiap thread dapat berjalan secara pararel di atas processor yang berbeda. Pada arsitektur processor tunggal, CPU menjalankan setiap thread secara bergantian tetapi hal ini berlangsung sangat cepat sehingga menciptakan ilusi pararel, tetapi pada



kenyataannya hanya satu thread yang dijalankan CPU pada satu-satuan waktu (satusatuan waktu pada CPU biasa disebut time slice atau quantum)



Penjadwalan Pengertian dan Sasaran Proses Penjadwalan proses Penjadwalan merupakan kumpulan kebijaksanaan dan mekanisme dalam sistem operasi yang berkaitan dengan urutan kerja yang dilakukan oleh sistem komputer. proses Penjadwalan bertugas untuk memutuskan: 1. Proses apa yang harus berjalan. 2. Kapan dan berapa lama proses tersebut berjalan Adapun kriteria untuk mengukur dan optimasi kinerja proses Penjadwalan: 1. Adil (fairness) Adalah proses-proses diperlakukan semua sama, yaitu mendapat jatah waktu pemroses yang sama dan tidak ada proses yang tidak mendapatkan layanan pemroses sehingga mengalami kekurangan waktu. 2. Efisiensi (eficiency) Efisiensi atau utilisasi pemroses dihitung dengan perbandingan (rasio) waktu sibuk pemroses. 3. Waktu tanggap (response time) Terdapat 3 jenis waktu tanggap: a) Sistem interaktif Didefinisikan sebagai waktu yang dihabiskan dari saat karakter terakhir dari perintah dimasukkan atau transaksi sampai hasil pertama muncul di layar. Waktu tanggap ini disebut terminal response time. b) Sistem waktu nyata Didefinisikan sebagai waktu dari saat kejadian (internal atau eksternal) sampai instruksi pertama rutin layanan yang dimaksud dieksekusi, disebut event response time. c) Turnaround time Didefinisikan sebagai waktu yang dihabiskan dari saat program atau mulai masuk ke sistem sampai proses diselesaikan oleh sistem. Waktu yang dimaksud adalah waktu yang dihabiskan di dalam sistem, diekspresikan sebagai penjumlah waktu eksekusi (waktu pelayanan job) dan waktu menunggu: Turn arround time = waktu eksekusi + waktu menunggu. d) Throughput



Didefinisikan sebagai jumlah kerja yang dapat diselesaikan dalam satu unit waktu. Cara untuk mengekspresikan throughput adalah dengan jumlah job pemakai yang dapat dieksekusi dalam satu unit/interval waktu. Kriteria-kriteria tersebut saling bergantung dan dapat pula saling bertentangan sehingga tidak dimungkinkan optimasi semua kriteria secara simultan. Contohnya untuk memberi waktu tanggap kecil memerlukan penjadwalan yang sering beralih ke antara proses-proses itu. Cara ini meningkatkan overhead sistem dan mengurangi throughput. Oleh karena itu dalam menentukan kebijaksanaan perancangan penjadwalan sebaiknya melibatkan kompromi diantara kebutuhan-kebutuhan yang saling bertentangan. Kompromi ini bergantung sifat dan penggunaan sistem komputer. Sasaran penjadwalan berdasarkan kriteria-kriteria optimasi tersebut: 1. Menjamin tiap proses mendapat pelayanan dari pemroses yang adil. 2. Menjaga agar pemroses tetap dalam keadaan sibuk sehingga efisiensi mencapai maksimum. Pengertian sibuk adalah pemroses tidak menganggur, termasuk waktu yang dihabiskan untuk mengeksekusi program pemakai dan sistem operasi. 3. Meminimalkan waktu tanggap. 4. Meminimalkan turn arround time. 5. Memaksimalkan jumlah job yang diproses persatu interval waktu. Lebih besar angka throughput, lebih banyak kerja yang dilakukan sistem. Tipe proses Penjadwalan Terdapat 3 tipe proses Penjadwalan yang dilakukan secara bersama-sama pada sistem operasi yang kompleks, yaitu: 1. Penjadwal jangka pendek (short term scheduller) Bertugas menjadwalkan alokasi pemroses di antara proses-proses ready di memori utama. Penjadwalan dijalankan setiap terjadi pengalihan proses untuk memilih proses berikutnya yang harus dijalankan. 2. Penjadwal jangka menengah (medium term scheduler) Setelah eksekusi selama suatu waktu, proses mungkin menunda sebuah eksekusi karena membuat permintaan layanan masukan/keluaran atau memanggil suatu system call. Prosesproses tertunda tidak dapat membuat suatu kemajuan menuju selesai sampai kondisi-kondisi yang menyebabkan tertunda dihilangkan. Agar ruang memori dapat bermanfaat, maka proses dipindah dari memori utama ke memori sekunder agar tersedia ruang untuk proses-proses lain. Kapasitas memori utama terbatas untuk sejumlah proses aktif. Aktivitas pemindahan proses yang tertunda dari memori utama ke memori sekunder disebut swapping. Proses-proses mempunyai kepentingan kecil saat itu sebagai proses yang tertunda. Tetapi, begitu kondisi yang membuatnya tertunda hilang dan proses dimasukkan kembali ke memori utama dan ready. 3. Penjadwal jangka panjang (long term scheduler) Penjadwal ini bekerja terhadap antrian batch dan memilih batch berikutnya yang harus dieksekusi. Batch biasanya adalah proses-proses dengan penggunaan sumber daya yang intensif (yaitu waktu pemroses, memori, perangkat masukan/keluaran), program-program ini berprioritas rendah, digunakan sebagai pengisi (agar pemroses sibuk) selama periode aktivitas job-job



interaktif rendah. Sasaran penjadwalan berdasarkan tipe-tipe penjadwalan: a) Memaksimumkan kinerja untuk memenuhi satu kumpulan kriteria yang diharapkan. b) Mengendalikan transisi dari suspended to ready (keadaan suspend ke ready) dari proses-proses swapping. c) Memberi keseimbangan job-job campuran.



Tipe-tipe proses Penjadwalan



Strategi proses Penjadwalan Terdapat dua strategi penjadwalan, yaitu: 1. Penjadwalan nonpreemptive (run to completion) Proses diberi jatah waktu oleh pemroses, maka pemroses tidak dapat diambil alih oleh proses lain sampai proses itu selesai. 2. Penjadwalan preemptive Proses diberi jatah waktu oleh pemroses, maka pemroses dapat diambil alih proses lain, sehingga proses disela sebelum selesai dan harus dilanjutkan menunggu jatah waktu pemroses tiba kembali pada proses itu. Berguna pada sistem dimana proses-proses yang mendapat perhatian/tanggapan pemproses secara cepat, misalnya: a) Pada sistem realtime, kehilangan interupsi (tidak layani segera) dapat berakibat fatal. b) Pada sistem interaktif, agar dapat menjamin waktu tanggap yang memadai. Penjadwalan secara preemptive baik tetapi harus dibayar mahal. Peralihan proses memerlukan overhead (banyak tabel yang dikelola). Supaya efektif, banyak proses harus berada di memori utama sehingga proses-proses tersebut dapat segera running begitu diperlukan. Menyimpan banyak proses tak running benar-benar di memori utama merupakan suatu overhead tersendiri.



Tipe-tipe penjadwalan yang dikaitkan dengan diagram state Algoritma-algoritma dalam proses Penjadwalan



1. Nonpreemptive, menggunakan konsep: a) FIFO (First In First Out) atau FCFS (First Come First Serve) b) SJF (Shortest Job First) c) HRN (Highest Ratio Next) d) MFQ (Multiple Feedback Queues) 2. Preemptive, menggunakan konsep: a) RR (Round Robin) b) SRF (Shortest Remaining First) c) PS (Priority Scheduling) d) GS (Guaranteed Scheduling)



Klasifikasi lain selain berdasarkan dapat/tidaknya suatu proses diambil secara paksa adalah klasifikasi berdasarkan adanya prioritas di proses-proses, yaitu: 1. Algoritma penjadwalan tanpa berprioritas. 2. Algoritma penjadwalan berprioritas, terdiri dari: a) Berprioritas statis b) Berprioritas dinamis



DAFTAR PUSTAKA : https://www.academia.edu/30582405/MAKALAH_SISTEM_OPERASI_THREAD_Pengertian_Thread http://parapencarinilai.blogspot.com/2018/05/makalah-penjadwalan-proses.html https://dikfatahillah.student.telkomuniversity.ac.id/konsep-penjadwalan-pada-sistem-operasi/