Loading...
Showing posts with label TECHNOLOGY. Show all posts
Showing posts with label TECHNOLOGY. Show all posts

Thursday, 2 February 2012

MARKETPLACE WINDOWS PHONE 7


Marketplace Windows Phone adalah salah satu aplikasi yang digunakan untuk mendistribusikan musik digital, konten video, podcast, dan aplikasi dari pihak ketiga untuk  handset Windows phone. Nah bagaiamana caranya Marketplace pada  Windows Phone ini dapat di akses?, pengaksesan Marketplace ini sangatlah mudah kita cukup menggunakan Zune Software client atau Marketplace hub. Zune Software itu sendiri berfungsi untuk melakukan sinkronisasi dengan semua perangkat  dengan fungsionalitas Zune. Zune Software menggunakan desain Microsoft Metro sebagai prinsip desain bahasanya. Marketplace ini dikelola dan disetujui oleh Microsoft .
Sedangkan untuk pemutar musik dan video, Zun Marketplace menawarkan lagu hingga 14 juta lagu hingga 320 kbit/s dalam DRM-free dengan format MP3 dari empat kelompok besar music yaitu EMI, Warner Music Group, Universal Music  Group dan Sony BMG. Sedangkan label music yang lebih kecil menawarkan film dari paramount, Universal, warner Broters, dan Studio-studio lain serta menawarkan acara televise dari jaringan televise popular.
Selain itu Microsoft juga menawarkan product lain yang tak kalah menariknya yaitu Zune Pass yaitumusik berlangganan yang memungkinkan pelanggan untuk mendownload  lagu dengan jumlah yang tidak terbatas selama langganan mereka aktif.
Read more..

Thursday, 22 December 2011

Interrupt Acknowledge ( INTA )


Ada dua mode yang dapat digunakan pada mikroprocessor 8088, yaitu mode minimum dan mode maksimum. Pena yang menjadi penentu penggunaan mode adalah pena MN/MX. Mode minimum biasanya digunakan untuk sistem yang sederhana yang umumnya menggunakan processor pada satu PCB. Sedangkan mode maksimum umumnya digunakan untuk sistem yang lebih kompleks yang menggunakan multi I/O dan memori yang terpisah serta dapat pula digunakan dengan co-processornya (co-processor untuk 8088 adalah 8087).
Interrupt Acknowledge ( INTA ) merupakan salah satu Sinyal yang berfungsi hanya pada mode minimum ( mode maksimum tidak digunakan ). Sinyal ini secara khusus digunakan sebagai tanggapan terhadap suatu instruksi INTR.


Selain INTA juga ada sinyal-sinyal yang lain yang berfungsi hanya pada mode minimum ( mode maksimum tidak digunakan ) antara lain:
1.      Sinyal tulis (WR).
Sinyal ini aktif rendah. Jika sinyal ini berlogic 0, berarti µP sedang melaksanakan operasi tulis data ke unit memori atau I/O.
2.      Sinyal kontrol memori dan I/O ( IO/M ).
Jika pena ini berlogic 0, berarti saat ini pada siklus bus sedang berlangsung operasi input/output. Jika pena ini berlogic 1, berarti saat ini pada siklus bus sedang berlangsung operasi memori.
3.      Address Latch Enable (ALE).
Sinyal ini digunakan sebagai penahan alamat yang baru masuk dalam suatu proses siklus mesin. Sinyal ini dapat digunakan untuk di multipleks dengan alamat, data, dan status.
4.      Pengiriman dan penerimaan data ( DT/R ).
Jika sinyal ini berlogic 1, arah data adalah dari µP menuju keluar. Jika sinyal ini berlogic 0 maka arah data dari luar menuju µP.
5.      Data Enable ( DEN ).
Sinyal ini biasanya digunakan untuk meng”on”kan buffer (latch) yang dihubungkan ke bus data.
6.      Hold Request ( HOLD).
Bila logika 1 diberikan pada pena HOLD, µP akan menghentikan kegiatan dan melepas bus yang berhubungan dengan unit memori dan I/O, sehingga hal ini memberikan kesempatan bagi proses lain untuk mengambil alih sistem.
7.      Hold Acknowledge (HLDA) Sinyal ini digunakan sebagai pengakuan dari µP bahwa sinyal HOLD telah diterima dan sistem dapat diambil alih oleh processor lain.

Read more..

Interrupt Driven I/O

Teknik interrupt – driven I/O memungkinkan proses tidak membuang – buang waktu. Prosesnya adalah CPU mengeluarkan perintah I/O pada modul I/O, bersamaan perintah I/O dijalankan modul I/O maka CPU akan melakukan eksekusi perintah – perintah lainnya. Apabila modul I/O telah selesai menjalankan instruksi yang diberikan padanya akan melakukan interupsi pada CPU bahwa tugasnya telah selesai. 
Dalam teknik ini kendali perintah masih menjadi tanggung jawab CPU, baik  pengambilan perintah dari memori maupun pelaksanaan isi perintah tersebut. Terdapat selangkah kemajuan dari teknik sebelumnya, yaitu CPU melakukan multitasking beberapa perintah sekaligus sehingga tidak ada waktu tunggu bagi CPU. 
Cara kerja teknik interupsi di sisi modul I/O adalah modul I/O menerima perintah, missal read. Kemudian modul I/O melaksanakan perintah pembacaan dari peripheral dan meletakkan paket data ke register data modul I/O, selanjutnya modul mengeluarkan sinyal interupsi ke CPU melalui saluran kontrol. Kemudian modul menunggu datanya diminta CPU. Saat permintaan terjadi, modul meletakkan data pada bus data dan modul siap menerima perintah selanjutnya.  Pengolahan interupsi saat perangkat I/O telah menyelesaikan sebuah operasi I/O adalah sebagai berikut :
1.      Perangkat I/O akan mengirimkan sinyal interupsi ke CPU.
2.      CPU menyelesaikan operasi yang sedang dijalankannya kemudian merespon interupsi.
3.      CPU memeriksa interupsi tersebut, kalau valid maka CPU akan mengirimkan sinyal  acknowledgment ke perangkat I/O untuk menghentikan interupsinya. 
4.      CPU mempersiapkan pengontrolan transfer ke routine interupsi. Hal yang dilakukan adalah menyimpan informasi yang diperlukan untuk melanjutkan operasi yang tadi dijalankan sebelum adanya interupsi. Informasi yang diperlukan berupa: 
a.       Status processor, berisi register yang dipanggil PSW (program status word).
b.      Lokasi intruksi berikutnya yang akan dieksekusi. 
5.      Informasi tersebut kemudian disimpan dalam stack pengontrol sistem.
6.      Kemudian CPU akan menyimpan PC (program counter) eksekusi sebelum interupsi ke stack  pengontrol bersama informasi PSW. Selanjutnya mempersiapkan PC untuk penanganan interupsi. 
7.      Selanjutnya CPU memproses interupsi sempai selesai.
8.      Apabila pengolahan interupsi selasai, CPU akan memanggil kembali informasi yang telah
9.      disimpan pada stack pengontrol untuk meneruskan operasi sebelum interupsi.

Terdapat bermacam teknik yang digunakan CPU dalam menangani program interupsi ini,
diantaranya :
a.       Multiple Interrupt Lines.
b.      Software poll.
c.       Daisy Chain.
d.      Arbitrasi bus.
Teknik yang paling sederhana adalah menggunakan saluran interupsi berjumlah banyak  (Multiple Interrupt Lines) antara CPU dan modul – modul I/O. Namun tidak praktis untuk menggunakan sejumlah saluran bus atau pin CPU ke seluruh saluran interupsi modul-modul I/O. 
Alternatif lainnya adalah menggunakan software poll. Prosesnya, apabila CPU mengetahui adanya sebuah interupsi, maka CPU akan menuju ke routine layanan interupsi yang tugasnya melakukan poll seluruh modul I/O untuk menentukan modul yang melakukan interupsi.
Kerugian software poll adalah memerlukan waktu yang lama karena harus mengidentifikasi seluruh modul untuk mengetahui modul I/O yang melakukan interupsi. Teknik yang lebih efisien adalah daisy chain, yang menggunakan hardware poll. Seluruh modul I/O tersambung dalam saluran interupsi CPU secara melingkar (chain). Apabila ada permintaan interupsi, maka CPU akan menjalankan sinyal acknowledge yang berjalan pada saluran interupsi sampai menjumpai modul I/O yang mengirimkan interupsi.   Teknik berikutnya adalah arbitrasi bus. Dalam metode ini, pertama – tama modul I/O memperoleh kontrol bus sebelum modul ini menggunakan saluran permintaan interupsi. Dengan demikian hanya akan terdapat sebuah modul I/O yang dapat melakukan interupsi. 

Read more..

Programmed I/O


Pada I/O terprogram, data saling dipertukarkan antara CPU dan modul I/O. CPU mengeksekusi program yang memberikan operasi I/O kepada CPU secara langsung, seperti pemindahan data, pengiriman perintah baca maupun tulis, dan monitoring perangkat.   Kelemahan teknik ini adalah CPU akan menunggu sampai operasi I/O selesai dilakukan modul I/O sehingga akan membuang waktu, apalagi CPU lebih cepat proses operasinya. Dalam teknik ini, modul I/O tidak dapat melakukan interupsi kepada CPU terhadap proses – proses yang diinteruksikan padanya. Seluruh proses merupakan tanggung jawab CPU sampai operasi lengkap dilaksanakan. 
Untuk melaksanakan perintah – perintah I/O, CPU akan mengeluarkan sebuah alamat bagi modul I/O dan perangkat peripheralnya sehingga terspesifikasi secara khusus dan sebuah perintah I/O yang akan dilakukan. Terdapat empat klasifikasi perintah I/O, yaitu: 

1.      Perintah control.
Perintah ini digunkan untuk mengaktivasi perangkat peripheral dan memberitahukan tugas yang diperintahkan padanya.
2.      Perintah test.
Perintah ini digunakan CPU untuk menguji berbagai kondisi status modul I/O dan peripheralnya. CPU perlu mengetahui perangkat peripheralnya dalam keadaan aktif dan siap digunakan, juga untuk mengetahui operasi – operasi I/O yang dijalankan serta mendeteksi kesalahannya.
3.      Perintah read.
Perintah pada modul I/O untuk mengambil suatu paket data kemudian menaruh dalam buffer internal. Proses selanjutnya paket data dikirim melalui bus data setelah terjadi sinkronisasi data maupun kecepatan transfernya.
4.      Perintah write.
Perintah ini kebalikan dari read. CPU memerintahkan modul I/O untuk mengambil data dari bus data untuk diberikan pada perangkat peripheral tujuan data tersebut. 

Dalam teknik I/O terprogram, terdapat dua macam inplementasi perintah I/O yang tertuang dalam instruksi I/O, yaitu: memory-mapped I/O dan isolated I/O.   Dalam memory-mapped I/O, terdapat ruang tunggal untuk lokasi memori dan perangkat I/O. CPU memperlakukan register status dan register data modul I/O sebagai lokasi memori dan menggunakan instruksi mesin yang sama untuk mengakses baik memori maupun perangkat I/O. Konskuensinya adalah diperlukan saluran tunggal untuk pembacaan dan saluran tunggal untuk penulisan. Keuntungan memory-mapped I/O adalah efisien dalam pemrograman, namun memakan banyak ruang memori alamat.   Dalam teknik isolated I/O, dilakukan pemisahan ruang pengalamatan bagi memori dan ruang pengalamatan bagi I/O. Dengan teknik ini diperlukan bus yang dilengkapi dengan saluran pembacaan dan penulisan memori ditambah saluran perintah output. Keuntungan isolated I/O adalah sedikitnya instruksi I/O.

Perangkat I/O terprogram merupakan perangkat I/O komputer yang dikontrol oleh program.  Contohnya,  perintah mesin in, out, move. Perangkat I/O terprogram tidak sesuai, untuk pengalihan data dengan kecepatan tinggi karena dua alasan yaitu:
1.      Memerlukan overhead (ongkos) yang tinggi, karena beberapa perintah program harus  dieksekusi  untuk  setiap  kata  data  yang  dialihkan  antara  peralatan eksternal dengan memori utama.
2.      Banyak peralatan periferal  kecepatan tinggi  memiliki  mode operasi  sinkron, yaitu pengalihan data dikontrol oleh  clock frekuensi  tetap,  tidak tergantung CPU.

Teknik Pemrograman I/O 
Terdapat 3 teknik, yaitu :
1.      I/O terprogram atau polling system.
     Ketika perangkat I/O menangani permintaan, perangkat men-set bit status di register status perangkat. Perangkat tidak memberitahu ke pemroses saat tugas telah selesai dilakukan sehingga pemroses harus selalu memeriksa register tersebut secara periodik dan melakukan tindakan berdasar status yang dibaca. Software pengendali perangkat (driver) dipemroses harus mentransfer data ke/dari pengendali. Driver mengekseksui perintah yang berkomunikasi dengan pengendali (adapter) di perangkat dan menunggui sampai operasi yang dilakukan perangkat selesai.Driver berisi kumpulan instruksi : 
 
 
 
a.       Pengendalian.
Berfungsi mengaktifkan perangkat eksternal dan memberitahu yang perlu dilakukan. contoh : unit tape magnetik diinstruksikan untuk kembali ke posisi awal, bergerak ke record berikut, dan sebagainya.
b.      Pengujian.
Berfungsi memeriksa status perangkat keras berkaitan dengan perangkat  I/O.
c.       Pembacaan/penulisan
Berfungsi membaca/menulis untuk transfer data antara register  pemroses dan perangkat eksternal.
Masalah utama I/O terprogram adalah pemroses diboroskan untuk menunggu dan menjagai operasi I/O. Diperlukan teknik lain untuk meningkatkan  efisiensi pemroses.
 
2.      I/O dikendalikan interupsi.
   Teknik I/O dituntun interupsi mempunyai mekanisme kerja sebagai berikut :
1.      Pemroses memberi instruksi ke perangkat I/O kemudian melanjutkan melakukan pekerjaan lainnya.
2.      Perangkat I/O akan menginterupsi meminta layanan saat perangkat telah siap bertukar data dengan pemroses.
3.      Saat menerima interupsi perangkat keras (yang memberitahukan bahwa perangkat siap     melakukan transfer), pemroses segera mengeksekusi transfer data.
   Keunggulan :
   - Pemroses tidak disibukkan menunggui dan menjaga perangkat I/O untuk memeriksa status perangkat.
   Kelemahan :
1.      Rate transfer I/O dibatasi kecepatan menguji dan melayani operasi  perangkat.
2.      Pemroses terikat ketat dalam mengelola transfer I/O. Sejumlah intruksi harus dieksekusi untuk tiap transfer I/O.
3.      Dengan DMA (direct memory access).
DMA berfungsi membebaskan pemroses menunggui transfer data yang dilakukan   perangkat I/O. Saat pemroses ingin membaca atau menulis data, pemroses    memerintahkan DMA controller dengan mengirim informasi berikut :
a.       Perintah penulisan/pembacaan.
b.      Alamat perangkat I/O.
c.       Awal lokasi memori yang ditulis/dibaca.
d.      Jumlah word (byte) yang ditulis/dibaca.
    Setelah mengirim informasi-informasi itu ke DMA controller, pemroses  dapat melanjutkan kerja lain. Pemroses mendelegasikan operasi I/O ke DMA. DMA mentransfer seluruh data yang diminta ke/dari memori secara langsung tanpa melewati pemroses. Ketika transfer data selesai, DMA mengirim sinyal interupsi ke pemroses. Sehingga pemroses hanya dilibatkan pada awal dan akhir transfer data. Operasi transfer antara perangkat dan    memori utama dilakukan sepenuhnya oleh DMA lepas dari pemroses dan hanya    melakukan interupsi bila operasi telah selesai.
     Keunggulan :
a.       Penghematan waktu pemroses.
b.      Peningkatan kinerja I/O.
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
Read more..

BUFFERING


A.    Buffering
Buffering  merupakan  teknik  untuk  melembutkan  lonjakan-lonjakan kebutuhan pengaksesan I/O secara langsung.  Buffering adalah cara untuk meningkatkan efisiensi  sistem operasi  dan kinerja proses-proses.  Terdapat beragam cara Buffering, antara lain:
1.  Single Buffering
Teknik  ini  merupakan  Buffering  paling  sederhana.  Ketika  proses pemakai  memberikan  perintah  I/O,  sistem  operasi  menyediakan  buffer bagian memori utama sistem untuk operasi. Untuk peralatan berorientasi blok, transfer masukan dibuat ke buffer sistem. Ketika transfer  selesai,  proses  memeindahkan blok ke ruang pemakai  dan segera  meminta  blok  lain.  Teknik  ini  disebut  reading  ahead atau anticipated input.
Teknik  ini  dilakukan  dengan  harapan  bahwa  blok  tersebut  akan  segera diperlukan. Untuk banyak tipe komputasi, asumsi  ini  berlaku. Hanya akhir barisan pemrosesan maka blok yang dibaca tidak diperlukan. Pendekatan  ini  umumnya  meningkatkan  kecepatan  dibanding  tanpa Buffering.
2. Double Buffering
Peningkatan  atas  Single  Buffering  dapat  dibuat  dengan  mempunyai  dua buffer sistem untuk operasi. Proses dapat transfer ke (atau dari) satu buffer sementara sistem operasi mengosongkan (atau mengisi) buffer lain. Double  Buffering  menjamin  proses  tidak  akan  menunggu  operasi  I/O. Peningkatan atas  Single Buffering diperoleh,  namun harus  dibayar  dengan kompleksitas yang meningkat.
Buffer adalah area memori yang menyimpan data ketika mereka sedang dipindahkan  antara dua device atau antara device dan aplikasi. Contoh gambar Ukuran Transfer Data berbagai Perangkat
  














Buffering dilakukan untuk tiga buah alasan:
1.      Untuk mengatasi perbedaan kecepataan antara produsen dan konsumen dari sebuah aliran data, Sebagai contoh, sebuah file sedang diterima melalui modem dan ditujukan ke media penyimpanan di hard disk. Kecepatan modem tersebut kira-kira hanyalah 1/1000 dari pada hard disk. Jadi buffer dibuat di dalam memori utama untuk mengumpulkan jumlah byte yang diterima dari modem. Ketika keseluruhan data di buffer sudah sampai, buffer tersebut dapat ditulis ke disk dengan operasi tunggal. Karena penulisan disk tidak terjadi dengan instan dan modem masih memerlukan tempat untuk menyimpan data yang berdatangan, maka dipakai 2 buah buffer. Setelah modem memenuhi buffer pertama, akan terjadi request untuk menulis di disk. Modem kemudian mulai memenuhi buffer kedua sementara buffer pertama dipakai untuk penulisan ke disk. Pada saat modem sudah memenuhi buffer kedua, penulisan ke disk dari buffer pertama seharusnya sudah selesai, jadi modem akan berganti kembali memenuhi buffer pertama dan buffer kedua dipakai untuk menulis. Metode double Buffering ini membuat pasangan ganda antara produsen dan konsumen sekaligus mengurangi kebutuhan waktu di antara mereka.
2.      Alasan kedua dari Buffering adalah untuk menyesuaikan device-device yang mempunyai perbedaan dalam ukuran transfer data. Hal ini sangat umum terjadi pada jaringan komputer, dimana buffer dipakai secara luas untuk fragmentasi dan pengaturan kembali pesan-pesan yang diterima. Pada bagian pengirim, sebuah pesan yang besar akan dipecah ke paket-paket kecil. Paket-paket tersebut dikirim melalui jaringan, dan penerima akan meletakkan mereka di dalam buffer untuk disusun kembali.
3.      Alasan ketiga untuk Buffering adalah untuk mendukung copy semantics untuk aplikasi I/O. Sebuah contoh akan menjelaskan apa arti dari copy semantics. Jika ada sebuah aplikasi yang mempunyai buffer data yang ingin dituliskan ke disk. Aplikasi tersebut akan memanggil sistem penulisan, menyediakan pointer ke buffer, dan sebuah integer untuk menunjukkan ukuran bytes yang ingin ditulis. Setelah pemanggilan tersebut, apakah yang akan terjadi jika aplikasi tersebut merubah isi dari buffer, dengan copy semantics, keutuhan data yang ingin ditulis sama dengan data waktu aplikasi ini memanggil system untuk menulis, tidak tergantung dengan perubahan yang terjadi pada buffer. Sebuah cara sederhana untuk sistem operasi untuk menjamin copy semantics adalah membiarkan sistem penulisan untuk mengkopi data aplikasi ke dalam buffer kernel sebelum mengembalikan kontrol kepada aplikasi. Jadi penulisan ke disk dilakukan pada buffer kernel, sehingga perubahan yang terjadi pada buffer aplikasi tidak akan membawa dampak apa-apa. Mengcopy data antara buffer kernel data aplikasi merupakan sesuatu yang umum pada sistem operasi, kecuali overhead yang terjadi karena operasi ini karena clean semantics. Kita dapat memperoleh efek yang sama yang lebih efisien dengan memanfaatkan virtual-memori mapping dan proteksi copy-on-wire dengan pintar.

Spool

Spool adalah sebuah buffer yang berisi keluaran untuk sebuah perangkat, seperti sebuah printer dimana aliran data tidak dapat mengalir bersamaan. Walaupun printer hanya dapat melayani satu pekerjaan pada satu waktu, beberapa aplikasi mungkin ingin mencetak keluaran masing-masing secara bersamaan tanpa harus tercampur. Sistem operasi menyelesaikan masalah ini dengan cara meng-intercept semua keluaran tersebut ke printer. Masing-masing keluaran aplikasi tadi di-spool ke disk berkas yang terpisah. Ketika sebuah aplikasi selesai mencetak keluarannya, sistem spooling akan melanjutkan ke antrian berikutnya. Pada beberapa sistem operasi, spooling ditangani oleh sebuah sistem proses daemon yaitu suatu sistem yang terus mengawasi apakah aliran data berjalan lancar. Pada sistem operasi lainnya, spooling ditangani oleh sebuah thread in- kernel. Pada kedua macam penanganan spooling tersebut, sistem operasi menyediakan kontrol antarmuka yang membolehkan user dan sistem administrator untuk membentuk antrian, untuk membuang job yang tidak diinginkan sebelum job tersebut dicetak, untuk menunda pencetakan ketika printer diperbaiki, dan sebagainya.
                                                       Gambar Spooling
Beberapa perangkat, seperti tape drives dan printer tidak dapat mengumpulkan permintaan M/K dari banyak aplikasi secara bersamaan. Cara lain adalah dengan menggunakan akses perangkat secara bersamaan dengan menyediakan fasilitas langsung dengan cara koordinasi. Beberapa sistem operasi (termasuk Virtual Machine System) menyediakan dukungan akses perangkat secara ekslusif dengan mengalokasikan sebuah proses ke perangkat yang menganggur atau idle dan membuang perangkat tersebut jika sudah tidak diperlukan lagi. Sistem operasi lainnya memaksakan sebuah batasan dari penanganan sebuah berkas yang dibuka ke perangkat tersebut. Kebanyakan sistem operasi menyediakan fungsi yang membuat proses-proses untuk menangani koordinat akses eksklusif diantara mereka sendiri. Sebagai contoh, Windows NT menyediakan system call untuk menunggu objek perangkat sampai statusnya tersedia. Dia juga mempunyai sebuah parameter untuk system call open yang mendeklarasikan tipe-tipe akses yang diperbolehkan untuk thread atau lainnya secara bersamaan. Pada sistem ini, penghindaran  deadlock diserahkan kepada aplikasi.
Buffering juga dapat mengurangi frekuensi pengaksesan dari/ke perangkat masukan/keluaran dan penyimpan sekunder sehingga meningkatkan kinerja sistem. Buffer dapat diimplementasikan dalam perangkat keras atau perangkat lunak, namun sebagian besar buffer diimplementasikan dalam perangkat lunak . Buffer biasanya digunakan ketika ada perbedaan antara tingkat di mana data yang diterima dan tingkat di mana bisa diproses buffer sering menyesuaikan waktu dengan menerapkan antrian atau FIFO (masuk pertama, keluar pertama)  algoritma dalam memori, secara simultan menulis data ke dalam antrian pada satu tingkat dan membacanya dengan tarif lain.
Buffer digunakan untuk berbagai tujuan, seperti :
  1. interkoneksi dua digital sirkuit beroperasi pada tingkat yang berbeda
  2. memegang data untuk penggunaan di lain waktu
  3. koreksi waktu memungkinkan untuk dibuat pada aliran data
  4. pengumpulan biner bit data ke dalam kelompok-kelompok yang kemudian dapat dioperasikan pada sebagai satu unit
  5. menunda waktu transit dari suatu sinyal untuk memungkinkan operasi lain untuk terjadi

 
Read more..

HANDSHAKING


Handshaking adalah proses negosiasi otomatis yang secara dinamis menentukan  parameter dalam pembentukan kanal komunikasi antara dua entitas normal sebelum komunikasi melalui kanal dimulai. Ia mengikuti pembentukan fisik saluran precedes normal dan mentransfer informasi. Contohnya : ketika sebuah komputer berkomunikasi dengan perangkat lain seperti modem atau printer yang perlu melakukan Handshake untuk membuat sambungan.
Proses negosiasi SSL atau “Handshake,” melibatkan pertukaran cryptographic keys, certificate, dan informasi lain , random data digunakan untuk membuat enkripsi satu waktu, dan valuenya digunakan untuk mengidentifikasi SSL yang dibuat dari Handshake. Handshake memiliki tiga tujuan: 
1.      Untuk membolehkan client dan server  setuju mengenai algoritma yang akan mereka gunakan.
2.      Untuk melibatkan kumpulan dari crypto keys untuk digunakan oleh algoritma tersebut.
3.      Untuk mengautentikasi client
Catatan penting bahwa SSL Handshake memerlukan perhitungan yang sangat kompleks dan perlu komputer dengan processor yang tangguh.Pada akhir cryptographic key dibuat dan dipertukarkan antara client dan server,  enkripsi berikutnya dibuat cukup mudah sejauh processor dari komputer terfokus, namun hal itu tetap menjadikan perlunya performa tinggi dari server. Terutama ketika Handshake dengan jumlah besar terjadi dalam waktu bersamaan. Bagaimanapun juga, pekerjaan ini dapat dilakukan oleh  processor khusus/special yang didesain khusus untuk memproses perhitungan matematis yang melibatkan Handshake
Handshaking memungkinkan terjadinya sesi komunikasi data yang berlangsung dari mulai perencanaan komunikasi sampai dengan komunikasi tersebut selesai. Proses ini diawali proses prakomunikasi, yaitu proses pencarian host tujuan (destination) oleh host yang bertindak sebagai pengirim. Proses ini diakhiri dengan kesepakatan antara kedua belah pihak untuk melaksanakan pertukaran data (connection establish), yaitu proses pengiriman informasi berupa request dan tanggapan antara kedua belah pihak. 
Dua proses awal ini dapat disebut proses pembentukan koneksi. Artinya, untuk melakukan komunikasi, perangkat yang dituju harus menerima koneksi awalan terlebih dahulu sebelum mengirimkan data atau menerima data.
1.      Proses yang dilakukan sebelum pengiriman data terdiri atas :
2.      Pengirim (sender) mengirimkan sinyal sinkronasi (SYN) terlebih dulu ke tujuan.
3.      Penerima akan membalas sinyal SYN dengan Negotiate Connection.
4.      Penerima mengirimkan SYN ulang, apa benar pengirim akan mengirimkan data.
5.      Pengirim akan membalas dengan sinyal Acknowledge (ACK), artinya sudah siap untuk mengirimkan data sampai saat ini. Prosesnya telah mencapai status Connection Establish.
6.      Kemudian segmen data dikirim. Proses terakhir adalah ketika terjadi pengiriman kode BYE atau FIN ACK atau CLOSED atau kode lainnya bergantung aplikasi komunikasi yang digunakan.
Tahapan Analisa:
1.      Pertama-tama, buka aplikasi throughput (Wireshark). Jika anda belum meng-install-nya, lakukan dahulu proses penginstalan.
2.      Kemudian, akan muncul tampilan di bawah ini. Lalu, klik “Interfaces List”.
3.      Lalu akan muncul window baru. Klik “start” pada interface yang akan di-capture.
4.      Kemudian, jalankan aplikasi internet browser, dan masuklah kepada salah satu situs web (misal : http://www.google.co.id/).
5.      Setelah browser menunjukkan tidak sedang melakukan loading (dalam Mozolla Firefox biasanya bertuliskan “Done”), hentikan proses capture dengan mengklik tombol “Stop” pada bagian toolbar. Setelah itu, akan muncul hasil capture-nya. Berikut merupakan contoh dari hasil analisanya.
Hasil Analisa :
41 – 43 (! 42)
Opening
42 – 47 (! 43)
Negotiation
48 – 72 (! 62 – 71)
GET/ HTTP
62 – 80 (! 68, 70, 75, 76)
GET/ _icon
84 – 117
GET/ rsrc.php
118
Closing
Tabel A
41 – 43 (! 42)
Opening
42 – 47 (! 43)
Negotiation
48 – 117 (! 68, 70, 75, 76)
Connection Establish
118
Closing
Tabel B
Dari hasil analisis di atas terlihat di tabel 1.0 merupakan proses yang lebih detail dalam proses Handshaking yang ditunjukan gambar 1.0, sedangkan tabel 1.1 merupakan proses yang umum dari keseluruhan gambar 1.0. dari proses di atas kita bisa ketahui bahwa ini merupakan proses three-way Handshaking. Hal ini bisa dibuktikan adanya tiga kali persetujuan antara perangkat komunikasi yaitu opening, negotiation dan closing. Disini Connection Cstablish merupakan proses utama dan bukan persetujuan atau kesepakatan antar perangkat komunikasi.
Maka dari itu, dapat disimpulkan bahwa Proses Handshaking bisa dikatakan sudah masuk Connection Cstablish bilamana sudah ada kode GET/ dari host penerima ke pengirim. Merupakan tanda pertukaran data awal dalam proses Connection Establish. Proses Handshaking dalam aplikasi throughput tidak selalu berurutan dalam suatu proses GET/ bisa saja ada 2 kali proses GET/ dalam satu waktu sehingga menyebabkan hasil capture bergantian antara GET/ yang satu dengan yang lainnya.
A.    Metode Handshaking
1.   Handshaking polling
Secara software Prioritas, yang di-poll pertama mendapat prioritas tertinggi. Bila processor ingin mengakses perangkat, salah satu pendekatannya adalah dengan membiarkan processor melakukan semua pekerjaan. Processor berinteraksi dengan controller melalui protokol yang rumit tetapi dasar Handshaking-nya cukup sederhana yaitu:
a.       CPU terus menerus membaca bit status sampai bit tersebut menandakan perangkat siap menerima perintah CPU.
b.      CPU mengaktifkan bit-write di register perintah sebagai awal pertanda CPU memberikan perintah dan menulis sebuah byte di data-out.
c.       CPU mengaktifkan command-ready bit, artinya perintah tersedia untuk dijalankan controller.
d.      Controller melihat command ready bit di-set sehingga bit kerja di-set.
e.       Controller membaca register perintah dan melihat perintah write maka data-out dibaca dan menyuruh perangkat M/K melakukan apa yang diperintah CPU.
f.       Controller menghapus command ready bit, bit error di status dan bit kerja.
Langkah 1 disebut polling atau busy waiting. Processor terus-menerus membaca bit status, berharap suatu saat bit tersebut menandakan perangkat siap menerima perintahnya. Pada dasarnya polling dapat dikatakan efisien bila kinerja perangkat dan controller-nya cepat. Kelemahan dari cara ini adalah bila waktu tunggu lama, maka lebih baik processor mengerjakan tugas yang lain. Sedangkan untuk mengetahui apakah perangkatnya sudah siap menerima perintah lagi atau belum, digunakanlah interupsi.

2.      Handshaking Interupsi
Interupsi terjadi bila suatu perangkat M/K ingin memberitahu processor bahwa ia siap menerima perintah, output sudah dihasilkan, atau terjadi error.
Penanganan Interupsi
Ada beberapa tahapan dalam penanganan interupsi:
  1. Controller mengirimkan sinyal interupsi melalui interrupt-request-line
  2. Sinyal dideteksi oleh processor
  3. Processor akan terlebih dahulu menyimpan informasi tentang keadaan state-nya (informasi tentang proses yang sedang dikerjakan)
  4. Processor mengidentifikasi penyebab interupsi dan mengakses tabel vektor interupsi untuk menentukan interrupt handler
  5. Transfer kontrol ke interrupt handler
  6. Setelah interupsi berhasil diatasi, processor akan kembali ke keadaan seperti sebelum terjadinya interupsi dan melanjutkan pekerjaan yang tadi sempat tertunda.
Gambar Siklus penanganan interupsi:












3.   Interrupt Request Line
Pada kebanyakan CPU, ada dua interrupt request line. Pertama, interupsi nonmaskable, interupsi ini biasanya berasal dari perangkat keras dan harus segera dilaksanakan, seperti terjadinya error pada memori.
Kedua, interupsi maskable, jenis interupsi ini bisa dilayani oleh processor atau bisa tidak dilayani. Kalaupun dilayani, harus dilihat keadaan processor saat itu. Ada kemungkinan processor langsung menangani bila saat itu, processor preemptive, bila nonpreemptive, maka harus menunggu proses yang sedang dikerjakan selesai.
4. Vektor Interupsi dan Vector Chaining
Bila ada sebuah sinyal interupsi pada interrupt request line, bagaimana sebuah interrupt handler mengetahui sumber dari interupsi itu? Apakah harus menelusuri semua sumber interupsi satu-persatu? Tidak perlu, karena setiap interrupt handler mempunyai alamat memori masing-masing. Alamat ini adalah offset pada sebuah tabel yang disebut dengan vektor interupsi.
Tabel 10.1. Tabel Vector-Even pada Intel Pentium
Vector number
Description
0
Divide error
1
Debug Exception
2
Null Interrupt
3
Breakpoint
4
INTO-detected overflow
5
Bound range exception
6
Invalid opcode
7
Device not available
8
Double fault
9
Compressor segment overrun (reserved)
10
Invalid task state segment
11
Segment not present
12
Stack fault
13
General protection
14
Page fault
15
(Intel reserved, do not use)
16
Floating point error
17
Alignment check
18
Machine check
19-31
(Intel reserved, do not use)
32-255
Maskable interrupt

Sesuai dengan perkembangan zaman, komputer mempunyai lebih banyak perangkat (dan lebih banyak interrupt handlers) daripada elemen alamat di vektor. Hal ini bisa diatasi dengan teknik vector chaining. Setiap elemen di vektor interupsi menunjuk ke kepala dari sebuah daftar interrupt handlers, sehingga bila ada interupsi, handler yang terdapat pada daftar yang ditunjuk akan dipanggil satu persatu sampai didapatkan handler yang bisa menangani interupsi yang bersangkutan.
B.     Prioritas Interupsi
Mekanisme interupsi juga menerapkan sistem level prioritas interupsi. Sistem ini memungkinkan interupsi berprioritas tinggi menyela eksekusi interupsi berprioritas rendah. Sistem ini juga memungkinkan perangkat M/K yang membutuhkan pelayanan secepatnya didahulukan daripada perangkat lainnya yang prioritasnya lebih rendah. Pengaturan prioritas dan penanganan perangkat berdasarkan prioritasnya diatur oleh processor dan controller interupsi.
C.    Penyebab Interupsi
Mekanisme interupsi tidak hanya digunakan untuk menangani operasi yang berhubungan dengan perangkat M/K. Sistem operasi menggunakan mekanisme interupsi untuk beberapa hal, di antaranya:
  1. Menangani exception
Exception adalah suatu kondisi dimana terjadi sesuatu, atau dari sebuah operasi didapatkan hasil tertentu yang dianggap khusus sehingga harus mendapat perhatian lebih, contohnya, pembagian dengan nol, pengaksesan alamat memori yang restricted atau tidak valid, dll.
  1. Mengatur virtual memory paging.
  2. Menangani perangkat lunak interupsi.
  3. Menangani alur kontrol kernel.
Jika interupsi yang terjadi merupakan permintaan untuk transfer data yang besar, maka penggunaan interupsi menjadi tidak efisien, untuk mengatasinya digunakanlah DMA.
D.    Handshaking DMA
Proses Handshaking antara DMA controller dan device controller dilakukan melalui sepasang kabel yang disebut DMA-request dan DMA-acknowledge. Device controller mengirimkan sinyal melalui DMA-request ketika akan mentransfer data sebanyak satu word. Hal ini kemudian akan mengakibatkan DMA controller memasukkan alamat-alamat yang dinginkan ke kabel alamat memori, dan mengirimkan sinyal melalui kabel DMA-acknowledge. Setelah sinyal melalui kabel DMA-acknowledge diterima, device controller mengirimkan data yang dimaksud dan mematikan sinyal pada DMA-request.
Handshaking DMA Memberikan transfer data tercepat dengan cara mensinkronkan peripheral dan memori utama. Software minimal atau tidak ada, tetapi membutuhkan chip kontroler DMA, yang memperumit hardware.
Tiga mode:
1.      One byte (ambil bus, kirim 1 byte, kembalikan bus)
2.      Burst (ambil bus, jika bus ready kirim 1 byte, kembalikan bus)
3.      Block DMA (ambil bus, jika bus ready kirim block, kembalikan bus)
Perlu diketahui bahwa mekanisme interupsi tidak efisien untuk melakukan transfer data yang besar. Transfer data dilakukan per word. Pada mekanisme interupsi, untuk tiap word data yang ditransfer, processor tidak akan menunggu data tersedia pada perangkat yang mengirim data maupun data selesai ditulis oleh perangkat yang menerima data. Dalam situasi tersebut processor akan mengganti proses yang sedang dieksekusinya (yang melakukan transfer data) dengan proses lain (context switch). Jika ukuran data yang ditransfer cukup besar, processor akan berulang kali melakukan context switch, padahal context switch akan menimbulkan overhead. Oleh karena itu kelemahan mekanisme interupsi untuk menangani transfer data yang besar disebabkan oleh context switch. Untuk menangani kelemahan tersebut, digunakan suatu unit kontrol khusus yang disediakan untuk mentrasfer data langsung antar perangkat eksternal dan memori utama tanpa intervensi terus menerus dari processor. Unit kontrol khusus tersebut adalah DMA.
Sistem modern dapat mengurangi beban CPU untuk melakukan operasi M/K, yaitu dengan menggunakan pengendali DMA. Dengan demikian CPU dapat melakukan tugas lain sementara operasi M/K dilakukan. Setiap pengendali peralatan dapat saja memiliki perangkat keras DMA tersendiri. Alternatif lain adalah dengan memiliki sebuah pengendali DMA pada motherboard yang mengatur transfer ke berbagai peralatan. Untuk memulai transfer data secara DMA, driver peralatan akan menulis blok perintah DMA memori yang menunjuk sumber data, tujuan, dan jumlah byte yang akan ditransfer. CPU kemudian akan mengirimkan alamat blok perintah ini pada pengendali DMA. pengendali DMA akan memproses informasi ini untuk kemudian mengoperasikan bus memori. Transfer sebanyak 1 byte/word per satuan waktu oleh pengendali DMA disebut sebagai cycle stealing karena pengendali menggunakan bus cycle milik CPU. Dengan cycle stealing penggunaan bus oleh CPU akan tertunda beberapa waktu karena bus digunakan untuk proses DMA.
Tiga langkah dalam transfer DMA:
  1. processor menyiapkan DMA transfer dengan menyediakan data-data dari perangkat, operasi yang akan ditampilkan, alamat memori yang menjadi sumber dan tujuan data, dan banyaknya byte yang ditransfer.
  2. Pengendali DMA memulai operasi (menyiapkan bus, menyediakan alamat,menulis dan membaca data) samapai seluruh blok sudah ditransfer.
  3. Pengendali DMA menginterupsi processor, dimana selanjutnya akan ditentukan tindakan berikutnya.

Read more..