21 Januari 2015

Kongkurensi & Mutual Exclusion

Prinsip Kongkurensi
Definisi
-Merupakan sebuah kondisi dimana terdapat lebih dari satu proses berada pada saat yang sama.
-Proses-proses yang konkuren memiliki beberapa masalah:
*Mutual Exclusion
*Starvation
*Deadlock
-Kongkurensi merupakan kegiatan yang berhubungan dengan :
*Alokasi waktu pemroses untuk proses-proses yang aktif.
*Pemakaian bersama dan persaingan untuk mendapatkan sumber daya.
*Komunikasi antar proses.
*Sinkronisasi aktivitas banyak proses

Konteks Kongkurensi
-Kongkurensi dapat muncul pada konteks yang berbeda, yaitu:
Untuk banyak aplikasi
Untuk strukturisasi dari aplikasi
Untuk strukturisasi dari satu proses
Untuk strukturisasi sistem operasi

Masalah Yang Timbul
-Kecepatan eksekusi proses-proses di sistem tidak dapat diprediksi.
-Kecepatan proses pada sistem dipengaruhi oleh :
*Aktivitas-aktivitas proses-proses lain.
*Cara sistem operasi menangani interupsi.
*Kebijaksanaan penjadwalan yang dilakukan oleh sistem operasi.

Masalah lain Kongkurensi
-Mutual Exclusion
Sumber daya yang tidak dapat dipakai bersama pada saat bersamaan.
-Starvation
Startvation adalah keadaan dimana pemberian akses bergantian terus-menerus, dan ada suatu proses yang tidak mendapatkan gilirannya.
-Deadlock
Deadlock merupakan kondisi terparah karena banyak proses dapat terlibat dan semuanya tidak dapat mengakhiri prosesnya secara benar.

Penanganan
-Mengetahui proses-proses yang aktif.
-Alokasi dan dealokasi beragam sumber daya untuk tiap proses aktif.
-Proteksi data dan sumber daya fisik masing-masing proses dari gangguan (intervensi) proses-proses lain.
-Hasil-hasil proses harus independen terhadap kecepatan relatif proses-proses lain dimana eksekusi dilakukan.

Interaksi Antar Proses
-Proses-proses saling tidak peduli (independen)
-Proses-proses saling mempedulikan secara tidak langsung
-Proses-proses saling peduli secara langsung

Mutual Exclusion
Definisi Mutual Exclusion
-Kondisi dimana terdapat sumber daya yang tidak dapat dipakai bersama pada waktu yang bersamaan (misalnya : printer, disk drive).
-Kondisi demikian disebut sumber daya kritis, dan bagian program yang menggunakan sumber daya kritis disebut critical region / section.
-Hanya satu program pada satu saat yang diijinkan masuk ke critical region.

-Sistem operasi menyediakan layanan (system call) yang bertujuan untuk mencegah proses lain masuk ke critical section yang sedang digunakan proses tertentu.
-Pemograman harus menspesifikasikan bagian-bagian critical section, sehingga system operasi akan menjaganya.
-Pemaksaan atau pelanggaran mutual exclusion menimbulkan :
Deadlock
Starvation

Contoh Mutual Exclusion
-Mutual exclusion adalah sebuah jaminan bahwa sebuah sumber daya komputer (ex. Harddisk) hanya dipakai 1 proses pada suatu waktu.
-Misalnya ada sebuah jaringan komputer sebuah Bank, dimana server untuk penyimpanan data terpusat.
*Seorang nasabah dapat melakukan penyimpanan maupun penarikan dari cabang mana saja dan kapan saja termasuk pengambilan lewat ATM.
*Sehingga jika ingin data tepat, jika ada salah satu nasabah melakukan transaksi, record nasabah bersangkutan harus dikunci supaya record tersebut tidak dapat akses oleh orang lain.
*Setelah transaksi selesai, record tempat data nasabah disimpan, record baru dibuka kembali. Ini adalah salah satu contoh penjaminan bahwa satu sumber daya hanya bisa dipakai oleh satu proses.


Deadlock & Starvation

Definisi Deadlock
-Deadlock dalam arti sebenarnya adalah kebuntuan.
-Kebuntuan yang dimaksud dalam sistem operasi adalah kebuntuan proses.
-Jadi Deadlock ialah suatu kondisi dimana proses tidak berjalan lagi atau pun tidak ada komunikasi lagi antar proses.

Penyebab Deadlock
Kondisi mutual exclusion
-Hanya ada satu proses yang menggunakan suatu sumber daya.
-Proses lain yang juga ingin menggunakannya harus menunggu hingga sumber daya tersebut dilepaskan oleh proses yang telah selesai  menggunakannya.
Kondisi hold and wait
-Suatu proses yang memiliki minimal satu buah sumber daya melakukan request lagi terhadap  sumber daya. Tetapi, sumber daya yang dimintanya sedang dimiliki oleh proses yang lain.

Penanggulangan Deadlock
-Mengabaikan masalah Deadlock.
-Mendeteksi dan memperbaiki.
-Penghindaran yang terus menerus dan pengalokasian yang baik dengan Deadlock avoidance.
-Pencegahan yang secara struktur Deadlock prevention.

Algoritma -Algoritma

Algoritma Bankir
Menurut Dijkstra (1965) algoritma penjadwalan dapat menghindari Deadlock dan algoritma penjadwalan itu lebih dikenal dengan sebutan algoritma bankir.
-Deadlock akan terjadi apabila terdapat seorang peminjam yang belum mengembalikan uangnya dan ingin meminjam kembali, padahal uang yang belum dikembalikan tadi dibutuhkan oleh peminjam lain yang juga belum mengembalikan uang pinjamannya.

Starvation
Starvasion adalah sebuah kondisi dimana ada satu atau lebih proses yang tidak pernah dieksekusi karena tidak pernah mendapat jatah sumber daya.

Ilustrasi Starvation
Terdapat tiga proses, yaitu P1, P2 dan P3.
-P1, P2 dan P3 memerlukan pengaksesan sumber daya R secara periodik
Skenario berikut terjadi :
-P1 sedang diberi sumber daya R sedangkan P2 dan P3 di-blocked menunggu sumber daya R.
-Ketika P1 keluar dari critical section, maka P2 dan P3 diijinkan mengakses R.
-Asumsi P3 diberi hak akses, kemudian setelah selesai, hak akses kembali diberikan ke P1 yang saat itu kembali membutuhkan sumber daya R.
-Jika pemberian hak akses bergantian terus-menerus antara P1 dan P3, maka P2 tidak pernah memperoleh pengaksesan sumber daya R.

-Dalam kondisi ini memang tidak terjadi deadlock, hanya saja P2 mengalami starvation (tidak ada kesempatan untuk dilayani).


Manajemen Memori

Hirarki Memory

*Cache Memory adalah memory yang bertugas membantu tugas primary memory dalam memecah-mecah data yang akan diproses dan yang belum diproses, dengan tujuan mempermudah kinerja processor (karena data dibagi-bagi / dipotong-potong dulu sebelum diproses).
-Biasa ada dalam processor, mother board maupun peralatan mikrokontroller lain (VGA, Hard disk, Sound, dsb).
-Berukuran kecil, antara Kilo Bytes (KB) sampai dengan MB (Mega Bytes).

*Main Memory adalah memory utama dari sebuah komputer, biasa berbentuk RAM (disebut juga sebagai memory dinamis).
-Fungsi utamanya adalah menyimpan sementara data yang akan diproses oleh processor dan data yang telah diproses oleh processor untuk selanjutnya diteruskan ke media input/output yang lain VGA (ditampilkan), Sound (mengeluarkan suara), Hard Disk (menyimpan data/save), maupun media input/output lainnya.
-Besarannya adalah MB (Mega Byte) hingga GB (Giga Byte)

*Secondary Memory adalah memory pembantu dari sebuah komputer, biasa berbentuk Harddisk / ROM (Read Only Memory), disebut juga sebagai memory statis (pasif).
-Fungsi utamanya adalah menyerupai RAM tapi perbedaannya memory jenis ini bisa menyimpan data dalam waktu yang lama.
-Dan juga memory jenis ini (hard disk) biasa dipakai sebagai MEMORY BANTUAN, yaitu memori tambahan untuk membantu tugas RAM.
-Misalnya ada data yang harus diproses sebesar 550 MB, sementara RAM kita hanya 512 MB, dan ini pastinya memerlukan bantuan dari Hard disk sebesar 38 MB untuk membantu tugas RAM sebagai Primary memory.
-Hal ini biasa dilakukan oleh OS dan menyimpannya dalam sebuah file yang berjenis swap (swap file / .swp).

Manajemen Memory

*Manajemen memori dilakukan dengan cara membagi-bagi memori untuk mengakomodasi banyak proses
*Manajemen memori dilakukan untuk menjamin agar setiap proses yang ready dapat segera memanfaatkan processor time.
*Beberapa fungsi lainnya:
-Mengelola informasi memori yang dipakai & tidak dipakai.
-Mengalokasikan memori ke proses yang memerlukan.
-Men-dealokasikan memori dari proses yang telah selesai.
-Mengelola swapping antara memori utama & disk.

Requierement Management Memory
*Terdapat 5 requirement manajemen memori:
-Relocation
-Protection
-Sharing
-Logical organization
-Physical organization

Teknik Manajemen Memory
Beberapa teknik manajemen memori yang ada:
*Partisi
-Partisi tetap (fixed)
-Partisi berukuran sama
-Ukuran partisi berbeda-beda
-Partisi dinamis
*Paging sederhana
*Segmentasi sederhana
*Virtual-memory
-Virtual-memory paging

-Virtual-memory segmentation

Paging

Definisi Paging
-Suatu metode yang memungkinkan suatu alamat memori fisik yang tersedia dapat tersusun tidak berurutan.
-Paging merupakan solusi untuk masalah fragmentasi eksternal dimana ruang alamat logika tidak berurutan yang mengijinkan sebuah proses dialokasikan pada memori fisik yang terakhir tersedia.
-Paging adalah bentuk manajemen memori yang biasa digunakan pada beberapa OS.

Konsep Paging
-Memori virtual dibagi menjadi blok-blok yang ukurannya tetap yang dinamakan page (ukurannya adalah pangkat 2, diantara 512 bytes dan 8192 bytes, tergantung arsitektur).
-Memori fisik dibagi juga menjadi blok-blok yang ukurannya tetap yang dinamakan frame.
-Lalu kita membuat suatu page table yang akan menterjemahkan memori virtual menjadi memori fisik.

Keuntungan dan Kerugian Paging
*Jika kita membuat ukuran dari masing-masing pages menjadi besar:
-Keuntungannya akses memori akan relatif lebih cepat.
-Kerugiannya kemungkinan terjadinya fragmentasi internal yang sangat besar.
*Jika kita membuat ukuran dari masing-masing pages menjadi kecil:
-Kerugiannya akses memori akan relatif lebih lambat.

-Keuntungannya kemungkinan terjadinya fragmentasi internal akan menjadi lebih kecil.

Segmentasi

Konsep Segmentasi
-Salah satu cara untuk mengatur memori dengan menggunakan segmen.
-Program dibagi menjadi beberapa segmen.
-Segmen → kumpulan logical unit.

Arsitektur Segmentasi
-Alamat logika terdiri dari dua bagian yaitu nomor segmen (s) dan offset (d) yang dituliskan dengan
<nomor segmen, offset>
-Pemetaan alamat logika ke alamat fisik menggunakan tabel segmen (segment table), terdiri dari:
Segmen basis (base) berisi alamat fisik awal
Segmen limit merupakan panjang segmen

Sifat Segmentasi
-Ukuran tiap segmen tidak harus sama.
-Dapat diletakan di mana saja (di main memory, setelah program dimasukkan ke memori).
-Tabel Segmen → menentukan lokasi segmen.
-Saling berbagi.
-Adanya proteksi.
-Alokasi yang dinamis.

Perbedaan Segmentasi & Paging
Kelebihan paging:
-Tidak ada fragmentasi luar.
-Alokasi-nya cepat.
Kelebihan segmentasi:
-Saling berbagi.
-Proteksi.

Virtual Memory

Definisi Virtual Memory
-Memori virtual merupakan suatu teknik yang memisahkan antara memori logis dan memori fisiknya.
-Menyembunyikan aspek-aspek fisik memori dari user.
*Memori adalah lokasi alamat virtual berupa byte yang tidak terbatas.
*Hanya beberapa bagian dari memori virtual yang berada di memori logis.

Prinsip Virtual Memory
-Konsep memori virtual yang dikemukakan Fotheringham pada tahun 1961 pada sistem komputer Atlas di Universitas Manchester, Inggris:
“ Kecepatan maksimum eksekusi proses di memori virtual dapat sama, tetapi tidak pernah melampaui kecepatan eksekusi proses yang sama di sistem tanpa menggunakan memori virtual.”

Keuntungan Memori Virtual
-Lalu lintas I/O menjadi rendah.
-Berkurangnya memori yang dibutuhkan.
-Meningkatnya respon.
-Bertambahnya jumlah user yang dapat dilayani.
-Memori virtual melebihi daya tampung dari memori utama yang tersedia.








Manajemen Proses

Definisi Proses

Suatu program yang sedang dieksekusi dan memiliki status jalannya eksekusi.

Perkembangan Konsep Proses

Konsep proses berkembang sejalan dengan modus operasi sistem komputer :

- Fase-fase monoprogramming : ketika di memori hanya ada sebuah program yang sedang dijalankan (mungkin disertai suatu monitor proses).
- Fase-fase multiprogramming : ketika di memori bisa terdapat beberapa program yang sedang dijalankan.

Implementasi Proses

Operasi-Operasi Pada Proses :
- Penciptaan proses (create a process).
- Penghancuran/terminasi proses (destroy a process).
- Penundaan proses (suspend a process).
- Pelanjutan kembali proses (resume a process).
- Penjadwalan proses (schedule a process).
- Pengubahan prioritas proses (change schedule)
- Mem-block proses (blocking a process)

- Interaksi proses

#Penciptaan Proses (1)
Melibatkan banyak aktivitas, yaitu:
-Menamai (memberi identitas) proses.
-Menyisipkan proses pada senarai proses atau tabel proses.
-Menentukan prioritas awal proses.
-Menciptakan PCB (Process Control Block)
-Mengalokasikan sumber daya awal bagi proses.

#Penghancuran Proses (2)
melibatkan pembebasan proses dari sistem, yaitu:
-Sumber daya yang dipakai dikembalikan.
-Proses dihancurkan dari senarai atau tabel sistem.
-PCB dihapus (ruang memori PCB dikembalikan ke pool memori yang bebas)

#Penundaan Proses-Suspend (3)
Alasan proses ditunda:
-Suatu proses membutuhkan proses lain yang sedang digunakan.
-Proses membutuhkan alokasi memori yang lebih besar dari memori yang tersedia dalam keadaan bebas.

#Pelanjutan Kembali Proses-Resume (4)
Alasan proses dilanjutkan:
-Proses lain untuk eksekusi suatu proses yang ditunda sudah selesai digunakan oleh proses lain
-Alokasi memori yang bebas (tidak terpakai) sesuai dengan memori yang dibutuhkan oleh proses.

#Penjadwalan Proses (5)
Umumnya setiap proses akan berada dalam beberapa tahap antrian :
-job queue : ketika proses memasuki sistem
-ready queue : proses yang hidup pada memori utama, siap dan menunggu untuk di-eksekusi
-device queue : bila proses tersebut menunggu peralatanI/O tertentu
Ada 3 macam scheduler:
-Long-term scheduler
-Short-term scheduler
-Medium-term scheduler

#Pengubahan Prioritas Proses (6)
Berhubungan dengan penjadwalan proses.
Alasan pengubahan prioritas proses:
-Memori (bebas-tidak terpakai) yang dibutuhkan sebuah proses masih mencukupi atau tidak mencukupi.
-Proses yang akan diubah prioritasnya, masih membutuhkan proses lain yang sedang berjalan.

#MemBlock Proses-Blocking (7)
Blocking Process dikarenakan proses berjalan terus-menerus tanpa mengalami terminated.

#Interaksi Proses (8)
-Sistem operasi yg dibuat saat ini mampu menjalankan program secara simultan (concurrent).
-Program yang dijalankan secara simultan itu dapat bekerja sama dengan proses lain ataupun bekerja sendiri.

Istilah Dari Sistem Proses

Cooperating Processes
-Sistem operasi yg dibuat saat ini mampu menjalankan program secara simultan (concurrent).
-Program yang dijalankan secara simultan itu dapat bekerja sama dengan proses lain ataupun bekerja  sendiri.
-Alasan dipakainya Cooperating Processes:
*Information Sharing (sharing)
*Computation Speedup (kecepatan)
*Modularity (teknik modular)

*Convenience (kenyamanan)







04 November 2014

Sistem Operasi

Priority Scheduling
           Merupakan algoritma penjadwalan yang mendahulukan proses yang memiliki prioritas tertinggi, setiap proses memiliki prioritasnya masing-masing.
Karakteristik Prioritas suatu proses dapat di tentukan dengan :
- Time Limit
- Memory Requirement
- Akses File
- Perbandingan antara I/O burst dengan cpu burst
- Tingkat kepentingan proses
Priority Scheduling juga dapat dijalankan secara preemptive maupun non-preemptive.
- preemptive : jika ada suatu proses yang baru datang memiliki prioritas yang lebih tinggi daripada proses yang sedang dijalankan, maka proses yang sedang berjalan tersebut dihentikan, lalu CPU dialihkan untuk proses yang baru datang tersebut
          - non-preemptive : proses yang baru datang tidak dapat menganggu proses yang sedang berjalan, tetapi hanya diletakkan di depan queue.


Adapun Kelemahan dari priority scheduling, yaitu dapat terjadinya indefinite blocking (starvation).
     - suatu proses yang memiliki prioritas yang lebih rendah tidak akan di eksekusi bila ada proses lain yang memiliki prioritas yang lebih tinggi.
Solusi untuk mengatasi masalah tersebut adalah aging, yaitu meningkatkan prioritas dari setiap proses yang menunggu dalam queue secara bertahap.Round Robin
       Fungsinya adalah untuk menggilir proses yang ada di antrian, proses ini cukup adil karena tidak ada proses yang di prioritaskan, semua proses dapat jatah waktu yang sama dari CPU.
       Adapun kelemahan dari round robin, yaitu jika time quantum yang ditentukan terlalu kecil, maka sebagian besar proses tidak akan selesai dalam 1 time quantum. Hal ini tidak baik karena akan terjadi banyak switch, karena CPU memerlukan waktu untuk beralih dari suatu proses ke prosses lain.
       Jika time quantum terlalu besar, algoritma round robin agar berjalan seperti algoritma first come first served.
Multilevel Queue
       Algoritma ini berdasarkan pada sistem prioritas proses. Prinsipnya adalah jika setiap prosesdapat dikelompokkan berdasarkan prioritasnya, makan akan didapati queue.
       Adapun kelemahan dari multilevel queue, yaitu algoritma ini memiliki kelemahan yang sama terhadap priority scheduling, yaitu suatu proses pada queue dengan prioritas rendah bisa saja tidak mendapatkan jatah CPU.
Untuk mengatasinya , memodifikasi algoritma ini dengan adanya jatah waktu maksimal untuk tiap antrian. Misalnya jika antrian terlalu banyak memakan waktu, maka prosesnya akan dihentikan dan digantikan oleh antrian dibawahnya.
Multilevel Feedback Queue
       
Algoritma ini mirip sekali dengan algoritma multilevel queue, perbedaannya adalah algoritma ini mengizinkan proses untuk pindah antrian.
- Jika suatu proses menyita CPU terlalu lama, maka proses itu akan dipindahkan ke antrian yang lebih rendah.
- Hal ini menguntungkan proses interaksi, karena proses ini hanya memakai waktu CPU yang sedikit.
- Demikian pula proses yang menunggu terlalu lama, proses ini akan dinaikkan tingkatannya.
- Biasanya prioritas tertinggi diberikan kepada proses dengan CPU burst terkecil, dengan begitu CPU akan terutilisasi penuh dan I/O dapat terus sibuk.
- Semakin rendah tingkatannya, panjang CPU burst proses juga semakin besar.
- Algoritma ini didefinisikan melalui beberapa parameter, antara lain :
* Jumlah antrian
* Algoritma penjadwalan tiap antrian
* Kapan menaikkan proses ke antrian yang lebih tinggi.
* Kapan menurunkan proses ke antrian yang lebih rendah.
* Antrian mana yang akan dimasuki proses yang membutuhkan.