Sistem Operasi (Operating Systems) Minggu 4

Slides:



Advertisements
Presentasi serupa
Sistem Operasi Proses Fachry Khusaini ( ) Nur Yaqin ( )
Advertisements

Tim Teaching Grant Mata Kuliah Sistem Operasi
SINKRONISASI Pertemuan 5.
Arief Cahyo S Rachmad Wahyudi S Abdul Qodir Jailani M. Choirur Rozi Rahmat Aidil FR
KONSEP PROSES Minggu ke 5.
MANAJEMEN PROSES.
KONSEP THREAD.
Dahlan Abdullah PERTEMUAN – 6 KULIAH SISTEM OPERASI SINKRONISASI & DEADLOCK.
SI 325 Konsep Sistem Operasi Minggu 3
Kernel Petra Novandi Anis Kamilah
Concurrency M-03.
Sistem Operasi (Operating Systems) Minggu 6
Sistem Operasi (Operating Systems) Minggu 5
STMIK AMIKOM YOGYAKARTA
Pertemuan 4 Manajemen Proses 2.
Sistem Operasi (Operating Systems) Minggu 7
Pertemuan 5 Server dengan Multi Proses pada Linux
Operating Systems Concept (Konsep Sistem Operasi) Minggu 14 Universitas Multimedia Nusantara Serpong, Tangerang Dr. Ananda Kusuma
Slide 10 Concurrency, Mutual Exclusion, & Synchronization
Operating Systems Concept (Konsep Sistem Operasi) Minggu 11
Sistem Operasi “Overview”
Sinkronisasi Proses Catur Iswahyudi.
Oleh : Wahyu Andhyka Kusuma
Pertemuan 3 Manajemen Proses.
Masalah Klasik Komunikasi Antar Proses
PROCESS DAN THREADS Pengertian : Program Proses MonoProgramming
SINKRONISASI.
Sistem Operasi Sinkronisasi Proses.
SINKRONISASI DAN DEADLOCK
Operating System Copyright © Mufadhol 1 SISTEM OPERASI Management Process Oleh : Mufadhol, S.Kom.
Thread.
INTERPROCESS COMMUNICATION
KONSEP THREAD.
PROSES dan PENJADWALAN (Konsep proses) By: Asriadi Pertemuan 5.
MUTUAL EXCLUSION.
PROCESS DAN THREADS PROCESS Multiprogramming Pseudoparallelism
MUTUAL EXCLUSION.
1 INTERPROCESS COMMUNICATION SEMAPHORES –Integer variable untuk menghitung jumlah wakeup –Bernilai negatif untuk menghitung jumlah permintaan yang tidak.
8.1. Multiprosesor Memori Bersama 8.2. Membangun Kepararelan Khusus Membuat Proses Simultan Threads Pengolahan Paralel/KK /1/51 8. Pemrograman Dengan.
SINKRONISASI DAN DEADLOCK
T0542 / INTERPROCESS COMMUNICATION Permasalahan: Penyampaian informasi antar proses Pengaturan proses agar tidak saling menghalangi Proper sequencing.
Sinkronisasi Proses.
Sistem Operasi Pertemuan 11.
T0542 / INTERPROCESS COMMUNICATION (LANJUTAN) SEMAPHORES Integer variable untuk menghitung jumlah wakeup Bernilai negatif bila ada permintaan yang.
1 Pertemuan 5 Komunikasi antar Proses / Interprocess Communication (IPC) Matakuliah: T0316/sistem Operasi Tahun: 2005 Versi/Revisi: 5 OFFCLASS01.
1 Pertemuan 6 Komunikasi antar Proses (IPC) Lanjutan Matakuliah: T0316/sistem Operasi Tahun: 2005 Versi/Revisi: 5 OFFCLASS01.
Thread. Thread Proses dengan thread tunggal – proses menjalankan satu tugas pada satu waktu Proses dengan thread tunggal – proses menjalankan satu tugas.
Sistem Operasi Proses dan Thread.
Wahyu nurjaya wk, st., m.kom.
Konkurensi.
SINKRONISASI.
PROSES BAB 2 By Abdul Kadir.
Processes Process Model Process Hierarchies
Sinkronisasi Proses.
“Sinkronisasi Proses”
SINKRONISASI PADA THREAD
Thread.
4 PROSES Mata Kuliah Sistem Operasi Mata Kuliah : Sistem Operasi
Konkurensi 2 Sinkronisasi dan Semaphore
Process and Tread Saifudin Anshory Abd. Chariz Fauzan Wahyu Hartono
THREAD.
Sistem Operasi: Proses
JAva Threads.
Koordinasi Antar Proses DI DALAM SISTEM TERDISTRIBUSI
Manajemen Proses Firdaus, M.T..
Konkurensi SISTEM OPERASI Slide perkuliahan
Konkurensi SISTEM OPERASI Slide perkuliahan
Sesi 5. Sinkronisasi Proses
SISTEM OPERASI MODUL Mutual exclusion Maria Cleopatra, S.Kom
Oleh : Rahmat Robi Waliyansyah, M.Kom.
Transcript presentasi:

Sistem Operasi (Operating Systems) Minggu 4 Dr. Ananda Kusuma e-mail: ananda_kusuma@yahoo.com Universitas Multimedia Nusantara Serpong, Tangerang

Agenda Review kuliah Minggu 3 Topik Minggu 4: Interprocess Communications Synchronization Mechanism Informasi quiz dan tugas kelompok studi pustaka & presentasi

Review Minggu 3 Processes & Threads

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?

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

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

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); }

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

Interprocess Communications (IPC)

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?

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

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

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

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

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

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

Mutual Exclusion: ilustrasi

Mutual exclusion with busy waiting/spinlock Strict Alternation (a) Process 0. .(b) Process 1.

Mutual exclusion with busy waiting/spinlock Peterson’s Solution

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

Synchronization Mechanism (Mekanisme sinkronisasi)

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

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

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

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

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

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

Producer-Consumer Problem menggunakan semaphores Event semaphores Hitung jumlah slot kosong Hitung jumlah slot yang terisi

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 -

Producer-consumer problem menggunakan monitor

Tugas Mandiri

Quiz 1 Pada kuliah Minggu 5 (minggu depan), jam 16.00 – 16.30 Materi kuliah Minggu 1 sampai Minggu 5.

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

Kelompok 1 Topik: Processes and Threads in Linux Referensi awal Overview of Linux (Tanenbaum, pp. 724-735) Processes in Linux (Tanenbaum, pp. 735-753) Jadwal presentasi Kuliah Minggu 6: jam 15.50-16.30

Kelompok 2 Topik: Processes and Threads in Windows Vista Referensi awal Windows Vista’s System Structure (Tanenbaum, pp. 827-857) Processes and Threads in Windows Vista (Tanenbaum, pp. 857-875) Jadwal presentasi Kuliah Minggu 7: jam 15.50-16.30

Kelompok 3 Topik: Memory Management in Linux Referensi awal Overview of Linux (Tanenbaum, pp. 724-735) Memory Management (Tanenbaum, pp. 754-767) Jadwal presentasi Kuliah Minggu 9: jam 15.50-16.30

Kelompok 4 Topik: Memory Management in Windows Vista Referensi awal Windows Vista’s System Structure (Tanenbaum, pp. 827-857) Memory Management (Tanenbaum, pp. 875-890) Jadwal presentasi Kuliah Minggu 10: jam 15.50-16.30

Kelompok 5 Topik: File Systems in Linux Referensi awal Overview of Linux (Tanenbaum, pp. 724-735) Linux File System (Tanenbaum, pp. 775-798) Jadwal presentasi Kuliah Minggu 11: jam 15.50-16.30

Kelompok 6 Topik: File Systems in Windows Vista Referensi awal Windows Vista’s System Structure (Tanenbaum, pp. 827-857) Windows NT File System (Tanenbaum, pp. 902-914) Jadwal presentasi Kuliah Minggu 12: jam 15.50-16.30

Akhir Kuliah Minggu 4 Terima kasih atas perhatiannya!