Rabu, 26 September 2012

7 Nasehat Bijak Einstein Tentang Hidup

Tak perlu bersiap-siap mengernyitkan kening, kita hanya akan membahas ringan tentang filosofi hidup singkat Einstein.

Tidak ada Fisika, nuklir, atau hal-hal jenius lainnya. Hanya hal kecil tapi sering terlupakan, padahal berpengaruh besar terhadap kehidupan kita. Apa sajanasehat bijak Einstein? Yuk kita lihat.



1. Buntuti Terus Rasa Ingin Tahu Anda
"Saya bukan memiliki bakat khusus. Hanya selalu menikmati rasa ingin tahu saja."

Membaca kutipan Einstein di atas membuat kita bertanya-tanya. Seperti apa rasa ingin tahu itu? Saya selalu bertanya-tanya mengapa ada orang sukses, sementara banyak lainnya gagal?

Karena itu banyak-banyaklah menghabiskan banyak waktu membaca banyak bahan. Mencari tahu koneksi berbagai hal terhadap kata 'sukses'. Mengejar jawaban rasa ingin tahu Anda adalah kunci rahasia kesukesan.



2. Tekun itu Tak Ternilai

"Saya bukannya pintar, boleh dikatakan hanya bertahan lebih lama menghadapi masalah."

Bayangkan seekor kura-kura di tengah rimba gunung, sementara dia ingin menuju pantai. Atau, apakah Anda setekun tunas mangga terus-menerus bertumbuh, berkembang sehingga akhirnya berbuah?

Ada ungkapan bagus yang popular di kalangan pegawai pos, 'Selembar prangko menjadi bernilai hanya karena ketika dia menempel pada surat hingga mengantarnya sampai ke tujuan'. Jadilah seperti prangko, selesaikan apa yang sudah Anda mulai.



3. Fokus pada saat ini.
"Seorang pria yang bisa menyetir dengan aman sementara mencium gadis cantik, sebenarnya tidak memberi penghargaan yang layak untuk ciumannya itu."

Einstein kok ngomongin tentang ciuman ya? Ah, itu kan hanya istilah saja, Tapi saya ingin cerita tentang kejadian ketika sesorang menjaga kebun duren di kebun.

Begitu banyak kera seperti menunggu si penjaga lengah dan menyikat durian ranum di atas pohon. Kemudian seorang lainnya berkata, bahwa Anda tak akan bisa menembak dua kera sekaligus.

Pengertian yang bisa disimpulkan atas kata-kata tersebut adalah, 'Seseorang bisa melakukan banyak hal, tapi bukan semua hal sekaligus'.

Belajar untuk 'berada di sini, saat ini', berikan perhatian kepada apa yang sedang Anda kerjakan. Energi terfokus adalah sumber kekuatan. Itul ah perbedaan antara kesuksesan dan kegagalan.



4. Imaginasi adalah kekuatan
"Imaginasi adalah segalanya. Imaginasi adalah penarik masa depan. Imaginasi lebih penting daripada pengetahuan."

Ungkapan Einstein ini sangat terkenal. Apakah Anda berimajinasi setiap hari? Imaginasi lebih penting dari pengetahuan!

Imaginasi memainkan satu babak awal dalam pentas hidup masa depan Anda. Lagi, kata Einstein, "Tanda kejeneniusan sesungguhnya bukanlah pengetahuan melainkan imaginasi."

Sekali lagi, apakah Anda sudah melatih otot-otot imaginasi Anda setiap hari? Jangan biarkan otot-otot itu menjadi kurus dan sakit-sakitan.

Hidup tanpa imajinasi seperti mengikuti aliran sungai, pasrah mengikuti apapun kemauan dan ke mana arahnya. Tak memiliki kuasa atas apapun terhadap pilihan ataupun keinginan. Menyedihkan.



5. Buat Kesalahan
"Seseorang yang tidak pernah membuat kesalahan sebenarnya tak pernah mencoba sesuatu yang baru."

Einstein tak pernah takut dengan kesalahan. Tak perlu alergi dengan kesalahan. Catat baik-baik, KESALAHAN bukan KEGAGALAN.

Dua hal tadi berbeda. Kesalahan-kesalahan dapat membantu Anda menjadi lebih baik, lebih cepat, lebih cerdas, jika Anda menggunakannya dengan tepat tentunya.

Carilah sesuatu berbau baru (something new) dari kesalahan Anda. Seperti sudah dibilang sebelumnya, jika ingin sukses, belajar lebih banyak dari kesalahan Anda.



6. Hidup pada saat ini
"Saya tak pernah memikirkan masa depan–itu akan datang sesaat lagi."

Satu-satunya jalan agar hidup Anda baik dimasa depan adalah hidup dengan baik pada saat sekarang. Ah, lagi-lagi nasehat bijak untuk menyikapi waktu dengan tepat oleh pakar fisika quantum Einstein.

Sangat tak mungkin mengubah kemarin karena sudah terjadi. Yang bisa Anda lakukan sekarang adalah mengubah cara pandang Anda saat ini tentang kemarin agar menjadi lebih baik.

Anda juga tidak bisa mengubah besok menjadi lebih baik, kecuali jika Anda melakukan yang terbaik pada saat ini. Masalahnya hanya tentang waktu, dan waktu tidak pernah ke mana-mana kok.



7. Hargai diri Anda
"Berusahalah dengan keras bukan untuk menjadi sukses, tapi untuk menjadi lebih berharga."

Tak perlu lah banting tulang untuk menjadi lebih sukes. Luangkan waktu Anda untuk menaikkan nilai diri Anda.

Jika Anda memang bernilai, sukses akan datang menghampiri Anda. Apakah Einstein bekerja lebih keras untuk sukses? Mungkin dia hanya terus menerus berinvestasi untuk meningkatkan nilai dirinya. Sukses datang sendiri kepadanya.

Kenali bakat dan berkah karunia-Nya kepada Anda. Belajarlah mengasah mereka menjadi lebih tajam, gunakan untuk memberi manfaat sebanyak-banyaknyak kepada orang lain.

Bekerjalah untuk menjadi bernilai, sukses akan mengejar Anda. Apakah berlian harganya sama dengan kerikil? Anda punya jawabannya. Keduanya mengalami tekanan berbeda sehingga membedakan nilainya.

Selasa, 20 Desember 2011

Waktu Akses Disk

 Waktu akses disk ialah ketika disk drive beroperasi, disk berputar dengan kecepatan tetap.
Untuk dapat membaca dan menulis, head harus berada pada awal sector dari track yang diinginkan. Pemilihan track meliputi perpindahan head pada sistem movable head atau mekanisme elektronis pada head untuk sistem fixed head.

Karakteristik kinerja hard disk dibagi menjadi 3 bagian
1. SEEK TIME
         Seek time adalah dimana drive berputar dan mencari/mengukur waktu yang dibutuhkan unit head pada lengan aktuator untuk melakukan perjalanan ke trek dari disk dan kemudian data akan dibaca atau ditulis.
Data pada media disimpan di sektor-sektor yang diatur dalam trek melingkar paralel (konsentris atau spiral tergantung pada jenis perangkat) dan ada aktuator dengan lengan yang menunda head yang dapat mentransfer data dengan media itu.


2. ROTATIONAL LATENCY
       Rotational latency (kadang-kadang disebut delay rotasi atau hanya latency) adalah perlambatan menunggu rotasi disk untuk membawa sektor disk yang dibutuhkan di bawah HEAD READ - WRITE. Hal ini tergantung pada kecepatan rotasi dari sebuah disk (atau motor spindle ), diukur dalam revolusi per menit (RPM) .  untuk drive magnetik berbasis media yang paling, rata-rata latency rotasi biasanya didasarkan pada hubungan empiris bahwa rata-rata latency dalam milidetik untuk seperti drive adalah setengah periode rotasi. Rotasi latency maksimum adalah waktu yang dibutuhkan untuk melakukan rotasi penuh tidak termasuk waktu spin-up (sebagai bagian yang relevan dari disk mungkin hanya melewati HEAD ketika permintaan tiba). Oleh karena itu. Latency rotasi dapat mengakibatkan waktu akses dapat ditingkatkan dengan meningkatkan kecepatan rotasi dari disk. ROTATIONAL LATENCY  juga memiliki manfaat untuk meningkatkan throughput (dibahas nanti dalam artikel ini).

Untuk rincian lebih lanjut tentang tata letak lagu melihat penyimpanan Disk.

Kecepatan motor spindle dapat menggunakan salah satu dari dua jenis metode rotasi disk: 1) kecepatan linear konstan (CLV), digunakan terutama dalam penyimpanan optik, bervariasi kecepatan rotasi dari disk optik tergantung pada posisi kepala, dan 2) konstan kecepatan sudut (CAV), yang digunakan dalam HDD, FDD standar, sistem cakram optik beberapa, dan catatan vinil audio, media berputar pada satu kecepatan konstan terlepas dari mana kepala diposisikan.





3. ACCESS TIME


ACCESS TIME adalah ukuran waktu yang diperlukan sebelum drive benar-benar dapat mentransfer data. Faktor-faktor yang mengontrol waktu ini pada drive berputar sebagian besar terkait dengan sifat mekanik dari kepala berputar disk dan bergerak.

  metode ini terdiri dari beberapa elemen dapat diukur secara independen yang ditambahkan bersama-sama untuk mendapatkan nilai tunggal ketika mengevaluasi kinerja perangkat penyimpanan. Waktu akses dapat bervariasi secara signifikan, sehingga biasanya disediakan oleh produsen atau diukur dalam tolok ukur sebagai rata-rata .

Akses Cache Memory

Organisasi Cache
Dalam mendesain sistem cache, yang pertama kali perlu diperhatikan adalah masalah penempatan suatu blok data/instruksi dari memori utama ke baris-baris cache. Berkaitan dengan masalah itu, ada tiga macam organisasi cache yakni organisasi cache yang dipetakan langsung (direct-mapped), asosiatif penuh (fully associative), dan asosiatif-kelompok ( set-associative).

Cache Asosiatif
Disebut juga Fully Associative Cache.
- Menyimpan tagnya di dalam memori asosiatif atau memori yang ekuivalen secara fungsional.
- Cache dapat menempatkan sembarang jalur refill selama akses memori.
- Membandingkan alamat yang ada dengan semua alamat yang disimpan. 

Dalam rancangan cache asosiatif-penuh :(detail)

• Suatu blok data dapat ditempatkan pada baris cache manapun.
• Alamat dibagi menjadi dua bagian yakni bit rendah dan bit tinggi.
• Bit rendah membentuk offset di dalam baris cache, sedangkan bit tinggi membentuk tag untuk    dicocokkan dengan rujukan.
• Cache asosiatif-penuh harus punya mekanisme untuk menentukan ke dalam baris mana blok     ditempatkan.
• Blok dapat ditempatkan dalam baris manapun yang kosong. Bila semua baris cache penuh harus     ditentukan blok mana yang dikeluarkan dari cache.
• Digunakan prinsip LRU (least recently used) yakni blok yang paling lama tidak dipakai dikeluarkan    dari cache.
• Cukup mahal mengimplementasikannya.
• Resiko : memperbanyak implementasi rangkaian hardware untuk membandingkan tag thadap semua baris cache.

Direct Mapped Cache (Cache yang dipetakan langsung)
Membagi memory utama menjadi K kolom dengan N refill line per kolomnya.
 Operasi Pembacaan Cache secara Direct :
- memetakan masing-masing blok memori utama hanya ke sebuah saluran cache saja.
- Fungsi pemetaan mudah diimplementasikan dengan menggunakan alamat.
- Untuk mengakses cache, setiap alamat memori utama dianggap terdiri dari tiga field.

Organisasi cache yang dipetakan langsung : (detail)
• menyimpan satu tag perbaris dalam larik tag-nya
• Selama pengaksesan memori, cache menggunakan bit-bit tengah alamat sebagai indeks ke larik tagnya.
• Tag dicocokkan dengan 16-bit teratas dari alamat memori yang diakses.
• Jika cocok, data yang ditunjukan oleh nilai offset akan dikirim ke prosesor. Bila tidak cocok, isi baris cache diganti dengan blok yang diperlukan, dari memori utama.
• Hanya memerlukan satu kali pembandingan untuk setiap akses ke cache.
• Cocok untuk sistem komputer yang memerlukan frekuensi detak tinggi

Set Cache Asosiatif

-Mengkombinasikan organisasi asosiatif dan direct (langsung).
- Mengorganisir memori utama dan memorinya sendiri menjadi kolom jalur refil N.
- Cache  dibagi menjadi beberapa set/himpunan
- Setiap himpunan terdiri dr sejumlah jalur
- Sebuah blok yang diberikan memetakan ke jalur manapun dalam himpunan yang diberikan
 (Misal Block B dapat berada di jalur manapundalam himpuan i)
- Misal 2 jalur per himpunan
 2 cara pemetaan asosiatif
- Sebuah blok yang diberikan dapat pada salah satu dari 2 jalur dalam sebuah himpunan saja

Sector Mapped Cache (Cache yang dipetakan sector)
- Merupakan modifikasi dari cache asosiatif.
-Jalur refill memori utama dan cache dikelompokan menjadi sector yang disebut row(baris).

Rabu, 28 September 2011

Kisah Lucu Penuh Motivasi Dan Inspirasi

1. Setelah makan malam, seorang ibu dan putrinya bersama-sama mencuci mangkuk dan piring, sedangkan ayah dan putranya menonton TV di ruang tamu. Mendadak, dari arah dapur terdengar suara piring yang pecah, kemudian sunyi senyap. Si putra memandang ke arah ayahnya dan berkata, “Pasti ibu yang memecahkan piring itu.” “Bagaimana kamu tahu?” kata si Ayah. “Karena tak terdengar suara dia memarahi orang lain,” sahut anaknya.

Quote:
Kita semua sudah terbiasa menggunakan standar yang berbeda melihat orang lain dan memandang diri sendiri, sehingga acapkali kita menuntut orang lain dengan serius, tetapi memperlakukan diri sendiri dengan penuh toleran.
2. Ada dua grup pariwisata yang pergi bertamasya ke pulau Yi Do di Jepang. Kondisi jalannya sangat buruk, sepanjang jalan terdapat banyak lubang. Salah satu pemandu berulang-ulang mengatakan keadaan jalannya rusak parah dan tak terawat. Sedangkan pemandu yang satunya lagi berbicara kepada para turisnya dengan nada puitis, “Yang kita lalui sekarang ini adalah jalan protokol ternama di Yi Do yang bernama jalan berdekik yang mempesona.”

Quote:
Walaupun keadaannya sama, namun pikiran yang berbeda akan menimbulkan sikap yang berbeda pula. Pikiran adalah suatu hal yang sangat menakjubkan, bagaimana berpikir, keputusan berada di tangan Anda.
3. Murid kelas 3 SD yang sama, mereka memiliki cita-cita yang sama pula yaitu menjadi badut. Guru dari Tiongkok pasti mencela, “Tidak mempunyai cita-cita yang luhur, anak yang tidak bisa dibina!” Sedangkan guru dari Barat akan bilang, “Semoga Anda membawakan kecerian bagi seluruh dunia!”

Quote:
Terkadang orang yang lebih tua, bukan hanya lebih banyak menuntut daripada memberi semangat, malahan sering membatasi definisi keberhasilan dengan arti yang sempit.
4. Istri sedang memasak di dapur. Suami yang berada di sampingnya mengoceh tak berkesudahan, “Pelan sedikit, hati-hati! Apinya terlalu besar. Ikannya cepat dibalik, minyaknya terlalu banyak!” Istrinya secara spontan menjawab, “Saya mengerti bagaimana cara memasak sayur.” Suaminya dengan tenang menjawab, “Saya hanya ingin dirimu mengerti bagaimana perasaan saya … saat saya sedang mengemudikan mobil, engkau yang berada disamping mengoceh tak ada hentinya.”

Quote:
Belajar memberi kelonggaran kepada orang lain itu tidak sulit, asalkan Anda mau dengan serius berdiri di sudut dan pandangan orang lain melihat suatu masalah.
5. Sebuah bus yang penuh dengan muatan penumpang sedang melaju dengan cepat menelusuri jalanan yang menurun, ada seseorang yang mengejar bus ini dari belakang. Seorang penumpang mengeluarkan kepala keluar jendala bus dan berkata dengan orang yang mengejar bus, “Hai kawan! Sudahlah Anda tak mungkin bisa mengejar!” Orang tersebut menjawab, “Saya harus mengejarnya . . .” Dengan nafas tersenggal-senggal dia berkata, “Saya adalah pengemudi dari bus ini!”

Quote:
Ada sebagian orang harus berusaha keras dengan sangat serius, jika tidak demikian, maka akibatnya akan sangat tragis! Dan juga dikarenakan harus menghadapi dengan sekuat tenaga, maka kemampuan yang masih terpendam dan sifat-sifat khusus yang tidak diketahui oleh orang lain selama ini akan sepenuhnya muncul keluar.
6. Si A : “Tetangga yang yang baru pindah itu sungguh jahat, kemarin tengah malam dia datang ke rumah saya dan terus menerus menekan bel di rumah saya.”
Si B : “Memang sungguh jahat! Adakah Anda segera melapor polisi?”
Si A : “Tidak. Saya menganggap mereka orang gila, yang terus menerus meniup terompet kecil saya.”

Quote:
Semua kejadian pasti ada sebabnya, jika sebelumnya kita bisa melihat kekurangan kita sendiri, maka jawabannya pasti berbeda.
7. Zhang San sedang mengemudikan mobil berjalan di jalan pegunungan, ketika dengan santai menikmati pemandangan yang indah, mendadak dari arah depan datang sebuah truk barang. Si sopir truk membuka jendela dan berteriak dengan keras, “Babi!” Mendengar suara ini Zhang San menjadi emosi, dia juga membuka jendela memaki, “Kamu sendiri yang babi!” Baru saja selesai memaki, dia telah bertabrakan dengan gerombolan babi yang sedang menyeberangi jalan.

Quote:
Jangan salah tafsir maksud kebaikan dari orang lain, hal tersebut akan menyebabkan kerugian Anda, juga membuat orang lain terhina. 
 
sumber : http://forum.vivanews.com/aneh-dan-lucu/200551-7-kisah-lucu-penuh-motivasi-dan-inspirasi.html

Konsep-Konsep Laptop Masa Depan Terunik dan Keren

Diperuntukkan bagi penggunaan didalam mobil khususnya yang berdedikasi bertugas di dalam mobil. hampir gak masuk akal memang tapi laptop yang satu ini sangat ringan dengan keyboard layar sentuh ditambah dengan tampilannya yang transparan

HP Laptop concept
 Laptop ini rancangan HP dimana keseluruhan desainnya lebih meyakinkan.

V12
Merupakan hasil rancangan Canova dimana sudah menggunakan dual layar yang dilengkapi dengan 2 layar tampilan. Yang satu ini cocok banget bagi Editor Grafis.

CEATEC - DJ laptop
 Hasil rancangan Fujitsu dimana terdapat keypad sentuh dengan layar backlight dengan dilengkapi 5.1 surround sound system beserta tombol musik. Tak salah jika Laptop 20 inci ini dijuluki Laptop DJ.


Flexi PDA Concept Laptop
 Kelebihannya yang bikin memukau adalah Layarnya yang fleksibel plus 100% tahan air.

Frog Design laptop
Sebutannya Gelfrog yang mana ringannya hampir seringan koran. Bayangkan pula polanya yang gak nahan.

Frog Design laptop
 Laptop ini buatan Fujitsu dengan tipe tampilan kertas yang fleksibel, super ringan bahkan tampak bagaikan folder kantor.

Itel Ziba Design Concept laptop

Laptop ini bobotnya hanya 2.25 tapi dengan layar 17.7 inci.

Compenion prototype
 Layar sentunnya saja sudah OLED dan berdisain slinder. Plus mendukung multi layar sentuh.

Vaio Zoo
 Merupakan konsep notebook hologram dimana 101% transparan, sangat tipis dan bentuknya bikin mupeng.

Speculative Execution

Gagasan Utama
Eksekusi spekulatif adalah optimasi kinerja. Ide utama adalah untuk melakukan pekerjaan yang mungkin tidak diperlukan. Targetnya adalah untuk menyediakan konkurensi lebih jika sumber daya tambahan yang tersedia. Teknologi berikut menggunakan ide ini:

    
Prefetching dalam memori dan sistem file
    
Cabang prediksi
    
Kontrol konkurensi Optimis dalam sistem database 

 Prosesor
Pipelined mikroprosesor modern menggunakan eksekusi spekulatif untuk mengurangi biaya instruksi cabang bersyarat menggunakan skema yang memprediksi jalur eksekusi dari suatu program berdasarkan sejarah eksekusi cabang. Ternyata bahwa dalam rangka meningkatkan kinerja dan pemanfaatan sumber daya komputer, beberapa instruksi harus dijadwalkan terlebih dahulu di tempat yang tidak ditentukan bahwa instruksi tersebut harus dieksekusi sama sekali, di depan cabang.


  Compiler
Dalam optimasi compiler untuk sistem multiprocessing, eksekusi spekulatif melibatkan prosesor menganggur mengeksekusi kode di blok prosesor berikutnya, dalam hal tidak ada ketergantungan pada kode yang dapat berjalan pada prosesor lainnya. Keuntungan dari skema ini adalah mengurangi waktu respon untuk prosesor individu dan sistem secara keseluruhan. Namun, ada hukuman bersih untuk kasus rata-rata, karena dalam kasus taruhan yang buruk, pipa harus memerah.  Compiler terbatas dalam mengeluarkan instruksi eksekusi spekulatif, karena memerlukan bantuan perangkat keras untuk buffer efek spekulasi-instruksi dieksekusi. Tanpa dukungan hardware, compiler hanya bisa mengeluarkan instruksi spekulatif yang memiliki efek samping dalam hal spekulasi yang salah. 

 Eksekusi Bersemangat
Eksekusi bersemangat adalah bentuk eksekusi spekulatif di mana kedua sisi cabang kondisional dijalankan, namun hasil berkomitmen hanya jika predikat benar. Dengan sumber daya terbatas, eksekusi bersemangat (juga dikenal sebagai eksekusi oracle) akan dalam teori memberikan kinerja yang sama seperti prediksi cabang yang sempurna. Dengan sumber daya yang terbatas ingin eksekusi harus digunakan hati-hati karena jumlah sumber daya yang dibutuhkan tumbuh secara eksponensial dengan masing-masing tingkat cabang dieksekusi bersemangat . 

 Evaluasi Malas
Malas evaluasi tidak berspekulasi. Penggabungan eksekusi spekulatif dalam implementasi dari bahasa pemrograman Haskell merupakan topik penelitian saat ini. Haskell bersemangat dirancang di sekitar gagasan eksekusi spekulatif. Versi terbaru dukungan GHC jenis eksekusi spekulatif dengan mekanisme aborsi untuk kembali dalam kasus pilihan yang buruk disebut eksekusi optimis .

Data Flow Analysis

Prinsip-prinsip dasar
Ini adalah proses pengumpulan informasi tentang cara variabel yang digunakan, didefinisikan dalam program ini. Analisis aliran data upaya untuk memperoleh informasi tertentu pada setiap titik dalam prosedur. Biasanya, itu sudah cukup untuk memperoleh informasi ini pada batas blok dasar, sejak dari bahwa adalah mudah untuk menghitung informasi pada poin di blok dasar. Dalam analisis arus maju, negara keluar dari blok adalah fungsi negara masuk blok. Fungsi ini adalah komposisi efek dari pernyataan di blok. Keadaan masuknya blok adalah fungsi dari negara-negara keluar dari pendahulunya. Ini menghasilkan satu set data-aliran persamaan:
Untuk setiap blok b:

    
outb = transb (inb)
    
in_b = join_ {p \ di pred_b} (out_p)
Dalam hal ini, transb adalah fungsi transfer blok b. Ia bekerja pada negara inb masuk, yang menghasilkan outb negara keluar. Operasi bergabung bergabung menggabungkan menyatakan keluar dari pendahulu p \ di pred_b b, menghasilkan negara masuknya b.
Setelah menyelesaikan set persamaan, negara masuk dan / atau keluar dari blok dapat digunakan untuk mendapatkan properti dari program pada batas blok. Fungsi transfer setiap pernyataan secara terpisah dapat diterapkan untuk mendapatkan informasi pada suatu titik di dalam blok dasar.
Setiap jenis tertentu dari data-aliran analisis telah mentransfer sendiri fungsi dan bergabung dengan operasi. Beberapa data-aliran masalah, analisis arus mundur. Ini mengikuti rencana yang sama, kecuali bahwa fungsi transfer diterapkan kepada negara keluar menghasilkan negara masuk, dan operasi bergabung bekerja pada masuknya negara penerus untuk menghasilkan negara keluar.
Titik masuk (aliran ke depan) memainkan peran penting: Karena tidak memiliki pendahulu, masuknya negara didefinisikan dengan baik pada awal analisis. Misalnya, himpunan variabel lokal dengan nilai-nilai diketahui kosong. Jika grafik aliran kontrol tidak mengandung siklus (tidak ada loop eksplisit atau implisit dalam prosedur) memecahkan persamaan secara langsung. Grafik aliran kontrol kemudian dapat topologi diurutkan, berjalan dalam urutan seperti ini, negara-negara entri dapat dihitung pada awal setiap blok, karena semua pendahulu dari blok yang telah diproses, sehingga mereka menyatakan keluar tersedia. Jika grafik aliran kontrol tidak mengandung siklus, sebuah algoritma yang lebih canggih diperlukan.[Sunting] Sebuah algoritma iteratif
Cara yang paling umum untuk memecahkan persamaan aliran data adalah dengan menggunakan algoritma iteratif. Ini dimulai dengan perkiraan negara di-blok masing-masing. Out-negara tersebut kemudian dihitung dengan menerapkan fungsi transfer pada di negara-negara. Dari ini, di-negara yang diperbarui dengan menerapkan operasi bergabung. Dua terakhir langkah ini diulang sampai kita mencapai fixpoint disebut: situasi di mana di negara-negara (dan keluar-negara bagian di konsekuensi) tidak berubah.
Sebuah algoritma dasar untuk memecahkan persamaan aliran data adalah round-robin algoritma iteratif:

    
untuk i ← 1 sampai N

        
menginisialisasi node i

    
sementara (set masih berubah)

        
untuk i ← 1 sampai N

            
recompute set pada node i
[Sunting] Konvergensi
Untuk digunakan, pendekatan iteratif harus benar-benar mencapai suatu fixpoint. Hal ini dapat dijamin oleh memaksakan kendala pada kombinasi dari domain nilai negara, fungsi transfer dan operasi join.
Nilai domain harus urutan parsial dengan ketinggian yang terbatas (yaitu, tidak ada rantai ascending terbatas x1 <x2 <...). Kombinasi dari fungsi transfer dan operasi harus bergabung monoton sehubungan dengan urutan parsial. Kemonotonan memastikan bahwa pada setiap iterasi nilai baik akan tetap sama atau akan tumbuh lebih besar, sementara tingginya terbatas memastikan bahwa hal itu tidak bisa tumbuh tanpa batas. Dengan demikian kita akhirnya akan mencapai situasi di mana T (x) = x untuk semua x, yang fixpoint tersebut.[Sunting] Pendekatan daftar pekerjaan
Sangat mudah untuk memperbaiki algoritma di atas dengan memperhatikan bahwa di negara-blok tidak akan berubah jika keluar-negara pendahulunya tidak berubah. Oleh karena itu, kami memperkenalkan sebuah daftar kerja: daftar blok yang masih harus diproses. Setiap kali keluar-negara perubahan blok, kita menambahkan penerus ke daftar kerja. Dalam setiap iterasi, blok dihapus dari daftar pekerjaan. Its keluar-negara dihitung. Jika out-negara berubah, penerus blok tersebut ditambahkan ke daftar kerja. Untuk efisiensi, blok tidak boleh dalam daftar bekerja lebih dari sekali.
Algoritma ini dimulai dengan menempatkan titik masuk dalam daftar pekerjaan. Ini berakhir ketika daftar pekerjaan kosong.[Sunting] Perintah penting
Efisiensi iteratif memecahkan persamaan aliran data dipengaruhi oleh urutan di mana node lokal dikunjungi. Selain itu, tergantung, apakah data-aliran persamaan yang digunakan untuk maju atau mundur aliran data analisis atas CFG tersebut. Intuitif, dalam masalah aliran ke depan, akan tercepat jika semua pendahulu dari blok telah diproses sebelum blok itu sendiri, sejak saat iterasi akan menggunakan informasi terbaru. Dengan tidak adanya loop adalah mungkin untuk memesan blok sedemikian rupa sehingga benar keluar-negara dihitung dengan memproses setiap blok hanya sekali.
Dalam berikut, pesanan beberapa iterasi untuk menyelesaikan persamaan aliran data yang dibahas (sebuah konsep yang berhubungan untuk memesan iterasi dari CFG adalah pohon traversal dari pohon).

    
Urutan acak - Ini pesanan iterasi tidak menyadari apakah data-aliran persamaan memecahkan masalah data aliran maju atau mundur. Oleh karena itu, kinerja yang relatif miskin dibandingkan dengan perintah iterasi khusus.

    
Postorder - Ini adalah perintah iterasi khas untuk mundur data masalah arus. Dalam iterasi postorder, node dikunjungi setelah semua node penggantinya telah dikunjungi. Biasanya, iterasi postorder diimplementasikan dengan strategi depth-first.

    
Sebaliknya postorder - Ini adalah perintah iterasi khas untuk meneruskan data-masalah arus. Dalam reverse-postorder iterasi, node dikunjungi sebelum semua node penggantinya telah dikunjungi, kecuali bila penggantinya adalah dicapai oleh ujung belakang. (Catatan bahwa ini tidak sama dengan preorder.)
[Sunting] Inisialisasi
Nilai awal di-negara adalah penting untuk mendapatkan hasil yang benar dan akurat. Jika hasilnya digunakan untuk optimasi compiler, mereka harus memberikan informasi yang konservatif, yaitu ketika menerapkan informasi, program tidak harus mengubah semantik. Iterasi dari algoritma fixpoint akan mengambil nilai-nilai dalam arah elemen maksimum. Menginisialisasi semua blok dengan elemen maksimum karena itu tidak berguna. Setidaknya satu blok dimulai di negara dengan nilai kurang maksimal. Rincian tergantung pada masalah data-aliran. Jika elemen minimal merupakan informasi benar-benar konservatif, hasilnya dapat digunakan dengan aman bahkan selama iterasi data aliran. Jika itu merupakan informasi yang paling akurat, fixpoint harus dicapai sebelum hasil dapat diterapkan.[Sunting] Contoh
Berikut ini adalah contoh dari sifat-sifat dari program komputer yang dapat dihitung dengan data-aliran analisis. Perhatikan bahwa sifat dihitung dengan analisis aliran data biasanya hanya perkiraan sifat nyata. Hal ini karena data-flow analisis beroperasi pada struktur sintaksis CFG tanpa simulasi aliran kontrol yang tepat dari program. Namun, untuk menjadi masih berguna dalam praktek, algoritma analisis data flow biasanya dirancang untuk menghitung masing-masing pendekatan bawah atas sifat program nyata.[Sunting] Analisis Teruskan
Analisis Definisi mencapai menghitung untuk setiap titik program set definisi yang berpotensi dapat mencapai titik ini program.
1: jika b == 4 maka2: a = 5;3: lain4: a = 3;5: endif6:7: jika <4 maka8: ...


Definisi mencapai variabel "a" pada baris 7 adalah himpunan tugas a = 5 pada baris 2 dan a = 3 pada baris 4.[Sunting] Analisis Mundur
Analisis variabel tinggal menghitung untuk setiap titik program variabel yang mungkin berpotensi dibaca kemudian sebelum update menulis berikutnya. Hasilnya adalah biasanya digunakan oleh eliminasi kode mati untuk menghapus pernyataan yang menetapkan ke suatu variabel yang nilainya tidak digunakan sesudahnya.
Di-negara blok adalah himpunan variabel yang tinggal di ujung blok. Its luar negara adalah serangkaian variabel yang ada tinggal pada awal itu. Di-negara adalah gabungan dari out-negara dari blok penerus. Fungsi transfer dari sebuah pernyataan diterapkan dengan membuat variabel yang ditulis mati, kemudian membuat variabel yang dibaca hidup.

  
/ / Keluar: {}b1: a = 3;
    
b = 5;
    
d = 4;
    
jika a> b maka
  
/ / Dalam: {a, b, d}

  
/ / Keluar: {a, b}b2: c = a + b;
       
d = 2;
  
/ / Dalam: {b, d}

  
/ / Keluar: {b, d}b3: endif
    
c = 4;
    
kembali b * d + c;
  
/ / Dalam: {}
Out-negara b3 hanya berisi b dan d, karena c telah ditulis. Di negara-b1 adalah gabungan dari out-negara bagian b2 dan b3. Definisi c dalam b2 dapat dihapus, karena c adalah tidak hidup segera setelah pernyataan itu.
Memecahkan persamaan aliran data dimulai dengan menginisialisasi semua di-negara-negara dan keluar ke set kosong. Daftar kerja diinisialisasi dengan memasukkan titik keluar (B3) dalam daftar pekerjaan (khas untuk mengalir ke belakang). Dihitung nya keluar-negara berbeda dari yang sebelumnya, sehingga pendahulunya b1 dan b2 dimasukkan dan proses berlanjut. Kemajuan tersebut diringkas dalam tabel di bawah ini.pengolahan di negara-negara lama keluar baru keluar-negara daftar pekerjaanb3 {} {} {b, d} (b1, b2)b1 {b, d} {} {} (b2)b2 {b, d} {} {a, b} (b1)b1 {a, b, d} {} {} ()
Catatan b1 yang masuk dalam daftar sebelum b2, b1 pengolahan yang memaksa dua kali (b1 adalah kembali dimasukkan sebagai pendahulu dari b2). Memasukkan b1 b2 sebelumnya akan membiarkan selesai sebelumnya.
Menginisialisasi dengan himpunan kosong adalah inisialisasi optimis: semua variabel dimulai sebagai mati. Perhatikan bahwa keluar-negara tidak dapat menyusut dari satu iterasi ke depan, meskipun keluar-negara dapat lebih kecil yang di-negara. Hal ini dapat dilihat dari fakta bahwa setelah iterasi pertama keluar-satunya negara dapat berubah dengan perubahan negara dalam-. Karena di negara dimulai sebagai himpunan kosong, hanya dapat tumbuh di iterasi lebih lanjut.[Sunting] Pendekatan-pendekatan lain
Pada tahun 2002, Markus Mohnen dijelaskan metode baru data-flow analisis yang tidak memerlukan konstruksi eksplisit dari sebuah grafik aliran data, [2], bukan mengandalkan pada interpretasi abstrak program dan menjaga working set counter program. Pada setiap cabang kondisional, baik target ditambahkan ke working set. Masing-masing jalan diikuti untuk sebagai petunjuk sebanyak mungkin (sampai akhir program atau sampai telah dilingkarkan dengan tidak ada perubahan), dan kemudian dihapus dari set dan program counter berikutnya diambil.[Sunting] Bit masalah vektor
Contoh di atas adalah masalah di mana nilai data-aliran set, misalnya set definisi mencapai (Menggunakan sedikit untuk posisi definisi dalam program), atau set variabel hidup. Set ini dapat direpresentasikan secara efisien sebagai vektor bit, di mana setiap bit mewakili keanggotaan set satu elemen tertentu. Menggunakan representasi ini, fungsi bergabung dan transfer dapat diimplementasikan sebagai operasi bitwise logis. Operasi bergabung biasanya serikat buruh atau persimpangan, dilaksanakan oleh bitwise logis atau dan logis dan. Fungsi transfer untuk setiap blok dapat diuraikan dalam apa yang disebut gen dan membunuh set.
Sebagai contoh, dalam hidup-variabel analisis, operasi bergabung adalah serikat. Set membunuh adalah himpunan variabel yang ditulis dalam blok, sedangkan set gen adalah himpunan variabel yang dibaca tanpa tertulis pertama. Data-aliran persamaan menjadi
out_b = \ bigcup_ {s \ di succ_b} in_s
in_b = (out_b - kill_b) \ cangkir gen_b
Dalam operasi logis, ini berbunyi sebagai

    
keluar (b) = 0
    
untuk s di succ (b)

        
keluar (b) = keluar (b) atau (s)

    
dalam (b) = (keluar (b) dan tidak membunuh (b)) atau gen (b)
[Sunting] Sensitivitas
Analisis aliran data secara inheren aliran-sensitif. Analisis aliran data biasanya jalan-insensitive, meskipun mungkin untuk mendefinisikan data flow persamaan yang menghasilkan jalur-sensitif analisis.

    
Aliran-sensitif analisis memperhitungkan urutan pernyataan dalam program. Sebagai contoh, aliran-insensitive analisis alias pointer dapat menentukan "variabel x dan y dapat merujuk ke lokasi yang sama", sementara analisis aliran-sensitif dapat menentukan "setelah pernyataan 20, variabel x dan y dapat merujuk ke lokasi yang sama".
    
Sebuah jalur-sensitif analisis menghitung potongan informasi yang berbeda tergantung pada analisis predikat di instruksi cabang bersyarat. Sebagai contoh, jika cabang berisi kondisi x> 0, maka pada musim gugur-melalui jalan setapak, analisis akan berasumsi bahwa x <= 0 dan pada target cabang itu akan berasumsi bahwa memang x> 0 berlaku.
    
Sebuah konteks-sensitif analisis adalah analisis interprosedural yang mempertimbangkan konteks menelepon ketika menganalisis target dari pemanggilan fungsi. Secara khusus, menggunakan informasi konteks yang dapat melompat kembali ke situs panggilan asli, sedangkan tanpa informasi itu, analisis informasi harus disebarkan kembali ke semua situs panggilan mungkin, berpotensi kehilangan presisi.

Sumber : Wikipedia