Selasa, 10 November 2015

Concurency
Concurency merupakan landasan umum perancangan sistem operasi.
Proses-proses disebut concurrency jika proses-proses (lebih dari satu proses) berada pada saat yang sama.

1.       Komunikasi antara proses
2.       Sharing resources
3.       Sinkronisasi beberapa proses
4.       Alokasi waktu prosesor

      Beberapa aplikasi
- Multiprogramming
      Aplikasi terstruktur
- Aplikasi dapat menjadi serangkaian proses konkuren
      Struktur sistem operasi
- Sistem operasi adalah seperangkat proses atau threads

Problems in concurency
       Sharing global resources
       Management of allocation of resources
       Programming errors difficult to locate

Semaphore
Semaphore adalah variable khusus yang digunakan untuk memberi isyarat
Semamphore juga variable yang memiliki nilai integer
Semaphore digunakan untuk menyelesaikan masalah sinkronisasi secara umum.

O/S punya beberapa concern, diantaranya:
1.       Mentrack proses-proses yang sedang aktif
2.       Mengalokasi dan mendealokasi resource-resource semacem processor time, memory, file, dan I/O devices
3.       Melindungi data dan resource
4.       Hasil dari proses harus independen terhadap kecepatan eksekusi dari proses-proses lain yang concurrent.


Ada beberapa cara untuk mencapai mutual exclusion :
1.       Dengan men-disable interrupts
2.       Memakai lock variable
3.       Menggunakan strict alteration
4.       Menggunakan Peterson’s solution

5.       Memakai instruksi TSL

Classical IPC problem :


Mutex in pthread



Quiz 








Selasa, 03 November 2015

CPU scheduler
Mengambil proses dari memory yang siap untuk dieksekusi dan mengalokasikan resource CPU ke proses tersebut

CPU scheduling terjadi ketika :

  • Pergantian dari running ke waiting state
  • Pergantian dari running ke ready state
  • Pergantian dari waiting to ready
  • Terminate
Tipe - tipe scheduler
  • Long-term scheduling ( Proses di process pool )
  • Medium-term scheduling ( Proses di main memory )
  • Short-term scheduling ( Proses di CPU )
  • I/O scheduling ( I/O device )
Dispatcher
Dispatcher adalah modul yang memberikan kontrol CPU kepada proses yang diseleksi oleh short-term scheduling. Funsi dari dispatcher seperti :
  • Menganti context
  • Menganti user mode
Scheduling criteria
  • CPU utilization ( membutat CPU sesibuk mungkin )
  • CPU throughput ( jumlah proses yang selesai dalam satuan waktu tertentu )
  • Turnaround time ( waktu untuk mengeksekusi sebuah proses tertentu )
  • Waiting time ( waktu sebuah proses menunggu di tahap ready )
  • Response time ( waktu yang diperlukan ketika request pertama di ajukan sampai menerima response untuk pertama kalinya )
Optimization criteria
  • Max CPU utilization
  • Max CPU throughput
  • Min turnaround time
  • Min waiting time
  • Min Response time
Goal of scheduling


Algoritma Batch Scheduling

First-Come First-Serve
– Proses ditugaskan CPU dalam urutan sesuai dengan permintaan proses.
* Keuntungan : Mudah dimengerti dan mudah diprogramkan.
* Kerugian : Pekerjaan pendek mungkin akan menunggu terlalu lama jika pekerjaan panjang berada di depannya.

Shortest Job First
– Penggabungan setiap proses, pecahan panjang CPU berikutnya. Gunakan panjang ini untuk menjadwalkan proses dengan waktu terpendek.- 2 skema :
* Nonpreemptive – Sekali CPU diberikan ke proses, CPU tidak dapat didahului sampai pecahan CPU selesai.
* Preemptive – Jika proses baru datang dengan panjang pecahan CPU lebih kecil dibandingkan waktu yang tersisa dari proses eksekusi saat ini, dahului. Skema ini dikenal sebagai Shortest-Remaining-Time-First (SRTF).- SJF adalah optimal – Memberikan minimum rata-rata waktu tunggu untuk sekelompok proses yang diberikan.

TUGAS
1. First-Come First-Serve
Waiting time for A=0, B=2, C=5, D=1, E=3
Average Waiting Time = (0+2+5+1+3)/5 = 2, 2
 2. Shortest Job First – Non Preemptive
Waiting time for A=0, B=4, C=0, D=1, E=3
Average Waiting Time = (0+4+0+1+3)/5 = 1, 6
 3. Shortest Job First – Preemptive
Waiting time for A=0, B=4, C=0, D=1, E=3
Average Waiting Time = (0+4+0+1+3)/5 = 1, 6


 References