Masalah Komunikasi Antar Proses

Document Sample
Masalah Komunikasi Antar Proses Powered By Docstoc
					Abdul Hakim
Andri Julianda
Endy Hardy




[SISTEM OPERASI]
Masalah-Masalah pada Komunikasi Antar Proses dan
Penjadwalan Batch
Komunikasi Antar Proses (Inter-Process Communication)
     Yaitu suatu cara atau mekanisme pertukaran data, antara satu proses dengan proses
     lainnya, baik di dalam komputer yang sama, maupun antar beberapa komputer yang
     terhubung dalam suatu jaringan. IPC biasanya terjadi secara otomatis oleh program,
     namun user juga dapat melakukan IPC secara interaktif, misalnya dengan menggunakan
     clipboard dengan perintah cut, copy dan paste.

     Adapun masalah-masalah yang dapat terjadi pada Komunikasi Antar Proses, antara lain:
     Dining Philosophers Problem, Readers-Writers Prxoblem dan Sleeping Barber Problem.



Dining Philosophers Problem
     Pada tahun 1965, Edsger Dijkstra membuat sebuah eksperimen, dimana terdapat 5
     komputer yang berlomba untuk mengakses 5 shared tape drive. Kemudian masalah
     pada percobaan ini diangkat oleh Tony Hoare dengan nama Dining Philosophers
     Problem.

  Masalah
    Pada masalah Dining Philosophers ini, beberapa proses dianalogikan sebagai 5 orang
    yang berkumpul pada sebuah meja makan dengan masing-masing makanan mereka
    yang telah disediakan. Pada dasarnya, setiap orang hanya dapat melakukan dua hal dan
    hanya satu pada satu waktu, memakan dan/atau menunggu. Terdapat pula 5 buah
    sumpit (bukan 5 pasang) diantara setiap piring makanan, yang merupakan analogi dari
    shared resources.

     Agar seseorang dapat makan, ia membutuhkan sepasang sumpit, dan hanya dapat
     mengambilnya dari sisi kiri atau sisi kanannya. Setiap orang tak pernah berbicara pada
     orang-orang yang lainnya, maka ada peluang yang sangat besar akan terjadi deadlock.
     Apabila seseorang telah mengambil sebuah sumpit, dan menunggu sumpit kedua yang
     sedang dipakai oleh orang lain, dan orang itu pula menunggu sumpit kedua yang sedang
     dipakai, dan seterusnya, hingga terjadi sebuah rantai dimana setiap keingingan orang-
     orang tersebut tidak dapat terpenuhi.

     Masalah yang dihadapi oleh orang-orang di meja makan menjadi analogi masalah-
     masalah pada pemrograman komputer secara nyata, ketika program-program
     membutuhkan akses eksklusif kepada shared resources.

  Solusi
     A. Solusi Waiter: solusi sederhana ini dilakukan dengan mengadakan seorang waiter
         yang senantiasa mengawasi penggunaan sumpit di meja makan. Ketika empat buah
        (dua pasang) sumpit sedang dipakai, orang berikutnya yang ingin memakai sumpit
        harus meminta izin kepada sang waiter, yang hanya dapat diberi ketika salah satu
        sumpit telah selesai terpakai.
        Contoh: Misalkan ke-lima orang tersebut dinamakan dari A sampai E secara
                  berurutan. Ketika A dan C sedang makan, 4 buah sumpit sedang terpakai.
                  B tidak memiliki kedua sumpit, dan D dan E memiliki satu buah sumpit
                  diantara mereka. Apabila D ingin makan dan mengambil sumpit ke-lima,
                  deadlock sangat mungkin terjadi. Maka waiter akan meminta D untuk
                  menunggu, hingga pada saat salah satu sumpit telah selesai dipakai.

     B. Solusi Hirarki Resource: pada intinya, resources (sumpit) di meja makan telah diberi
        susunan hirarki. Setiap permintaan orang terhadap sebuah sumpit harus dilakukan
        pada susunan tertentu, dan dikembalikan pada susunan sebaliknya. Dalam hal ini,
        setiap orang dapat mengambil sumpit dimanapun diatas meja. Misalkan setiap
        sumpit diberi nomor sebagai tingkat hirarki dari 1 sampai 5, seseorang hanya dapat
        mengambil sumpit dengan nomor yang paling rendah, kemudian mengambil sumpit
        yang setingkat lebih tinggi. Ketika ia hendak mengembalikannya, orang itu harus
        meletakkan sumpit dengan nomor yang lebih tinggi terlebih dahulu, lalu yang lebih
        rendah.
        Contoh: Apabila empat dari lima orang ingin makan pada saat yang bersamaan dan
                  mengambil sumpit ‘bernomor rendah’ mereka, hanya akan ada satu buah
                  sumpit yang tersisa dengan nomor tertinggi, sehingga orang kelima tak
                  dapat mengambil sumpit itu. Dari keempat orang yang memegang sumpit,
                  hanya satu (pemegang sumpit nomor 4) yang memiliki akses ke sumpit
                  nomor 5. Ketika ia telah selesai memakan, ia akan mengembalikan sumpit
                  nomor 5 terlebih dahulu, kemudian sumpit nomor 4, hingga memberi
                  kesempatan bagi orang lain untuk makan.


Readers-Writers Problem
     Pada IPC, masalah readers-writers merupakan contoh masalah komputasi, berkaitan
     dengan kondisi-kondisi dimana terdapat banyak thread yang ingin mengakses shared
     memory yang sama, ada yang melakukan operasi reading, ada pula yang writing. Shared
     memory tidak memungkinkan threads untuk melakukan operasi reading atau writing,
     pada saat suatu thread sedang melakukan proses writing terlebih dahulu.

  Masalah Pertama
    Ketika sebuah proses R1 melakukan proses reading, dan proses R2 menginginkan akses
    ke shared memory yang sama, akan menjadi tidak efisien jika R2 menunggu R1
     menyelesaikan proses reading-nya terlebih dahulu sebelum mengakses. Maka, R2 harus
     langsung memulai prosesnya. Ini adalah alasan dibalik masalah readers-writers yang
     pertama, dimana terbentuk syarat baru yaitu “tak ada reader yang harus menunggu
     apabila shared memory terbuka untuk proses reading”. Syarat ini juga disebut sebagai
     ‘Reader’s Preference’.

  Masalah Kedua
    Berdasarkan syarat yang dikembangkan dari masalah diatas, solusi tersebut belum
    optimal. Misalkan proses R1 sedang melakukan reading, proses W menunggu R1 selesai
    untuk melakukan operasi writing, dan proses R2 meminta akses. Sangat tidak efisien jika
    R2 langsung melakukan reading sebelum W melaksanakan proses writing-nya. Jika kasus
    ini terjadi berulang kali, W akan mengalami starvation. Oleh karena itu, W harus segera
    melakukan prosesnya apabila sudah ditambah di queue. Syarat baru yang dihasilkan
    yaitu “setiap writer yang telah masuk kedalam queue, tidak boleh dibiarkan
    menunggu lebih lama dari yang dibutuhkan”. Juga disebut sebagai ‘Writer’s
    Preference’.

  Masalah Ketiga
    Ternyata, kedua syarat hasil dari kedua masalah tidak menjamin bahwa starvation tak
    akan terjadi. Dari syarat pertama, memungkinkan writers untuk starve, dan syarat kedua
    dapat menyebabkan starvation untuk readers. Oleh karena itu, syarat ketiga sering
    diterapkan, yaitu “tak ada thread yang boleh mengalami starvation”. Hal ini dilakukan
    dengan menambahkan status pada setiap thread di queue. Status ini berubah menjadi
    ‘starving’, apabila thread di queue telah menunggu lebih lama dari waktu yang telah
    ditentukan. Jadi, mungkin terdapat reader yang harus menunggu walau memory telah
    terbuka untuk reading, dan mungkin pula writer harus menunggu lebih lama dari yang
    dibutuhkan. Pada dasarnya, solusi ini merupakan sebuah kompensasi dari kedua solusi
    diatas.



Sleeping Barber Problem
     Masalah sleeping barber menganalogikan proses dimana seorang barber bertugas
     menggunting rambut pelanggan, dan beristirahat jika tak ada pelanggan yang
     menunggu.

  Masalah
    Sleeping barber problem berdasar pada suatu barber shop dan barber-nya. Si barber
    hanya memiliki satu buah kursi untuk menggunting rambut dan beberapa kursi di ruang
    tunggu. Pada saat si barber telah selesai menggunting rambut seorang pelanggan, ia
   akan berjalan menuju ruang tunggu untuk melihat keadaannya. Jika ada pelanggan yang
   menunggu, ia akan membawanya ke kursi dan memotong rambutnya. Jika tidak, ia akan
   kembali ke ruangannya, dan beristirahat.

   Setiap pelanggan ketika datang ke barber shop tersebut, harus melihat keadaan si
   barber terlebih dahulu. Jika si barber sedang tidur, ia akan membangunkannya dan
   duduk di kursi. Jika si barber sedang memotong rambut, ia akan berjalan menuju ruang
   tunggu, duduk dan menunggu gilirannya.

   Berdasarkan penjelasan sleeping barber diatas, kita dapat langsung berasumsi analogi
   tersebut bebas masalah dan barber shop milik si barber berfungsi sebagaimana
   mestinya. Namun masalah itu pun berasal baik dari barber, maupun pelanggan, yang
   melakukan task dengan durasi yang tak tentu.

   Contoh: Apabila seorang pelanggan tiba di barber shop, ia akan melihat barber.
           Ternyata si barber sementara menggunting rambut pelanggan lainnya, maka
           pelanggan tersebut menuju ke ruang tunggu. Pada saat yang bersamaan, si
           barber selesai dan menuju ke ruang tunggu (si pelanggan belum sampai di
           ruang tunggu) dan melihat tak ada pelanggan yang menunggu. Ia akan kembali
           beristirahat. Si barber akhirnya menunggu pelanggan, dan si pelanggan
           menunggu si barber.

   Contoh: Dua pelanggan tiba secara bersamaan, melihat si barber sedang bekerja dan
           melihat hanya ada satu kursi yang tersisa di ruang tunggu. Kedua pelanggan
           akan berlomba mendapatkan kursi tersebut.

Solusi
   Semua contoh permasalahan diatas dapat di dipecahkan oleh adanya mutex (mutual
   exclusion) yang memberi sebuah batasan dimana hanya satu unsur (si barber, atau satu
   pelanggan) yang dapat berubah status pada satu waktu. Si barber harus mendapatkan
   mutex sebelum melihat keadaan ruang tunggu, dan melepaskannya sebelum
   menggunting rambut dan istirahat. Setiap pelanggan wajib mendapatkan mutex
   sebelum masuk ke barber shop, dan melepaskannya ketika ia duduk di ruang tunggu dan
   kursi barber.
Penjadwalan Batch (Batch/Job Scheduling)
     Scheduling merupakan konsep utama dalam multitasking, sistem operasi multiprosesor
     dan sistem operasi real-time. Scheduling adalah cara/metode berbagai proses
     dilaksanakan pada CPU, dimana biasanya terdapat lebih banyak proses yang dijalankan
     daripada jumlah CPU yang tersedia. Hal ini diatur oleh software scheduler dan
     dispatcher.

Three-Level Scheduler
     Sistem operasi biasanya memiliki 3 macam scheduler yang berbeda, berdasarkan
     frekuensi pengoperasian ketiga jenis scheduler tersebut.

  Long-Term Scheduler
     Long-term scheduler, atau admission scheduler , berfungsi menentukan jobs atau proses
     apa yang akan dimasukkan ke ‘ready queue’. Pada saat sebuah program hendak di-
     execute dan diletakkan dalam queue, scheduler ini dapat memilih untuk
     mengizinkannya, atau menundanya. Oleh karena itu, scheduler ini memutuskan proses-
     proses yang dapat jalan pada sistem, dan jumlah proses yang dapat berjalan pada satu
     waktu.

     Pada sistem operasi modern, long-term scheduler digunakan untuk memastikan suatu
     proses ‘real-time’ mendapatkan perhatian cukup dari CPU untuk melaksanakan
     tugasnya. Tanpanya, GUI (Graphic User Interface) modern akan tampak sangat lamban.

  Mid-Term Scheduler
     Tugas mid-term scheduler yaitu mengambil suatu proses dari memory utama dan
     meletakkannya pada secondary memory (atau sebaliknya), secara temporary. Biasa juga
     dikenal dengan proses ‘swapping out’ dan ‘swapping in’. Ada beberapa alasan scheduler
     ini melakukan swapping, antara lain karena adanya: sebuah proses yang telah lama
     inactive; sebuah proses dengan prioritas rendah; proses yang sering ‘page faulting’; atau
     proses yang memerlukan memory yang banyak, kemudian mengembalikannya ketika
     memory telah mencukupi.

  Short-Term Scheduler
     Short-term scheduler (atau CPU scheduler) inilah yang menetukan proses apa, yang telah
     diletakkan di memory ready queue, yang akan di-execute berikutnya. Maka, scheduler ini
     jauh lebih sering membuat keputusan dibandingkan mid-term dan long-term scheduler.
Kriteria Penjadwalan
     Algoritma penjadwalan CPU yang berbeda, memiliki property yang berbeda pula.
     Pemilihan algoritma penjadwalan harus berdasarkan pertimbangan pada property
     masing-masing algoritma. Karakteristik property tiap algoritma-lah yang menentukan
     algoritma yang mana yang terbaik dan cocok untuk suatu sistem. Kriteria-nya sebagai
     berikut:

     A. CPU Utilization: CPU harus sesibuk mungkin;
     B. Throughput: banyaknya proses yang dapat terselesaikan per suatu unit waktu;
     C. Turnaround Time: durasi pemrosesan data, dimulai dari masuknya ke queue, hingga
        proses terselesaikan;
     D. Waiting Time: durasi suatu proses menunggu dalam ready queue;
     E. Response Time: durasi proses dimulai dari masuknya ke queue, hingga dihasilkannya
        sebuah respon.

     Idealnya, suatu algoritma harus memaksimalkan penggunaan CPU, menghasilkan
     throughput yang banyak per waktu yang sedikit, dan memiliki durasi turnaround,
     waiting dan response yang pendek.



Algoritma Penjadwalan
     Algoritma digunakan untuk mendistribusikan resource yang ada kepada proses yang
     datang secara bersamaan dan asinkron. Fungsi utama algoritma yaitu untuk
     meminimalisir starvation akan resources. Beberapa jenis algoritma antara lain:

     A. First In First Out: algoritma yang paling sederhana. Pada dasarnya adalah sebuah
        queue, proses dilaksanakan berdasarkan urutan masuk mereka kedalam queue.
     B. Shortest Job First: scheduler mengatur queue agar proses dengan perkiraan durasi
        yang paling pendek dilaksanakan terlebih dahulu.
     C. Fixed Priority Pre-emptive Scheduling: sistem operasi memberikan urutan prioritas
        untuk setiap proses. Suatu proses dalam queue yang memiliki prioritas rendah dapat
        didahului oleh proses dengan prioritas yang lebih tinggi.
     D. Round-Robin Scheduling: scheduler menentukan waktu maksimum untuk suatu
        proses, dan melaksanakan proses-proses dalam bentuk siklus.
     E. Multilevel Queue Scheduling: digunakan apabila setiap proses dalam queue dapat
        dengan mudah dikelompokkan dalam grup yang berbeda.
  Karakteristik Algoritma
Algoritma            Penggunaan   Throughput      Durasi       Durasi   Deadline   Starvation
                         CPU                   Turnaround     Respon    Handling      Free
First In First Out   Rendah       Rendah       Tinggi       Rendah      Tidak      Ya
Shortest Job First   Sedang       Tinggi       Sedang       Sedang      Tidak      Tidak
Priority Based       Sedang       Rendah       Tinggi       Tinggi      Ya         Tidak
Round-Robin          Tinggi       Sedang       Sedang       Tinggi      Tidak      Ya
Multilevel Queue     Tinggi       Tinggi       Sedang       Sedang      Rendah     Ya

				
DOCUMENT INFO
Shared By:
Stats:
views:452
posted:10/16/2010
language:Indonesian
pages:8
Description: Membahas mengenai masalah-masalah komunikasi antar proses (dining philosophers, readers-writers, sleeping barber), dan penjadwalan batch