MANAJEMEN PROSES Syafiul Muzid, ST.

Slides:



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

PERTEMUAN KE-4 Heintje Hendrata, S.Kom. MANAJEMEN PROSES TIK : Mahasiswa dapat memahami konsep dasar proses Heintje Hendrata, S.Kom.
Proses di Linux.  Proses adalah satuan eksekusi program  Proses di Linux preemptive saat:  1. Waktu kuantumnya telah habis  2. ada proses baru yang.
Sistem Operasi Proses Kelompok 2 Azizah Zahratul Firdausi ( )
Oleh : Kelompok 2 Irawan ( ) Alifuddin Wachid ( ) Retno Ayu Apriliati ( ) “Proses Sistem Operasi” G.
Manajemen Proses Pertemuan IV dan V.
Pertemuan 3 Manajemen proses Manajemen Proses.
KONSEP PROSES Minggu ke 5.
Manajemen proses Manajemen Proses.
MANAJEMEN PROSES.
KONSEP THREAD.
Proses Ali akbar. KONSEP PROSES Proses adalah program yang sedang dieksekusi. Eksekusi proses dilakukan secara berurutan. Dalam suatu proses terdapat.
Versi 1, 2013CCS113 – SISTEM OPERASIFASILKOM PERTEMUAN 5 PROSES DAN THREAD 1.
Manajemen Proses.
Sistem Terdistribusi 04 – Remote Procedure Call Oleh : Muh. Ary Azali.
Pertemuan 03- Konsep Proses
Versi 1, 2013CCS113 – SISTEM OPERASIFASILKOM PERTEMUAN 6 PROSES DAN THREAD 2.
KOMUNIKASI Perkembangan Teknologi Informasi (TI)
Pertemuan 4 Manajemen Proses 2.
Pertemuan 3 Manajemen Proses.
Proses Oleh : Wahyu Andhyka Kusuma
Sinkronisasi dan Deadlock Proses
Operating System Copyright © Mufadhol 1 SISTEM OPERASI Management Process Oleh : Mufadhol, S.Kom.
Inter Process Communication
REMOTE SERVICE.
Proses Konsep Proses Penjadwalan Proses Operasi pada Proses
Proses.
Proses Ida Nurhaida, ST., MT..
Mata Kuliah Sistem Operasi
PERTEMUAN KE-9 PERKULIAHAN SISTEM OPERASI
SISTEM OPERASI Pertemuan 4 : Penjadwalan
PROSES dan PENJADWALAN (Konsep proses) By: Asriadi Pertemuan 5.
MANAJEMEN PROSES PART 2 Dosen : Ahmad Apandi, ST
PENJADWALAN PROSES.
Struktur Sistem Komputer
PENJADWALAN PROSES DAN IMPLEMANTASI Sistem operasi komputer
SISTEM OPERASI Dosen Pengampu : Erfanti Fatkhiyah, ST., M.Cs.
Proses dan Sinkronisasi
PROSES.
PROSES & THREADS Disajikan Oleh :.
Model Sistem.
Komunikasi (Sistem Terdistribusi).
Proses Dosen: Abdillah S.Si., MIT.
Mobile Computing 7 Middleware.
Struktur Sistem Operasi
Thread.
4 PROSES Mata Kuliah Sistem Operasi Mata Kuliah : Sistem Operasi
Process and Tread Saifudin Anshory Abd. Chariz Fauzan Wahyu Hartono
THREAD.
Struktur Sistem Komputer
SISTEM OPERASI PERTEMUAN VI.
PROSES.
Manajemen Proses Firdaus, M.T..
Oleh : Rahmat Robi Waliyansyah, M.Kom.
Struktur Sistem Operasi
SISTEM OPERASI PERTEMUAN VI.
Hendy Mizuardy SISTEM OPERASI. MANAJEMEN PROSES Konsep Proses Definisi Proses Status Proses Process Control Block (PCB) Konsep Penjadwalan Queue Scheduling.
PROSES.
Manajemen Proses.
Manajemen Proses.
Proses Secara informaladalah program proses dalam eksekusi prosesadalah lebih dari kode program, yang kadang-kadang dikenal sebagai bagian teks. proses.
Struktur Sistem Komputer
SISTEM OPERASI MODUL Proses Yuli Haryanto, M.Kom
TEKNIK KOMPILASI PERTEMUAN VI.
SISTEM OPERASI Mata Kuliah
Struktur Sistem Operasi
SISTEM OPERASI MODUL Proses Maria Cleopatra, S.Kom
KONSEP PROSES Minggu ke 5.
PROSES. Definisi Proses Proses adalah program yang sedang dieksekusi, termasuk didalamnya nilai-nilai dalam program counter, register, dan variabel-variabel.
Fathiah, S.T.,M.Eng Universitas Ubudiyah Indonesia
Transcript presentasi:

MANAJEMEN PROSES Syafiul Muzid, ST. Jurusan Sistem Informasi, Fakultas Teknik, Universitas Muria Kudus

Sasaran Mahasiswa paham tentang apa itu proses. Mahasiswa mengetahui bagian-bagian proses. Mahasiswa bisa memahami model-model penjadwalan proses.

Pembahasan Konsep Proses Penjadualan Proses Operasi-operasi pada Proses Cooperating Processes Interprocess Communication Komunikasi pada Sistem Client-Server

Apa itu Proses?

Konsep Proses Proses = job = task Proses : suatu program yang sedang dieksekusi. Proses memiliki status jalannya eksekusi yaitu minimal informasi berikut : Program counter : menunjukkan instruksi berikutnya yang akan dieksekusi Register : data hasil eksekusi antara proses Stack : tempat penyimpanan temporary data yang dibutuhkan selama program dieksekusi Data section : mengandung variabel global dari suatu proses. Proses = job = task

Perkembangan Konsep Proses Konsep proses berkembang sejalan dengan modus operasi sistem komputer : Fase monoprogramming : pada suatu saat di memori hanya sebuah program yang sedang dijalankan (mungkin disertai suatu monitor proses) Fase multiprogramming : pada suatu saat di memori bisa terdapat beberapa program yang sedang dijalankan.

Konsep Proses Monoprogramming load ke memori (proses monitor atau operator), dieksekusi (kontrol diberikan pada proses), Selesai (sukses atau abort), kemudian kontrol dikembalikan ke (proses monitor atau operator) Status proses direkam dan di-print hanya diperlukan untuk keperluan debugging

Konsep Proses Multiprogramming Karena adanya sejumlah program yang di-load dimemori dalam status sedang dijalankan (banyak program), maka setiap saat jumlah aktual proses yang dieksekusi maksimum sama dengan jumlah CPU Untuk pembahasan konsep proses selanjutnya akan berdasarkan paradigma ini

Status Proses Selama eksekusinya proses berada dalam salah satu dari status-status berikut ini : New : proses sedang di-create Running : instruksi-instruksi sedang dieksekusi Waiting : proses sedang menunggu terjadinya event-event tertentu Ready : proses menunggu di-assign ke prosesor Terminated : proses selesai eksekusi Suspended: penundaan

Diagram Status Proses

Process Control Block (PCB) Agar suatu proses yang running, lalu waiting/ready, dan kemudian running kembali dapat meneruskan proses tanpa kehilangan konteks maka diperlukan struktur data untuk menyimpan informasi dan status proses, disebut Process Control Block (PCB) Satu blok digunakan untuk satu proses dan isinya bisa bervariasi dari proses ke proses

Informasi dalam PCB Informasi Manajemen Memori Informasi Accounting Posisi program di memori, dll Informasi Accounting Jumlah waktu eksekusi/elapse, time limit, account/job number, dll InforAmasi Status I/O List dari I/O device yang dialokasi proses, list file yang status sedang dibuka (baca/tulis), dll

Process Control Block (PCB)

Proses-proses dari Memori Utama ke Register

CPU Switch dari Proses ke Proses

Scheduling Proses Dalam multiprogramming sejumlah proses yang running secara concurrent akan menggunakan resources : CPU dan devices Jika hanya ada satu prosesor (uniprosesor) maka hanya satu proses setiap saat yang benar-benar running dan yang lainnya menunggu (waiting) dalam queue atau melakukan aktifitas I/O

Queue untuk Scheduling Job queue berisi seluruh proses di dalam sistem. Ready queue berisi proses-proses yang berada di memori dan siap (ready)/ menunggu (wait) untuk dieksekusi. Device queue – proses-proses yang menunggu giliran penggunaan device tertentu. Proses berpindah antara bermacam-macam queue

Ready Queue dan I/O Device Queues

Representasi Process Scheduling = queue (ready queue & device queue) = resource yang melayani queue

Scheduler Short-term scheduler (CPU scheduler) Bertugas menjadwalkan alokasi pemroses diantara proses-proses ready yang berada di memori utama. Memilih proses mana yang harus dieksekusi berikutnya dan mengalokasi CPU untuknya Lebih sering (milisecond)  (must be fast)

Scheduler Medium-term scheduler Selama eksekusi, suatu proses mungkin ditunda (suspended) karena membuat permintaan system calls. Maka proses harus dipindah ke memori sekunder supaya memori utama bisa dipakai oleh proses yg lain. Proses pemindahan ini disebut swapping. Bertugas menangani proses yang swapping. Jika kondisi proses yang tertunda hilang, maka proses dikembalikan ke memori utama dan Ready.

Scheduler Long-term scheduler (job scheduler) Memilih proses yang mana yang harus dibawa ke dalam ready queue. Menentukan degree of multiprogramming (urutan prioritas proses) Lebih jarang (second, minute)  (may be slow)

Status Proses - Scheduler long-term scheduler short-term scheduler

Diagram Perpindahan Proses Swap out Swap in Baru terproses sebagian & di swap-out sementara Ready queue I/O waiting queue I/O CPU medium term scheduler new end long-term scheduler short-term scheduler

Status Proses - Update

I/O vs CPU Bounds Proses-proses dapat dideskripsikan sbb : I/O-bound process : proses-proses yang melakukan I/O dalam jumlah waktu yang lebih banyak daripada untuk komputasi; banyak terdapat CPU burst yang pendek CPU-bound process : proses-proses yang melakukan lebih banyak komputasi; beberapa CPU burst yang panjang

Context Switch Saat CPU dipindahkan dari suatu proses ke proses yang lain sistem harus menyimpan status dari proses lama dan me-load status proses yang baru Tugas ini dilakukan oleh context switch Waktu untuk context-switch merupakan overhead (waktu sistem “terbuang” saat switching) Jumlah waktu ini bergantung pada dukungan Hardware

Operasi pada Proses-proses Dalam multiprogramming akan ada proses yang baru mulai, dan ada proses yang selesai, disamping proses-proses yang sedang running Untuk dapat dimanage maka diperlukan mekanisme tertentu untuk menangani aktifitas create dan terminate proses

Proses Creation Mekanisme “ayah-anak” atau “parent-child” : proses “parent” meng-create proses “child” yang juga dapat meng-create proses-proses lainnya membentuk pohon (tree) dari proses-proses Pada fase-fase awal : code dari user program di-load ke memori, control dialihkan ke program, proses berjalan hingga selesai/abort, dan control kembali ke monitor

Modus-modus saat Create Proses (1) Dalam hal resource sharing Parent & child men-share semua resource Child men-share subset dari resource-resource milik parent Parent & child tidak men-share apa pun Dalam hal eksekusi Parent & child dieksekusi secara concurrent Parent menunggu hingga child terminate

Modus-modus saat Create Proses (2) Dalam hal address space : Child menduplikasi milik parent Child memiliki suatu program yang akan di-load ke dalamnya Contoh UNIX System call fork() meng-create proses baru System call execve() digunakan setelah itu untuk mengganti memory space dari proses dengan program yang baru

Proses Tree pada UNIX System

Process Termination suatu proses mengalami terminasi akibat inisiatif child atau parent

Terminasi karena Child Proses mengeksekusi statement terakhir yang juga meminta OS untuk menghapusnya (misalnya dengan exit()) Data output dihasilkan child kepada parent ( misalnya sebagai return dari fork() ) Resource-resource proses didealokasi oleh OS

Terminasi karena Parent Parent mengakhiri eksekusi proses-proses child ( misalnya dengan abort() ) Child telah menggunakan jumlah resource melebihi dari yang telah dialokasi Task yang diberikan ke child sudah tidak diperlukan lagi Parent telah exit OS tidak mengijinkan child untuk berlanjut jika parent terminate Cascading termination

Cooperating Processes Independent process tidak dapat dipengaruhi oleh eksekusi proses lain Cooperating process dapat mempengaruhi dan dipengaruhi oleh eksekusi proses lain

Cooperating Processes (2) Keuntungan proses berkooperasi : Sharing informasi : Menggunakan informasi(resource) yang sama untuk beberapa proses. Peningkatan kemampuan komputasi (Computation Speedup) : Suatu task tertentu bisa dipecah menjadi beberapa cooperating processes sehingga bisa dikerjakan secara paralel sehingga menjadi lebih cepat selesai Modularitas : Pembuatan suatu sistem yang moduler dengan memecahkan fungsi-fungsi dari sistem tersebut menjadi beberapa proses atau thread Convenience : User bisa dengan mudah mengerjakan sesuatu yang berbeda dalam waktu yang sama

Producer-Consumer Problem “Producer” merupakan proses yang menghasilkan informasi yang akan dikonsumsi oleh proses “Consumer”. Contoh : Compiler memproduksi assembly code yang dikonsumsi oleh Assembler Assembler memproduksi Object yang dikonsumsi oleh Loader Sebagai perantara digunakan suatu buffer Unbound-buffer : tidak ada batas kapasitas Bounded-buffer : buffer berukuran tetap Consumer harus menunggu jika buffer kosong dan Producer harus menunggu jika buffer penuh.

Interprocess Communication (IPC) Menyediakan mekanisme yang memungkinkan proses-proses berkomunikasi dan mensinkronisasi aksi-aksinya Message System – komunikasi tanpa memerlukan penggunaan shared variabel milik proses user

Operasi-operasi IPC Operasi-operasi yang disediakan Send(message) Receive(message) Message dapat berukuran tetap atau variabel Ukuran tetap; implementasi fisik lebih simple, tapi lebih sulit bagi user dalam pemrograman Ukuran variabel; pemrograman lebih mudah tapi implementasi fisik lebih sulit

Communication Link Bila P dan Q hendak berkomunikasi mereka perlu menetapkan suatu communication link di antara mereka lalu melakukan tukar-menukar message melalui send/receive IPC dalam implementasinya memerlukan communication link Secara fisik, contohnya shared memory, hardware bus Secara logic, contohnya logical properties

Implementasi Menjawab pertanyaan-pertanyaan : Cara penetapan link Bisa berasosiasi dengan > 2 proses Jumlah link yang ditetapkan antara 2 proses Kapasitas link Ukuran message : tetap atau variabel Arah link : satu arah (unidirectional) atau dua arah (bi-directional) Satu arah : proses hanya send (atau receive) dan hanya satu yang receive

Metodologi Direct vs. Indirect Communication Symmetric vs. Asymmetric Communication Automatic vs. Explicit Buffering Send by Copy vs. Send by Reference Fixed Sized vs. Variabel Sized Message

Direct Communication Proses-proses harus menyebutkan pasangannya secara eksplisit send(Q, message) Q adalah receiver receive(P, message) P adalah sender P Q

Sifat-sifat Communication Link Direct Comm. Link ditetapkan secara otomatis Link diasosiasikan dengan pasangan proses yang sedang berkomunikasi tsb Antara sepasang proses hanya bisa ada 1 link Link bisa satu arah tapi biasanya dua arah

Kekurangan Direct Comm. Modularitas terbatas Pengubahan nama proses perlu pengubahan di seluruh call Perlu pemeriksaan jika terdapat nama yang sama

Indirect Communication Message-message dikirim dan diterima melalui suatu mailbox (juga disebut port) Masing-masing mailbox memiliki id yang unik Proses-proses hanya dapat berkomunikasi jika mereka men-share mailbox send(A, message) Kirim message ke dalam mailbox A receive(A, message) Terima message dari dalam mailbox A A P Q

Sifat-sifat Communication Link Indirect Comm. Link ditetapkan saat dua proses men-share suatu mailbox Link dapat diasosiasikan dengan sejumlah proses Setiap pasang proses bisa men-share beberapa link Link bisa satu arah atau dua arah

Operasi-operasi Indirect Comm. Proses memulai komunikasi dengan men-create mailbox Komunikasi berlangsung dengan pemanggilan perintah send & receive message melalui mailbox tersebut Saat proses hendak exit maka proses men-destroy mailbox

Masalah pada Mailbox Sharing P1, P2, and P3 share mailbox A. P1, sends; P2 dan P3 receive. Siapa yang mendapatkan message? Solusi Batasi link diasosiasikan hanya untuk max 2 proses Hanya mengijinkan satu proses setiap saat yang meng-eksekusi operasi receive Sistem memilih siapa receiver-nya Sender menyebutkan siapa receiver-nya P1 A P3

Sinkronisasi Message passing dapat dibedakan menjadi : blocking non-blocking Blocking adalah synchronous Non-blocking adalah asynchronous Primitif send and receive dapat blocking or non-blocking.

Buffering untuk Link 3 kemungkinan cara implementasi Zero capacity – tidak ada buffer Sender harus menunggu sampai muncul receiver dan sebaliknya (sinkronisasi - rendezvous) Bounded capacity – bisa berisi max n message Sender harus menunggu jika penuh Unbounded capacity – tak terbatas Sender tidak pernah menunggu

Komunikasi Client-Server Sockets Remote Procedure Calls Remote Method Invocation (Java)

Socket Socket didefinisikan sebagai suatu endpoint for communication. Sebuah programming interface ke OS yang memungkinkan proses untuk saling berkomunikasi ke proses lainya Eksekusi TCP/UDP berlangsung di level kernel, socket bertindak sebagai jembatan ke user space. Merupakan gabungan IP address dan port Socket 161.25.19.8:1625 menunjukkan bahwa port 1625 pada host 161.25.19.8 Komunikasi terdiri dari pasangan socket.

Komunikasi antar Socket Contoh standard port : TELNET menggunakan port 23 FTP menggunakan port 21 HTTP server menggunakan port 80

Ilustrasi Socket

Komunikasi Socket

Detail Komunikasi Socket

Sockets in Unix Server membuat socket menggunakan bind(), sehingga dapat dimanfaatkan oleh clients

Remote Procedure Calls (RPC) (1) Remote Procedure Call (RPC) membuat abstraksi pemanggilan prosedur antara proses dalam sistem jaringan (network) Stubs – client-side proxy untuk procedure aktual pada server Client-side stub mengalokasikan server dan mengirimkan marshalls parameter Server-side stub menerima message, membuka parameter marshall, dan menjalankan procedure pada server

Mekanisme RPC

Remote Procedure Calls (RPC) (2) Dalam sistem single-processor : message send = pemanggilan fungsi reply = function return sender mengaktifkan receiver dengan message sebagai argument, dan sender wait untuk mendapatkan reply dari function return Skema RPC ini dilakukan juga pada proses-proses yang running di komputer berlainan

Mekanisme IPC Sebelum mekanisme IPC digunakan, data harus di-packaging ke dalam format transimisi. Langkah ini dinamakan marshalling Proxy bertanggung jawab untuk marshalling data, kemudian mengirimkan data dan meminta instans dari komponen (remote) Stub menerima request, unmarshall data, dan memanggil method yang diminta. Kemudian proses mengembalikan nilai yang diinginkan Contoh : COM (Component Object Model) - Microsoft, CORBA (Common Object Request Broker Architecture - OMG)

Contoh RPC Server hosts subroutines which can be called from a client machine

Kelebihan RPC Relatif mudah digunakan : Relatively portable : Robust : Pemanggilan remote procedure tidak jauh berbeda dibandingkan pemanggilan local procedure. Sehingga pemrogram dpt berkonsentrasi pd software logic, tidak perlu memikirkan low level details seperti socket, marshalling & unmarshalling. Relatively portable : S/W developed using RPC is easier to be ported compared to sockets. Robust : Sejak th 1980-an RPC telah banyak digunakan dalam pengembangan mission-critical application yg memerlukan scalability, fault tolerance, & reliability.

Kekurangan RPC Tidak fleksibel terhadap perubahan : Static relationship between client & server at run-time. Berdasarkan prosedural /structured programming yang sudah ketinggalan jaman dibandingkan OOP.

Remote Method Invocation (RMI) Remote Method Invocation (RMI) adalah mekanisme Java yang sama dengan RPC RMI memungkinkan program Java pada satu komputer untuk memanggil suatu method pada remote object

Marshalling Parameters - Local objects passed by copy (object serialization) - Remote objects passed by reference