Kontrol numerik (NC) merujuk pada otomatisasi peralatan mesin yang dioperasikan oleh perintah diprogram abstrak disandikan pada media penyimpanan, bukan dikontrol secara manual melalui handwheels atau pengungkit, atau secara mekanis otomatis melalui Cams sendirian. Mesin NC pertama dibangun di tahun 1940-an dan 50-an, berdasarkan alat-alat yang ada telah dimodifikasi dengan motor yang bergerak kontrol poin untuk mengikuti dimasukkan ke dalam sistem di atas kertas pita. Servomechanisms awal ini dengan cepat ditambah dengan komputer analog dan digital, menciptakan komputer modern dikontrol numerik (CNC) peralatan mesin yang merevolusi proses desain. Dalam sistem CNC modern, end-to-end desain komponen sangat otomatis menggunakan CAD / CAM program. Program komputer menghasilkan sebuah file yang ditafsirkan untuk mengekstrak perintah yang diperlukan untuk mengoperasikan mesin tertentu, dan kemudian dimasukkan ke dalam CNC mesin untuk produksi. Karena komponen tertentu mungkin memerlukan penggunaan sejumlah alat-alat yang berbeda-latihan, gergaji, dsb-mesin modern sering menggabungkan beberapa alat menjadi satu "sel". Dalam kasus lain, sejumlah mesin yang berbeda digunakan dengan eksternal controller dan manusia atau robot operator yang menggerakkan komponen dari mesin ke mesin. Dalam kedua kasus, kompleks serangkaian langkah-langkah yang diperlukan untuk memproduksi setiap bagian sangat otomatis dan menghasilkan bagian yang erat sesuai dengan desain CAD asli.
Jumat, 19 Februari 2010
Internet Protocol
Internet Protocol (IP) adalah sebuah protokol yang digunakan untuk berkomunikasi data melalui sebuah packet-switched internetwork menggunakan Internet Protocol Suite, juga disebut sebagai TCP / IP. IP adalah protokol utama di Internet Layer dari Internet Protocol Suite dan mempunyai tugas memberikan protokol dibedakan datagrams (paket) dari sumber host ke host tujuan hanya berdasarkan alamat mereka. Untuk tujuan ini Internet Protokol mendefinisikan metode pengalamatan dan struktur untuk datagram enkapsulasi. Versi besar pertama menangani struktur, sekarang disebut sebagai Internet Protocol Version 4 (IPv4) adalah protokol masih dominan Internet, meskipun penerus, Internet Protocol Version 6 (IPv6) sedang digunakan secara aktif di seluruh dunia.
IP Enkapsulasi
Data dari protokol lapisan atas adalah sebagai enkapsulasi paket / datagrams (pada dasarnya istilah sinonim di IP). Sirkuit setup tidak diperlukan sebelum sebuah host dapat mengirimkan paket ke host yang lain yang telah sebelumnya tidak dikomunikasikan dengan (merupakan karakteristik dari paket-switched jaringan), sehingga IP adalah connectionless protocol. Hal ini berbeda dengan jaringan telepon diaktifkan publik yang memerlukan setup sebuah rangkaian untuk setiap panggilan telepon (protokol berorientasi koneksi).
Layanan yang disediakan oleh IP
Karena abstraksi disediakan oleh enkapsulasi, IP dapat digunakan melalui jaringan heterogen, yaitu menghubungkan jaringan komputer dapat terdiri dari kombinasi Ethernet, ATM, FDDI, Wi-Fi, token ring, atau orang lain. Pelaksanaan setiap link layer mungkin mempunyai metode sendiri membahas (atau mungkin kurang lengkap itu), dengan yang sesuai perlu untuk menyelesaikan alamat IP untuk data-link alamat. Resolusi alamat ini ditangani oleh Address Resolution Protocol (ARP) untuk IPv4 dan Neighbor Discovery Protocol (NDP) untuk IPv6.
Reliabilitas
Prinsip-prinsip desain protokol Internet mengasumsikan bahwa infrastruktur jaringan secara inheren tidak dapat diandalkan pada setiap elemen jaringan tunggal atau media transmisi dan itu bersifat dinamis dalam hal ketersediaan link dan node. Tidak ada pusat pemantauan atau pengukuran kinerja fasilitas yang ada trek atau mempertahankan kondisi jaringan. Untuk manfaat mengurangi kompleksitas jaringan, kecerdasan dalam jaringan dengan sengaja sebagian besar berada di simpul akhir dari setiap transmisi data, cf. End-to-end prinsip. Routers dalam jalur transmisi hanya maju paket ke gateway lokal dikenal berikutnya yang cocok dengan prefix routing untuk alamat tujuan. Sebagai konsekuensi dari desain ini, Internet Protocol hanya menyediakan upaya terbaik pengiriman dan layanan juga dapat dicirikan sebagai diandalkan. Dalam bahasa arsitektur jaringan ini adalah sambungan-kurang protokol, berbeda dengan apa yang disebut berorientasi sambungan penularan. Kurangnya kehandalan memungkinkan salah satu peristiwa kesalahan berikut terjadi:
- Data korupsi
- Paket data yang hilang
- Duplikat kedatangan
- Untuk paket pengiriman; makna, jika paket "A" adalah dikirim sebelum paket 'B', paket 'B' dapat tiba sebelum paket 'A'.Karena routing dinamis dan tidak ada memori dalam jaringan jalan tentang paket-paket sebelumnya, adalah mungkin bahwa paket yang dikirim pertama mengambil jalur yang lebih panjang ke tujuannya.
Satu-satunya bantuan yang menyediakan Protokol Internet di Versi 4 (IPv4) adalah untuk memastikan bahwa paket IP header adalah bebas kesalahan melalui perhitungan dari sebuah checksum yang di routing node. Dalam kasus ini tidak ada pemberitahuan diperlukan untuk dikirim ke kedua ujung simpul, meskipun ada sebuah fasilitas di Internet Control Message Protocol (ICMP) untuk melakukannya. Di sisi lain, telah meninggalkan penggunaan IP header checksum untuk kepentingan forwarding cepat melalui unsur-unsur routing dalam jaringan. Resolusi atau koreksi dari setiap masalah keandalan ini adalah tanggung jawab dari protokol lapisan atas. Sebagai contoh, untuk memastikan in-order pengiriman lapisan atas mungkin harus cache data sampai dapat dikirimkan ke aplikasi. Selain isu-isu reliabilitas, ini bersifat dinamis dan keragaman Internet dan komponen-komponennya tidak memberikan jaminan bahwa jalan tertentu sebenarnya mampu, atau cocok untuk melakukan pengiriman data yang diminta, bahkan jika jalur tersedia dan dapat diandalkan. Salah satu kendala teknis adalah ukuran paket data yang diijinkan pada link tertentu.Aplikasi harus memastikan bahwa menggunakan karakteristik transmisi yang tepat. Beberapa tanggung jawab ini juga terletak di lapisan atas protokol antara aplikasi dan IP. Fasilitas yang ada untuk memeriksa unit transmisi maksimum (MTU) ukuran link lokal, serta diproyeksikan untuk seluruh jalur ke tujuan ketika menggunakan IPv6. Internetworking IPv4 lapisan memiliki kemampuan untuk secara otomatis fragmen datagram asli ke unit yang lebih kecil untuk transmisi. Dalam kasus ini, IP tidak menyediakan pemesanan kembali fragmen disampaikan out-of-order. Transmission Control Protocol (TCP) adalah contoh sebuah protokol yang akan menyesuaikan ukuran segmen lebih kecil daripada MTU. User Datagram Protocol (UDP) dan Internet Control Message Protocol (ICMP) mengabaikan ukuran MTU sehingga memaksa IP untuk fragmen datagrams berukuran besar.
Debugging
Debugging adalah proses metodis menemukan dan mengurangi jumlah bug, atau cacat, dalam sebuah program komputer atau sepotong perangkat keras elektronik, sehingga membuatnya berperilaku seperti yang diharapkan. Debugging cenderung lebih sulit ketika berbagai subsistem yang erat digabungkan, seperti perubahan dalam satu dapat menyebabkan bug muncul di negara lain.. Karena melibatkan berbagai aspek, termasuk: interaktif debugging, control flow, integrasi pengujian, log file, pemantauan, memori dumps, Statistical Process Control, dan taktik untuk desain khusus meningkatkan deteksi sementara menyederhanakan perubahan.
Asal
Ada beberapa kontroversi mengenai asal-usul istilah "debugging."
Istilah "bug" dan "debugging" keduanya populer dikaitkan dengan Admiral Grace Hopper pada 1940-an. Sementara ia bekerja pada Mark II Komputer di Harvard University, rekan-rekannya menemukan ngengat terjebak dalam sebuah relay dan dengan demikian menghambat operasi, dimana ia mengatakan bahwa mereka "debug" sistem. Namun istilah "bug" dalam arti kesalahan teknis tanggal kembali setidaknya ke 1878 dan Thomas Edison dan "debugging" tampaknya telah digunakan sebagai istilah dalam aeronautika sebelum memasuki dunia komputer. Memang, dalam sebuah wawancara Grace Hopper mengatakan bahwa dia tidak coining istilah. Cocok ngengat terminologi yang sudah ada, jadi dia diselamatkan itu.The Oxford Dictionary inggris entri untuk "debug" mengutip istilah "debugging" acuan untuk digunakan dalam pengujian mesin pesawat dalam artikel tahun 1945 dalam Journal of the Royal Aeronautical Society, Hopper's bug itu ditemukan 9 September 1947. Seminalis artikel oleh Gill Pada tahun 1951 adalah awal diskusi mendalam kesalahan pemrograman, tetapi tidak menggunakan istilah "bug" atau "debugging". . Dalam ACM 's perpustakaan digital, istilah "debug" digunakan pertama kali dalam tiga makalah dari 1.952 ACM Rapat Nasional. Dua dari tiga menggunakan istilah dalam tanda kutip. Pada tahun 1963, "debug" adalah istilah yang cukup umum yang akan disebutkan secara sepintas tanpa penjelasan di halaman 1 dari CTSS manual. Artikel Kidwell Stalking the Elusive Komputer Bug membahas etimologi dari "bug" dan "debug" secara lebih rinci.
Ruang lingkup debug
Seperti software dan sistem elektronik pada umumnya telah menjadi lebih kompleks, berbagai teknik debugging umum telah berkembang dengan metode-metode untuk mendeteksi anomali, menilai dampak, dan jadwal patch perangkat lunak atau penuh perubahan kepada sistem. Kata-kata "anomali" dan "perbedaan" dapat digunakan, sebagai istilah yang lebih netral, untuk menghindari kata "kesalahan" dan "cacat" atau "bug" di mana mungkin ada implikasi bahwa semua yang disebut kesalahan, cacat atau bug harus tetap (di semua biaya). Sebaliknya, sebuah penilaian dampak dapat dibuat untuk menentukan apakah perubahan untuk menghapus sebuah anomali (atau perbedaan) akan biaya-efektif untuk sistem, atau mungkin yang dijadwalkan rilis baru mungkin akan membuat perubahan yang tidak perlu. Tidak semua masalah kehidupan-kritis atau misi-kritis dalam suatu sistem. Juga, penting untuk menghindari situasi di mana perubahan mungkin akan lebih menjengkelkan bagi pengguna, jangka panjang, daripada hidup dengan masalah yang diketahui (di mana "mengobati akan lebih buruk daripada penyakit"). Mendasarkan keputusan dari penerimaan dari beberapa anomali dapat menghindari budaya dari "nol cacat" mandat, di mana orang mungkin tergoda untuk menyangkal keberadaan masalah sehingga hasilnya akan tampak sebagai nol cacat. Mempertimbangkan masalah-masalah jaminan, seperti biaya versus manfaat penilaian dampak, maka teknik-teknik debugging yang lebih luas akan memperluas untuk menentukan frekuensi anomali (seberapa sering sama "bug" terjadi) untuk membantu menilai dampaknya terhadap keseluruhan sistem.
Peralatan
Debugging rentang, dalam kompleksitas, dari memperbaiki kesalahan sederhana untuk melakukan tugas-tugas yang panjang dan melelahkan pengumpulan data, analisis, dan penjadwalan update. Debugging keterampilan para programmer dapat menjadi faktor utama dalam kemampuan untuk debug masalah, tetapi kesulitan debug software sangat bervariasi dengan kompleksitas sistem, dan juga tergantung, sampai batas tertentu, pada bahasa pemrograman yang digunakan dan alat-alat yang tersedia, seperti debugger. Debugger adalah perangkat lunak yang memungkinkan pemrogram untuk memantau pelaksanaan suatu program, hentikan, re-start itu, mengatur breakpoints, nilai-nilai perubahan dalam memori dan bahkan, dalam beberapa kasus, kembali ke masa lalu. Umumnya, tingkat tinggi bahasa pemrograman, seperti Java, membuat debug lebih mudah, karena mereka memiliki fitur seperti penanganan pengecualian yang membuat sumber-sumber nyata perilaku kacau lebih mudah untuk menemukan. Pada tingkat yang lebih rendah bahasa pemrograman seperti C atau perakitan, bug diam dapat menyebabkan masalah seperti korupsi memori, dan sering sulit untuk melihat di mana masalah awal terjadi. Dalam kasus-kasus, debugger memori alat mungkin diperlukan. Dalam situasi tertentu, tujuan umum perangkat lunak yang spesifik dalam bahasa alam dapat sangat berguna. Ini mengambil bentuk alat analisis kode statis. Alat ini mencari himpunan yang sangat spesifik masalah yang telah diketahui, beberapa yang umum dan langka, di dalam kode sumber. Semua isu-isu seperti itu terdeteksi oleh alat-alat ini akan jarang dijemput oleh kompilator atau penerjemah, sehingga mereka tidak sintaks catur, tapi lebih semantik dam. Beberapa alat mengklaim dapat mendeteksi masalah unik 300 +. Baik komersial dan alat gratis ada dalam berbagai bahasa. Peralatan ini dapat sangat berguna ketika memeriksa pohon-pohon sumber yang sangat besar, dimana hal itu tidak praktis untuk melakukan Walkthroughs kode. Contoh khas masalah akan terdeteksi variabel dereference yang terjadi sebelum variabel diberikan nilai. Contoh lain adalah dengan melakukan pengecekan tipe kuat ketika bahasa tidak memerlukan demikian. Dengan demikian, mereka lebih baik pada kemungkinan menemukan kesalahan, versus kesalahan aktual. Akibatnya, alat ini memiliki reputasi positif palsu. The old Unix lint program is an early example. Unix tua serat program adalah sebuah contoh awal. Untuk debugging hardware elektronik (misalnya, perangkat keras komputer) maupun perangkat lunak tingkat rendah (misalnya, BIOS, device driver) dan firmware, instrumen seperti oscilloscopes, analisis logika atau di-circuit emulator (ICES) yang sering digunakan, sendirian atau dalam kombinasi. Sebuah ICE dapat melakukan banyak perangkat lunak khas tugas debugger pada tingkat rendah perangkat lunak dan firmware.
Berbagai debug techiques
Sering kali langkah pertama dalam debug adalah upaya untuk mereproduksi masalah. Ini bisa menjadi tugas yang tidak sepele, misalnya seperti proses paralel atau beberapa bug perangkat lunak yang tidak biasa. Juga, lingkungan pengguna spesifik dan penggunaan sejarah dapat membuat sulit untuk mereproduksi masalah. Setelah bug tersebut direproduksi, input dari program perlu disederhanakan untuk membuatnya lebih mudah untuk debug.Sebagai contoh, sebuah bug dalam kompilator dapat membuat crash ketika parsing beberapa file sumber besar. Namun, setelah penyederhanaan kasus tes, hanya beberapa baris dari sumber asli file bisa cukup untuk mereproduksi kecelakaan yang sama. Penyederhanaan semacam itu dapat dibuat secara manual, menggunakan membagi-dan-menaklukkan pendekatan.Programmer akan mencoba untuk menghapus beberapa bagian dari pengujian awal kasus dan periksa apakah masalahnya masih ada. Ketika debugging masalah dengan GUI, pemrogram dapat mencoba untuk melewati beberapa interaksi pengguna dari masalah asli deskripsi dan periksa apakah tindakan yang tersisa cukup untuk bug untuk muncul. Kasus uji untuk mengotomatisasi penyederhanaan, delta debugging metode dapat digunakan. Setelah kasus uji cukup sederhana, seorang programmer dapat menggunakan debugger program alat untuk memeriksa keadaan (nilai-nilai variabel, ditambah dengan panggilan stack) dan melacak asal-usul masalah. Dalam kasus sederhana, melacak hanya beberapa pernyataan cetak, yang output nilai-nilai variabel pada titik-titik tertentu pelaksanaan program. Remote debugging adalah proses debug sebuah program yang berjalan pada sistem yang berbeda daripada debugger. Untuk memulai debug terpencil, debugger terhubung ke sistem remote melalui jaringan. Setelah terhubung, debugger dapat mengendalikan pelaksanaan program pada sistem remote dan mengambil informasi tentang negara. Mayat debug adalah tindakan yang debug dump memori (atau core dump) dari suatu proses. Tempat pembuangan sampah dari proses ruang dapat diperoleh secara otomatis oleh sistem, atau oleh seorang programmer-instruksi dimasukkan, atau secara manual oleh pengguna interaktif. Crash dump (core dump) sering dihasilkan setelah proses telah dihentikan karena adanya unhandled pengecualian.
Anti-debugging
Anti-debugging adalah "pelaksanaan satu atau lebih teknik dalam kode komputer yang menghambat upaya reverse engineering atau debugging proses target". Jenis teknik ini adalah:
- API-based: memeriksa keberadaan debugger sistem menggunakan informasi.
- Exception-based: periksa untuk melihat apakah pengecualian yang menggangg.
- Proses dan thread blok: memeriksa apakah proses dan thread blok telah dimanipulasi.
- Memodifikasi kode: memeriksa kode modifikasi yang dilakukan oleh perangkat lunak penanganan debugger breakpoints.
- Hardware-dan mendaftarkan-based: cek hardware breakpoints dan CPU register.
- Timing dan latensi: mengecek waktu yang dibutuhkan untuk melaksanakan instruksi.
Debugging dapat dihambat dengan menggunakan satu atau lebih dari teknik-teknik di atas. Ada cukup banyak teknik anti-debugging tersedia untuk perangkat lunak yang cukup melindungi terhadap sebagian besar ancaman.
Langganan:
Postingan (Atom)