Your SlideShare is downloading. ×
Os03
Upcoming SlideShare
Loading in...5
×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

×
Saving this for later? Get the SlideShare app to save on your phone or tablet. Read anywhere, anytime – even offline.
Text the download link to your phone
Standard text messaging rates apply
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total Views
129
On Slideshare
0
From Embeds
0
Number of Embeds
0
Actions
Shares
0
Downloads
2
Comments
0
Likes
0
Embeds 0
No embeds

Report content
Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
No notes for slide

Transcript

  • 1. Sistem Operasi - Proses - S ISTEM O PERASI - P ROSES - Arya Adhyaksa Waskita Fakultas Ilmu Komputer Universitas Pembangunan Nasional Veteran Jakarta 17 Maret 2012
  • 2. Sistem Operasi - Proses -AGENDA 1 R EVIEW 2 OVERVIEW & O BYEKTIF 3 KONSEP 4 P ENJADWALAN 5 O PERASI PADA PROSES 6 K ERJASAMA P ROSES 7 I NTERPROCESS C OMMUNICATION 8 P ENERAPAN IPC
  • 3. Sistem Operasi - Proses - ReviewO UTLINE 1 R EVIEW 2 OVERVIEW & O BYEKTIF 3 KONSEP 4 P ENJADWALAN 5 O PERASI PADA PROSES 6 K ERJASAMA P ROSES 7 I NTERPROCESS C OMMUNICATION 8 P ENERAPAN IPC
  • 4. Sistem Operasi - Proses - ReviewP ERTEMUAN KE -2 Layanan sistem operasi, Struktur sistem operasi: meliputi pengelolaan: Layer process Mikrokernel file Modular device Mesin virtual: information communication memberi layanan perangkat keras untuk Diberikan oleh: aplikasi dan sistem operasi System Call VMWare, VirtualBox, System Program JVM,...
  • 5. Sistem Operasi - Proses - Overview & ObyektifO UTLINE 1 R EVIEW 2 OVERVIEW & O BYEKTIF 3 KONSEP 4 P ENJADWALAN 5 O PERASI PADA PROSES 6 K ERJASAMA P ROSES 7 I NTERPROCESS C OMMUNICATION 8 P ENERAPAN IPC
  • 6. Sistem Operasi - Proses - Overview & ObyektifP ROSES Mempelajari konsep proses: program yang sedang dieksekusi Mempelajari berbagai fitur proses: penjadwalan creation & termination komunikasi Komunikasi client-server Socket RPC (Remote Procedure Call) RMI (Remote Method Invocation)
  • 7. Sistem Operasi - Proses - KonsepO UTLINE 1 R EVIEW 2 OVERVIEW & O BYEKTIF 3 KONSEP 4 P ENJADWALAN 5 O PERASI PADA PROSES 6 K ERJASAMA P ROSES 7 I NTERPROCESS C OMMUNICATION 8 P ENERAPAN IPC
  • 8. Sistem Operasi - Proses - KonsepKONSEP Salah satu layanan sistem operasi: tempat eksekusi program Proses: program yang sedang dieksekusi, bisa berupa sistem batch time shared Meliputi: program counter : alamat instruksi yang akan dieksekusi selanjutnya stack: data sementara (parameter, variabel lokal, returned address) data: variabel global heap: lokasi memory yang dialokasi secara dinamis saat eksekusi program
  • 9. Sistem Operasi - Proses - KonsepKONDISI PROSES new: sedang dibuat running: instruksi sedang dieksekusi waiting: menunggu sebuah event terjadi ready: siap dieksekusi oleh CPU terminated: selesai eksekusi
  • 10. Sistem Operasi - Proses - KonsepD IAGRAM KONDISI PROSES G AMBAR : Diagram process state
  • 11. Sistem Operasi - Proses - KonsepPCB (Process Control Block) Informasi terkait proses, meliputi: kondisi proses (process state) program counter register CPU info terkait penjadwalan CPU info pengelolaan memory akuntansi info status I/O
  • 12. Sistem Operasi - Proses - KonsepP ERPINDAHAN ANTAR PROSES G AMBAR : Diagram perpindahan antar proses
  • 13. Sistem Operasi - Proses - PenjadwalanO UTLINE 1 R EVIEW 2 OVERVIEW & O BYEKTIF 3 KONSEP 4 P ENJADWALAN 5 O PERASI PADA PROSES 6 K ERJASAMA P ROSES 7 I NTERPROCESS C OMMUNICATION 8 P ENERAPAN IPC
  • 14. Sistem Operasi - Proses - PenjadwalanKONSEP Multiprogramming: selalu ada proses (program yang sedang dieksekusi) Multitasking: time shared, varian multiprogramming Penjadwalan meliputi: antrian penjadwal context switch
  • 15. Sistem Operasi - Proses - PenjadwalanA NTRIAN D EFINITION Proses yang masuk ke sistem akan Job queue diantri di sini Ready queue Berisi semua proses dalam sistem Device queue Setiap antrian disimpan sebagai linked list, memiliki pointer ke PCB pertama dan terakhir pada antrian
  • 16. Sistem Operasi - Proses - PenjadwalanA NTRIAN D EFINITION Job queue Berisi proses yang ada pada memori Ready queue utama Device queue Ready & waiting state
  • 17. Sistem Operasi - Proses - PenjadwalanA NTRIAN D EFINITION Job queue Berisi proses yang sedang menunggu Ready queue aktifitas I/O Device queue Setiap device memiliki antriannya sendiri
  • 18. Sistem Operasi - Proses - PenjadwalanI LUSTRASI G AMBAR : Ready queue & beberapa device queue
  • 19. Sistem Operasi - Proses - PenjadwalanD IAGRAM ANTRIAN G AMBAR : Diagram antrian
  • 20. Sistem Operasi - Proses - PenjadwalanP ENJADWAL Proses bermigrasi antar antrian, perlu penjadwal yang mengatur proses migrasi Batas proses: CPU bound: komputasi lebih dominan I/O bound: proses I/O lebih dominan kinerja terbaik → seimbang
  • 21. Sistem Operasi - Proses - PenjadwalanP ENJADWAL Long term scheduler / job scheduler: memilih proses untuk masuk ke ready queue mengendalikan derajat multiprogramming, jika seimbang process creation ≈ process termination bekerja pada job queue Short term scheduler / CPU scheduler: memilih proses untuk dieksekusi di CPU bekerja lebih sering daripada long term scheduler bekerja pada ready & device queue
  • 22. Sistem Operasi - Proses - PenjadwalanP ENJADWAL Time-shared (multitasking): medium term scheduler (proses swapping) G AMBAR : Medium term scheduler
  • 23. Sistem Operasi - Proses - PenjadwalanContext switch Ketika CPU berpindah dari eksekusi satu proses ke proses lain, state proses harus disimpan → context switch Konteks proses direpresentasikan oleh PCB Overhead→ tidak ada pekerjaan saat context switch, tergantung pada mesin
  • 24. Sistem Operasi - Proses - Operasi pada prosesO UTLINE 1 R EVIEW 2 OVERVIEW & O BYEKTIF 3 KONSEP 4 P ENJADWALAN 5 O PERASI PADA PROSES 6 K ERJASAMA P ROSES 7 I NTERPROCESS C OMMUNICATION 8 P ENERAPAN IPC
  • 25. Sistem Operasi - Proses - Operasi pada prosesP EMBUATAN (Creation) Parent of process create child, and so on→membuat pohon proses Setiap proses memilki identitas: pid (process identifier) Berbagi sumber daya antara parent-child berbagi semuanya berbagi sebagian tidak berbagi Eksekusi parent-child: bersamaan parent menunggu child
  • 26. Sistem Operasi - Proses - Operasi pada prosesI LUSTRASI G AMBAR : Pohon proses
  • 27. Sistem Operasi - Proses - Operasi pada prosesP EMBUATAN (Creation) Ruang memory (address space): ruang di mana proses dapat menyimpan dan membaca data saling bebas antar proses antar parent-child: berbagi duplikasi Contoh UNIX: fork SC: membuat proses baru exec SC: menghapus memory yang sebelumnya digunakan kemudian mengalokasi memory untuk proses yang baru
  • 28. Sistem Operasi - Proses - Operasi pada prosesI LUSTRASI G AMBAR : Pembuatan proses
  • 29. Sistem Operasi - Proses - Operasi pada prosesI LUSTRASI : FORK #include <sys/types.h> #include <stdio.h> #include <unistd.h> int main(int argc, char *argv[]) { int pid; /*fork another process*/ pid=fork(); if(pid<0) { /*error ocuured*/ fprintf(stderr, "Fork Failedn"); exit(-1); } else if(pid==0) { /*child process*/ execlp("/bin/ls","ls",NULL); } else { /*parent process*/ /*parent will wait for the child to complete*/ printf("PID=%dn",pid); wait(NULL); printf("Child Completen"); exit(0); } }
  • 30. Sistem Operasi - Proses - Operasi pada prosesI LUSTRASI : WIN 32 #include <stdio.h> #include <windows.h> int main(void) { STARTUPINFO si; PROCESS_INFORMATION pi; //allocate memory ZeroMemory(&si,sizeof(si)); si.cb=sizeof(si); ZeroMemory(&pi,sizeof(pi)); //create child process if(!CreateProcess(NULL, //use command line "C:WINDOWSsystem32mspaint.exe", //command line NULL, //don’t inherit process handle NULL, //don’t inherit process handle FALSE, //disable handle inheritance 0, //no creation flag NULL, //use parent’s environment block NULL, //use parent’s existing directory &si, &pi)) { fprintf(stderr, "Create Process Failed"); return -1; } //parent will wait for the child to complete WaitForSingleObject(pi.hProcess,INFINITE); printf("Child Complete"); }
  • 31. Sistem Operasi - Proses - Operasi pada prosesI LUSTRASI : JAVA import java.io.*; public class forking { public static void main(String args[]) throws IOException { if(args.length!=1) { System.err.println("Usage: java forking <command>n"); System.exit(0); } ProcessBuilder pb=new ProcessBuilder(args[0]); Process proc=pb.start(); InputStream is=proc.getInputStream(); InputStreamReader isr=new InputStreamReader(is); BufferedReader br=new BufferedReader(isr); String line; while((line=br.readLine())!=null) { System.out.println(line); } br.close(); } }
  • 32. Sistem Operasi - Proses - Operasi pada prosesT ERMINASI Instruksi terakhir dieksekusi kemudian meminta OS untuk menghapus proses (exit) data dari child dikirim ke parent (wait) resources: di-dealokasi Parent dapat menghentikan proses child (abort) resource yang diperlukan melampaui yang tersedia child tidak lagi diperlukan parent terminates (normal atau tidak), sedang OS tidak mengijinkan child dieksekusi tanpa proses (cascading termination)
  • 33. Sistem Operasi - Proses - Kerjasama ProsesO UTLINE 1 R EVIEW 2 OVERVIEW & O BYEKTIF 3 KONSEP 4 P ENJADWALAN 5 O PERASI PADA PROSES 6 K ERJASAMA P ROSES 7 I NTERPROCESS C OMMUNICATION 8 P ENERAPAN IPC
  • 34. Sistem Operasi - Proses - Kerjasama ProsesL ATAR BELAKANG penggunaan bersama (sharing) informasi peningkatan kecepatan modularitas kenyamanan
  • 35. Sistem Operasi - Proses - Kerjasama ProsesI LUSTRASI : cooperating process Producer-consumer: program cetak menghasilkan karakter yang dikonsumsi printer kompilator menghasilkan assembly code yang dikonsumsi assembler assembler menghasilkan modul obyek yang dikonsumsi loader Agar producer-consumer berjalan bersama: diperlukan buffer yang sesuai unbounded: producer dapat membuat berapapun proses bounded: producer harus menunggu jika buffer penuh
  • 36. Sistem Operasi - Proses - Interprocess CommunicationO UTLINE 1 R EVIEW 2 OVERVIEW & O BYEKTIF 3 KONSEP 4 P ENJADWALAN 5 O PERASI PADA PROSES 6 K ERJASAMA P ROSES 7 I NTERPROCESS C OMMUNICATION 8 P ENERAPAN IPC
  • 37. Sistem Operasi - Proses - Interprocess CommunicationP ENDAHULUAN Proses: saling bebas (independent) saling kerjasama (cooperating) → membutuhkan IPC Model: shared memory message passing
  • 38. Sistem Operasi - Proses - Interprocess CommunicationI LUSTRASI G AMBAR : Model IPC
  • 39. Sistem Operasi - Proses - Interprocess CommunicationI LUSTRASI G AMBAR : Bounded buffer
  • 40. Sistem Operasi - Proses - Interprocess CommunicationI LUSTRASI : Bounded-buffer shared memory Shared data #define BUFFER_SIZE 10 typedef struct { ... } item; item buffer[BUFFER_SIZE]; int in = 0; int out = 0; Hanya dapat mengunakan sejumlah BUFFER_SIZE elemen
  • 41. Sistem Operasi - Proses - Interprocess CommunicationP ERTUKARAN PESAN Mekanisme pada proses mengkomunikasi dan men-sinkronisasi aksinya Komunikasi tanpa shared variables Fasilitas: send(pesan)→ukuran pesan bisa konstan atau variabel received(pesan) Jika proses P dan Q akan berkomunikasi: jalur komunikasi harus dibangun mempertukarkan pesan melalui send dan received
  • 42. Sistem Operasi - Proses - Interprocess CommunicationKOMUNIKASI PADA IPC: L ANGSUNG Nama proses harus eksplisit: send (P, pesan) – mengirim pesan ke proses P receive(Q, pesan) – menerima pesan dari proses Q jalur komunikasi: dibangun secara otomatis setiap jalur menghubungkan tepat satu pasang proses setiap proses terhubung ke tepat satu jalur unidirectional atau bidirectional
  • 43. Sistem Operasi - Proses - Interprocess CommunicationKOMUNIKASI PADA IPC: T IDAK L ANGSUNG Pesan dipertukarkan melalui mailbox mailbox memiliki identitas hanya dapat berkomunikasi melalui mailbox yang digunakan bersama jalur komunikasi: dibangun hanya jika ada mailbox yang digunakan bersama setiap jalur menghubungkan banyak proses setiap proses terhubung ke banyak jalur unidirectional atau bidirectional Operasi: send (A, pesan) – mengirim pesan ke mailbox A receive(A, pesan) – menerima pesan dari mailbox A
  • 44. Sistem Operasi - Proses - Interprocess CommunicationM ASALAH PADA KOMUNIKASI TIDAK LANGSUNG Pesan dari mailbox ke siapa? Solusi: mengadopsi jalur komunikasi langsung: setiap pasang proses memiliki satu mailbox proses menerima pesan bergantian memberi notifikasi, siapa penerimanya
  • 45. Sistem Operasi - Proses - Interprocess CommunicationS INKRONISASI Blocking / non-blocking Blocking: pengirim: tidak boleh mengirim pesan sebelum pesan terdahulu diterima penerima: tidak boleh mengakses buffer sebelum terisi (ada pesan) Non-blocking (asinkron) pengirim: mengirim secara kontinu penerima: menerima pesan valid atau null (mengakses buffer kosong)
  • 46. Sistem Operasi - Proses - Interprocess CommunicationB UFFER Opsi kapasitas: tidak punya kapasitas (kosong): pengirim harus menunggu penerima siap terbatas: pengirim harus menuggu jika buffer penuh tak terbatas: pengirim dapat selalu mengiri pesan
  • 47. Sistem Operasi - Proses - Penerapan IPCO UTLINE 1 R EVIEW 2 OVERVIEW & O BYEKTIF 3 KONSEP 4 P ENJADWALAN 5 O PERASI PADA PROSES 6 K ERJASAMA P ROSES 7 I NTERPROCESS C OMMUNICATION 8 P ENERAPAN IPC
  • 48. Sistem Operasi - Proses - Penerapan IPCP ENDAHULUAN Socket Remote Procedure Call Remote Method Invocation
  • 49. Sistem Operasi - Proses - Penerapan IPCS OCKET Endpoint communication Gabungan IP address dan port Socket 161.25.19.8:1625 adalah port 1625 pada host 161.25.19.8 G AMBAR : Komunikasi socket
  • 50. Sistem Operasi - Proses - Penerapan IPCI LUSTRASI : S OCKET SERVER import java.net.*; import java.io.*; public class DateServer { public static void main(String args[]) throws IOException { try { ServerSocket soc=new ServerSocket(6013); while(true) { Socket client=soc.accept(); PrintWriter pout=new PrintWriter(client.getOutputStream(),true); pout.println(new java.util.Date().toString()); client.close(); } } catch(IOException ioe) { System.err.println(); } } }
  • 51. Sistem Operasi - Proses - Penerapan IPCI LUSTRASI : S OCKET CLIENT import java.net.*; import java.io.*; public class DateClient { public static void main(String args[]) throws IOException { try { Socket soc=new Socket("192.168.11.97",6013); InputStream in=soc.getInputStream(); BufferedReader bin=new BufferedReader(new InputStreamReader(in)); String line; while((line=bin.readLine())!=null) { System.out.println(line); } soc.close(); } catch(IOException ioe) { System.err.println(ioe); } } }
  • 52. Sistem Operasi - Proses - Penerapan IPCRPC Pemanggilan prosedur antar proses melalui jaringan Komunikasi dibangun melalui stub: client side server side
  • 53. Sistem Operasi - Proses - Penerapan IPCI LUSTRASI G AMBAR : Komunikasi RPC
  • 54. Sistem Operasi - Proses - Penerapan IPCRMI Mekanisme yang sama dengan RPC di JAVA Memungkinkan program Java di sebuah mesin memanggil method pada remote object G AMBAR : Komunikasi RMI
  • 55. Sistem Operasi - Proses - Penerapan IPCI LUSTRASI : PASSING PARAMETER G AMBAR : Passing parameter
  • 56. Sistem Operasi - Proses - Penerapan IPCI LUSTRASI : R EMOTE DATE import java.rmi.*; import java.util.Date; public interface RemoteDate extends Remote { public abstract Date getDate() throws RemoteException; }
  • 57. Sistem Operasi - Proses - Penerapan IPCI LUSTRASI : R EMOTE DATE I MPL import java.util.Date; import java.rmi.*; import java.rmi.server.UnicastRemoteObject; public class RemoteDateImpl extends UnicastRemoteObject implements RemoteDate { public RemoteDateImpl() throws RemoteException { } public Date getDate() throws RemoteException { return new Date(); } public static void main(String args[]) { try { RemoteDate dateServer=new RemoteDateImpl(); Naming.rebind("DateServer",dateServer); } catch(Exception e) { System.err.println(e); } } }
  • 58. Sistem Operasi - Proses - Penerapan IPCI LUSTRASI : RMIC LIENT import java.net.*; import java.rmi.*; public class RMIClient { public static void main(String args[]) { try { String host="rmi://127.0.0.1/DateServer"; RemoteDate dateServer=(RemoteDate)Naming.lookup(host); Sys- tem.out.println(dateServer.getDate()); } catch(Exception e) { System.err.println(e); } } }

×