Selasa, 02 Mei 2017

Sinkronisasi Sistem Operasi



Masalah Klasik Sinkronisasi


Masalah Klasik Sinkronisasi dapat dibedakan menjadi 3 :

1.Bounded – Buffer Problem

2.Readers and Writers Problem

3.Dining Philosophers Problem



Pengertian Bounded –Buffer Problem

Bounded buffer merupakan suatu struktur data yang mampu untuk menyimpan beberapa nilai dan mengeluarkannya kembali ketika diperlukan . Jika dianalogikan bounded buffer ini akan mirip dengan sebuah tumpukan piring. Kita menaruh piring dan menaruh lagi sebuah piring, ketika ingin mengambil piring maka tumpukan yang paling atas yang akan terambil. Jadi piring terakhir yang dimasukan akan pertama kali diambil.


Contoh Kasus Bounded - Buffer

Pada bagian ini akan dicontohkan suatu produser konsumer. produser akan menghasilkan suatu barang dan konsumer akan mengkonsumsi barang yang dihasilkan oleh produser. produser dan konsumer ini akan mengakses bounded buffer yang sama. produser setelah menghasilkan suatu barang dia akan menaruh barang itu di bounded buffer sebaliknya konsumer ketika membutuhkan suatu barang, dia akan mengambilkannya dari bounded buffer.


Solusi Bounded – Buffer Problem

Solusi Shared Memory untuk Bounded – Buffer, mengijinkan (n-1) items di dalam buffer untuk suatu waktu tertentu.


Pengertian Readers and Writers Problem

Readers and Writers Problem adalah problem yang memodelkan proses yang mengakses database. Masalah ini timbul ketika ada dua proses atau lebih berbagi data yang sama. Data yang dimaksud disini bisa berbentuk buffer, file atau objek dari suatu program.


Solusi Readers and Writers Problem

a. Pembaca di prioritaskan

b. Penulis di prioritaskan

c. Kedua jenis proses mempunyai prioritas yang sama.


Solusi Pembaca di Prioritaskan

Reader tidak akan menunggu reader(s) lain yang sedang membaca, walaupun ada writer yang sedang menunggu. Dengan kata lain, Jika ada reader yang datang ketika reader lain sedang membaca dan sebuah writer sedang menunggu, maka reader yang baru datang tersebut akan langsung mendapat giliran untuk membaca. Writer akan ditunda pengerjaannya.



Solusi Penulis di Prioritaskan

Di mana suatu writer sedang dijalankan oleh sistem, maka tidak boleh ada reader yang memulai untuk membaca data.


Solusi Kedua Jenis Punya Prioritas Sama

Tidak ada prioritas khusus yang diberikan kepada kedua jenis proses.


Sejarah Dining Philosophers Prolem

Masalah ini pertama ini pertama kali ditulis dan diselesaikan oleh Djikstra pada tahun 1965.Masalah ini memodelkan masalah enkapsulasi dari ketergantungan mesin dan masalah portabilitas. Dalam masalah Dining Philosophers, diketahui sejumlah (N) filusuf yang hanya memiliki tiga status, berpikir, lapar, dan makan. Semua filusuf berada di sebuah meja makan bundar yang ditata sehingga di depan setiap filusuf ada sebuah piring berisi mie dan di antara dua piring yang bersebelahan terdapat sebuah sumpit.


Solusi Dining Philosophers Problem

Solusi Dining – Philosophers Problem ada dua, yakni :

a. Solusi Waiter

Solusi Waiter : solusi sederhana ini dilakukan dengan mengadakan seorang waiter yang senantiasa mengawasi penggunaan sumpit di meja makan. Ketika empat buah (dua pasang) sumpit sedang dipakai,orang berikutnya yang ingin memakai sumpit harus meminta izin kepada sang waiter, yang hanya dapat diberi ketika salah satu sumpit telah selesai terpakai.

b. Solusi Hierarki Resource 

Solusi Hirarki Resource: resources (sumpit) di meja makan telah diberi susunan hirarki. Setiap permintaan orang terhadap sebuah sumpit harus dilakukan pada susunan tertentu, dan dikembalikan pada susunan sebaliknya. Dalam hal ini, setiap orang dapat mengambil sumpit dimanapun diatas meja. Misalkan setiap sumpit diberi nomor sebagai tingkat hirarki dari 1 sampai 5, seseorang hanya dapat mengambil sumpit dengan nomor yang paling rendah, kemudian mengambil sumpit yang setingkat lebih tinggi. Ketika ia hendak mengembalikannya, orang itu harus meletakkan sumpit dengan nomor yang lebih tinggi terlebih dahulu, lalu yang rendah.



Contoh Kasus Dining – Philosophers Problem

Pada sebuah komputer tentunya terdapat aplikasi-aplikasi yang dapat memudahkan kita untuk melakukan suatu pekerjaan. Namun disamping kemudahan yang diberikan, terdapat ancaman negative yang dapat aplikasi-aplikasi itu berikan pada computer kita jika kita tidak menggunakannya dengan benar. Suatu contoh ketika kita mengerjakan suatu tugas. Kita membuka dan menjalankan beberapa aplikasi secara bersamaan. Aplikasi yang kita gunakan misalnya ms. Word (membuka 6 file word sebagai sumber tugas), winamp untuk memainkan lagu, firefox untuk browsing internet, pidgin untuk sesekali chating, sementara itu aplikasi start up yang berjalan juga banyak dan RAM yang tersedia tidak begitu besar sehingga hal ini akan membuat computer menjalankan aplikasi itu terus-menerus jika kita tidak mematikannya. Hal ini akan membuat computer berjalan semakin lambat dan memungkinkan terjadinya starvation atau deadlock dalam beberapa waktu kemudian.

Selasa, 18 April 2017

Pengantar Sistem Operasi





Seperti apa proses dalam Sistem Operasi itu ? 

Keadaan ketika sebuah program program sedang di eksekusi. Saat komputer berjalan, terdapat banyak proses dibuat melalui system call create-proses yang memebentuk proses turunan (child proses) yang dilakukan oleh proses induk (parent proses). Proses turunan tersebut juga mampu membuat proses baru sehingga semua proses ini pada akhirnya membentuk pohon proses.

Disini saya akan menjelaskan apa itu Stack dan Heap dalam Sistem Operasi ?

Stack ialah salah satu bagian yang digunakan untuk menyimpan data-data atau variabel yang pengalamatan memorinya telah dilakukan saat kompilasi. Sedangkan Heap merupakan area memori yang digunakan untuk alokasi secara dinamis. Intinya heap dialokasikan untuk mensuplai memori tambahan yang tidak dialokasikan saat kompilasi.
Jadi.. Perbedaannya, Stack menyimpan data yang bersifat sementara, sedangkan Heap menyimpan data variabel/objek yang bersifat global pada sebuah aplikasi.

Penjelasan tentang Process Control Block (PCB) dengan Thread
Process Control Block (PCB) merupakan proses yang dilakukan oleh sistem operasi untuk mempresentasikan tiap-tiap proses yang ada. PCB memuat informasi tentang proses , yaitu sebuah tanda pengenal proses (Process ID) yang unik dan menjadi nomor identitas, status proses, prioritas eksekusi proses dan informasi lokasi proses dalam memori.
Thread merupakan instruksi terkecil dari program komputer yang dapat dikelola secra independen sesuai dengan jadwal.
 
Perbedaan unbounded-buffer dan bounded-buffer
Unbounded-buffer adalah buffer (penampung) yang tidak ada batasnya (unlimited). Bounded-buffer adalah buffer (penampung) yang ada batasnya atau berukuran tetap.
Remote Procedure Calls adalah suatu protokol yang menyediakan suatu mekanisme komunikasi antar proses yang mengijinkan suatu program untuk berjalan pada suatu komputer tanpa terasa danya eksekusi kode pada sistem yang jauh (remote system).
Definisi Batch adalah sejumlah record atau data yang digabungkan dan diproses sedemikian rupa menjadi satu kesatuan.

Proses system calls adalah layanan dari sistem operasi untuk aplikasi atau program yang berjalan di atas sistem operasi.




Shell pada sistem operasi Linux
Shell adalah tempat interaksi antara pengguna dan sistem Linux yang sedang digunakan. Shell juga bertugas untuk menerjemahkan dan mengeksekusi program. Selain itu shell juaga menyediakan interface yang digunakan pengguna untuk mengetikkan perintah-perintah.
Kernel merupakan suatu inti yang menjadi bagian utama dari sebuah sistem operasi atau program yang selalu berjalan (sepanjang waktu) 
Di windows juga ada shell tapi dengan nama yang berbeda. 20 perintah shell yang banyak digunakan untuk mengelola sistem operasi Linux :

1.      Chmod : menambah dan mengurangi ijin user untuk mengakases file atau direktori.

2.      Kill : menghentikan proses
3.      Login : masuk sistem
4.      Logout : keluar sistem
5.      Is : menampilkan isi direktori
6.      Mkdir : membuat sebuah direktori
7.      Passwd : mengganti password
8.      Unalias : membatalkan sebuah alias
9.      Who : menampilakan user yang sedang login
10.  Rm : menghapus file
11.  Mv : memindahkan file
12.  Halt : mematiakan sistem
13.  Grep : mencari file-file yang mengandung teks dengan kriteria yang telah ditentukan
14.  Find : menemukan lokasi file
15.  Cp : mengcopy file/folder
16.  Pwd : menampilkan nama direktori yang sedang dikunjungi user
17.  Chgrp : merubah kepemilikan file/folder
18.  Alias : membuat/memberi nama lain suatu perintah
19.  Adduser : membuat user baru
20.  & : untuk menjalankan perintah belakang (background)
 



Debugging adalah sebuah metode yang dilakukan oleh para pemrogram dan pengembang perangkat lunak untuk mencari dan mengurangi bug, atau kerusakan di dalam sebuah program komputer atau perangkat keras sehingga perangkat tersebut bekerja sesuai dengan harapan.
Mach adalah sebuah sistem operasi kernel yang dikembangkan di Carnegie Mellon University untuk mendukung penelitian sistem operasi, terutama komputasi terdistribusi dan paralel. Ini adalah salah satu contoh awal dari sebuah mikrokernel.
Bootstrap program adalah kode yang disimpan di code ROM yang dapat menempatkan kernel, memasukkan ke dalam memory dan mulai eksekusi. Bootstrap loader : sebuah program yang cukup sederhana untuk dipanggil secara manual dengan pertolongan sakelar, dan Boot block : adalah suatu partisi untuk menyimpan seluruh program bootstrap.