Sistem Operasi
PROGRAM STUDI TEKNIK INFORMATIKA
Sumber: https://ft.uhamka.ac.id/prodi/informatika/
• VISI.
√ Menjadi program studi informatika yang menghasilkan karya unggul di bidang teknologi informasi melalui pembelajaran berlandaskan prophetic teaching untuk membentuk lulusan yang cerdas secara spiritual, intelektual, emosional, dan sosial.
• MISI.
1. Melaksanakan pendidikan di bidang informatika yang terintegrasi dengan nilai-nilai Al Islam Kemuhammadiyahan.
2. Melaksanakan penelitian untuk menghasilkan karya teknologi informasi yang unggul untuk masyarakat berkemajuan
3. Melaksanakan pengabdian kepada masyarakat untuk kesejahteraan umat.
4. Menghasilkan mahasiswa yang berwawasan global dalam teknologi informasi.
5. Mendorong jiwa kewirausahaan mahasiswa untuk berkiprah di tengah masyarakat dalam meningkatkan kegiatan
• SKS : 3
– Teori 3 SKS – (14 Kali Pertemuan)
• Keaktifan (bobot 10%)
– Terdiri dari: Aktivitas Perkuliahan (Kehadiran, Etika, dan Sikap).
• Project (bobot 25%)
– Terdiri dari: Tugas Besar / Project (Penguasaan Keterampilan) dengan cara observasi, mengimplementasikan dan menghasilkan Proyek Akhir, serta mempresentasikannya.
• Tes (UTS = bobot 25% , UAS = bobot 40%)
– Terdiri dari: UTS dan UAS (Penguasaan Pengetahuan) dengan cara tes tertulis maupun tes praktikum.
Sistem Penilaian
• Objectives (Tujuan Instruksional Umum).
– RPS/SAP.
– Thread
• Indikator Kompetensi.
– Mahasiswa mampu mengetahui dan memahami tentang thread didalam sistem operasi.
– Mahasiswa mampu mengetahui, memahami, membedakan, serta dapat menjelaskan tentang kelebihan dari thread, thread level, multithreading model, thread library, thread cancellation, dan penjadwalan thread didalam sebuah sistem operasi.
Tujuan/Objectives (Session.06)
Muhasabah
• Qs. Al Baqarah, ayat 183
– Wahai orang-orang yang beriman! Diwajibkan atas kamu berpuasa sebagaimana diwajibkan atas orang sebelum kamu agar kamu bertakwa,
Sistem Operasi
Thread
Pendahuluan
Pendahuluan
• Thread, atau kadang-kadang disebut proses ringan (lightweight), adalah unit dasar dari utilisasi CPU dan merupakan alur kontrol dari sebuah proses.
• Didalam sebuah thread terdapat ID-thread, program counter, register, dan stack.
• Kesemuanya itu saling berbagi dengan thread lain dalam proses yang sama.
Pendahuluan
(lanjutan) Konsep Dasar
• Secara informal, proses adalah program yang sedang dieksekusi. Terdapat 2 (dua) jenis proses, yaitu proses berat (heavyweight) atau biasa dikenal dengan proses tradisional, dan proses ringan (lightweight) atau biasa disebut juga sebagai thread.
Pendahuluan
(lanjutan) Konsep Dasar (lanjutan)
• 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.
Pendahuluan
(lanjutan)
• Pada single-threaded process (proses dengan thread tunggal), hanya memungkinkan proses untuk menjalankan satu tugas pada satu waktu.
• Sedangkan pada multithreaded process (proses dengan thread yang banyak),
yaitu proses dengan thread yang banyak dapat mengerjakan lebih dari satu
tugas pada satu satuan waktu.
Pendahuluan
(lanjutan)
Thread
Keunggulan Thread
Keuntungan Thread
• Penggunaan thread mempunyai keuntungan tersendiri bagi sebuah sistem operasi, diantaranya adalah:
a) Responsi
b) Berbagi Sumber Daya c) Ekonomis
d) Utilisasi Arsitektur Multiprosesor
Keuntungan Thread
(lanjutan) a) Responsi / Tanggap
– Multithreading mengizinkan program untuk berjalan terus, walaupun pada bagian dari program tersebut di-block atau sedang dalam keadaan menjalankan suatu proses operasi yang lama/panjang.
– Sebagai contoh, multithread dalam web browser dapat mengizinkan pengguna berinteraksi dengan suatu thread, ketika suatu gambar sedang di-load oleh thread yang lain.
– Atau dalam kata lain sebuah thread dapat melayani permintaan pengguna, sementara thread lain berusaha menampilkan image.
Keuntungan Thread
(lanjutan) b) Berbagi Sumber Daya
– Secara default, thread berbagi memori dan sumber daya dengan thread lain yang dimiliki oleh proses yang sama.
– Keuntungannya adalah mengizinkan sebuah aplikasi untuk mempunyai beberapa thread yang berbeda dalam lokasi memori yang sama.
Keuntungan Thread
(lanjutan) c) Ekonomis
– Dalam pembuatan sebuah proses banyak dibutuhkan pengalokasian memori dan sumber daya.
– Alternatifnya adalah dengan penggunaan 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 sebuah proses lebih lama jika dibandingkan dengan pembuatan dan pengaturan sebuah thread.
– Pada OS Solaris, pembuatan proses lebih lama 30 kali dibandingkan pembuatan thread,
Keuntungan Thread
(lanjutan) d) Utilisasi Arsitektur Multiprosesor
– 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 disetiap waktu (satu- satuan waktu pada CPU biasa disebut time slice atau quantum).
Thread
Thread Level
Thread Level
• Thread level atau tingkatan dari thread, terbagi menjadi 2 (dua), yaitu:
1) User Threads
2) Kernel Threads
Thread Level
(lanjutan) 1) User Threads
– Biasa disebut juga sebagai thread pengguna.
– Thread yang pengaturannya dilakukan oleh pustaka thread (thread library) pada tingkatan pengguna (user). Karena pustaka thread yang menyediakan fasilitas untuk pembuatan dan penjadwalan thread, dan manajemen lainnya yang tidak didukung oleh kernel threads.
– Thread pengguna cepat untuk dibuat dan dikendalikan.
– User thread didukung oleh kernel dan diimplementasikan oleh thread library ditingkat
Thread Level
(lanjutan)
Thread Level
(lanjutan) 2) Kernel Threads
– Kernel thread didukung secara langsung oleh sistem operasi: pembentukan thread, penjadwalan, 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 user thread.
– Bagaimana pun, selama kernel mengelola thread, jika suatu thread di block tehadap sistem pemanggilan, kernel dapat menjadwalkan thread yang lain dalam aplikasi untuk dieksekusi.
– Juga, di dalam lingkungan multiprosesor, kernel dapat menjadwalkan thread dalam prosesor yang berbeda.
Thread
Multithreading Models
• Sistem operasi yang ada saat ini sudah banyak yang dapat digunakan untuk mendukung kedua threads, baik itu user threads maupun kernel threads.
• Sehingga menyebabkan model-model multithreading-nya pun menjadi
beragam atau bervariasi.
Multithreading Models
(lanjutan)
• Implementasi dari multithreading yang umum ada tiga, yaitu:
1) Model many-to-one 2) Model one-to-one
3) Model many-to-many
Multithreading Models
(lanjutan)
Multithreading Models
(lanjutan) 1) Model many-to-one
– Model many-to-one ini memetakan beberapa tingkatan pengguna thread hanya ke satu buah kernel thread.
– Managemen proses thread dilakukan oleh (di ruang) pengguna, sehingga menjadi efisien.
– Tetapi apabila sebuah thread melakukan sebuah pemblokingan terhadap sistem pemanggilan, maka seluruh proses akan berhenti (blocked).
Multithreading Models
(lanjutan)
Multithreading Models
(lanjutan) 2) Model one-to-one
– Model one-to-one memetakan setiap thread pengguna ke dalam satu kernel thread.
– Hal ini menjadikan model one-to-one lebih sinkron daripada model many-to-one.
– Yaitu dengan mengizinkan thread lain untuk berjalan ketika suatu thread membuat pemblokingan terhadap sistem pemanggilan.
– Hal ini juga mengizinkan multiple thread untuk dapat berjalan secara parallel dalam
Multithreading Models
(lanjutan)
– Kelemahan model ini adalah dalam pembuatan thread pengguna dibutuhkan pembuatan korespondensi thread pengguna.
– Karena dalam proses pembuatan kernel thread dapat mempengaruhi kinerja dari aplikasi, maka kebanyakan dari implementasi pada model ini membatasi jumlah thread yang dapat didukung oleh sistem.
– Model one-to-one diimplementasikan oleh Windows NT dan OS/2.
Multithreading Models
(lanjutan)
Multithreading Models
(lanjutan) 3) Model many-to-many
– Beberapa tingkatan thread pengguna dapat menggunakan jumlah kernel thread yang lebih kecil, atau sama dengan jumlah thread pengguna.
– Jumlah dari kernel thread dapat dispesifikasikan untuk beberapa aplikasi dan beberapa mesin (suatu aplikasi dapat dialokasikan lebih dari beberapa kernel thread dalam multiprosesor daripada dalam uniprosesor).
– Dimana model many-to-one mengizinkan pengembang untuk membuat thread pengguna sebanyak mungkin.
Multithreading Models
(lanjutan)
– Konkurensi tidak dapat tercapai karena hanya satu thread yang dapat dijadwalkan oleh kernel dalam satu waktu.
– Model one-to-one mempunyai konkurensi yang lebih tinggi, tetapi pengembang harus hati-hati untuk tidak membuat terlalu banyak thread tanpa aplikasi.
– Dan dalam kasus tertentu mungkin jumlah thread yang dapat dibuat dibatasi.
Multithreading Models
(lanjutan)
Multithreading Models
(lanjutan)
Thread
Thread Library
Thread Library
• Thread Library, atau yang lebih familiar dikenal dengan pustaka thread.
• Thread library bertugas untuk menyediakan API (Application Programming
Interface) untuk programmer dalam menciptakan dan me-manage thread.
Thread Library
(lanjutan)
• Terdapat 2 (dua) cara dalam mengimplementasikan pustaka thread, yaitu :
a) Menyediakan API dalam level pengguna tanpa dukungan dari kernel, sehingga pemanggilan fungsi tidak melalui system call.
• Sehingga jika kita memanggil fungsi yang sudah ada di pustaka, maka akan menghasilkan pemanggilan fungsi call yang sifatnya lokal dan bukan system call.
b) Menyediakan API di level kernel yang didukung secara langsung oleh sistem
operasi.
Thread Library
(lanjutan)
• Terdapat 3 (tiga) pustaka thread yang sering digunakan saat ini, yaitu:
1) POSIX Pthreads
• Implementasi POSIX standard dapat dengan cara user level dan kernel level.
2) Java
• Java API thread dapat diimplementasikan oleh Pthreads atau Win32.
3) Win32
• Sedangkan Win32 adalah kernel level.