300 likes | 613 Views
MANAJEMEN PROSES. Komunikasi antar proses. Komunikasi antar Proses. Sistem Sekuential Vs Konkurensi Sistem Sekuential Awalnya, proses-proses dijalankan secara sekuential atau berurutan. Suatu proses dieksekusi sampai selesai, baru kemudian pindah ke proses yang lain
E N D
Komunikasi antar Proses • Sistem Sekuential Vs Konkurensi • Sistem Sekuential • Awalnya, proses-proses dijalankan secara sekuential atau berurutan. • Suatu proses dieksekusi sampai selesai, baru kemudian pindah ke proses yang lain • Utilitas prosesor sangat rendah
Sistem Konkurensi Sistem yang memiliki sejumlah aktifitas yang sedang berjalan secara “bersamaan” Ex: proses membangun rumah Sistem Paralel (multiprocessing) -terjadi overlapping Sistem Konkurensi • Multitasking • Penjadwalan • interleaving
Konsekuensi dari multitasking - Proses tidak saling mempengaruhi ex: Ms Word & Winamp - Proses saling mempengaruhi secara tidak langsung ex: Ms Word & notepad mengakses file bersama-sama - Proses saling mempengaruhi secara langsung ex: Internet browser & web server harus bersama-sama menyediakan pages bagi user
Masalah-masalah yang timbul akibat perebutan sumber daya pada suatu proses: • RACE CONDITION • CRITICAL SECTION • MUTUAL EXCLUSION DG BUSY WAITING • MUTUAL EXCLUSION DG SLEEP & WAKEUP • MUTUAL EXCLUSION DG SEMAPHORE • EVENT COUNTER • MUTUAL EXCLUSION DG MONITOR • KOMUNIKASI ANTAR PROSES DG METODE MESSAGE PASSING
RACE CONDITION • Sebagian besar Sistem Operasi, sering memakai bersama memori (share memory), dimana setiap proses dapat membaca dan menulis. • Share memory dapat terjadi dalam memori utama atau berupa share file. • Lokasi share memory tidak merubah sifat dasar komunikasi. • Contoh :
Pada contoh diatas hasilnya yang diharapkan adalah 15 tetapi hasil yg didapat adalah 5. • Kondisi diatas disebut RACE CONDITION. • RACE CONDITION adalah • Kondisi tidak menentu yg diakibatkan oleh pengaksesan data yg sama oleh dua proses atau lebih.
CRITICAL SECTION • Bagian dari suatu program dimana terjadi pengaksesan terhadap share memory atau share file yg dapat mengakibatkan terjadinya race condition. • Cara yg dapat dilakukan untuk menghindari terjadi race condition : • Mencegah situasi seperti contoh diatas dan mencegah situasi-situasi lain yg melibatkan share memory, share file, dan share resource lainnya. • Melarang lebih dari satu proses melakukan pembacaan dan penulisan data pada lokasi yg sama secara bersamaan. • Jika ada satu proses sedang menggunakan share variabel atau share file, maka proses yg lain dilarang masuk ke pekerjaan yg sama.
Ditawarkan suatu solusi untuk menghindari terjadinya race condition yg lebih dikenal sebagai mutual excluion. • Kriteria Mutual Exclusion : • Tidak boleh ada 2 proses atau lebih yg berada dalam satu critical section • Jangan berasumsi dengan kecepatan running CPU dan jumlah CPU • Tidak boleh ada proses diluar critical section yg memblok atau menghalangi proses lain masuk ke critical section • Tidak boleh ada proses yg menunggu terus, untuk masuk ke critical section
Pengelolaan lifecycle Process • Penciptaan proses • SO akan menerbitkan suatu nomor ID untuk proses yang diciptakan. • SO akan membuat data record dengan ID tersebut, kemudian menyisipkan pada struktur data di memori utama yang disebut process table • SO akan mengalokasi ruang memori utama untuk menyimpan image proses. • Inisialisasi PCB • Masuk ke antrian ready. Status ready
Penghentian Proses • Mengembalikan hasil output ke parent process (proses yang menciptakannya) • Menghapus rekaman proses di semua antrian dan tabel proses. • SO akan menghapus PCB dan image process. Semua recources dikembalikan ke SO Setelah selesai, SO akan melakukan penjadwalan (scheduling) untuk memilih proses lain untuk dieksekusi
Status Proses New • Model 3 status • Ready • Running • Blocked • Transitions between states 1 - Process enters ready queue 2 - Scheduler picks this process 3 - Scheduler picks a different process 4 - Process waits for event (such as I/O) 5 - Event occurs 6 - Process exits 7 - Process ended by another process 1 Ready 2 5 3 Blocked(waiting) Running 4 7 6 7 Exit
Ada 4 transisi yang mungkin terjadi pada suatu proses : • Running ke Blocked • Transisi ini terjadi bila suatu proses tidak bisa dilanjutkan karena peralatan input belum siap • Running ke Ready • Transisi ini terjadi saat scheduler memutuskan bahwa suatu proses telah cukup lama sehingga perlu menghentikan sementara • Ready ke Running • Transisi ini dilakukan ketika semua proses telah memperoleh giliran semua, maka proses pertama akan running kembali. Jika sudah tidak ada lagi proses yg sedang dieksekusi, maka transisi akan segera dihidupkan dan proses yg sedang ready segera masuk kembali. • Blocked ke Ready • Terjadi saat ada peristiwa lain diluar dirinya membangunkan proses tersebut yang selama ini sedang tertidur
Process switching • Ketika suatu proses yang sedang running sudah habis jatah waktu eksekusinya, maka SO bertanggung jawab mengalihkan eksekusi ke proses lainnya. • Proses penggantinya scheduler • Pengalihan eksekusinya dispatcher
Berbagai penyebab process switching • Interupsi - aksi eksternal a. interupsi waktu b. interupsi piranti I/O c. interupsi kesalahan memori utama • Trap kesalahan/kondisi khusus (exception condition) • Supervisor call atau system call
Tabel Proses (Process Table) • Untuk mengimplementasikan model proses, sistem operasi membuat suatu tabel yg disebut TABEL PROSES. • Mencatat informasi mengenai status dari setiap proses • Informasi ini akan digunakan SO untuk mengatur penjadwalan eksekusi proses. • Umumnya diimplementasikan dengan link list
Setiap proses mempunyai record dalam tabel tersebut, dimana tiap record terdiri dari beberapa field yg berisi informasi tentang : • Status proses • Program Counter • Stack Pointer • Alokasi Memori • Status File yang dibuka • Informasi perhitungan dan penjadualan • Informasi-informasi lain mengenai proses tersebut.
Masing-masing record menuju image (alokasi memori utama) • Sebuah process image memiliki elemen-elemen: • Data pengguna (User data) berisi data-data program • Kode program (User program) berisi kode-kode instruksi program • Sistem stack (user stack) menyimpan parameter dan alamat dari prosedur • Process Control Block (PCB) menyimpan informasi yang diperlukan SO dalam menjalankan proses.
PCB (Process Control Block ) • Dalam multitasking, banyak informasi yang perlu dikumpulkan dari masing-masing proses agar pengaturan dapat dilakukan dengan baik. • Informasi ini terletak dalam sebuah Process Control Block.
PCB (Process Control Block ) • Setiap proses direpresentasikan kedalam sistem operasi oleh PCB • PCB meliputi informasi yang berhubungan dengan proses: • Process state • Program counter • CPU registers • CPU scheduling information • Memory-management information • Accounting information • I/O status information
Elemen data yang terdapat pada suatu PCB dapat dikelompokkan dalam 3 kategori: 1. Process identification berkaitan dengan identifikasi proses secara unik. Elemen yang termasuk: ID proses, ID proses parent, ID user. 2. terdiri dari register-register prosesor. Elemen yang termasuk: user-visible register, control and status register dan stack pointer
3. Process control information berisi informasi yang diperlukan SO untuk mengendalikan beragam proses yang aktif. Elemen yang termasuk: a. Scheduling and state information b. data structuring c. Interprocess communication d. process privileges e. memory management f. Resource ownership and utilization