Friday, September 27, 2019

PROSES (SISTEM OPERASI)

PROSES


žProses:
1.Konsep Proses
ž2.Penjadualan Eksekusi Proses
ž3.Operasi pada Proses
ž4.Proses yang saling Bekerjasama (Cooperating Processes)
ž5.Komunikasi Antar Proses (Interprocess Communication)
ž6.Komunikasi pada Sistem Client-Server

Konsep Proses:

žA.Proses lebih dari “program code yang aktif”:
   1.Melacak posisi instruksi (sequential execution): program counter
   2.Menyimpan data sementara var., parameter, return value: stack
   3.Menyimpan data (initial, global variable dll): data section
   4.Menyimpan status proses (contoh, aktif, wait I/O request dll.)
B.Sistem operasi menjalankan banyak dan beragam program :
   1.Batch system – jobs
   2.Time-shared systems – user programs atau tasks
   3.Istilah pada buku teks: job, task dan process (dapat diartikan sama)
C.žProses adalah program yang dieksekusi ;
   1.Aktif (proses=>memori) vs pasif (program => file)
   2.Instruksi pada program (code) akan dieksekusi secara berurut 
      (sekwensial) sesuai dengan “line code” (stored program concept).

Penjadualan Proses:
ž1.Apakah tujuan  dari multiprogramming?
   a.“Maximize” pemakaian CPU secara efisien (jadwal dan giliran
       pemakaian CPU). CPU digunakan oleh proses2 terus menerus.
2.Apakah tujuan dari “time-sharing”?
   a.Pemakaian CPU dapat di switch dari satu proses ke proses lain
      (concurrent process execution). Sesering mungkin, user dapat
      berinteraksi dengan sistim.
3.Bagaimana jika sistim prosesor tunggal?
   a.“Hanya ada satu proses yang dapat dijalankan
   b.Proses lain menunggu sampai CPU dapat dijadwalkan (schedule)
      ke proses tsb

Ready Queue Dan I/O Device Queues:

4.Proses dapat berubah status dan berpindah dari satu antrian ke antrian
   yang lain.
   a.Proses dengan status “ready” berada di ReadyQueue. Menunggu
      giliran/dipilih oleh scheduler => menggunakan CPU
   b.Selama eksekusi (status “run”) events yang dapat terjadi:
      1.I/O request => I/O wait berada pada DeviceQueue
      2.Create “child” proses => Jalankan proses “child”, tunggu sampai 
         proses selesai (wait)
      3.Time slice expired => Waktu pemakaian CPU habis, interrupt
         oleh scheduler, proses akan berpindah ke ReadyQueue.

Representasi Penjadualan Proses:










Penjadual / Schedulers:
1.Bagaimana schedulers memilih proses atau program (decision)?
   a.Lebih dari satu proses atau program yang akan dijalankan?
2.žLong-term scheduler (or job scheduler) – memilih proses/program 
   yang mana yang akan di load dan berada di ready queue.
   a.Kemungkinan terdapat proses atau job baru.
   b.Kemungkinan proses dipindahkan dari memori ke disk (swap out).
3.žShort-term scheduler (or CPU scheduler) – memilih proses yang mana
   yang berada di ready queue akan “run” (mendapatkan jatah CPU).
4.žLong-term scheduler tidak sering (proses baru) (seconds, minutes)
   => (may be slow).
   a.The long-term scheduler controls the degree of multiprogramming
       => berapa banyak proses yang dapat aktif (berada di memori).
5.žShort-term scheduler dijalankan sangat sering (milliseconds) 
   => giliran pemakaian CPU dari proses- proses yang siap.
   a.Pada saat terjadi penggantian alokasi CPU dari satu proses 
      ke proses lain:
      =>Menyimpan informasi internal CPU dari proses yang akan 
          digantikan (SAVE).
      =>Meload kembali informasi internal CPU dari proses yang akan
          menggantikan.
    b.Dikenal dengan istilah: context switch proses.

Penjadualan Jangka Menengah:








Alih Konteks/Context Switch:
1.Jika Scheduler switch ke proses lain, maka sistim harus menyimpan
   “informasiproses sekarang (supaya dapat dijalankan kembali).
2.Load “informasidari proses baru yang berada di PCB
3.žWaktu Context-switch adalah overhead; sistem tidak melakukan 
   pekerjaan saat terjadi switch.
   a.Sangat tergantung pada waktu di hardware
   b.OS modern mencari solusi untuk mengurangi overhead waktu 
      switch proses.

Pembuatan Proses:
1.Umumnya proses dapat membuat proses baru (child process).
   a.Child process dapat membuat proses baru.
   b.Terbentuk “tree” dari proses.
2.Address space
   a.Child menduplikasi parent.
   b.Child memiliki program yang di load ke dalamnya.
3.Pilihan hubungan antara parent dan child proses:
   a.Resource sharing
      =>Parent dan child berbagi resource
      =>Children berbagi subset dari resource milik parents.
      =>Parent dan child tidak berbagi resource.
   b.Execution
      =>Parent dan children melakukan eksekusi secara serempak.
      =>Parent menunggu hingga children selesai.
4.Contoh UNIX :
   a.fork system call membuat proses baru
   b.execve (EXEC) :
      =>menjalankan program spesifik yang lain
      =>nama program tersebut menjadi parameter dari system call
      =>EXEC (sering di load sesudah menjalankan fork).
   c.Tahapan pembuatan proses baru:
      =>Periksa apakah masih terdapat ruang pada PCB.
      =>Mencoba mengalokasikan memori untuk proses baru.
      =>Mengisi informasi untuk proses baru: nama proses, id, copy 
          data dari parent dll.
      =>Mencantumkan informasi proses ke kernel OS.

Terminasi Proses:
1.žProses dapat berakhir:
   a.Eksekusi instruksi terakhir (atau keluar: exit system call).
   b.OS yang akan melakukan dealokasi (memory, file resources).
2.žUNIX (MINIX):
   a.Output signal dari child ke parent
   b.Jika parent tidak menunggu (via wait system call), proses akan 
      terminate tapi belum direlease dari PCB (status: ZOMBIE).
   c.Proses dengan status ZOMBIE (parent telah terminate), akan
      menjadi child dari proses “init”.
3.žParent dapat menghentikan eksekusi proses child secara paksa.
   a.Parent dapat mengirim signal (abort, kill system call).

Kerjasama Proses:
1.Proses independent tidak mempengaruhi eksekusi proses yang lain
2.Kerjasama proses dapat mempengaruhi  atau dipengaruhi oleh
   eksekusi proses yang lain.
3.žKeuntungan kerjasama proses :
   a.Sharing informasi
   b.Meningkatkan kecepatan komputasi
   c.Modularitas
  d.Kemudahan

Masalah Produser-Consumer:
1.Paradigma kerjasama prosesproses Producer menghasilkan
   informasi yang akan dikonsumsi oleh proses Consumer.
    a.Unbounded-buffer – tidak menggunakan batasan ukuran dibuffer.
       =>Consumer selalu dapat meminta item baru dan Producer selalu
           dapat menghasilkan item-item baru.
    b.Bounded-buffer – menggunakan buffer dengan ukuran tertentu
       =>Consumer harus menunggu jika buffer kosong dan Producer
           harus menunggu jika buffer penuh.

Bounded-Buffer Solusi Dari Shared Memory:
ž1.Shared data
   #define BUFFER_SIZE 10
   Typedef struct {
      . . .
   } item;
   item buffer[BUFFER_SIZE];
   int in = 0;
   int out = 0;
2.Solution is correct, but can only use BUFFER_SIZE-1 elements


Bounded-Buffer-Proses Consumer:
 item nextConsumed;
 while (1) {
 while (in == out)
 ; /* do nothing */
 nextConsumed = buffer[out];
 out = (out + 1) % BUFFER_SIZE;
 }


Interprocess Communication (IPC):
1.žMekanisme proses untuk komunikasi dan sinkronisasi aksi
2.Sistem Pesankomunikasi proses satu dengan yang lain dapat 
   dilakukan tanpa perlu pembagian data.
3.žIPC menyediakan dua operasi :
    a.send(message) – pesan berukuran pasti atau variabel
    b.receive(message).
4.Jika P dan Q melakukan komunikasi, maka keduanya memerlukan :
    a.Membangun jalur komunikasi diantara keduanya
    b.Melakukan pertukaran pesan melaui send/receive
5.žImplementasi jalur komunikasi
    a.physical (shared memory, hardware bus)
    b.logical (logical properties).

Komunikasi Langsung:
1.Proses harus diberi nama secara jelas :
   a.send (P, message) – kirim pesan ke proses P
   b.receive(Q, message) – terima pesan dari proses Q
2.žProperti jalur komunikasi
   a.Jalur dibangun secara otomatis
   b.Setiap jalur memiliki pasangan masing-masing dalam proses komunikasi
   c.Jalur komunikasi tersebut biasanya directional.

Komunikasi Tidak Langsung:
1.Pesan dikirim dan diterima melalui mailboxes (yang ditunjuk sebagai port)
   a.Proses
   b.Processes can communicate only if they share a mailbox.
2.žProperti jalur komunikasi
   a.Jalur komunikasi hanya dibangun jika proses di-share dalam mailbox
   b.Jalur merupakan gabungan beberapa proses
   c.Setiap pasangan proses dibagi ke dalam beberapa jalur komunikasi.
3.žOperasi
   a.Membuat mailbox baru
   b.Mengirim dan menerima pesan melalui mailbox
   c.Menghapus/memusnahkan mailbox
4.žPrimitive didefinisikan :
   send(A, message) – kirim pesan ke mailbox A.
   receive(A, message) – terima pesan dari mailbox A.
5.Mailbox sharing
   a.P1, P2, dan P3 berbagi (share) mailbox A.
   b.P1, send; P2 and P3 receive.
   c.Siapa yang mendapat pesan ?
6.Solusi
   a.Memperbolehkan suatu jalur yang merupakan gabungan lebih 
      dari dua proses
   b.Hanya meperbolehkan satu proses pada suatu waktu untuk 
      mengeksekusi operasi receive .
   c.Memperbolehkan sistem untuk memilih receiver. Sender 
      diberitahu siapa yang menjadi receiver.

Sinkronisasi:
1.Pesan yang disampaikan dapat di blok atau tidak (non-blocking)
2.Blocking dikenal dengan synchronous.
3.žNon-blocking dikenal dengan asynchronous.

Buffering:
1.Antrian pesan yang dihubungkan dalam suatu jalur, diimplementasikan
   dengan tiga jalan
   a. Zero capacity =>tidak ada pesan
                              =>Sender harus menunggu receiver (rendezvous).
   b. Bounded capacity =>memiliki panjang yang terbatas (finite length) 
                                         dari n pesan.
                                     =>Sender menunggu pada saat jalur penuh.
   c. Unbounded capacity =>memiliki panjang tidak terbatas (infinite length) 
                                        =>Sender tidak pernah menunggu.


Komunikasi Client-Server:
1.Sockets
2.Remote Procedure Calls (RPC)
3.žRemote Method Invocation (Java)

Sockets:
ž1.Suatu socket didefinisikan sebagai titik akhir (endpoint) komunikasi
2.žA socket is defined as an endpoint for communication.
3.Gabungan IP address dan port
4.žSocket 161.25.19.8:1625 mengacu pada  port 1625 pada host 161.25.19.8
5.žKomunikasi berada diantara pasangan socket.


Komunikasi Socket:














Remote Prosedure Calls (RPC):
1.Remote Procedure Call (RPC) adalah abstraksi pemanggilan 
   prosedur diantara proses pada sistem jaringan.
2.Stubs – proxy sisi client untuk prosedur aktual pada server
3.žStub sisi client ditempatkan di server dengan parameter marshalls.
4.žStub sisi server menerima pesan, membongkarnya dengan parameter 
   marshall dan menjalankan prosedur pada server.

Eksekusi PC:




















Remote Method Invocation (RMI):
1.Remote Method Invocation (RMI) adalah mekanisme pada 
  JAVA yang hampir sama dengan RPC.
2.RMI membolehkan program JAVA pada satu mesin untuk 
   menggunakan metode untuk melakukan remote objek.











Sumber: Diolah dari berbagai sumber


>>>TERIMAKASIH<<<


No comments:

Post a Comment

ARSITEKTUR & ORGANISASI KOMPUTER (UNIT MASUKAN & KELUARAN)

UNIT MASUKAN DAN KELUARAN Definisi dan Fungsi: Unit masukan dan keluaran merupakan bagian komponen   utama dari sistem komputer ...