Minggu, 10 September 2017

Rangkuman Buku Computer Networking Chapter 1

Rangkuman Buku Computer Networking
By Andrew S. Tanenbaum & David J. Wetherall



Bab 1 : Pengantar

            Jaringan komputer memiliki banyak kegunaan, baik untuk perusahaan/organisasi maupun individu, di rumah ataupun saat kita bepergian. Banyak perusahaan/organisasi menggunakan jaringan komputer untuk berbagi informasi perusahaan dan biasanya menggunakan model client-server dengan desktop karyawan bertindak sebagai klien yang mengakses server di ruang mesin.  Bagi individu, jaringan komputer menawarkan akses ke berbagai informasi dan sumber hiburan yang ada dan cara untuk membeli atau menjual produk serta layanan yang tersedia.

            Dalam membangun jaringan komputer di perusahaan/ organisasi, ada beberapa keuntungan  yang dapat diperoleh dalam hal-hal resource sharing, reliabilitas tinggi, lebih ekonomis, skalabilitas, dan media komunikasi. Resource sharing bertujuan agar seluruh program, peralatan, khususnya data dapat digunakan oleh setiap orang yang ada pada jaringan tanpa terpengaruh oleh lokasi resource dan pemakai. jadi source sharing adalah suatu usaha untuk menghilangkan kendala jarak.

Banyak orang sering mengakses Internet melalui telepon genggam atau wifi di rumah. Meski akses wireless semakin banyak digunakan untuk laptop dan ponsel, teknologi kemajuan memungkinkan jenis aplikasi seluler dan jaringan baru dengan komputer tertanam dalam laptop dan ponsel atau perangkat lainnya. Kemajuan yang berkembang bisa meningkatkan masalah sosial seperti masalah privasi.

Secara kasar, jaringan dapat dibagi menjadi LAN, MAN, WAN, dan internetworks. LANs beroperasi pada kecepatan tinggi. MANs biasanya menutupi sebuah kota. Contohnya yaitu sistem kabel televisi yang sekarang digunakan oleh banyak orang untuk mengakses internet. WANs dapat mencakup negara atau benua. Beberapa teknologi yang digunakan untuk membangun jaringan ini adalah point-to-point (misalnya kabel) sementara yang lain disiarkan (misalnya nirkabel).

Jaringan point-to-point terdiri dari beberapa koneksi pasangan individu dari mesin-mesin. Untuk mengirim paket dari sumber ke suatu tujuan, sebuah paket pad ajringan jenis ini mungkin harus melalui satu atau lebih mesin-mesin perantara. Seringkali harus melalui baynak route yang mungkin berbeda jaraknya. Karena itu algoritma rout memegang peranan penting pada jaringan  point-to-point.

Kriteria alternatif untuk mengklasifikasikan jaringan adalah didasarkan pada jaraknya. Tabel berikut ini menampilkan klasifikasi sistem multiprosesor berdasarkan ukuran-ukuran fisiknya

Jarak antar prosesor
Prosesor di tempat yang sama
Contoh
0,1 m
Papan rangkaian
Data flow machine
1 m
Sistem
Multicomputer
10 m
Ruangan

100 m
Gedung
Local Area Network
1 km
Kampus

10 km
Kota
Metropolitan Area Network
100 km
Negara
Wide area Network
1.000 km
Benua
10.000 km
Planet
The Internet

Jaringan bisa saling berhubungan dengan router membentuk internetwork, dimana internet adalah sesuatu hal yang terbesar dan terbaik. Contoh Jaringan nirkabel, misalnya 802.11 LAN dan 3G mobile yang menjadi sangat populer.

Perangkat lunak jaringan dibangun di sekitar protokol, yang merupakan aturan proses menyampaikan. Sebagian besar jaringan mendukung hirarki protokol, dengan setiap lapisan memberikan layanan ke lapisan di atasnya dan mengisolasi mereka dari rincian protokol yang digunakan di lapisan bawah. Tumpukan protokol biasanya berbasis pada model OSI atau pada model TCP / IP. Keduanya memiliki link, jaringan, transportasi, dan lapisan aplikasi, tapi berbeda di lapisan lainnya.

Jaringan menyediakan berbagai layanan kepada penggunanya. Layanan ini bisa berkisar dari pengiriman paket terbaik tanpa koneksi ke pengiriman berorientasi koneksi. Di beberapa jaringan, layanan connectionless disediakan dalam satu lapisan dan layanan connection-oriented disediakan di lapisan diatasnya.

Jaringan yang terkenal meliputi Internet, jaringan telepon seluler 3G, dan 802,11 LAN. Internet berevolusi dari ARPANET, yang jaringan lainnya ditambahkan untuk membentuk sebuah internetwork. Internet saat ini sebenarnya adalah koleksi ribuan jaringan yang menggunakan protokol TCP / IP stack. Jaringan telepon seluler 3G menyediakan akses nirkabel dan mobile ke Internet dengan kecepatan beberapa Mbps, dan tentu saja, juga membawa panggilan suara. Nirkabel LAN berbasis standar IEEE 802.11 dikerahkan di banyak rumah dan kafe dan bisa memberikan konektivitas dengan tarif lebih dari 100 Mbps. Jenis jaringan baru sedang muncul juga, seperti jaringan sensor dan jaringan berbasis embedded pada teknologi RFID. Mengaktifkan beberapa komputer untuk berbicara satu sama lain memerlukan sejumlah besar standardisasi, baik di perangkat keras maupun perangkat lunak. 

Untuk menghindari kebingungan, perlu disebutkan secara eksplisit bahwa dalam buku ini, seperti dalam ilmu komputer pada umumnya, unit metrik digunakan sebagai pengganti unit bahasa Inggris tradisional. Awalan metrik utama tercantum pada gambar dibawah. Awalan biasanya disingkat dengan huruf pertama mereka, dengan satuan lebih dari 1 dikapitalisasi (KB, MB, dll.). Satu pengecualian (untuk alasan historis) adalah kbps untuk kilobit / detik. Dengan demikian, jalur komunikasi 1-Mbps mentransmisikan 106 bit / detik dan jam 100-psec (atau 100-ps) kutu setiap 10-10 detik. Karena mili dan mikro keduanya dimulai dengan huruf '' m, '' sebuah pilihan harus dibuat. Biasanya, '' m '' digunakan untuk mili dan '' μ '' (huruf Yunani mu) digunakan untuk mikro.



Senin, 08 Mei 2017

Perbedaan Bounded Buffer Problem, Readers and Writers Problem, Dining Philosophers Problem


PERBEDAAN BOUNDED BUFFER PROBLEM, READERS AND WRITERS PROBLEM, DINING PHILOSOPHERS PROBLEM


·     Bounded Buffer Problem

Bounded Buffer Problem adalah suatu struktur data untuk menampung (buffer) suatu nilai dimana kapasitasnya tertentu/terbatas (bounded). Masalah bounded buffer merupakan salah satu masalah yang menerangkan sinkronisasi antara proses-proses yang berjalan secara konkuren untuk mengakses data yang sama.
Masalah ini menjelaskan dua proses, produsen dan konsumen, yang berbagi umum, tetap ukuran buffer digunakan sebagai antrian. Tugas produser adalah untuk menghasilkan data, memasukkannya ke dalam buffer, dan mulai lagi. Pada saat yang bersamaan, konsumen mengkonsumsi data (yaitu, mengeluarkannya dari buffer), satu bagian pada suatu waktu. Yang menjadi pokok pembahasan utama dalam masalah bounded buffer adalah bagaimana jika ada dua proses berbeda yang berusaha mengakses buffer tersebut. Salah satu proses akan memberi nilai pada buffer dan mengisi buffer tersebut. Proses yang lain akan membaca nilai dan mengosongkan buffer tersebut.
Hasil gambar untuk pengertian bounded buffer

Solusi untuk produsen adalah baik pergi tidur atau membuang data jika buffer penuh. Lain kali konsumen menghapus item dari buffer, itu akan memberitahu produser, yang mulai mengisi buffer lagi. Dengan cara yang sama, konsumen bisa tidur jika menemukan buffer kosong. Lain kali produser menempatkan data ke dalam buffer, itu bangun yang tidur konsumen. solusi dapat dicapai dengan sarana komunikasi antar-proses, biasanya menggunakan Semaphore. Sebuah solusi yang tidak memadai bisa mengakibatkan kebuntuan di mana kedua proses sedang menunggu untuk dibangunkan. Masalahnya juga dapat digeneralisasi untu memiliki beberapa produsen dan konsumen. Kita dapat menerapkan konsep semaphore untuk menyelesaikan masalah tersebut. Disini kita menggunakan tiga buah semaphore yaitu mutex, full dan empty. Mutex digunakan untuk menjamin hanya boleh satu proses yang berjalan mengakses buffer pada suatu waktu, awalnya dinisialisasi sebesar satu (1). Full digunakan untuk menghitung jumlah buffer yang berisi, yang pada awalnya diinisialisasi sebesar nol (0). Sedangkan empty digunakan untuk menghitung jumlah buffer yang kosong, yang awalnya dinisialisasi sebesar ukuran buffer. Beriku variabel umumt :semaphore full, empty, mutex; Inisialisasi untuk variable di atas, full = 0, empty = n, mutex = 1.
 Jadi dapat disimpulkan bahwa pokok permasalahan bounded buffer adalah bagaimana mengatur sinkronisasi dari beberapa proses yang secara konkuren ingin mengakses buffer (mengisi dan mengosongkan buffer). Pengaturan itu dilakukan dengan menerapkan konsep semaphore yang menjamin hanya ada satu proses dalam suatu waktu yang boleh mengakses buffer sehingga tidak terjadi race condition.

·     Readers and Writers Problem
Masalah Readers/Writers adalah salah satu masalah sinkronisasi klasik yang sering digunakan untuk mendiskusikan dan membandingkan berbagai cara untuk menyelesaikan masalah sinkronisasi. Secara singkat, masalah ini terjadi ketika ada beberapa pembaca dan penulis ingin mengakses suatu berkas pada saat bersamaan.



Contohnya: masalah pemesanan tiket pesawat terbang. Ketika seseorang memesan tiket pesawat, dia pertama-tama harus mengecek apakah masih ada tempat yang tersisa. Sekiranya prosedur pemesanan tiket tersebut tidak ditangani secara hati-hati, bisa terjadi masalah ketika dia memesan tiket. Misalkan, sebelum proses pemesanan tiket selesai, ada orang lain yang memesan tiket yang sama dan lebih cepat menyelesaikan proses pemesanan tiket. Dengan demikian, tiket yang seharusnya menjadi miliknya tanpa perlu usaha berlebih, sekarang harus dia perebutkan dengan orang lain yang kebetulan mendaftar pada saat yang bersamaan.
Inti dari permasalahan Readers/Writers adalah adanya beberapa pembaca dan penulis yang ingin mengakses suatu berkas secara simultan. Sebagai syarat bahwa data yang terkandung dalam berkas tersebut tetap konsisten, maka setiap kali berkas tersebut ditulis, maka hanya ada boleh maksimal satu penulis yang menulisnya. Untuk pembaca, hal ini tidak perlu dikhawatirkan sebab membaca suatu berkas tidak mengubah isinya. Dengan kata lain, pada suatu saat diperbolehkan untuk beberapa pembaca untuk membaca berkas tersebut. Akan tetapi, ketika ada yang sedang menulis, tidak boleh ada satupun yang membaca. Ini berarti bahwa thread penulis menjalankan tugasnya secara eksklusif.
Untuk mengatasi masalah ini, ada tiga macam solusi yang akan dibahas. Dasar pembagian solusi ini adalah prioritas. Pertama, solusi dengan pembaca diprioritaskan akan dibahas. Kemudian dilanjutkan dengan solusi dengan penulis yang diprioritaskan. Terakhir, solusi dengan pembaca dan penulis saling bergantian. Pada setiap solusi akan dilihat mengenai tingkat kesuksesan solusi tersebut bila kita lihat dari sudut pandang syarat penyelesaian critical section. Ilustrasi:

        

 Keterangan:
          TL = Thread Penulis
          BC = Thread Pembaca   
-          Kotak dengan sisi putus-putus menandakan thread tersebut sedang menunggu di antrian.
-          Kotak dengan sisi tidak putus-putus menandakan thread tersebut melaksanakan critical sectionnya.
Seperti terlihat di atas, thread-thread pembaca (BC0, BC1, BC2) mendominasi thread-thread penulis (TL0, TL1, TL2) dalam hal akses berkas, sehingga semua thread penulis harus menunggu hingga semua thread pembaca selesai.

·     Dining-Philosophers Problem
Masalah 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) filsuf yang hanya memiliki tiga status, berpikir, lapar, dan makan. Semua filsuf berada di sebuah meja makan bundar yang ditata sehingga di depan setiap filsuf ada sebuah piring berisi mie dan di antara dua piring yang bersebelahan terdapat sebuah sumpit.



Pada awalnya, semua filsuf akan berpikir selama waktu yang tidak tentu. Setelah berpikir lama, filsuf akan merasa lapar. Pada saat lapar, ia berusaha untuk mengambil 2 buah sumpit yang ada di kanan dan di kirinya untuk makan. Dia mengambil sumpitnya satu per satu. Begitu ia mendapat sebuah sumpit, ia tidak akan melepaskannya. Jika ia hanya berhasil mengambil kurang dari 2 sumpit, maka ia akan menunggu sampai 2 sumpit diambil. Begitu dia mendapatkan 2 sumpit, maka dia akan makan mienya untuk sementara waktu dan kemudian meletakkan kedua sumpitnya. Kedua sumpit ini kemudian dapat digunakan oleh filsuf-filsuf yang lain. Dia sendiri kemudian kembali berpikir. Tujuan dari masalah ini adalah untuk mencari cara sehingga para filsuf tidak akan pernah mati kelaparan.





Posisi Meja Filsuf dengan N = 4

Salah satu solusi yang mungkin langsung terlihat adalah dengan menggunakan semafor. Setiap sumpit mewakili sebuah semafor. Kemudian, ketika seorang filsuf lapar, maka dia akan mencoba mengambil sumpit di kiri dan di kanannya, atau dengan kata lain dia akan menunggu sampai kedua sumpit tersebut dapat ia gunakan. Setelah selesai makan, sumpit diletakkan kembali dan sinyal diberikan ke semafor sehingga filsuf lain yang membutuhkan dapat menggunakan sumpitnya.
Akan tetapi, solusi ini tidak dapat diterima. Alasannya sangat sederhana, yaitu deadlock dapat terjadi. Contoh kasusnya adalah ketika semua filsuf telah mengambil sumpit di sebelah kirinya, maka tidak ada lagi sumpit yang tersisa di meja. Karena tidak ada sumpit yang tersisa di meja, maka setiap filsuf kekurangan sebuah sumpit. Berhubung setelah berhasil mengambil sebuah sumpit, sumpit tersebut tidak akan diletakkan kembali sampai filsuf yang bersangkutan makan, maka tidak akan ada satu filsuf pun yang akan makan.

Alternatif lain yang cukup menarik disajikan oleh Stallings, antara lain dengan menyuruh setiap filsuf untuk mengambil sumpitnya secara berselang-seling. Filsuf dengan urutan bilangan ganjil pertama kali mengambil sumpit di sebelah kanannya, sementara filsuf dengan urutan bilangan genap pertama kali mengambil sumpit di sebelah kirinya. Alternatif lain yang juga disajikan antara lain: menyediakan sebanyak N sumpit lagi, sehingga lebih higienis di samping dijamin tidak menghasilkan deadlock; mengurangi banyak filsuf yang boleh duduk di meja makan sebanyak 1.

Rabu, 03 Mei 2017

Pengalaman Pertama Menggunakan Komputer


PENGALAMAN PERTAMA KALI MENGGUNAKAN KOMPUTER

Saya mengenal dan mengetahui komputer saat saya memasuki kelas 5 SD, saat itu yang ada di pikiran saya komputer hanya sebatas perangkat yang  berfungsi untuk mengetik saat saya di ajak oleh tetangga saya pergi ke warnet dan mencoba menggunakan komputer langsung, saat itu saya mencoba komputer untuk pertama kalinya, saat mencobanya ternyata komputer itu berfungsi sebagai mesin ketik saja tetapi komputer juga bisa digunakan untuk mencari sesuatu lewat internet, membuat gambar dan bermain game.

Pertama menggunakan komputer saya langsung dikenalkan dengan game online oleh tetangga saya. Saya masih bertanya-tanya pada saat itu. Bagaimana cara menggunakannya dan bermain game? Yaa maklum saja, karena saat itu saya masih anak anak dan yang ada dipikiran saya hanya main, main dan bermain. Hingga akhirnya saya hanya mengetahui cara bermain game di komputer dan sedikit tentang apa itu komputer.

Hingga akhirnya saat saya memasuki bangku SMP, saya mendapatkan pelajaran TIK (Teknologi Informasi dan Komunikasi), disaat itulah saya mulai tertarik dengan komputer. Di SMP saya juga mendapatkan teman yang suka sekali bermain komputer. Dan saya diajak oleh teman saya untuk bermain ke rumahnya. Disanalah saya juga pertama kali mengenal apa itu Facebook. Saya meminta untuk dibuatkan akun facebook kepada teman saya. Sampai saat ini akun facebok itu masih aktif dan sesekali saya gunakan untuk mengisi waktu luang saya. Di bangku SMP juga saya pertama kali mempelajari dan menggunakan Microsoft Word. Pada saat itu Microsoft Word yang saya gunakan masih Microsoft Word 2003.


Mulai saat itu saya mulai mempelajari komputer lebih dalam lagi seperti membuat email, belajar mengetik, membuat slide powerpoint, dan yang lainnya. Dan saya juga sangat tertarik dengan sesuatu yang berhubuingan dengan komputer. Akhirnya saya memustuskan setelah lulus SMA saya akan masuk fakultas teknik. Dan mudah-mudahan saya bisa menjadi orang IT yang hebat dan tentunya bisa membanggakan kedua orang tua saya. Aamiin :)

Selasa, 18 April 2017

Pengantar Sistem Operasi

SOAL UJIAN TENGAH SEMESTER
PENGANTAR SISTEM OPERASI

1.      Seperti apa proses dalam Sistem Operasi?
·      Pada saat kita menjalankan sebuah program terdapat banyak proses yang berjalan secara bersamaan dibuat melalui sistem call dan membentuk proses turunan (child process) sehingga membuat proses induk (parent process) sehingga membuat proses baru ke CPU time, memory, berkas-berkas, dan perangkat input atau output.

2.      Apa perbedaan antara stack dan heap?
·      Stack merupakan sebuah memori yang berukuran tetap yang menyimpan variabel local dalam sebuah fungsi atau method.
·      Heap adalah sbuah memori yang berukuran dinamis, memori ini menyimpan data berupa variabel / objek-objek yang bersifat global pada suatu aplikasi.
·      Perbedan Stack dan Heap yaitu:
a.      Stack merupakan bagian memori yang dialokasikan pada saat thread dijalankan, sedangkan Heap merupakan bagian memori yang dialokasikan pada saat OS pertama kali dijalankan.
b.      Alokasi memori stack bersifat fixed-size atau berukuran tetap sedangkan heap bersifat dinamis.
c.       Stack menyimpan data yanng bersifat sementara, misalnya variabel local yang ada dalam suatu fungsi atau method, sedangkan Heap menyimpan data berupa variabel-variabel atau objek yang bersifat global pada sebuah aplikasi tertentu.


3.      Apa yang dimaksud Process Control Block (PCB), dan apa perbedaannya dengan Thread?
·      Proses Control Block (PCB) adalah proses yang dilakukan oleh sistem operasi  untuk mempresentasikan tiap-tiap proses yang ada. Perbedaannya dengan thread adalah

4.      Jelaskan apa perbedaan unbounded-buffer dan bounded-buffer?
·      Perbedaannya yaitu jika Unbounded-buffer adalah struktur data untuk menampung buffer atau suatu nilai dimana kapasitasnya tidak terbatas sedangkan Bounded-buffer mempunyai kapasitas yang tertentu/terbatas.

5.      Definisikan apa itu Remote Procedure Calls?
·      Remote Procedural Calls (RPC) adalah suatu protokol yang menyediakan suatu mekanisme komunikasi antar proses yang mengijinkan suatu program untuk berjalan pada suatu komputer tanpa terasa adanya eksekusi kode pada sistem yang jauh (remote system).

6.      Apa itu Batch dan seperti apakah proses System Calls?
·      Batch adalah sebuah file text yang berisi beberapa seri perintah yang secara sengaja untuk dieksekusi oleh command interpreter. Atau Batch adalah kumpulan perintah-perintah command line yang dapat dijalankan pada Microsoft Windows.
·      Proses System Calls, pertama kita dapat menulis suatu program sederhana untuk membaca 1 file ke file lainnya. Selanjutnya masukkan nama file inout dan output, setelah 2 nama file telah diprogram maka harus membuka filenya. Masing-masing membutuhkan system calls setelah itu maka program akan melooping membaca file input dan menulis ke file output sampai akhir file. Jika selesai, program akan menutup kedua file dan akan ada pesan di layar bahwa proses telah selesai.

7.      Apa yang dimaksud shell pada sistem operasi Linux, dan jelaskan perbedaan antara Shell dan Kernel?
·      Shell pada OS linux adalah program (penterjemah perintah) yang mejembatani user dengan sistem operasi.
·      Perbedaan Shell dan Kernel adalah terdapat pada fungsinya, Kernel yang berfungsi sebagai  mengelola sumber daya komputer secara aman, sedangkan shell berfungsi sebagai bagian dari jembatan antara kernel dan user.

8.    Apakah Windows juga mempunyai shell? 2. Sebutkan 20 perintah shell yang banyak digunakan untuk mengelola sistem operasi Linux!
·      Windows tidak mempunyai shell karena shell hanya terdapat pada linux.
·      20 perintah shell yang banyak digunakan antara lain:
1.      Cat                   : perintah yang digunakan untuk melihat isi file
2.      Uname-a         : perintah untuk melihat jenis OS serta versi
3.      Netstat-tnap    : perintah untuk melihat koneksi keluar/masuk
4.      Rm-rf               : perintah untuk menghapus file atau direktori
5.      Cp                    : perintah untuk mengcopy file
6.      Mv                   : mengganti nama file atau memindah file
7.      Echo                : perintah untuk menampilkan kata yang dituliskan setelahnya.
8.      W                     : perintah untuk menampilkan user yangsedang login
9.      Whoami          : perintah untuk menampilkan user kita sendiri
10.  Id                     : perintah untuk menampilkan user kita sendiri
11.  Mkdir              : perintah untuk membuat direktori baru
12.  Touch              : perintah untuk membuat file kosong
13.  Pwd                 : menampilkan irektori aktif
14.  Chown             : mengganti kepemilikan file
15.  Last                  : menampilkan daftar user-user yang pernah login
16.  Lwp-download: mengambil suatu data dari suatu situs
17.  Userdel            : menghapus user (root)
18.  Tar-zxvf           :mengekstrak file tgz atau tar.gz
19.  Su                    : ganti sebagai user lain
20.  Chmod             : nama aplikasi yang digunakan untuk merubah hak akses suatu file.




9.      Apa yang anda ketahui tentang Mach dan Debugging?
·      Mach adalah sebuah sistem operasi kernel yang dikembangkan di Carnegei Mellon University untuk mendukung penelitian sistem operasi, terutama komputasi terdistribusi dan pararel.
·      Debugging adalah sebuah metode yang dilakukan oleh para pemogram dan pengembang perangkat lunak untuk menganalisa alur kerja program, mencari dan mengurangi bug atau kerusakan di dalam sebuah program komputer atau perangkat keras sehingga perangkat tersebut bekerja sesuai harapan.

10.  Apa perbedaan bootstrap program, bootstrap loader, dan boot block?
·      Perbedaan Bootstrap program, bootstrap loader, dan boot block adalah terletak pada cara kerjanya.
·      Bootstrap Program adalah kode yang diletakkan dalam ROM yang mampu untuk menemukan kerne, memuatkannya dalam memory dan memulai ekskusinya.
·      Bootstrap Loader adalah sebuah program yang terdapat pada ROM yang dapat menempatkan kernel, memasukkannya kedalam memori, dan memulai eksekusinya. Program ini diperlukan pada saat pertama kali sistem komputer diaktifkan.

·      Boot Block adalah sebuah region dalam EEPROM/Flash Memory yang tidak dapat di upgrade. Boot Block selalu dieksekusi pertama kali pada saat komputer dinyalakan.