Minggu, 14 Juni 2015

SECURITY

Security dalam OS

adalah hal-hal yg mencakup keamanan didalam suatu OS.


Syarat-syarat adanya keamanan :

  • Confidentiality : suatu komputer hanya dapat diakses oleh orang yang memiliki autorisasi
  • Integrity : hanya orang yg memiliki autorisasi yg dapat mengakses datanya
  • Availability : ketersediaan dari data agar dapat diakses oleh orang
  • Authenticity : sistem komputer yg berfungsi untuk memastikan identitas dari user yg mengakses

Tujuan dari adanya security adalah :

  1. data confidentiality
  2. data integrity
  3. system availability

Tipe-tipe Threat :

  • Alur normal, seharusnya jalur komunikasi yg aman adalah seperti gambar (a). Gambar (a) menunjukkan bahwa jalur dari sumber informasi ke tujuan informasi harusnya tidak terdapat ancaman yg mengganggu.

  • Interruption
    tipe ancaman yg pertama adalah gambar (b) interruption. Pada gambar (b) jalur komunikasi antara sumber dan tujuan ditutup / diputus oleh orang yg tidak terautorisasi, biasanya menyerang availability dari sistem tersebut.
  • Interception
    tipe ancaman yg kedua adalah gambar (c) interception. Pada gambar (c) jalur komunikasi antara sumber dan tujuan terlihat aman, namu ada pihak-pihak yg tidak terautorisasi dapat mengakses informasi tersebut, biasanya menyerang confidentiality dari data tersebut.
  • Modification
    tipe ancaman yg ketiga adalah gambar (d) modification. Pada gambar (d) jalur komunikasi antara sumber dan tujuan seolah-olah terlihat aman, namun ada pihak-pihak yg tidak terautorisasi mengambil datanya terlebih dahulu, lalu mengubah datanya, setelah itu baru dikirim ke tujuannya. Biasanya menyerang integrity dari data tersebut
  • Fabrication
    tipe ancaman yg keempat adalah gambar (e) fabrication. Pada gambar (e) jalur komunikasi antara sumber dan tujuan belum dibuat, namun ada pihak-pihak tidak terautorisasi yg mengirimkan suatu data seolah-olah seperti kiriman dari sumber informasi. Isi dari data tersebut dapat berupa program kecil untuk menyusup, biasanya menyerang authenticity dari sistem tersebut.

Intruders

Kategori dari intruders adalah :
  1. menyerang orang yg tidak memiliki pengetahuan tentang sistem komputer
  2. menyadap komunikasi orang-orang dalam
  3. berpikir untuk mencuri uang
  4. menyerang keamanan umum dan militer

Kehilangan Data, sering disebabkan oleh :
  • Acts of God, kehilangan yg terjadi karena adanya bencana alam, dan segala hal yg tidak dapat diprediksi oleh manusia
  • Hardware / software errors, kehilangan yg terjadi karena adanya error yg terjadi pada hardware maupun software
  • Human error, kehilangan yg disebabkan karena kesalahan yg dilakukan oleh manusia, seperti salah memasukkan data

Aset dari sistem komputer

Aset dari sistem komputer dibagi menjadi :
  1. Hardware
  2. Software
  3. Data
  4. Jalur komunikasi dan jaringan

Intrusion Detection

Cara mendeteksi adanya intruders :
  • Statistical anomaly detection, adalah mendeteksi adanya keanehan dalam suatu data secara statistik. Contohnya : orang A biasa mengambil uang di atm sebesar 1 juta, tiba-tiba pada suatu hari orang A mengambil uang 3 juta. Oleh karena itu perlu dipertanyakan kejelasannya.
  • Rule-based detection, adalah mendeteksi adanya ketidakselarasan antara aturan yg dibuat. Contoh : orang B bekerja di perusahaan XYZ dengan peraturan setiap jam 8 pagi-4 sore untuk login akunnya. Tiba-tiba pada suatu hari orang B login di jam 5 sore, karena adanya ketidakselarasan dengan aturan yg telah dibuat maka harus dipertanyakan juga.
  • Audit record, adalah mendeteksi adanya keanehan dengan cara mengumpulkan semua data-data lalu di cek satu persatu.

Authentication

Authentication dalam OS sangat dibutuhkan untuk mendeteksi :
  1. sesuatu yg user ketahui
  2. sesuatu yg dimiliki user
  3. siapakah user tersebut

Countermeasure

Countermeasure adalah pencegahan agar orang lain tidak masuk ke dalam sistem kita secara sembarangan. Caranya adalah dengan :
  • membatasi orang yg dapat login
  • batasan untuk mencoba login
  • suatu database yg berisi orang-orang yg telah login

Attack from Inside

Penyerangan dari dalam dapat terjadi di sistem komputer kita. Yang biasanya terjadi dalam penyerangan tersebut adalah : 
  1. Trojan horse
    adalah suatu program bebas yg dibuat sebagai pintu masuk malicious software, bisa juga virus.
  2. Login spoofing
    adalah suatu program yg dibuat sama persis dengan program aslinya, yang berfungsi untuk mengambil sesuatu yg penting didalamnya. Contoh : program untuk login, fungsinya adalah untuk mengambil username dan password orang tersebut.
  3. Logic bomb
  4. Trapdoor / Backdoor
    adalah suatu program yg berfungsi bagi pemilik program yg asli untuk bisa masuk ke dalam program yg telah ia buat sendiri namun di hack.
  5. Buffer overflow

Virus, adalah suatu program yg dapat menginfeksi program lain dengan cara memodifikasinya.
Worm, adalah suatu aplikasi yg semakin dibelah akan semakin banyak.
Zombie, adalah suatu program yg secara diam-diam mengambil alih komputer lain.

Tahap-tahap virus dibagi menjadi 4 :
  1. Fase dormant, adalah fase dimana virus masih dalam keadaan tidak aktif
  2. Fase propagation, adalah fase dimana virus mulai menyebar / memperbanyak diri ke dalam area sistem
  3. Fase triggering, adalah fase dimana virus mulai aktif untuk menjalankan fungsi mereka / mulai menyerang
  4. Fase execution, adalah fase dimana fungsinya mulai berkembang

Pendekatan antivirus ada 3 : detection, identification, dan removal.


Semoga bermanfaat ! ^^

Kamis, 04 Juni 2015

EMBEDDED SYSTEM

Embedded System

Embedded system adalah suatu kombinasi dari hardware dan software yg didesain untuk menjalankan suatu fungsi tertentu.
Contoh dari embedded system adalah microprocessor yg mengontrol mesin automobile.



Karakteristik dari embedded system adalah :
  • Real time operation : suatu operasi yg pada waktu itu juga akan dilakukan secara langsung
  • Reactive operation : suatu operasi yg akan berjalan jika di picu dengan tindakan lainnya dulu
  • Configurability : karena variasi dari embedded system sangat banyak, maka untuk menyesuaikan kebutuhan dapat dikonfigurasi secara kualitatif dan kuantitatif
  • I/O device flexibility : fleksibilitas antara segala macam alat input dan output
  • Streamlined protection mechanism : embedded system didesain secara terbatas dengan fungsi yg didefinisikan dengan baik
  • Direct use of interrupts : embedded system dapat diinterupsi oleh proses lain yg lebih penting


Embedded System Vs. Traditional System

Kelebihan embedded system daripada traditional system :
  1. embedded system tidak harus dikodekan secara urut
  2. dapat diinterupsi oleh sebelum proses itu selesai
  3. banyak bagian dari sistem dapat berjalan secara bersamaan dalam waktu yg sama juga
  4. dapat menjaga komponen-komponen yg penting pada banyak sistem

Cara membuat embedded system :
  1. tentukan hardware apa yg digunakan
  2. harus menentukan juga software yg cocok untuk hardware tadi
  3. tentukan juga tugas yg spesifik untuk jangka waktu yg panjang
  4. bisa menggunakan konsep obeject-oriented
  5. jangan membuat fungsi yg sudah ada

2 contoh dari embedded system adalah : TinyOS dan eCos(embedded configurable operating system).


Komponen eCos 

Komponen dalam eCos :
  • HAL (hardware abstraction layer) adalah sebuah software yg menyediakan API kepada upper layers dan peta / gambaran kepada upper layers terhadap platform hardware.
  • eCos kernel, mempunyai tujuan :
    • low interupt latency
    • low task switching latency
    • small memory footprint
    • deterministic behaviour
eCos Scheduler, dibagi menjadi 2 :
  1. Bitmap scheduler, membantu level-level prioritas, tapi hanya 1 thread yg dapat diproses dalam waktu yg sama
  2. Multilevel Queue Scheduler, mengijinkan banyak thread yg terdapat pada level prioritas, terbatas hanya oleh sumber data

Semoga bermanfaat ! ^^

MULTI PROCESSOR

Multicore Computer

Multicore computer adalah suatu CPU dengan lebih dari 1 core. Core itu beroperasi sebagai prosesor yg memiliki single chip. Multicore sendiri juga berguna untuk meningkatkan performa komputer itu sendiri.


Multiprocessor

Multiprocessor adalah suatu komputer yg memiliki banyak CPU dan memiliki banyak prosesor. Kebanyakan multiprocessor mengkombinasikan 2 teknologi, yaitu multicore dan multiprocessor.


Multicore vs. Multiprocessor

  • Saves energy
    komputer yg menggunakan multicore cenderung lebih hemat energi / hemat penggunaan listrik daripada menggunakan multiprocessor, karena multiprocessor menggunakan CPU sendiri-sendiri sehingga membutuhkan lebih banyak daya listrik untuk menghidupkannya.
  • Saves space
    komputer yg menggunakan multicore juga cenderung lebih hemat tempat penyimpanan. Karena jarak dari multicore itu lebih dekat dibanding dengan multiprocessor.
  • Performance
    komputer yg menggunakan multiprocessor akan lebih cepat untuk menghandle segala request yg diberikan, sehingga menyebabkan performanya lebih baik daripada multicore.



Gambar (a) merupakan gambar dari banyak CPU, yg berarti juga mempunyai banyak prosesor. Gambar (b) merupakan gambar dari banyak CPU yg mempunyai banyak prosesor dan mempunyai tempat penyimpanannya sendiri, tapi juga bisa memiliki tempat penyimpanan yg tergabung. Gambar (c) merupakan gambar dari CPU yg mempunyai tempat penyimpanan sendiri dan semua CPU itu terhubung ke dalam jaringan internet.


UMA Multiprocessor with Bus-Based Architecture


Ada 3 jalur bus dalam multiprocessor, yaitu gambar (a) merupakan gambar tanpa caching, adalah beberapa CPU yg terhubung dalam bus / jalur yg sama dan mempunyai memori / tempat penyimpanan yg sama, sehingga untuk mengaksesnya harus memastikan kalau tidak ada CPU lain yg sedang mengakses memori tersebut; gambar (b) merupakan gambar yg menggunakan caching, adalah beberapa CPU yg terhubung dalam bus / jalur yg sama mempunyai tempat penyimpanan sementara (cache) sehingga untuk mengakses memori utama tidak terlalu penuh; gambar (c) merupakan gamabr yg menggunakan caching dan mempunyai tempat penyimpanan sendiri, yaitu CPU yg terhubung dalam bus / jalur yg sama dan mempunyai tempat penyimpanan memori sementara serta memiliki tempat penyimpanan untuk dirinya sendiri.


Multiprocessor Architecture

Sistem multiprocessor berdasarkan tujuan CPU dan memorinya dibagi menjadi 3 :
  1. Uniform Memory Access (UMA)
    Disebut juga dengan Symmetrical Multiprocessor (SMP). UMA ini adalah suatu arsitektur yg mengakses memori dengan cara yg sama / seragam.
  2. Nonuniform Memory Access (NUMA)
    NUMA adalah sebuah arsitektur yg mengakses memorinya secara berbeda-beda.
  3. Non remote Memory Access (NORMA)
    Disebut juga dengan distributed system

SMP Architecture

SMP adalah kepanjangan dari Symmetrical Multiprocessor, arsitekturnya terdiri dari sebuah bus yg menghubungkan ke suatu jaringan. SMP sendiri hanya bisa memproses 1 percakapan dalam waktu yg sama, dan proses-proses yg lainnya di tunda untuk diproses dulu. Kelemahannya adalah CPU tidak dapat diprediksi waktunya dalam mengakses suatu isi dari memori, dan mungkin saja jalur yg digunakan mengalami masalah traffic data.


Kernel Structure

Kernel dalam sebuah multiprocessor disebut juga dengan SMP Kernel. Fungsi kernel adalah untuk mengeksekusi kode-kode yg diberikan dari user dan dapat dilakukan secara paralel. CPU bekerja dengan saling tersinkronisasi dan juga dapat diinterupsi prosesnya.


NUMA Kernel

CPU yg menggunakan arsitektur NUMA mempunyai waktu akses memori yg berbeda-beda. Setiap node dalam arsitektur NUMA mempunyai kernel yg terpisah, sehingga setiap prosesnya dapat diatur dalam alamat memori.


UMA dan NUMA

Persamaan : single memory space, dan juga ada pitfall (pitfall adalah perbedaan antara shared memori dan distributed memori)

Perbedaan : waktu akses memorinya berbeda-beda, jumlah dari prosesor juga berbeda, dan jalur serta pengimplementasian jaringannya digunakan juga berbeda.


NUMA processor

Karakteristik dari NUMA prosesor adalah :
  • adanya single address space yg terlihat bagi seluruh CPU
  • waktu akses ke remote memory menggunakan instruksi LOAD dan STORE
  • waktu akses ke remote memory lebih lambat daripada waktu akses ke lokal memori

Mempunyai multiprocessor yg banyak, itu berarti juga mempunyai banyak CPU, oleh karena itu masing-masing dari CPU tersebut bisa diinstal operating system (OS) yg berbeda-beda juga.


Klasifikasi dari System Parallel

Paralel sistem dapat diklasifikasikan sebagai berikut :
  • SISD (Single Instruction Single Data) 
  • MISD (Multiple Instruction Single Data)
  • SIMD (Single Instruction Multiple Data)
  • MIMD (Multiple Instruction Multiple Data)

Sifat multiprocessor :
  1. Sinkronisasi, yg berarti dapat saling terhubung dan saling memperbarui isi data sehingga tidak ada data yg hilang dan menjadi data yg memiliki integritas. Untuk mengubah suatu data maka diperlukan key, jika hanya membaca maka tidak membutuhkan key.
  2. Time sharing, yg berarti menggunakan struktur data utama untuk mengatur jalannya dari multiprosesor.
  3. Space sharing, yg berarti banyak CPU yg terhubung untuk saling membagikan memori penyimpanannya bagi CPU yg membutuhkan tempat penyimpanan.

Gang Scheduling

Didalam Gang Scheduling ada 3 bagian :
  • kumpulan dari thread yg dijadwalkan / diatur sebagai suatu unit.
  • semua member dijalankan secara simultan pada waktu CPU yg berbeda-beda.
  • semua member memulai dan mengakhiri waktu proses mereka secara bersamaan juga.


Semoga bermanfaat ! ^^

Rabu, 27 Mei 2015

BITMAP VS VECTOR

Nah pelajaran saya minggu ini adalah mencari apa itu vektor, dan apa itu bitmap, serta mencari kekurangan dan kelebihan dari masing-masing topiknya.

A. Vektor
     Vektor adalah suatu gambar yg menyimpan datanya dalam bentuk persamaan matematika. Menurut pengertian bakunya, vektor adalah suatu gambar yg merupakan kombinasi dari titik dan garis yg tergabung dalam suatu persamaan matematika.

Kelebihan dari gambar vektor :

  • bersifat scalable, artinya kita dapat memperbesar dan memperkecil gambar tanpa mengubah kualitas, alias tidak pecah saat di zoom.
  • memiliki ukuran file yg kecil
  • mempunyai warna-warna yg solid
  • digunakan untuk gambar-gambar yg sederhana
  • mudah untuk dipelajari, karena tidak membutuhkan skill yg tinggi
Kekurangan dari gambar vektor :
  • tidak bisa memiliki warna yg bergradasi


B. Bitmap
     Bitmap adalah suatu gambar yg menyimpan datanya dalam pixel. Menurut pengertian bakunya, bitmap adalah suatu gambar yg merupakan kombinasi warna yg disimpan ke dalam pixel. Dalam 1 pixel menyimpan 1 warna sendiri.

Kelebihan dari gambar bitmap :

  • bisa memiliki warna yg beragam, serta dapat memiliki gradasi warna
  • lebih enak dilihat karena warnanya lebih natural
Kekurangan dari gambar bitmap :
  • untuk memperbesar dan memperkecil gambar akan mempengaruhi kualitas gambar, alias akan pecah kalau di zoom
  • ukuran file relatif lebih besar
Gambar perbedaan vektor dan bitmap :

Jadi kesimpulan yg dapat ditarik adalah jika anda ingin membuat suatu gambar yg mudah dan tidak memperlukan banyak warna ataupun anda ingin membuat suatu gambar dengan resolusi yg sangat tinggi lebih baik menggunakan gambar vektor. Tetapi jika ingin mendapatkan gambar yg lebih natural dan dapat diberikan banyak efek, sebaiknya anda menggunakan gambar bitmap.

Semoga bermanfaat ! ^^
www.binus.ac.id
www.skyconnectiva.com

Minggu, 10 Mei 2015

MEMORY MANAGEMENT

Memory management adalah suatu tugas dari subdivisi dijalankan secara dinamik oleh operating system. Memori butuh untuk dialokasikan secara efisien ke banyak proses.

MEMORY MANAGEMENT REQUIREMENTS

Persyaratan yg harus ada dalam membuat manajemen memori adalah :
  1. Relokasi
    Programmer tidak boleh tau dimana letak proses yg mau dieksekusi
  2. Proteksi
    Proses tidak boleh mengidentifikasi bahwa lokasi alamat reference diproses tanpa semaphore
  3. Sharing
    memperbolehkan proses-proses untuk mengakses sumber informasi yg lain
  4. Logikal organisasi
    program-programnya ditulis dalam modul, sehingga setiap modul dapat ujan diri sendiri
  5. Physical organisasi
    programmer tidak tau space nya meskipun cuma semata wayang makan akan tersedia juga

ADDRESSING

Cara addressing dibagi menjadi 3 jenis :
  • Logical, mereference ke lokasi memori berdasarkan tugas sebelumnya ke memori
  • Relative, address yg mengekspresikan suatu lokasi relatif ke port-port yg dikenal
  • Physical, alamat absolute/posisi sebenarnya dalam main memory

MEMORY ALLOCATION

Algoritma yg digunakan dalam pengalokasian memori adalah :
  1. First fit
    paling cepat, mungkin memiliki banyak proses yg diload di posisi memori paling depan. First fit memulai untuk scan memori dari awal dan memilih blok yg terscan pertama kali
     
     
  2. Next fit
    next fit memulai untuk scan memori dari lokasi penyimpanan terakhir dan memilih blok yg ditemukan selanjutnya
  3. Best fit
    memilih blok yg paling dekat dengan dengan yg direquest
  4. Worst fit
  5. Quick fit
  6. Buddy system
    setiap space memori yg tersedia akan dibuat menjadi 1 single block, 2^u
    Buddy System

Semoga bermanfaat ! ^^
www.skyconnectiva.com

DEADLOCK

Deadlock adalah suatu kejadian ketika ada proses yg :

  • saling memperebutkan 
  • saling menunggu
  • saling menghalangi
Permanent blocking adalah sekumpulan proses yg saling berkompetisi untuk mendapatkan sumber informasi bagi sistem dan juga untuk berkomunikasi dengan proses yg lain. Karena permanent blocking tersebutlah muncul adanya deadlock.
Pada gambar (a) diatas merupakan gambar kemungkinan terjadinya suatu deadlock, sedangkan gambar (b) merupakan kejadian disaat deadlock sudah terjadi.


CONDITION FOR RESOURCE DEADLOCK

Kondisi-kondisi yg mungkin terjadi saat deadlock :
  • Mutual exclusion
    hanya ada 1 proses yg dapat mengakses sumber informasi
  • Hold and wait
    proses yg sedang memegang 1 sumber informasi juga sedang menunggu untuk mengakses sumber informasi lain yg sedang dipegang oleh proses yg lain
  • No preemption
    suatu sumber informasi akan secara sukarela dilepaskan oleh proses yg sedang mengaksesnya, setelah proses tersebut selesai melakukan tugasnya
  • Circular wait
    suatu keadaan dimana semua proses saling ingin mengakses sumber informasi yg sama, namun mereka saling menunggu karena masih ada 1 proses yg sedang mengaksesnya
Pada gambar (a) merupakan gambar resource R sedang diakses oleh proses A. Sedangkan gambar (b) adalah proses B yg merequest resource R. Pada gambar (c) merupakan gamabr circular wait.

Gambar deadlock yg terjadi :
Berikut ini adalah gambar untuk solusi masalah deadlock :

Cara-cara untuk mencegah deadlock ada 4 :
  1. biarkan saja masalahnya (menurut algoritma Ostrich)
  2. deteksi dan pemulihan kembali, biarkan deadlock terjadi, deteksi deadlocknya dimana lalu ambil tindakan
  3. pencegahan secara dinamik
  4. pencegahan
Ada beberapa cara untuk menunjukkan deteksi terjadinya deadlock :
  • dengan menggunakan resource graph
  • dengan menggunakan cycle yg telah diekstrak dari resource graph
Deadlock avoidance, membutuhkan sistem yg mempunyai informasi yg penting :

  1. setiap proses mendefinisikan sumber maksimum yg dibutuhkan
  2. memastikan bahwa tidak akan pernah terjadi kondisi circular wait
  3. Resource algorithm didefinisikan oleh jumlah sumber informasi yg dialokasi dan jumlah maksimum dari proses tersebut
Deadlock detection, memastikan permintaan sumber informasi dapat terjadi. Ada 4 cara :
  1. mutual exclusion
  2. hold and wait
  3. circular wait
  4. no preemption
Kondisi dalam deadlock detection serta cara pendekatannya

STARVATION

Starvation adalah sebuah algoritma untuk mengalokasikan sejumlah sumber informasi, dan mungkin memberikan shortest job first, tapi memungkinkan juga untuk terjadi penundaan waktu yg sangat panjang, meskipun tidak diblock. Maka solusi untuk mengatasi starvation adalah first-come first-serve algorithm.

Deadlock recovery, digunakan untuk membatalkan semua proses yg sudah deadlock (untuk proses terminasi). Untuk mencegah terjadinya interupsi sumber informasi adalah dengan :
  • memilih korbannya (mengurangi biaya)
  • rollback, artinya mengembalikan semua nilai menjadi safe state
  • starvation, proses yg sama mungkin bisa diambil dengan diambil sebagai korban
Deadlock handling, mengkombinasikan 3 dasar pendampingan samaNya :
  1. Prevention
  2. Avoidance
  3. Detection
Mengijinkan bagaimana untuk mencapai pendekatan teroptimal. Partisi sumber informasi digambarkan dalam urutan kata dalam sistem.

Semoga bermanfaat ! ^^

CONCURRENCY

Concurrency adalah proses yg dilakukan secara bersamaan. Concurrency terjadi pada :

  • proses dalam suatu aplikasi
  • thread dalam proses
  • programnya
Tujuan dari concurrency adalah : 
  1. Komunikasi dalam suatu proses
  2. Berbagi sumber daya maupun sumber informasi
  3. Proses sinkronisasi suatu proses
  4. Mengalokasikan waktu prosesor
Untuk mencapai tujuan-tujuan tersebut tidak akan berjalan lancar, di bawah ini adalah masalah-masalah yg dihadapi dalam concurrency :
  • Berbagi sumber daya untuk maksud kejahatan
  • OS sulit mengatur alokasi dari sumber informasi secara optimal
  • Menjadi bahasa pemrograman yg sulit untuk disimpan/diletakkan
Fokus dalam OS :
  1. OS harus bisa menelurusi bermacam-macam proses
  2. OS harus mengalokasikan dan mendealokasi sumber informasi untuk setiap proses yg aktif, diantaranya :
    - Waktu prosesor
    - Memori
    - Dokumen/file
    - Perangkat inout output
  3. OS harus memproteksi data dan sumber informasi fisik untuk mencegah adanya gangguan dalam proses tersebut
  4. Hasil dari sebuah proses harus diselesaikan secara cepat dalam proses concurrency

COMPETITION among PROCESSES for RESOURCES

Proses concurrency menjadi sebuah konflik/masalah ketika proses-proses tersebut saling berebut untuk mendapatkan informasi dari sumber data yg sama. Ada 3 masalah yg terjadi :
  1. Mutual exclusion
    ketika ada 2 proses yg berebut sumber daya seperti printer, akan terjadi yg namanya critical resource. Untuk menyelesaikan masalah ini maka hanya ada 1 program saja yg daapt mengakses critical resource, disebut dengan critical section. Tidak memungkinkan terjadi deadlock dan starvation.
  2. Deadlock
    ketika ada 2/lebih proses yg ingin berebut untuk mendapatkan informasi dari sumber yg sama.
  3. Starvation
    suatu keada dimana ada 2/lebih proses yg ingin mengakses sumber informasi secara bersamaan tapi saling mengalah semua dan tidak ada yg jadi mengakses sumber informasi tersebut.

COOPERATION among PROCESSES

Ada 2 model kooperasi :
  • By sharing
    penulisan harus terjadi secara eksklusif, dan critical section digunakan untuk menyediakan data yg berintegritas
  • By communication
    - message di passing, mutual exclusion tidak begitu dibutuhkan
    - memungkinkan terjadi deadlock, setiap proses menunggu proses yg lainnya
    - memungkinkan terjadi starvation

SEMAPHORES

Semaphore merupakan variabel spesial yg digunakan untuk mengirimkan sinyal. Operasi pengiriman sinyal tersebut tidak dapat diinterupsi. Didalam semaphore terdapat queue, yg berguna untuk memegang proses yg sedang menunggu semaphore. Semaphore sendiri merupakan sebuah variabel yg memiliki nilai integer,
  • proses inisialisasi menggunakan angka bukan negatif
  • proses waiting akan mengurangi nilai semaphore
  • proses signaling akan menambahkan nilai semaphore
Gambar diatas merupakan pengimplementasian dari mutex (mutual exclusion) lock dan mutex unlock


MONITOR

Monitor adalah sebuah bahasa pemrograman yg dibangun untuk menyediakan fungsi-fungsi setara dalam semaphore yg memudahkan untuk mengakses data yg tersebar. Karakteristik dari monitor adalah :
  • data variabel lokal dapat diakses hanya oleh prosedur monitor.
  • proses yg masuk ke dalam monitor harus meng-invoke prosedurnya
  • hanya ada 1 proses yg dieksekusi dalam monitor
Selama didalam monitor, proses mungkin menemukan kondisi yg tidak boleh dilanjutkan, seperti :
  • proses dapat waiting/menunggu signaling dari proses yg lain
  • variabelnya hanya dapat diakses dari dalam monitor saja
  • proses waiting akan melepaskan monitor secara sementara
Semoga bermanfaat ! ^^