Sekolah Tinggi Teknologi Adisutjipto Yogyakarta
Materi Kuliah : Sistem Operasi / OS Semester Genap E.N. Tamatjita
- 0S
STTA-TF
E.N. Tamatjita -
1
Review …
Pertemuan Ke-7
Thread Bagian terkecil dari proses (program yang dieksekusi) yang dapat diatur secara independen oleh scheduler. Scheduler : Penjadwalan milik system operasi. Tugasnya adalah menjadwal penggunaan resource (prosesor) oleh proses-proses yang sedang dieksekusi. Program : berganti nama menjadi proses saat ia dipanggil (load) ke memori (RAM) dan menunggu jadwal ekseskusi / instruksi oleh prosesor. Thread seperti independent instances (tampak seperti eksekusi proses independen), maka disebut juga sebagai lightweight process). - 0S STTA-TF E.N. Tamatjita -
2
Thread terjadi … Process Thread
Thread
Thread
Dapat diatur (manage) / dieksekusi sendiri oleh Scheduler. Contoh, Multithreading : Modzilla Firefox Tab
New Tab
New Tab New Tab - 0S
STTA-TF
E.N. Tamatjita -
3
Single Threading, contohnya : Modzilla Firefox
Modzilla Firefox
Modzilla Firefox
Eksekusi oleh processor dari contoh :
Modzilla Firefox Tab T1
New Tab T2
New Tab
Proses / Thread induk
T3
Thread
… disebut Multithreading - 0S
STTA-TF
E.N. Tamatjita -
4
Processor Single Cor : T1
T2
T3
T1
T2
T3
T1
-----
Processor Multicor / Pararel : Cor 1 T1 T1 T1 T1 T1 T1
T1
-----
Cor 2
T2
-----
T2
T3
T2
T3
T2
T3
Sebagai contoh saja, artinya penjadwalan thread disamankan dengan proses biasa.
- 0S
STTA-TF
E.N. Tamatjita -
5
Kernel Thread dan User Thread Kernel Thread Dikendalikan langsung oleh Sistem Operasi. User Thread Dikendalikan oleh sebuah proses melalui sebuah thread library. Contoh, sebuah Thread induk Modzilla Firefox dieksekusi oleh Sistem Operasi : Modzilla Firefox Tab
- Ketika pengguna klik unutk membuat Tab baru, Firefox meluncurkan sebuah Thread baru, tanpa perlu memberitahu Sistem Operasi. - Dianggap sebagai anak proses, menggunakan resources yang dimiliki Firefox saja, tidak diberikan alokasi resources baru.
Modzilla Firefox Tab
New Tab Dikendalikan oleh proses melalui thread library
O/S
Dikendalikan oleh Sistem operasi (Kernel) - 0S
STTA-TF
E.N. Tamatjita -
6
3 Model Multithreading :
Kernel Thread
User Thread
One-to-one
One-to-many atau
One-to-many
Many-to-many
- 0S
STTA-TF
E.N. Tamatjita -
7
Algoritma Penjadwalan : A. First Come First Serve (FCFS) B. Shortest Job First (SJF) B.1. Non Preemptive B.2. Preemptive (Shortest-remaining-time-first) C. Priority Based Scheduling D. Round Robin Scheduling E. Multi Queue Scheduling 80% of the CPU time to foreground queue using RR (foreground) Interaktif 20% of the CPU time to foreground queue using FCFS (background) Batch Contoh : Three Queues : Q0 – RR time q = 8 ms Q1 – RR time q = 16 ms Q2 - FCFS - 0S
STTA-TF
E.N. Tamatjita -
8
Contoh A…
- 0S
STTA-TF
E.N. Tamatjita -
9
Contoh A lanjutan…
- 0S
STTA-TF
E.N. Tamatjita -
10
Contoh B.1.…
- 0S
STTA-TF
E.N. Tamatjita -
11
Contoh B.2.…
- 0S
STTA-TF
E.N. Tamatjita -
12
Contoh C…
- 0S
STTA-TF
E.N. Tamatjita -
13
Contoh D… Q=4
- 0S
STTA-TF
E.N. Tamatjita -
14
Three Queue …
- 0S
STTA-TF
E.N. Tamatjita -
15
Sinkronisasi Proses MUTUAL EXCLUSION Pentingnya Mutual Exclusion Mutual exclusion adalah persoalan untuk menjamin hanya ada satu proses yang mengakses sumber daya pada suatu interval waktu tertentu. Pentingnya mutual exclusion dapat dilihat pada dua ilustrasi berikut . A. Ilustrasi printer daemon Daemon untuk printer adalah proses penjadwalan dan pengendalian untuk mencetak berkas-berkas di printer sehingga menjadikan seolah-olah printer dapat digunakan secara simultan oleh prosesproses. Daemon untuk printer mempunyai tempat penyimpanan di harddisk (disebut spooler) untuk menyimpan berkas-berkas yang akan dicetak. Direktori spooler itu terbagi ddalam sejumlah slot. Slot berisi satu berkas yang akan dicetak. Terdapat variabel in yang menunjuk slot bebas di ruang harddisk yang dipakai untuk menyimpan berkas yang hendak dicetak.
- 0S
STTA-TF
E.N. Tamatjita -
16
Contoh Printer …
- 0S
STTA-TF
E.N. Tamatjita -
17
B. Skenario yang membuat situasi kacau Misal A dan B ingin mencetak berkas , variabel in bernilai 9 Skenario Proses A membaca variabel in bernilai 9. Belum sempat A mengerjakan proses, penjadwal menjadwalkan proses B berjalan. Prose B yang juga ingin mencetak segera membaca variable in, variabel in masih bernilai 9. Proses B dapat menyelesaikan prosesnya. Proses B menyimpan berkas B di slot 9. Proses a dijadwalkan kembali dan segera menyimpan berkas A di slot 9. Berkas B tertimpa berkas A, B tidak akan pernah mendapat cetakan. Pada contoh, terdapat kondisi yaitu 2 proses atau lebih sedang membaca atau menulis data bersama ( yaitu variabel in) dengan hasil akhir bergantung jalanya proses-proses. hasil akhir tidak bisa diprediksi , kondisi yang tidak dapat diprediksi hasilnya bergantung pada jalanya proses-proses yang bersaing disebut kondisi pacu ( race condition) Kondisi pacu harus dihilangkan agar hasil dapat diprediksi dan tidak bergantung jalanya proses-proses itu. Pokok penyelesaian permasalahan adalah sisitem harus mencegah lebih dari satu proses membaca atau menulis data bersama disaat yang bersamaan karena bagian program yang sedang mengakses memori atau sumber daya yang dipakai bersama dapat menimbulkan kondisi pacu/critical section/region. Kesuksesan proses-proses konkuren memerlukan pendefinisian critical section dan memaksakan mutual exclusion diantaraproses-proses konkuren yang sedang berjalan. Penyelesaian mutual exclusion merupakan landasan pemrosesan konkuren..
- 0S
STTA-TF
E.N. Tamatjita -
18
Hasil …
- 0S
STTA-TF
E.N. Tamatjita -
19
C.1. Algoritma Peterson… Mekanisme kerja Peterson adalah sebagai berikut: Sebelum masuk critical_section, proses memanggil enter_critical_section. Sebelum memanggil enter_critical_section, proses memeriksa sampai kondisi aman untuk enter_critical_section. Terjadi busy Waiting. Setelah selesai di critical section, proses menandai pekerjaan telah selesai dan mengizinkan proses lain masuk. Skenario Keadaan awal adalah tidak ada proses di critical_section. Proses o akan masuk critical section. Proses menandai elemen array-nya dan menge-set turn ke o. Proses memeriksa kondisi untuk masuk critical region. Karena proses 1 tidak berkepentingan (elemen interested tidak di tandai) maka prosedur enter_critical_section segera dilaksanakan. Jika kemudian, proses 1 akan masuk critical section. Proses akan menunggu sampai interested[0] menjadi FALSE. Kondisi ini hanya terjadi ketika proses 0 menge-set elemen itu yaitu ketika keluar dari critical section. Metode ini terjadi busy waiting, yaitu proses harus menghabiskan jatahnya untuk memeriksa kondisi. Skenario proses o dan 1 memanggil enter_critical_section hamper simultan Keduanya menyimpan normor proses di turn, yang terakhir dipertimbangkan, yang terdahulu hilang karena ditimpa. Misalnya, proses 1 menyimpan lebih akhir maka turn bernilai 1. Ketika kedua proses mengeksekusi pernyataan while, proses o mengeksekusi o kali dan memasuki critical_section. Proses 1 loop dan tidak memasuki critical_section. Dengan algoritma Peterson, proses-proses dapat masuk critical section dengan aman tanpa terganggu proses lain. Penyelesaian Peterson dapat di generalisasi untuk banyak proses konkuren secara mudah, tidak Cuma untuk dua proses. - 0S
STTA-TF
E.N. Tamatjita -
20
Peterson …
- 0S
STTA-TF
E.N. Tamatjita -
21
C.2. Algoritma Peterson… Algoritma 1 Pemecahan ini menjamin hanya satu proses pada satu waktu yang dapat berada di critical section. Tetapi hal ini tidak memuaskan kebutuhan progress, karena hal ini membutuhkan proses lain yang tepat pada eksekusi dari critical section. Sebagai contoh, apabila turn=0 dan P1 siap untuk memasuki critical section, P1 tidak dapat melakukannya, meskipun P0 mungkin di dalam remainder section – nya. Algoritma 2 Kelemahan dengan algoritma 1 adalah tidak adanya informasi yang cukup tentang state dari masing-masing proses. Untuk mengatasi masalah ini dilakukan penggantian variabel turn dengan array. Pemecahan ini menjamin mutual exclusion, tetapi masih belum memenuhi progres. Algoritma 3 Algoritma ini merupakan kombinasi algoritma 1 dan algoritma 2. Harapannya akan didapatkan solusi yang benar untuk masalah critical-section, dimana proses ini menggunakan dua variabel Algoritma ketiga ini memenuhi ketiga kebutuhan diatas yaitu mutual exclusion, progres dan bounded waiting dan memecahkan permasalahan critical section untuk dua proses. - 0S
STTA-TF
E.N. Tamatjita -
22
D. Algoritma Bakery Algoritma Bakery adalah algoritma yang digunakan untuk pemecahan permasalahan critical section pada n proses. Sebelum memasuki critical section, proses menerima nomo. Proses yang mempunyai nomor terkecil dapat memasuki critical section. Jika proses Pi dan Pj menerima nomor yang sama, jika i < j maka Pi dilayani lebih dahulu, sebaliknya Pj akan dilayani lebih dahulu. Skema pemberian nomor selalu membangkitkan nomor dengan menaikkan nilai urut misalnya 1, 2, 3, 3, 3, 3, 4, 5, … …..
- 0S
STTA-TF
E.N. Tamatjita -
23
*** Selamat UTS
Daftar Pustaka : 1.Silberschatz, Abraham et all, 2013, ”Operating System Concepts”, Ninth Edition, John Wiley & Sons, Inc., Virginia, New Jersey. 2. Stallings, William, 2014, ”Operating Systems. Internals and Design Principles”, Eighth Edition, Prentice Hall, Upper Saddle River, New Jersey. 3. Tanenbaum, Andrew S., 2014, ”Modern Operating Systems”, Fourth Edition, Prentice Hall, Upper Saddle River, New Jersey. 4. http://jerseybiru.wordpress.com/2013/04/25/mutual-exclusion-dandeadlock/#more-142, diakses hari Kamis, tanggal 28 April 2016, jam 23:00 WIB
- 0S
STTA-TF
E.N. Tamatjita -
24