Presentasi sedang didownload. Silahkan tunggu

Presentasi sedang didownload. Silahkan tunggu

Sistem Operasi (Operating Systems) Minggu 4 Universitas Multimedia Nusantara Serpong, Tangerang Dr. Ananda Kusuma

Presentasi serupa


Presentasi berjudul: "Sistem Operasi (Operating Systems) Minggu 4 Universitas Multimedia Nusantara Serpong, Tangerang Dr. Ananda Kusuma"— Transcript presentasi:

1 Sistem Operasi (Operating Systems) Minggu 4 Universitas Multimedia Nusantara Serpong, Tangerang Dr. Ananda Kusuma

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... childPID=fork(). Code main ; parentPID=9536; childPID=9537;x=0 Heap Stack PC HP SP... childPID=fork(). Code main; parentPID=9536; childPID=0;x=0 Heap Stack PC HP SP ParentChild Copy semuanya, kecuali return dari fork()

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” cat /etc/passwd cut –f1 –d: cat /etc/passwd > /tmp/myfifocut –f1 –d: < /tmp/myfifo Unnamed pipe /tmp/myfifo

12 Contoh IPC: Shared memory SHM segment SHM Demo: create shared memory dan process untuk write dan read RAM Process 1 Process 2 Process 3 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 Sleep: system call yang menyebabkan proses yang memanggil diblock, atau ditunda (suspended) Wakup: system call yang menyebabkan proses dibangunkan, atau menjadi ready Race Condition? Shared variable apa yang tidak dilindungi?

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

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 –Lock memory bus sehingga CPU yang lain tidak dapat mengakses memory

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

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()

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 – 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 Universitas Multimedia Nusantara Serpong, Tangerang Dr. Ananda Kusuma"

Presentasi serupa


Iklan oleh Google