Jojoshuajosh Journal

Just another Binusian blog site

Archive for November, 2015

SisOp Session 11 & Session 12

without comments

*Session 11

Concurrency


Concurensy merupakan proses-proses (lebih dari satu proses) berada pada saat yang sama. Proses-proses yang mengalami kongkuren dapat berdiri sendiri (independen) atau dapat saling berinteraksi, sehingga membutuhkan sinkronisasi atau koordinasi proses yang baik. Untuk penanganan kongkuren, bahasa pemograman saat ini telah memiliki mekanisme kongkurensi dimana dalam penerapannya perlu dukungan sistem operasi dimana bahasa berada.

Tujuan Concurrency

  • Proses komunikasi antar proses
  • Berbagi sumber daya
  • Sinkronisasi antara beberapa proses
  • Alokasi waktu proses

Masalah pada concurrency

  • Berbagi sumber daya yang sama atau bersifat global
  • Manajemen alokasi di sumber daya
  • Error dalam programming yang susah diidentifikasi

OS Concerns

  • Menelusuri proses – prose yang aktif
  • Mengatur alokasi sumber daya

– Processor time

– Memory

– Files

– I/O devices

  • Melindungi data dan sumber daya
  • Hasil proses harus independen dari proses lainnya

Competition among Processes for Resources

  • Mutual exclusion : Mutual Exclusion adalah suatu cara yang menjamin jika ada sebuah proses yang menggunakan variabel atau berkas yang sama (digunakan juga oleh proses lain), maka proses lain akan dikeluarkan dari pekerjaan yang sama. Mutual Exclusive terjadi ketika hanya ada satu proses yang boleh memakai sumber daya, dan proses lain yang ingin memakai sumber daya tersebut harus menunggu hingga sumber daya tadi dilepaskan atau tidak ada proses yang memakai sumber daya tersebut.
  • Sinkronisasi : Sinkronisasi adalah proses pengaturan jalannya beberapa proses pada saat yang bersamaan. Tujuan utama sinkronisasi adalah menghindari terjadinya inkonsitensi data karena pengaksesan oleh beberapa proses yang berbeda.
  • Deadlock : Deadlock adalah suatu kondisi dimana dua proses atau lebih saling menunggu proses yang lain untuk melepaskan resource yang sedang dipakai. Karena beberapa proses itu saling menunggu, maka tidak terjadi kemajuan dalam kerja proses-proses tersebut.
  • Starvation : Starvation adalah kondisi yang biasanya terjadi setelah deadlock. Proses yang kekurangan resource (karena terjadi deadlock) tidak akan pernah mendapat resource yang dibutuhkan sehingga mengalami starvation (kelaparan). Namun, starvation juga bisa terjadi tanpa deadlock. Hal ini ketika terdapat kesalahan dalam sistem sehingga terjadi ketimpangan dalam pembagian resouce.

Semaphores

Semaphore adalah sebuah variabel bertipe integer yang selain saat inisialisasi, hanya dapat diakses melalui dua operasi standar, yaitu increment dan decrement. Semaphore digunakan untuk menyelesaikan masalah sinkronisasi secara umum. Semaphores memiliki antrian (queue) yang digunakan untuk menangani proses yang menunggu (waiting) pada semaphore. Semaphore Kuat menggunakan FIFO sedangkan semaphore Lemah tidak menentukan urutan penghapusan dari antrian.

Semaphore memiliki dua jenis :

  • Binary semaphore. Semaphore ini hanya memiliki nilai 1 atau 0. Sering juga disebut sebagai semaphore primitive.
  • Counting semaphore. Semaphore ini memiliki nilai 0, 1, serta integer lainnya. Banyak sistem operasi yang tidak secara langsung mengimplementasikan semaphore ini, tetapi dengan memanfaatkan binary semaphore

*Session 12

Deadlock


Deadlock adalah keadaan dimana dua program memegang kontrol terhadap sumber daya yang dibutuhkan oleh program yang lain. Tidak ada yang dapat melanjutkan proses masing-masing sampai program yang lain memberikan sumber dayanya, tetapi tidak ada yang mengalah.

sisop 54

Deadlock Modeling

sisop 55

*Ilustrasi resource allocation. (a) Holding a resource. (b) Requesting a resource. (c) Deadlock.

Karakteristik Deadlock

Menurut Coffman(1971) ada empat kondisi yang dapat menyebabkan terjadinya deadloock. Keempat kondisi tersebut tidak dapat berdiri sendiri, saling mendukung.

  • Mutual Eksklusif: hanya ada satu proses yang bisa menggunakan sumber daya tersebut. Jika ada proses lain yang meminta sumber daya tersebut, maka proses itu harus menunggu sampai sumber daya dilepaskan.
  • Hold and wait : proses yang meminta sumber daya sudah memegang sumber daya lainnya(meminta sumber daya tambahan).
  • No Preemption: sumber daya yang sudah dialokasikan untuk sebuah proses tidak bisa diminta oleh proses lain. Sumber daya hanya bisa dilepaskan secara sukarela atau setelah proses tersebut selesai menggunakannya.
  • Circular Wait : kondisi seperti rantai yaitu saling menunggu smber daya yang dipakai oleh proses yang menunggu sumber daya tersebut.

Strategi mengatasi Deadlock

  • Mengabaikan masalah deadlock.
  • Mendeteksi dan memperbaiki.
  • Penghindaran yang terus – menerus dan pengalokasian yang baik dengan menggunakan protocol untuk memastikan sistem tidak pernah memasuki keadaan deadlock. Yaitu dengan deadlock avoidance sistem untuk mendata informasi tambahan tentang proses mana yang akan meminta dan menggunakan sumber daya.
  • Pencegahan yang secara struktur bertentangan dengan empat kondisi terjadinya deadlock dengan deadlock prevention sistem untuk memastikan bahwa salah satu kondisi yang penting tidak dapat menunggu.

Untitled1

Pemulihan Deadlock

  1. Terminasi Proses

Metode ini akan mematahkan deadlock cycle, tetapi bisa saja proses-proses yang deadlock telah dikomputasi dalam waktu yang lama dan hasil-hasil komputasi parsial harus dibuang, sehingga ada kemungkinan harus dikomputasi ulang. Abort satu proses pada satu waktu sampai deadlock tereleminasi.

  1. Resources Preemption

Mengeliminasi deadlock menggunakan preempt sumber daya berarti kita berturut-turut preempt beberapa sumber daya dari suatu proses dan memberikan sumber daya ini ke proses lain sampai deadlock cycle path.

Soal latihan :

IMG_0772

IMG_0773

IMG_0774

Thanks…

www.binusmaya.binus.ac.id

www.skyconnectiva.com

Written by jojoshuajosh

November 10th, 2015 at 10:20 pm

Posted in Uncategorized

SisOp Session 9 & Session 10

without comments

*Session 9

Scheduling


Process Behaviour

  1. Process-bound
  2. I/O bound

sisop 33

CPU scheduler

  • Memilih dari antara proses – proses di memori yang siap untuk dieksekusi dan alokasikan CPU ke salah satu dari proses tersebut.
  • Keputusan penjadawalan CPU dapat terjadi ketika proses :

Read the rest of this entry »

Written by jojoshuajosh

November 3rd, 2015 at 11:44 pm

Posted in Uncategorized