Upload presentasi
Presentasi sedang didownload. Silahkan tunggu
Diterbitkan olehWildan Arum Telah diubah "9 tahun yang lalu
1
Sistem Operasi (Operating Systems) Minggu 4
Dr. Ananda Kusuma Universitas Multimedia Nusantara Serpong, Tangerang
2
Agenda Review kuliah Minggu 3 Topik Minggu 4:
Interprocess Communications Synchronization Mechanism Informasi quiz dan tugas kelompok studi pustaka & presentasi
3
Review Minggu 3 Processes & Threads
4
Process vs Thread Apa itu Process?
Jelaskan three-state model: state, transition dan event Apa itu Thread? Kenapa Thread diperlukan? Keuntungan dan kelemahan user-level dan kernel-level threads?
5
Contoh program: process creation using fork
... int main() { int parentPID,childPID,x=0; parentPID = getpid(); childPID = fork(); if (childPID == 0) printf("In child process\t %d\t%d\n",parentPID,getpid()); x = 5; printf("Child: x = %d\n",x); } else printf("In parent process\t %d\t%d\n",parentPID,childPID); x = 11; printf("Parent: x = %d\n",x);
6
Address spaces saat fork() dieksekusi
Copy semuanya, kecuali return dari fork() Parent Child ... childPID=fork() . Code main; parentPID=9536; childPID=9537;x=0 Heap Stack PC ... childPID=fork() . Code main; parentPID=9536; childPID=0;x=0 Heap Stack PC HP SP SP HP
7
Contoh program: thread creation
... int g1 = 0; void task1(int *counter) { g1 = 10; } void task2(int *counter) { g1 = 20; } int main() { pthread_t thrd1,thrd2; int a=1,b=2,ret; ret = pthread_create(&thrd1,NULL,(void *)task1,(void *)&a); ret = pthread_create(&thrd2,NULL,(void *)task2,(void *)&b); pthread_join(thrd2,NULL); pthread_join(thrd1,NULL); }
8
Address space Global variable digunakan oleh ketiga threads
Heap Stack PC SP PC1 PC2 SP1 SP2 g1 Variable g1 dapat digunakan oleh ketiga threads Nilai akhir tergantung urutan eksekusi threads Race condition
9
Interprocess Communications (IPC)
10
Pendahuluan Processes perlu bekerja sama untuk efisiensi penggunaan sistem Karena tiap process merupakan entitas independen yang dilindungi oleh kernel, diperlukan mekanisme yang diatur kernel untuk Penyaluran informasi antar process Pengaturan process agar tidak saling menghalangi Pengurutan (proper sequencing) bila ada dependencies IPC dapat dilakukan via file, signal, socket, message queue, pipe, named pipe, semaphore, shared memory, message passing Bagaimana dengan komunikasi antar threads?
11
Contoh IPC: unamed pipe dan named pipe (FIFO)
“cat /etc/passwd | cut –f1 –d:” “cut –f1 –d: < /tmp/myfifo” dan “cat /etc/passwd > tmp/myfifo” cat /etc/passwd cut –f1 –d: Unnamed pipe cat /etc/passwd > /tmp/myfifo /tmp/myfifo cut –f1 –d: < /tmp/myfifo
12
Contoh IPC: Shared memory
RAM Demo: create shared memory dan process untuk write dan read SHM segment SHM Process 1 Process 3 Process 2 Process 4
13
Race Condition Terdapatnya processes yang bekerja pada shared media/resources (memory, file system, i/o port, dsb) secara concurrent dapat menimbulkan masalah race condition Race condition terjadi apabila hasil dari suatu operasi ditentukan oleh urutan (ordering) dari process pada data yang di-shared Penjadwalan (scheduling) process sendiri dikendalikan oleh CPU, sehingga race condition ini memberikan hasil operasi yang sifatnya non-deterministic di sisi pengguna Mempersulit debugging karena errors intermittent (kadang muncul, kadang tidak) Programmer perlu memahami di mana problem ini dapat muncul dan mempersiapkan langkah-langkah antisipasi
14
Illustrasi Race Condition: Printer spooler
Printer daemon secara periodik memeriksa spooler directory untuk mengambil file yang akan di-print Ada dua shared variables: in dan out The next file to be printed The next free slot
15
Critical Region/Section
Bagian dari program di mana terdapat shared data/resources yang apabila diakses secara bersamaan oleh beberapa process dapat menghasilkan hasil yang non-deterministic/inconsistent atau yang tidak diinginkan seperti deadlock, starvation. Untuk itu diperlukan suatu kondisi agar tidak ada process yang mempengaruhi suatu data/resource yang sedang dipakai oleh suatu process atau dengan kata lain penggunaan ekslusif Mutual Exclusion
16
Critical Region: kondisi ideal
Tidak ada dua process yang berada di critical region pada saat yang bersamaan Tidak ada asumsi mengenai kecepatan dan jumlah CPU Tidak ada process yang berada di luar critical region menghalangi (blocking) process yang lain Tidak ada process yang menunggu selamanya untuk masuk ke critical region
17
Mutual Exclusion: ilustrasi
18
Mutual exclusion with busy waiting/spinlock
Strict Alternation (a) Process 0. .(b) Process 1.
19
Mutual exclusion with busy waiting/spinlock
Peterson’s Solution
20
Producer and Consumer (Bounded-buffer problem) dengan sleep and wakeup system call
Race Condition? Shared variable apa yang tidak dilindungi? Sleep: system call yang menyebabkan proses yang memanggil diblock, atau ditunda (suspended) Wakup: system call yang menyebabkan proses dibangunkan, atau menjadi ready
21
Synchronization Mechanism (Mekanisme sinkronisasi)
22
Mekanisme sinkronisasi
Hardware Disable interrupts TSL (Test and Set Lock) Instruction Software (teknik-teknik pemrograman) Condition/lock variable Semaphore Mutex Monitor Message passing Barriers Implementasi: busy-waiting atau blocked
23
Hardware (1) Disable interrupts
Process mematikan (disable) semua interrupt setelah memasuki critical region, dan menghidupkan kembali (re-enable) sebelum meninggalkannya Sebaiknya tidak dilakukan oleh user process. Kenapa? Masih ada problem untuk multiprocessor /multicore system Saat interrupts pada satu CPU dimatikan, CPU yang lain masih tetap dapat berjalan dan mengakses shared memory
24
Hardware (2) TSL (Test and Set Lock) Instruction
Lock memory bus sehingga CPU yang lain tidak dapat mengakses memory Berguna untuk multiprocessor system JNE: Jump If Not Equal
25
Semaphores Variable integer khusus yang dikelola oleh OS (diimplementasikan via system calls) dan digunakan untuk menghitung jumlah blocked/sleeps dan unblocked/wakeups Arti nilai semaphore S: Kalau positif jumlah process yang bisa decrement (turunkan satu) S tanpa blocking Kalau negatif jumlah process yang sedang sleep/blocked dan menunggu untuk dibangunkan/wakeup/un-blocked Kalau nol tidak ada process yang menunggu, tapi kalau di-decrement (turunkan satu), process ini akan di-blocked Arti nilai semaphore: Kalau positif, artinya nilai tersebut menunjukkan jumlah process yang bisa decrement S tanpa blocking Kalau negatif, artinya nilai tersebut menunjukkan jumlah process yang sedang sleep/blocked dan menunggu untuk dibangunkan/wakeup/unblocked Jika zero, artinya tidak process yang menunggu, tapi kalau di-decrement, process ini akan blocked
26
Operations on Semaphore S
Down(S) S = S - 1 If (S<0) then the calling process is put to sleep/blocked Up(S) S = S + 1 If (S = 0) then wakeup/unblock the sleep/blocked process Operasi Up() dan Down() bersifat atomic Artinya saat operasi dimulai, dia tidak dapat diinterupsi sampai operasi selesai, atau sama sekali tidak dijalankan Notasi yang lain menurut karya tulis dari Dijkstra (pengusul konsep semaphore: P() = Down() V() = Up() Arti nilai semaphore: Kalau positif, artinya nilai tersebut menunjukkan jumlah process yang bisa decrement S tanpa blocking Kalau negatif, artinya nilai tersebut menunjukkan jumlah process yang sedang sleep/blocked dan menunggu untuk dibangunkan/wakeup/unblocked Jika zero, artinya tidak process yang menunggu, tapi kalau di-decrement, process ini akan blocked atomic action, artinya saat semopher operation dimulai, dia tidak dapat diinterupsi sampai operasi selesai atau blocked
27
Mutex Variable menggunakan Binary Semaphore
Mutex variable 2 states yaitu unlocked dan locked Untuk melindungi critical region Binary semaphore hanya ada 2 kemungkinan nilai yaitu 0 dan 1 Inisialisasi semaphore ke nilai 1 Agar hanya ada satu process berada di critical region yang dilindungi oleh semaphore, maka lakukan Down() untuk masuk critical region Up() untuk keluar dari critical region Contoh: semaphore mutex = 1; down(&mutex); /* Critical Section */ up(&mutex);
28
Producer-Consumer Problem menggunakan semaphores
Event semaphores Hitung jumlah slot kosong Hitung jumlah slot yang terisi
29
Monitors Higher level synchronization (language concept)
Kumpulan procedure, variable, dan struktur data yang dikelompokkan menjadi satu modul atau package Process dapat memanggil procedures yang ada di dalam monitor, tapi tidak dapat mengakses struktur data dari monitor Hanya ada satu process yang aktif di dalam monitor pada satu waktu Compiler membuat call ke monitor procedures berbeda dengan procedures biasa ada beberapa instruksi ditambahkan untuk memeriksa apakah ada process lain yang sedang aktif di dalam monitor -
30
Producer-consumer problem menggunakan monitor
31
Tugas Mandiri
32
Quiz 1 Pada kuliah Minggu 5 (minggu depan), jam 16.00 – 16.30
Materi kuliah Minggu 1 sampai Minggu 5.
33
Studi Pustaka dan Presentasi
Tujuan Menggunakan teori-teori yang telah dipelajari untuk melakukan kajian pada sistem operasi Linux dan Windows Vista Memberikan kesempatan siswa melatih diri untuk menyampaikan ide-ide, pendapat, pertanyaan dalam format seperti seminar Penilaian Penguasaan materi (40%) Aspek presentasi (30%) Partisipasi dan interaksi (30%)
34
Kelompok 1 Topik: Processes and Threads in Linux Referensi awal
Overview of Linux (Tanenbaum, pp ) Processes in Linux (Tanenbaum, pp ) Jadwal presentasi Kuliah Minggu 6: jam
35
Kelompok 2 Topik: Processes and Threads in Windows Vista
Referensi awal Windows Vista’s System Structure (Tanenbaum, pp ) Processes and Threads in Windows Vista (Tanenbaum, pp ) Jadwal presentasi Kuliah Minggu 7: jam
36
Kelompok 3 Topik: Memory Management in Linux Referensi awal
Overview of Linux (Tanenbaum, pp ) Memory Management (Tanenbaum, pp ) Jadwal presentasi Kuliah Minggu 9: jam
37
Kelompok 4 Topik: Memory Management in Windows Vista Referensi awal
Windows Vista’s System Structure (Tanenbaum, pp ) Memory Management (Tanenbaum, pp ) Jadwal presentasi Kuliah Minggu 10: jam
38
Kelompok 5 Topik: File Systems in Linux Referensi awal
Overview of Linux (Tanenbaum, pp ) Linux File System (Tanenbaum, pp ) Jadwal presentasi Kuliah Minggu 11: jam
39
Kelompok 6 Topik: File Systems in Windows Vista Referensi awal
Windows Vista’s System Structure (Tanenbaum, pp ) Windows NT File System (Tanenbaum, pp ) Jadwal presentasi Kuliah Minggu 12: jam
40
Akhir Kuliah Minggu 4 Terima kasih atas perhatiannya!
Presentasi serupa
© 2024 SlidePlayer.info Inc.
All rights reserved.