Presentasi sedang didownload. Silahkan tunggu

Presentasi sedang didownload. Silahkan tunggu

Sistem Operasi (Operating Systems) Minggu 4

Presentasi serupa


Presentasi berjudul: "Sistem Operasi (Operating Systems) Minggu 4"— Transcript presentasi:

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!


Download ppt "Sistem Operasi (Operating Systems) Minggu 4"

Presentasi serupa


Iklan oleh Google