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)