Penggunaan pertama dari "Computer" tercatat pada 1613, mengacu pada seseorang yang melakukan perhitungan, atau perhitungan, dan dilanjutkan dengan arti yang sama sampai pertengahan abad ke-20. Dari akhir abad ke-19 mulai mengambil makna yang lebih akrab, sebuah mesin yang melakukan perhitungan.
Terbatas-fungsi awal komputer
Alat tenun Jacquard, dipamerkan di Museum Sains dan Industri di Manchester, Inggris, adalah salah satu perangkat Programmable pertama.
Sejarah komputer modern diawali dengan dua teknologi yang terpisah, perhitungan otomatis dan programabilitas, namun tidak ada perangkat tunggal dapat diidentifikasi sebagai komputer paling awal, sebagian karena aplikasi yang tidak konsisten dari istilah tersebut. Sebuah perangkat sedikit yang layak disebut meskipun, seperti beberapa alat bantu mekanis untuk komputasi, yang sangat sukses dan bertahan selama berabad-abad hingga munculnya kalkulator elektronik, seperti sempoa Sumeria, dirancang sekitar 2500 SM yang keturunan yang memenangkan kompetisi kecepatan terhadap moderen meja menghitung mesin di Jepang.
Pada tahun 1946, aturan slide, diciptakan pada 1620-an, yang dilakukan pada lima misi ruang angkasa Apollo, termasuk ke bulan dan bisa dibilang astrolabe dan mekanisme Antikythera, sebuah komputer astronomi kuno yang dibangun oleh orang Yunani sekitar 80 BC.The matematika Pahlawan Yunani dari Alexandria (c. 10-70 AD) membangun sebuah teater mekanik yang dilakukan sebuah drama yang berlangsung 10 menit dan dioperasikan oleh sistem kompleks tali dan drum yang mungkin dianggap sebagai cara memutuskan bagian mana mekanisme yang dilakukan tindakan dan kapan. Ini adalah inti dari programabilitas.
Pada tahun 1946, aturan slide, diciptakan pada 1620-an, yang dilakukan pada lima misi ruang angkasa Apollo, termasuk ke bulan dan bisa dibilang astrolabe dan mekanisme Antikythera, sebuah komputer astronomi kuno yang dibangun oleh orang Yunani sekitar 80 BC.The matematika Pahlawan Yunani dari Alexandria (c. 10-70 AD) membangun sebuah teater mekanik yang dilakukan sebuah drama yang berlangsung 10 menit dan dioperasikan oleh sistem kompleks tali dan drum yang mungkin dianggap sebagai cara memutuskan bagian mana mekanisme yang dilakukan tindakan dan kapan. Ini adalah inti dari programabilitas.
Sekitar akhir abad ke-10, biarawan Perancis Gerbert d'Aurillac dibawa kembali dari Spanyol gambar dari mesin ditemukan oleh bangsa Moor yang menjawab baik Ya atau Tidak untuk pertanyaan-pertanyaan itu diajukan. Sekali lagi dalam abad ke-13, para biarawan Albertus Magnus dan Roger Bacon dibangun androids berbicara tanpa pengembangan lebih lanjut (Albertus Magnus mengeluh bahwa ia telah menyia-nyiakan empat puluh tahun hidupnya ketika Thomas Aquinas, ketakutan oleh mesinnya, menghancurkannya).
Pada tahun 1642, Renaissance melihat penemuan kalkulator mekanik, sebuah perangkat yang dapat melakukan semua operasi aritmatika empat tanpa bergantung pada kalkulator mekanik manusia intelligence.The adalah akar dari perkembangan komputer dengan dua cara terpisah. Awalnya, ia mencoba untuk mengembangkan kalkulator lebih kuat dan lebih fleksibel bahwa komputer pertama kali diteorikan oleh Charles Babbage dan kemudian berkembang. Kedua, pengembangan kalkulator elektronik murah, pengganti kalkulator mekanik, menghasilkan pengembangan oleh Intel dari rangkaian mikroprosesor pertama tersedia secara komersial terpadu.
Pada tahun 1801, Joseph Marie Jacquard membuat perbaikan untuk alat tenun tekstil dengan memperkenalkan serangkaian kartu punched kertas sebagai template yang memungkinkan alat tenun untuk pola-pola rumit menenun secara otomatis. The Jacquard tenun yang dihasilkan merupakan langkah penting dalam pengembangan komputer karena penggunaan kartu punched untuk menentukan pola tenun dapat dilihat sebagai awal, meskipun terbatas, bentuk programabilitas.
The Most Famous Image in the Early History of Computing
Ini potret Jacquard, ditenun dalam sutra pada alat tenun Jacquard dan diperlukan 24.000 kartu menekan untuk membuat (1839). Hal itu hanya diproduksi untuk memesan. Charles Babbage dimiliki salah satu potret, melainkan inspirasi dalam menggunakan kartu berlubang di mesin analitis
Itu adalah perpaduan dari perhitungan otomatis dengan programabilitas yang menghasilkan komputer dikenali pertama. Pada 1837, Charles Babbage adalah yang pertama membuat konsep dan merancang komputer mekanis sepenuhnya diprogram, mesin analitis. Keuangan yang terbatas dan ketidakmampuan Babbage untuk menolak tinkering dengan desain berarti bahwa perangkat ini tidak pernah selesai; namun putranya, Henry Babbage, menyelesaikan versi sederhana dari unit komputasi mesin analitis itu (pabrik) pada 1888. Dia memberikan demonstrasi keberhasilan penggunaannya dalam tabel komputasi pada tahun 1906. Mesin ini diberikan kepada Museum Science di Kensington Selatan pada tahun 1910.
Pada akhir 1880-an, Herman Hollerith menemukan rekaman data pada suatu media yang dapat dibaca mesin. Penggunaan sebelumnya dapat dibaca oleh mesin media yang telah untuk kontrol, bukan data. "Setelah beberapa percobaan awal dengan kertas pita, ia menetap di kartu menekan ..." Untuk memproses kartu menekan dia menciptakan tabulator, dan mesin keypunch. Ketiga penemuannya dasar dari industri pengolahan informasi modern. Skala besar otomatis pengolahan data dari kartu punched dilakukan untuk Amerika Serikat 1890 Sensus oleh perusahaan Hollerith, yang kemudian menjadi inti dari IBM. Pada akhir abad ke-19 sejumlah ide dan teknologi, yang nantinya akan berguna dalam realisasi praktis komputer, telah mulai muncul: aljabar Boolean, tabung vakum (katup termionik), kartu menekan dan tape, dan teleprinter .
Selama paruh pertama abad ke-20, banyak kebutuhan komputasi ilmiah yang dipenuhi oleh komputer analog semakin canggih, yang menggunakan model mekanik atau listrik langsung dari masalah sebagai dasar untuk perhitungan. Namun, tidak diprogram dan umumnya tidak memiliki fleksibilitas dan keakuratan komputer digital modern.
Alan Turing secara luas dianggap sebagai bapak ilmu komputer modern. Pada tahun 1936 Turing memberikan formalisasi berpengaruh konsep algoritma dan komputasi dengan mesin Turing, menyediakan cetak biru untuk komputer digital elektronik. Dari perannya dalam penciptaan majalah, komputer modern di Waktu penamaan Turing salah satu dari 100 orang paling berpengaruh abad ke-20, menyatakan: "Faktanya tetap bahwa setiap orang yang keran di keyboard, membuka spreadsheet atau pengolah kata program, adalah bekerja di sebuah inkarnasi dari mesin Turing ".
Itu adalah perpaduan dari perhitungan otomatis dengan programabilitas yang menghasilkan komputer dikenali pertama. Pada 1837, Charles Babbage adalah yang pertama membuat konsep dan merancang komputer mekanis sepenuhnya diprogram, mesin analitis. Keuangan yang terbatas dan ketidakmampuan Babbage untuk menolak tinkering dengan desain berarti bahwa perangkat ini tidak pernah selesai; namun putranya, Henry Babbage, menyelesaikan versi sederhana dari unit komputasi mesin analitis itu (pabrik) pada 1888. Dia memberikan demonstrasi keberhasilan penggunaannya dalam tabel komputasi pada tahun 1906. Mesin ini diberikan kepada Museum Science di Kensington Selatan pada tahun 1910.
Pada akhir 1880-an, Herman Hollerith menemukan rekaman data pada suatu media yang dapat dibaca mesin. Penggunaan sebelumnya dapat dibaca oleh mesin media yang telah untuk kontrol, bukan data. "Setelah beberapa percobaan awal dengan kertas pita, ia menetap di kartu menekan ..." Untuk memproses kartu menekan dia menciptakan tabulator, dan mesin keypunch. Ketiga penemuannya dasar dari industri pengolahan informasi modern. Skala besar otomatis pengolahan data dari kartu punched dilakukan untuk Amerika Serikat 1890 Sensus oleh perusahaan Hollerith, yang kemudian menjadi inti dari IBM. Pada akhir abad ke-19 sejumlah ide dan teknologi, yang nantinya akan berguna dalam realisasi praktis komputer, telah mulai muncul: aljabar Boolean, tabung vakum (katup termionik), kartu menekan dan tape, dan teleprinter .
Selama paruh pertama abad ke-20, banyak kebutuhan komputasi ilmiah yang dipenuhi oleh komputer analog semakin canggih, yang menggunakan model mekanik atau listrik langsung dari masalah sebagai dasar untuk perhitungan. Namun, tidak diprogram dan umumnya tidak memiliki fleksibilitas dan keakuratan komputer digital modern.
Alan Turing secara luas dianggap sebagai bapak ilmu komputer modern. Pada tahun 1936 Turing memberikan formalisasi berpengaruh konsep algoritma dan komputasi dengan mesin Turing, menyediakan cetak biru untuk komputer digital elektronik. Dari perannya dalam penciptaan majalah, komputer modern di Waktu penamaan Turing salah satu dari 100 orang paling berpengaruh abad ke-20, menyatakan: "Faktanya tetap bahwa setiap orang yang keran di keyboard, membuka spreadsheet atau pengolah kata program, adalah bekerja di sebuah inkarnasi dari mesin Turing ".
The Zuse Z3, 1941, considered the world's first working programmable, fully automatic computing machine
The ENIAC, which became operational in 1946, is considered to be the first general-purpose electronic computer.
EDSAC was one of the first computers to implement the stored-program (von Neumann) architecture
Die of an Intel 80486DX2 microprocessor (actual size: 12×6.75 mm) in its packaging
Atanasoff-Berry Computer (ABC) adalah komputer digital pertama di dunia elektronik, walaupun tidak diprogram. Atanasoff dianggap salah satu bapak komputer. Diciptakan pada tahun 1937 oleh Iowa State College fisika profesor John Atanasoff, dan dibangun dengan bantuan mahasiswa pascasarjana Clifford Berry, mesin itu tidak diprogram, yang dirancang hanya untuk menyelesaikan sistem persamaan linier. Komputer itu menggunakan komputasi paralel. Sebuah 1973 putusan pengadilan dalam sengketa paten menemukan bahwa paten untuk komputer ENIAC 1946 berasal dari Atanasoff-Berry Computer.
Program komputer yang dikendalikan pertama kali ditemukan oleh Konrad Zuse, yang membangun Z3, sebuah mesin komputasi elektromekanik, pada tahun 1941. Komputer elektronik pertama yang dapat diprogram adalah Colossus, dibuat pada tahun 1943 oleh Bunga Tommy.
George Stibitz diakui secara internasional sebagai seorang ayah dari komputer digital modern. Ketika bekerja di Bell Labs pada bulan November 1937, Stibitz menciptakan dan membangun sebuah kalkulator berbasis relay ia dijuluki "Model K" (untuk "meja dapur", di mana ia telah dirakit itu), yang merupakan pertama yang menggunakan sirkuit biner untuk melakukan operasi aritmatika. Model kemudian menambahkan kecanggihan lebih besar termasuk aritmatika kompleks dan programabilitas.
Sebuah rentetan perangkat komputer terus lebih kuat dan fleksibel dibangun pada 1930-an dan 1940-an, secara bertahap menambahkan fitur utama yang terlihat pada komputer modern. Penggunaan digital elektronik (sebagian besar ditemukan oleh Claude Shannon pada 1937) dan programabilitas lebih fleksibel adalah langkah sangat penting, tetapi mendefinisikan satu titik di sepanjang jalan ini sebagai "komputer elektronik digital pertama" adalah difficult.Shannon 1940 prestasi terkenal termasuk.
- Konrad Zuse elektromekanis "Z mesin". Z3 (1941) adalah mesin kerja pertama menampilkan biner aritmatika, termasuk aritmatika floating point dan ukuran programabilitas. Pada tahun 1998 Z3 itu terbukti tidak Turing lengkap, sehingga menjadi komputer pertama operasional dunia.
- non-Programmable Atanasoff-Berry Computer (dimulai pada tahun 1937, selesai pada 1941) yang menggunakan tabung vakum perhitungan berbasis bilangan biner, dan memori kapasitor regeneratif. Penggunaan memori regeneratif diperbolehkan untuk menjadi jauh lebih kompak daripada rekan-rekan (yang kira-kira ukuran meja besar atau meja kerja), karena hasil antara dapat disimpan dan kemudian dimasukkan kembali ke dalam set yang sama elemen komputasi.
- Komputer Colossus rahasia Inggris (1943), yang telah membatasi programabilitas tetapi menunjukkan bahwa perangkat menggunakan ribuan tabung bisa cukup handal dan elektronik reprogrammable. Itu digunakan untuk memecahkan kode masa perang Jerman.
- Harvard Mark I (1944), sebuah komputer skala besar elektromekanis dengan programabilitas terbatas.
- balistik Tentara AS Laboratorium Penelitian ENIAC (1946), yang menggunakan aritmatika desimal dan kadang-kadang disebut komputer tujuan umum pertama elektronik (sejak Z3 Konrad Zuse tahun 1941 elektromagnet digunakan bukan elektronik). Awalnya, bagaimanapun, ENIAC memiliki arsitektur fleksibel yang pada dasarnya diperlukan rewiring untuk mengubah pemrogramannya.
Stored-program architecture
Replica of the Small-Scale Experimental Machine (SSEM), the world's first stored-program computer, at the Museum of Science and Industry in Manchester, England
Beberapa pengembang ENIAC, mengakui kesalahannya, datang dengan desain yang jauh lebih fleksibel dan elegan, yang kemudian dikenal sebagai "arsitektur disimpan-program" atau arsitektur von Neumann. Desain ini pertama kali secara resmi digambarkan oleh John von Neumann dalam Draft kertas Pertama Laporan pada EDVAC, didistribusikan pada tahun 1945.
Sejumlah proyek untuk mengembangkan komputer berdasarkan arsitektur disimpan-program dimulai sekitar waktu ini, yang pertama yang selesai pada tahun 1948 di University of Manchester di Inggris, Manchester Kecil Mesin Eksperimental (SSEM atau "Bayi"). Penundaan Elektronik Penyimpanan Otomatis Kalkulator (EDSAC), selesai setahun setelah SSEM di Cambridge University, adalah praktis pertama, non-eksperimental implementasi dari desain yang disimpan-program dan dimasukkan untuk digunakan segera untuk pekerjaan penelitian di universitas. Tak lama kemudian, mesin awalnya dijelaskan oleh von Neumann kertas-EDVAC-telah selesai tetapi tidak melihat penuh-waktu digunakan untuk tambahan dua tahun.
Hampir semua komputer modern melaksanakan beberapa bentuk arsitektur yang disimpan-program, sehingga sifat tunggal dengan mana kata "komputer" sekarang ditetapkan. Sedangkan teknologi yang digunakan dalam komputer telah berubah secara dramatis sejak pertama elektronik, komputer untuk keperluan umum tahun 1940-an, kebanyakan masih menggunakan arsitektur von Neumann.
Mulai tahun 1950-an, ilmuwan Soviet Sergei Sobolev dan Nikolay Brusentsov melakukan penelitian pada komputer terner, perangkat yang dioperasikan pada sistem tiga basis penomoran dari -1, 0 dan 1 daripada sistem biner konvensional penomoran di mana kebanyakan komputer didasarkan. Mereka merancang Setun, komputer terner fungsional, di Moscow State University. Perangkat ini dimasukkan ke dalam produksi terbatas di Uni Soviet, tetapi digantikan oleh arsitektur biner lebih umum.
Sejumlah proyek untuk mengembangkan komputer berdasarkan arsitektur disimpan-program dimulai sekitar waktu ini, yang pertama yang selesai pada tahun 1948 di University of Manchester di Inggris, Manchester Kecil Mesin Eksperimental (SSEM atau "Bayi"). Penundaan Elektronik Penyimpanan Otomatis Kalkulator (EDSAC), selesai setahun setelah SSEM di Cambridge University, adalah praktis pertama, non-eksperimental implementasi dari desain yang disimpan-program dan dimasukkan untuk digunakan segera untuk pekerjaan penelitian di universitas. Tak lama kemudian, mesin awalnya dijelaskan oleh von Neumann kertas-EDVAC-telah selesai tetapi tidak melihat penuh-waktu digunakan untuk tambahan dua tahun.
Hampir semua komputer modern melaksanakan beberapa bentuk arsitektur yang disimpan-program, sehingga sifat tunggal dengan mana kata "komputer" sekarang ditetapkan. Sedangkan teknologi yang digunakan dalam komputer telah berubah secara dramatis sejak pertama elektronik, komputer untuk keperluan umum tahun 1940-an, kebanyakan masih menggunakan arsitektur von Neumann.
Mulai tahun 1950-an, ilmuwan Soviet Sergei Sobolev dan Nikolay Brusentsov melakukan penelitian pada komputer terner, perangkat yang dioperasikan pada sistem tiga basis penomoran dari -1, 0 dan 1 daripada sistem biner konvensional penomoran di mana kebanyakan komputer didasarkan. Mereka merancang Setun, komputer terner fungsional, di Moscow State University. Perangkat ini dimasukkan ke dalam produksi terbatas di Uni Soviet, tetapi digantikan oleh arsitektur biner lebih umum.
Semikonduktor dan mikroprosesor
Komputer yang menggunakan tabung vakum sebagai elemen elektronik mereka digunakan di tahun 1950an, tetapi oleh 1960-an sebagian besar telah digantikan oleh transistor semikonduktor berbasis mesin, yang lebih kecil, lebih cepat, lebih murah untuk memproduksi, lebih sedikit daya yang dibutuhkan, dan lebih dapat diandalkan.
Komputer transistorised pertama telah didemonstrasikan di University of Manchester pada tahun 1953 Pada 1970-an, teknologi rangkaian terpadu dan penciptaan selanjutnya mikroprosesor, seperti Intel 4004 ukuran lebih menurun dan biaya dan peningkatan kecepatan lebih dan kehandalan komputer. Pada akhir 1970-an, banyak produk seperti video recorder berisi komputer khusus yang disebut mikrokontroler, dan mereka mulai muncul sebagai pengganti dengan kontrol mekanik pada peralatan rumah tangga seperti mesin cuci. Tahun 1980-an menyaksikan rumah komputer dan komputer sekarang di mana-mana. Dengan evolusi internet, komputer pribadi menjadi yang biasa seperti televisi dan telepon dalam rumah tangga.
Smartphone modern adalah komputer sepenuhnya diprogram di kanan mereka sendiri, dan seperti tahun 2009 mungkin menjadi bentuk paling umum dari komputer seperti yang ada.
Komputer transistorised pertama telah didemonstrasikan di University of Manchester pada tahun 1953 Pada 1970-an, teknologi rangkaian terpadu dan penciptaan selanjutnya mikroprosesor, seperti Intel 4004 ukuran lebih menurun dan biaya dan peningkatan kecepatan lebih dan kehandalan komputer. Pada akhir 1970-an, banyak produk seperti video recorder berisi komputer khusus yang disebut mikrokontroler, dan mereka mulai muncul sebagai pengganti dengan kontrol mekanik pada peralatan rumah tangga seperti mesin cuci. Tahun 1980-an menyaksikan rumah komputer dan komputer sekarang di mana-mana. Dengan evolusi internet, komputer pribadi menjadi yang biasa seperti televisi dan telepon dalam rumah tangga.
Smartphone modern adalah komputer sepenuhnya diprogram di kanan mereka sendiri, dan seperti tahun 2009 mungkin menjadi bentuk paling umum dari komputer seperti yang ada.
Program
Ciri komputer modern yang membedakan mereka dari semua mesin yang lain adalah bahwa mereka dapat diprogram. Artinya bahwa beberapa jenis instruksi (program) dapat diberikan ke komputer, dan akan membawa mengolahnya. Sementara beberapa komputer mungkin memiliki konsep aneh "instructions" dan "output" (lihat komputasi kuantum), komputer modern berdasarkan arsitektur von Neumann sering memiliki kode mesin dalam bentuk bahasa pemrograman imperatif.
Dalam istilah praktis, program komputer mungkin hanya beberapa instruksi atau meluas ke banyak jutaan instruksi, seperti melakukan program untuk pengolah kata dan browser web misalnya. Sebuah komputer modern khas dapat mengeksekusi milyaran instruksi per detik (gigaflops) dan jarang membuat kesalahan selama bertahun-tahun operasi. Program komputer besar yang terdiri dari beberapa juta instruksi dapat berlangsung tim tahun programmer untuk menulis, dan karena kompleksitas dari tugas hampir pasti mengandung kesalahan.
Dalam istilah praktis, program komputer mungkin hanya beberapa instruksi atau meluas ke banyak jutaan instruksi, seperti melakukan program untuk pengolah kata dan browser web misalnya. Sebuah komputer modern khas dapat mengeksekusi milyaran instruksi per detik (gigaflops) dan jarang membuat kesalahan selama bertahun-tahun operasi. Program komputer besar yang terdiri dari beberapa juta instruksi dapat berlangsung tim tahun programmer untuk menulis, dan karena kompleksitas dari tugas hampir pasti mengandung kesalahan.
Stored program architecture
Program komputer dan pemrograman Komputer
tahun 1970-an punched kartu berisi satu baris dari program FORTRAN. Kartu iniberbunyi: "Z (1) = Y + W (1)" dan diberi label "PROJ039" untuk tujuan identifikasi
Bagian ini berlaku untuk komputer RAM yang paling umum mesin berbasis.
Dalam kebanyakan kasus, instruksi komputer sederhana: menambah satu nomor ke yang lain, memindahkan beberapa data dari satu lokasi ke lokasi lain, mengirim pesan ke beberapa perangkat eksternal, dll Instruksi ini dibaca dari memori komputer dan biasanya dilakukan (dijalankan) dalam urutan mereka diberi.
Namun, ada instruksi khusus biasanya untuk memberitahu komputer untuk melompat ke depan atau mundur ke tempat lain dalam program ini dan untuk melanjutkan mengeksekusi dari sana. Ini disebut "melompat" instruksi (atau cabang). Selanjutnya, instruksi melompat dapat dilakukan untuk terjadi conditionally sehingga urutan yang berbeda dari instruksi dapat digunakan tergantung pada hasil dari beberapa perhitungan sebelumnya atau beberapa peristiwa eksternal. Banyak komputer langsung mendukung subroutines dengan menyediakan jenis lompatan bahwa "mengingat" lokasi itu melompat dari dan lain instruksi untuk kembali ke instruksi sesudah instruksi lompat.
Eksekusi program mungkin disamakan dengan membaca buku. Sementara seseorang biasanya akan membaca setiap kata dan baris dalam urutan, mereka terkadang melompat kembali ke tempat sebelumnya dalam teks atau melewatkan bagian yang tidak menarik. Demikian pula, komputer kadang-kadang bisa kembali dan ulangi petunjuk di beberapa bagian dari program ini berulang-ulang sampai beberapa kondisi internal terpenuhi. Ini disebut aliran kontrol dalam program ini dan inilah yang memungkinkan komputer untuk melakukan tugas berulang kali tanpa campur tangan manusia.
Relatif, orang yang menggunakan kalkulator saku dapat melakukan operasi aritmatika dasar seperti menambahkan dua angka dengan hanya menekan tombol saja. Tetapi untuk menambahkan bersama semua nomor dari 1 sampai 1.000 akan mengambil ribuan menekan tombol dan banyak waktu, dengan kepastian dekat dari membuat kesalahan. Di sisi lain, komputer dapat diprogram untuk melakukan hal ini hanya dengan instruksi sederhana. Sebagai contoh:
Namun, ada instruksi khusus biasanya untuk memberitahu komputer untuk melompat ke depan atau mundur ke tempat lain dalam program ini dan untuk melanjutkan mengeksekusi dari sana. Ini disebut "melompat" instruksi (atau cabang). Selanjutnya, instruksi melompat dapat dilakukan untuk terjadi conditionally sehingga urutan yang berbeda dari instruksi dapat digunakan tergantung pada hasil dari beberapa perhitungan sebelumnya atau beberapa peristiwa eksternal. Banyak komputer langsung mendukung subroutines dengan menyediakan jenis lompatan bahwa "mengingat" lokasi itu melompat dari dan lain instruksi untuk kembali ke instruksi sesudah instruksi lompat.
Eksekusi program mungkin disamakan dengan membaca buku. Sementara seseorang biasanya akan membaca setiap kata dan baris dalam urutan, mereka terkadang melompat kembali ke tempat sebelumnya dalam teks atau melewatkan bagian yang tidak menarik. Demikian pula, komputer kadang-kadang bisa kembali dan ulangi petunjuk di beberapa bagian dari program ini berulang-ulang sampai beberapa kondisi internal terpenuhi. Ini disebut aliran kontrol dalam program ini dan inilah yang memungkinkan komputer untuk melakukan tugas berulang kali tanpa campur tangan manusia.
Relatif, orang yang menggunakan kalkulator saku dapat melakukan operasi aritmatika dasar seperti menambahkan dua angka dengan hanya menekan tombol saja. Tetapi untuk menambahkan bersama semua nomor dari 1 sampai 1.000 akan mengambil ribuan menekan tombol dan banyak waktu, dengan kepastian dekat dari membuat kesalahan. Di sisi lain, komputer dapat diprogram untuk melakukan hal ini hanya dengan instruksi sederhana. Sebagai contoh:
mov #0, sum ; set sum to 0
mov #1, num ; set num to 1
loop: add num, sum ; add num to sum
add #1, num ; add 1 to num
cmp num, #1000 ; compare num to 1000
ble loop ; if num <= 1000, go back to 'loop'
halt ; end of program. stop running
Setelah diberitahu untuk menjalankan program ini, komputer akan melakukan tugas tambahan berulang-ulang tanpa intervensi manusia lebih lanjut. Ini akan hampir tidak pernah membuat kesalahan dan PC modern dapat menyelesaikan tugas dalam waktu sekitar satujuta per detik..
Bugs
software bug
The actual first computer bug, a moth found trapped on a
relay of the Harvard Mark II computer
relay of the Harvard Mark II computer
OncErrors dalam program komputer yang disebut "bug". Mereka mungkin jinak dan tidak mempengaruhi kegunaan dari program, atau hanya memiliki efek halus. Namun dalam beberapa kasus mereka dapat menyebabkan program atau seluruh sistem untuk "menggantung" - menjadi tidak responsif terhadap masukan seperti klik mouse atau penekanan tombol - untuk benar-benar gagal, atau crash.
Bug Jika tidak jinak kadang-kadang dapat dimanfaatkan untuk niat jahat oleh pengguna yang tidak bermoral menulis eksploitasi, kode dirancang untuk mengambil keuntungan dari bug dan mengganggu pelaksanaan yang tepat komputer. Bug biasanya bukan kesalahan komputer. Karena komputer hanya menjalankan instruksi yang mereka diberikan, bug hampir selalu hasil dari kesalahan programmer atau kekhilafan yang dibuat dalam desain program.
Laksamana Grace Hopper dikreditkan karena telah pertama kali menggunakan "bug" dalam komputasi setelah ngengat ditemukan mati korslet relay di Harvard Mark II komputer pada September 1947.
Bug Jika tidak jinak kadang-kadang dapat dimanfaatkan untuk niat jahat oleh pengguna yang tidak bermoral menulis eksploitasi, kode dirancang untuk mengambil keuntungan dari bug dan mengganggu pelaksanaan yang tepat komputer. Bug biasanya bukan kesalahan komputer. Karena komputer hanya menjalankan instruksi yang mereka diberikan, bug hampir selalu hasil dari kesalahan programmer atau kekhilafan yang dibuat dalam desain program.
Laksamana Grace Hopper dikreditkan karena telah pertama kali menggunakan "bug" dalam komputasi setelah ngengat ditemukan mati korslet relay di Harvard Mark II komputer pada September 1947.
Kode mesin
Pada kebanyakan komputer, instruksi individu disimpan sebagai kode mesin dengan setiap instruksi yang diberikan nomor unik (kode operasi atau opcode untuk pendek). Perintah untuk menambahkan dua angka bersama akan memiliki satu opcode, perintah untuk melipatgandakan mereka akan memiliki opcode berbeda dan sebagainya.
Komputer yang paling sederhana dapat melakukan salah satu dari beberapa instruksi yang berbeda; komputer yang lebih kompleks memiliki beberapa ratus untuk memilih dari, masing-masing dengan kode numerik yang unik. Karena memori komputer mampu menyimpan nomor, juga dapat menyimpan kode instruksi. Ini mengarah pada fakta penting bahwa seluruh program (yang hanya daftar instruksi) dapat direpresentasikan sebagai daftar nomor dan mereka sendiri dapat dimanipulasi di dalam komputer dengan cara yang sama sebagai data numerik.
Konsep dasar dari program menyimpan dalam memori komputer bersama data mereka beroperasi pada adalah inti dari von Neumann, atau program yang tersimpan, arsitektur. Dalam beberapa kasus, komputer mungkin menyimpan beberapa atau semua program dalam memori yang disimpan terpisah dari data beroperasi pada. Ini disebut arsitektur Harvard setelah komputer Harvard Mark I. Modern von Neumann komputer menampilkan beberapa ciri dari arsitektur Harvard dalam desain mereka, seperti dalam cache CPU.
Meskipun dimungkinkan untuk menulis program komputer sebagai daftar panjang nomor (bahasa mesin) dan sementara teknik ini digunakan dengan komputer awal banyak, adalah sangat membosankan dan berpotensi rawan kesalahan untuk melakukannya dalam praktek, terutama untuk program yang rumit. Sebaliknya, setiap instruksi dasar dapat diberi nama pendek yang menunjukkan fungsi dan mudah diingat - sebuah mnemonic seperti ADD, SUB, mult atau JUMP. Mnemonik ini secara kolektif dikenal sebagai bahasa assembly komputer. Program Konversi ditulis dalam bahasa assembly menjadi sesuatu yang komputer dapat benar-benar mengerti (bahasa mesin) biasanya dilakukan oleh program komputer yang disebut assembler.
Bahasa pemrograman
Bahasa pemrograman menyediakan berbagai cara untuk menentukan program untuk komputer untuk menjalankan. Tidak seperti bahasa alam, bahasa pemrograman yang dirancang untuk mengizinkan ambiguitas dan menjadi ringkas. Mereka adalah murni ditulis bahasa dan sering sulit untuk dibaca keras-keras. Mereka umumnya baik diterjemahkan ke dalam kode mesin oleh compiler atau assembler sebelum menjalankan, atau diterjemahkan secara langsung pada saat dijalankan oleh seorang penerjemah. Kadang-kadang program dijalankan dengan metode hibrida dari dua teknik.
Tingkat rendah bahasa
Mesin bahasa dan bahasa assembly yang mewakili mereka (secara kolektif disebut tingkat rendah bahasa pemrograman) cenderung unik untuk jenis tertentu dari komputer. Sebagai contoh, sebuah arsitektur ARM komputer (seperti dapat ditemukan dalam PDA atau videogame genggam) tidak dapat memahami bahasa mesin dari Intel Pentium atau AMD Athlon 64 komputer yang mungkin dalam PC.
Bahasa tingkat tinggi
Meskipun jauh lebih mudah daripada di bahasa mesin, menulis program yang panjang dalam bahasa assembly sering sulit dan juga kesalahan rawan. Oleh karena itu, program yang paling praktis yang ditulis dalam lebih abstrak tingkat tinggi bahasa pemrograman yang mampu mengekspresikan kebutuhan programmer lebih nyaman (dan dengan demikian membantu mengurangi kesalahan programmer). Bahasa tingkat tinggi biasanya "dikompilasi" ke dalam bahasa mesin (atau kadang-kadang ke dalam bahasa assembly dan kemudian ke dalam bahasa mesin) menggunakan program lain komputer yang disebut kompilator.
Bahasa tingkat tinggi adalah kurang terkait dengan cara kerja komputer target dari bahasa assembly, dan lebih terkait dengan bahasa dan struktur masalah (s) yang harus diselesaikan oleh program akhir. Oleh karena itu sering mungkin untuk menggunakan kompiler yang berbeda untuk menerjemahkan bahasa tingkat tinggi program yang sama ke dalam bahasa mesin dari berbagai jenis komputer. Ini adalah bagian dari sarana yang lunak seperti video game dapat dibuat tersedia untuk arsitektur komputer yang berbeda seperti komputer pribadi dan konsol berbagai video game.
Program Desain
Program desain program kecil relatif sederhana dan melibatkan analisis masalah, pengumpulan input, dengan menggunakan konstruksi pemrograman dalam bahasa, menyusun atau menggunakan prosedur mapan dan algoritma, menyediakan data untuk perangkat keluaran dan solusi untuk masalah yang berlaku.
Seperti masalah menjadi lebih besar dan lebih kompleks, fitur seperti subprogram, modul, dokumentasi formal, dan paradigma baru seperti pemrograman berorientasi obyek yang ditemukan. Program besar yang melibatkan ribuan baris kode dan lebih memerlukan metodologi perangkat lunak resmi. Tugas mengembangkan sistem software besar ini menjadi tantangan intelektual yang signifikan. Memproduksi perangkat lunak dengan keandalan diterima tinggi dalam jadwal dan anggaran diprediksi secara historis sulit; disiplin akademik dan profesional rekayasa perangkat lunak berkonsentrasi khusus pada tantangan ini.
Seperti masalah menjadi lebih besar dan lebih kompleks, fitur seperti subprogram, modul, dokumentasi formal, dan paradigma baru seperti pemrograman berorientasi obyek yang ditemukan. Program besar yang melibatkan ribuan baris kode dan lebih memerlukan metodologi perangkat lunak resmi. Tugas mengembangkan sistem software besar ini menjadi tantangan intelektual yang signifikan. Memproduksi perangkat lunak dengan keandalan diterima tinggi dalam jadwal dan anggaran diprediksi secara historis sulit; disiplin akademik dan profesional rekayasa perangkat lunak berkonsentrasi khusus pada tantangan ini.
Komponen
Sebuah komputer tujuan umum memiliki empat komponen utama: Unit aritmatika logika (ALU), unit kontrol, memori, dan perangkat input dan output (secara kolektif dinamakan I / O). Bagian ini dihubungkan oleh bus, sering terbuat dari kelompok kawat.
Di dalam masing-masing bagian ribuan triliunan sirkuit listrik kecil yang dapat dimatikan atau melalui tombol elektronik. Sirkuit Masing-masing mewakili bit (digit biner) informasi sehingga ketika rangkaian tersebut adalah di atasnya merupakan "1", dan ketika dari itu merupakan "0" (dalam representasi logika positif). Sirkuit tersebut diatur dalam gerbang logika sehingga satu atau lebih dari sirkuit dapat mengontrol keadaan satu atau lebih dari sirkuit lain.
Unit kontrol, ALU, register, dan dasar I / O (dan sering perangkat keras lainnya terkait erat dengan) secara kolektif dikenal sebagai central processing unit (CPU). CPU awal yang terdiri dari komponen yang terpisah tetapi sejak pertengahan 1970-an CPU biasanya telah dibangun pada satu sirkuit terpadu yang disebut mikroprosesor.
Control unit
Diagram showing how a particular MIPS architecture instruction would be decoded by the control system
1. Baca kode untuk instruksi berikutnya dari sel ditunjukkan oleh program counter.
2. Memecahkan kode kode numerik untuk instruksi ke dalam seperangkat perintah atau sinyal untuk setiap sistem lain
Unit kontrol (sering disebut sistem kontrol atau kontroler pusat) mengelola berbagai komponen komputer, melainkan membaca dan menafsirkan (decode) instruksi-instruksi program, mentransformasikannya menjadi serangkaian sinyal kontrol yang mengaktifkan bagian lain dari komputer. Kontrol sistem di komputer lanjut dapat mengubah urutan beberapa petunjuk sehingga untuk meningkatkan kinerja.
Sebuah komponen kunci yang sama untuk semua CPU adalah program counter, sebuah sel memori khusus (register) yang melacak lokasi yang di memori instruksi berikutnya yang akan dibaca dari.Fungsi sistem kontrol adalah sebagai berikut-mencatat bahwa ini adalah deskripsi sederhana, dan beberapa langkah dapat dilakukan secara bersamaan atau dalam urutan yang berbeda tergantung pada jenis CPU:
Sebuah komponen kunci yang sama untuk semua CPU adalah program counter, sebuah sel memori khusus (register) yang melacak lokasi yang di memori instruksi berikutnya yang akan dibaca dari.Fungsi sistem kontrol adalah sebagai berikut-mencatat bahwa ini adalah deskripsi sederhana, dan beberapa langkah dapat dilakukan secara bersamaan atau dalam urutan yang berbeda tergantung pada jenis CPU:
1. Baca kode untuk instruksi berikutnya dari sel ditunjukkan oleh program counter.
2. Memecahkan kode kode numerik untuk instruksi ke dalam seperangkat perintah atau sinyal untuk setiap sistem lain
3. Kenaikan program counter sehingga poin ke instruksi berikutnya.
4. Baca data apa pun instruksi membutuhkan dari sel-sel di memori (atau mungkin dari perangkat input). Lokasi ini data yang dibutuhkan biasanya disimpan dalam kode instruksi.
4. Baca data apa pun instruksi membutuhkan dari sel-sel di memori (atau mungkin dari perangkat input). Lokasi ini data yang dibutuhkan biasanya disimpan dalam kode instruksi.
5. Menyediakan data yang diperlukan ke ALU atau mendaftar.
6. Jika instruksi memerlukan ALU atau perangkat keras khusus untuk menyelesaikan, menginstruksikan perangkat keras untuk melakukan operasi yang diminta.
6. Jika instruksi memerlukan ALU atau perangkat keras khusus untuk menyelesaikan, menginstruksikan perangkat keras untuk melakukan operasi yang diminta.
7. Menulis hasil dari ALU kembali ke lokasi memori atau register atau mungkin perangkat output.
8. Langsung kembali ke langkah (1).
8. Langsung kembali ke langkah (1).
Sejak program counter adalah (konseptual) hanya satu set sel memori, dapat diubah dengan perhitungan yang dilakukan di ALU. Menambahkan 100 untuk program counter akan menyebabkan instruksi berikutnya untuk dibaca dari tempat 100 lokasi lebih bawah program. Petunjuk yang memodifikasi program counter sering dikenal sebagai "melompat" dan memungkinkan untuk loop (petunjuk yang diulang oleh komputer) dan sering kondisional instruksi eksekusi (kedua contoh aliran kontrol).
Urutan pengoperasian bahwa unit kontrol pergi melalui untuk memproses sebuah instruksi itu sendiri seperti sebuah program komputer yang pendek, dan memang, dalam beberapa desain CPU lebih kompleks, ada komputer lain namun lebih kecil yang disebut microsequencer, yang menjalankan program microcode yang menyebabkan semua peristiwa ini terjadi.
Urutan pengoperasian bahwa unit kontrol pergi melalui untuk memproses sebuah instruksi itu sendiri seperti sebuah program komputer yang pendek, dan memang, dalam beberapa desain CPU lebih kompleks, ada komputer lain namun lebih kecil yang disebut microsequencer, yang menjalankan program microcode yang menyebabkan semua peristiwa ini terjadi.
Aritmatika logika unit (ALU)
ALU mampu melakukan dua kelas operasi: aritmatika dan logika.
Himpunan operasi aritmatika bahwa ALU tertentu mendukung mungkin terbatas pada penjumlahan dan pengurangan, atau mungkin termasuk perkalian, pembagian, fungsi trigonometri seperti sinus, kosinus, dll, dan akar kuadrat. Beberapa hanya dapat beroperasi pada bilangan bulat (integer) sementara yang lainnya menggunakan floating point untuk mewakili bilangan real, meskipun dengan presisi terbatas.
Namun, setiap komputer yang mampu melakukan operasi yang paling sederhana hanya dapat diprogram untuk memecah operasi yang lebih kompleks menjadi langkah-langkah sederhana yang dapat melakukan. Oleh karena itu, komputer dapat diprogram untuk melakukan aritmatika operasi apapun-meskipun akan mengambil lebih banyak waktu untuk melakukannya jika ALU yang tidak langsung mendukung operasi. Sebuah ALU juga dapat membandingkan angka dan kembali nilai-nilai kebenaran boolean (true atau false) tergantung pada apakah seseorang adalah sama dengan, lebih besar dari atau kurang dari yang lain ("adalah 64 besar dari 65?").
Operasi logika melibatkan logika Boolean: AND, OR, XOR dan NOT. Ini dapat berguna untuk membuat pernyataan bersyarat rumit dan pengolahan logika boolean.
Komputer superscalar dapat berisi beberapa ALUs, yang memungkinkan mereka untuk memproses beberapa instruksi secara bersamaan. Prosesor grafis dan komputer dengan SIMD dan MIMD sering mengandung fitur ALUs yang dapat melakukan aritmatika pada vektor dan matriks.
ALU mampu melakukan dua kelas operasi: aritmatika dan logika.
Himpunan operasi aritmatika bahwa ALU tertentu mendukung mungkin terbatas pada penjumlahan dan pengurangan, atau mungkin termasuk perkalian, pembagian, fungsi trigonometri seperti sinus, kosinus, dll, dan akar kuadrat. Beberapa hanya dapat beroperasi pada bilangan bulat (integer) sementara yang lainnya menggunakan floating point untuk mewakili bilangan real, meskipun dengan presisi terbatas.
Namun, setiap komputer yang mampu melakukan operasi yang paling sederhana hanya dapat diprogram untuk memecah operasi yang lebih kompleks menjadi langkah-langkah sederhana yang dapat melakukan. Oleh karena itu, komputer dapat diprogram untuk melakukan aritmatika operasi apapun-meskipun akan mengambil lebih banyak waktu untuk melakukannya jika ALU yang tidak langsung mendukung operasi. Sebuah ALU juga dapat membandingkan angka dan kembali nilai-nilai kebenaran boolean (true atau false) tergantung pada apakah seseorang adalah sama dengan, lebih besar dari atau kurang dari yang lain ("adalah 64 besar dari 65?").
Operasi logika melibatkan logika Boolean: AND, OR, XOR dan NOT. Ini dapat berguna untuk membuat pernyataan bersyarat rumit dan pengolahan logika boolean.
Komputer superscalar dapat berisi beberapa ALUs, yang memungkinkan mereka untuk memproses beberapa instruksi secara bersamaan. Prosesor grafis dan komputer dengan SIMD dan MIMD sering mengandung fitur ALUs yang dapat melakukan aritmatika pada vektor dan matriks.
Memory
Magnetic core memory was the computer memory of choice throughout the 1960s, until it was replaced by semiconductor memory
Sebuah memori komputer dapat dilihat sebagai daftar sel ke nomor yang dapat ditempatkan atau membaca. Setiap sel memiliki "alamat" nomor dan dapat menyimpan satu nomor. Komputer dapat diinstruksikan untuk "menempatkan nomor 123 ke dalam sel nomor 1357" atau untuk "menambah jumlah yang ada di sel 1357 ke nomor yang ada di sel 2468 dan dimasukkan jawabannya ke dalam sel 1595".
Informasi yang disimpan dalam memori dapat mewakili praktis apa pun. Huruf, angka, bahkan instruksi komputer dapat ditempatkan ke dalam memori dengan mudah sama. Sejak CPU tidak membedakan antara berbagai jenis informasi, adalah tanggung jawab perangkat lunak untuk memberikan makna untuk apa memori yang dilihat sebagai hanya serangkaian nomor.
Di hampir semua komputer modern, setiap sel memori sudah diatur untuk menyimpan bilangan biner dalam kelompok delapan bit (disebut byte). Setiap byte dapat mewakili 256 nomor yang berbeda (2 ^ 8 = 256), baik dari 0 sampai 255 atau -128 sampai 127. Untuk menyimpan angka yang lebih besar, byte berurutan dapat digunakan (biasanya, dua, empat atau delapan). Ketika angka negatif diperlukan, mereka biasanya disimpan dalam notasi komplemen dua itu. Pengaturan lain yang mungkin, tapi biasanya tidak terlihat di luar aplikasi khusus atau konteks historis. Sebuah komputer dapat menyimpan berbagai informasi dalam memori jika dapat direpresentasikan secara numerik. Komputer modern memiliki miliaran atau bahkan triliunan byte memori.
CPU berisi satu set khusus dari sel-sel memori yang disebut register yang dapat dibaca dan ditulis ke jauh lebih cepat dari area memori utama. Ada biasanya dua sampai seratus register tergantung pada jenis CPU. Register digunakan untuk item data yang paling sering dibutuhkan untuk menghindari harus mengakses memori utama setiap kali data yang diperlukan. Sebagai data terus-menerus bekerja, mengurangi kebutuhan untuk mengakses memori utama (yang sering lambat dibandingkan dengan ALU dan unit kontrol) sangat meningkatkan kecepatan komputer.
Komputer memori utama datang dalam dua varietas utama: memori acak-akses memori atau RAM dan read-only atau ROM. RAM dapat dibaca dan ditulis kapan saja CPU memerintahkan, tapi ROM pre-loaded dengan data dan perangkat lunak yang tidak pernah berubah, oleh karena CPU hanya dapat membaca dari itu. ROM biasanya digunakan untuk menyimpan awal komputer start-up instruksi. Secara umum, isi RAM akan terhapus bila daya ke komputer dimatikan, tapi ROM mempertahankan data tanpa batas.
Dalam PC, ROM berisi program khusus yang disebut BIOS yang orchestrates loading sistem komputer beroperasi dari hard disk drive ke dalam RAM setiap kali komputer dihidupkan atau mengatur ulang. Dalam komputer tertanam, yang sering tidak memiliki disk drive, semua software yang dibutuhkan dapat disimpan dalam ROM.
Perangkat lunak yang tersimpan dalam ROM sering disebut firmware, karena notionally lebih seperti perangkat keras daripada perangkat lunak. Flash memori mengaburkan perbedaan antara ROM dan RAM, karena mempertahankan datanya ketika dimatikan tetapi juga ditulis ulang. Hal ini biasanya jauh lebih lambat dibandingkan konvensional ROM dan RAM bagaimanapun, jadi penggunaannya dibatasi untuk aplikasi di mana kecepatan tinggi yang tidak perlu.
Pada komputer yang lebih canggih mungkin ada satu atau lebih kenangan RAM cache, yang lebih lambat dari register tetapi lebih cepat dari memori utama. Umumnya komputer dengan semacam cache dirancang untuk memindahkan data yang sering dibutuhkan ke dalam cache secara otomatis, seringkali tanpa perlu untuk setiap intervensi pada bagian programmer.
Informasi yang disimpan dalam memori dapat mewakili praktis apa pun. Huruf, angka, bahkan instruksi komputer dapat ditempatkan ke dalam memori dengan mudah sama. Sejak CPU tidak membedakan antara berbagai jenis informasi, adalah tanggung jawab perangkat lunak untuk memberikan makna untuk apa memori yang dilihat sebagai hanya serangkaian nomor.
Di hampir semua komputer modern, setiap sel memori sudah diatur untuk menyimpan bilangan biner dalam kelompok delapan bit (disebut byte). Setiap byte dapat mewakili 256 nomor yang berbeda (2 ^ 8 = 256), baik dari 0 sampai 255 atau -128 sampai 127. Untuk menyimpan angka yang lebih besar, byte berurutan dapat digunakan (biasanya, dua, empat atau delapan). Ketika angka negatif diperlukan, mereka biasanya disimpan dalam notasi komplemen dua itu. Pengaturan lain yang mungkin, tapi biasanya tidak terlihat di luar aplikasi khusus atau konteks historis. Sebuah komputer dapat menyimpan berbagai informasi dalam memori jika dapat direpresentasikan secara numerik. Komputer modern memiliki miliaran atau bahkan triliunan byte memori.
CPU berisi satu set khusus dari sel-sel memori yang disebut register yang dapat dibaca dan ditulis ke jauh lebih cepat dari area memori utama. Ada biasanya dua sampai seratus register tergantung pada jenis CPU. Register digunakan untuk item data yang paling sering dibutuhkan untuk menghindari harus mengakses memori utama setiap kali data yang diperlukan. Sebagai data terus-menerus bekerja, mengurangi kebutuhan untuk mengakses memori utama (yang sering lambat dibandingkan dengan ALU dan unit kontrol) sangat meningkatkan kecepatan komputer.
Komputer memori utama datang dalam dua varietas utama: memori acak-akses memori atau RAM dan read-only atau ROM. RAM dapat dibaca dan ditulis kapan saja CPU memerintahkan, tapi ROM pre-loaded dengan data dan perangkat lunak yang tidak pernah berubah, oleh karena CPU hanya dapat membaca dari itu. ROM biasanya digunakan untuk menyimpan awal komputer start-up instruksi. Secara umum, isi RAM akan terhapus bila daya ke komputer dimatikan, tapi ROM mempertahankan data tanpa batas.
Dalam PC, ROM berisi program khusus yang disebut BIOS yang orchestrates loading sistem komputer beroperasi dari hard disk drive ke dalam RAM setiap kali komputer dihidupkan atau mengatur ulang. Dalam komputer tertanam, yang sering tidak memiliki disk drive, semua software yang dibutuhkan dapat disimpan dalam ROM.
Perangkat lunak yang tersimpan dalam ROM sering disebut firmware, karena notionally lebih seperti perangkat keras daripada perangkat lunak. Flash memori mengaburkan perbedaan antara ROM dan RAM, karena mempertahankan datanya ketika dimatikan tetapi juga ditulis ulang. Hal ini biasanya jauh lebih lambat dibandingkan konvensional ROM dan RAM bagaimanapun, jadi penggunaannya dibatasi untuk aplikasi di mana kecepatan tinggi yang tidak perlu.
Pada komputer yang lebih canggih mungkin ada satu atau lebih kenangan RAM cache, yang lebih lambat dari register tetapi lebih cepat dari memori utama. Umumnya komputer dengan semacam cache dirancang untuk memindahkan data yang sering dibutuhkan ke dalam cache secara otomatis, seringkali tanpa perlu untuk setiap intervensi pada bagian programmer.
Input/output (I/O)
Hard disk drives are common storage devices used with computers.
I / O adalah sarana yang memungkinkan komputer pertukaran informasi dengan dunia luar [43]. Perangkat yang menyediakan input atau output ke komputer disebut peripheral. [44] Pada komputer pribadi khas, periferal termasuk perangkat input seperti keyboard dan mouse, dan output perangkat seperti layar dan printer. Hard disk drive, floppy disk drive dan drive cakram optik menjadi baik perangkat input dan output.
Jaringan komputer adalah bentuk lain dari I / O.
Perangkat I / O sering komputer kompleks di kanan mereka sendiri, dengan CPU sendiri dan memori. Sebuah unit pengolahan grafis mungkin berisi lima puluh atau lebih komputer kecil yang melakukan perhitungan yang diperlukan untuk menampilkan grafis 3D [kutipan diperlukan]. Komputer desktop modern mengandung komputer yang lebih kecil yang membantu CPU utama dalam melakukan I / O.
Perangkat I / O sering komputer kompleks di kanan mereka sendiri, dengan CPU sendiri dan memori. Sebuah unit pengolahan grafis mungkin berisi lima puluh atau lebih komputer kecil yang melakukan perhitungan yang diperlukan untuk menampilkan grafis 3D [kutipan diperlukan]. Komputer desktop modern mengandung komputer yang lebih kecil yang membantu CPU utama dalam melakukan I / O.
Multitasking
Sementara komputer dapat dipandang sebagai menjalankan satu program raksasa disimpan dalam memori utama, dalam beberapa sistem perlu untuk memberikan tampilan menjalankan beberapa program secara bersamaan. Hal ini dicapai dengan multitasking yaitu memiliki komputer beralih cepat antara menjalankan setiap program pada gilirannya .Salah satu sarana yang ini dilakukan adalah dengan sinyal khusus yang disebut interrupt, yang berkala dapat menyebabkan komputer berhenti mengeksekusi instruksi tempat itu dan melakukan hal lain.
Dengan mengingat di mana ia mengeksekusi sebelum interupsi, komputer dapat kembali ke tugas itu nanti. Jika beberapa program yang berjalan "pada saat yang sama", maka generator interupsi yang mungkin menyebabkan beberapa ratus interrupts per detik, menyebabkan program beralih setiap kali. Sejak komputer modern biasanya menjalankan perintah beberapa kali lipat lebih cepat dari persepsi manusia, akan terlihat bahwa banyak program yang berjalan pada saat yang sama meskipun hanya satu yang pernah eksekusi pada suatu instan. Metode multitasking kadang-kadang disebut "time-sharing" karena setiap program dialokasikan "slice" waktu pada gilirannya.
Sebelum era komputer murah, dengan penggunaan utama untuk multitasking adalah untuk memungkinkan banyak orang untuk berbagi komputer yang sama.Tampaknya, multitasking akan menyebabkan komputer yang beralih antara beberapa program untuk berjalan lebih lambat, dalam proporsi langsung dengan jumlah program yang sedang berjalan, tetapi kebanyakan program menghabiskan banyak waktu mereka menunggu input lambat / perangkat output untuk menyelesaikan tugas mereka.
Jika program menunggu pengguna untuk mengklik mouse atau menekan tombol pada keyboard, maka tidak akan mengambil "potongan waktu" sampai acara itu sedang menunggu telah terjadi. Hal ini membebaskan waktu untuk program lain untuk menjalankan sehingga banyak program dapat berjalan secara simultan tanpa kehilangan kecepatan tidak dapat diterima.
Sementara komputer dapat dipandang sebagai menjalankan satu program raksasa disimpan dalam memori utama, dalam beberapa sistem perlu untuk memberikan tampilan menjalankan beberapa program secara bersamaan. Hal ini dicapai dengan multitasking yaitu memiliki komputer beralih cepat antara menjalankan setiap program pada gilirannya .Salah satu sarana yang ini dilakukan adalah dengan sinyal khusus yang disebut interrupt, yang berkala dapat menyebabkan komputer berhenti mengeksekusi instruksi tempat itu dan melakukan hal lain.
Dengan mengingat di mana ia mengeksekusi sebelum interupsi, komputer dapat kembali ke tugas itu nanti. Jika beberapa program yang berjalan "pada saat yang sama", maka generator interupsi yang mungkin menyebabkan beberapa ratus interrupts per detik, menyebabkan program beralih setiap kali. Sejak komputer modern biasanya menjalankan perintah beberapa kali lipat lebih cepat dari persepsi manusia, akan terlihat bahwa banyak program yang berjalan pada saat yang sama meskipun hanya satu yang pernah eksekusi pada suatu instan. Metode multitasking kadang-kadang disebut "time-sharing" karena setiap program dialokasikan "slice" waktu pada gilirannya.
Sebelum era komputer murah, dengan penggunaan utama untuk multitasking adalah untuk memungkinkan banyak orang untuk berbagi komputer yang sama.Tampaknya, multitasking akan menyebabkan komputer yang beralih antara beberapa program untuk berjalan lebih lambat, dalam proporsi langsung dengan jumlah program yang sedang berjalan, tetapi kebanyakan program menghabiskan banyak waktu mereka menunggu input lambat / perangkat output untuk menyelesaikan tugas mereka.
Jika program menunggu pengguna untuk mengklik mouse atau menekan tombol pada keyboard, maka tidak akan mengambil "potongan waktu" sampai acara itu sedang menunggu telah terjadi. Hal ini membebaskan waktu untuk program lain untuk menjalankan sehingga banyak program dapat berjalan secara simultan tanpa kehilangan kecepatan tidak dapat diterima.
Multiprocessing
Cray designed many supercomputers that used multiprocessing heavily.
Beberapa komputer dirancang untuk mendistribusikan karya mereka di beberapa CPU dalam konfigurasi multiprocessing, teknik yang pernah mempekerjakan hanya dalam mesin besar dan kuat seperti superkomputer, komputer mainframe dan server. Multiprosesor dan multi-core (beberapa CPU pada satu sirkuit terpadu) komputer pribadi dan laptop saat ini sudah banyak tersedia, dan sedang semakin digunakan dalam rendah-end pasar sebagai hasilnya.
Superkomputer khususnya sering memiliki arsitektur yang sangat unik yang berbeda secara signifikan dari arsitektur disimpan-program dasar dan dari komputer tujuan umum. Mereka sering fitur ribuan CPU, disesuaikan kecepatan tinggi interkoneksi, dan perangkat keras komputasi khusus. Desain seperti ini cenderung hanya berguna untuk tugas-tugas khusus karena skala besar organisasi program yang dibutuhkan untuk berhasil memanfaatkan sebagian besar sumber daya yang tersedia sekaligus. Superkomputer biasanya melihat penggunaan dalam skala besar simulasi, rendering grafis, dan aplikasi kriptografi, serta dengan yang lain yang disebut "embarrassingly parallel" tugas.
Superkomputer khususnya sering memiliki arsitektur yang sangat unik yang berbeda secara signifikan dari arsitektur disimpan-program dasar dan dari komputer tujuan umum. Mereka sering fitur ribuan CPU, disesuaikan kecepatan tinggi interkoneksi, dan perangkat keras komputasi khusus. Desain seperti ini cenderung hanya berguna untuk tugas-tugas khusus karena skala besar organisasi program yang dibutuhkan untuk berhasil memanfaatkan sebagian besar sumber daya yang tersedia sekaligus. Superkomputer biasanya melihat penggunaan dalam skala besar simulasi, rendering grafis, dan aplikasi kriptografi, serta dengan yang lain yang disebut "embarrassingly parallel" tugas.
Networking and the Internet
Visualization of a portion of the routes on the Internet
Komputer telah digunakan untuk mengkoordinasi informasi antara beberapa lokasi sejak tahun 1950. Militer AS SAGE sistem adalah contoh skala besar pertama dari sistem tersebut, yang menyebabkan sejumlah tujuan khusus sistem komersial seperti Sabre.
Pada 1970-an, komputer insinyur di lembaga penelitian di seluruh Amerika Serikat mulai menghubungkan komputer mereka bersama-sama menggunakan teknologi telekomunikasi. Upaya ini didanai oleh ARPA (sekarang DARPA), dan jaringan komputer yang dihasilkan disebut ARPANET. Teknologi yang membuat penyebaran Arpanet mungkin dan berevolusi.
Dalam waktu, jaringan tersebar di luar lembaga akademik dan militer dan menjadi dikenal sebagai Internet. Munculnya jaringan melibatkan redefinisi tentang sifat dan batas-batas komputer. Sistem operasi komputer dan aplikasi yang dimodifikasi untuk menyertakan kemampuan untuk menentukan dan mengakses sumber daya dari komputer lain pada jaringan, seperti perangkat perangkat, disimpan informasi, dan sejenisnya, sebagai ekstensi dari sumber daya dari komputer individu.
Awalnya fasilitas ini tersedia terutama untuk orang yang bekerja di lingkungan teknologi tinggi, tapi pada 1990-an penyebaran aplikasi seperti e-mail dan World Wide Web, dikombinasikan dengan pengembangan murah, teknologi jaringan cepat seperti Ethernet dan ADSL melihat komputer jaringan menjadi hampir di mana-mana. Bahkan, jumlah komputer yang jaringan tumbuh fenomenal. Sebuah proporsi yang sangat besar komputer pribadi secara teratur terhubung ke Internet untuk berkomunikasi dan menerima informasi. "Wireless" networking, sering memanfaatkan jaringan telepon seluler, berarti jaringan menjadi semakin dimana-mana bahkan di lingkungan komputasi mobile.
wikipediaPada 1970-an, komputer insinyur di lembaga penelitian di seluruh Amerika Serikat mulai menghubungkan komputer mereka bersama-sama menggunakan teknologi telekomunikasi. Upaya ini didanai oleh ARPA (sekarang DARPA), dan jaringan komputer yang dihasilkan disebut ARPANET. Teknologi yang membuat penyebaran Arpanet mungkin dan berevolusi.
Dalam waktu, jaringan tersebar di luar lembaga akademik dan militer dan menjadi dikenal sebagai Internet. Munculnya jaringan melibatkan redefinisi tentang sifat dan batas-batas komputer. Sistem operasi komputer dan aplikasi yang dimodifikasi untuk menyertakan kemampuan untuk menentukan dan mengakses sumber daya dari komputer lain pada jaringan, seperti perangkat perangkat, disimpan informasi, dan sejenisnya, sebagai ekstensi dari sumber daya dari komputer individu.
Awalnya fasilitas ini tersedia terutama untuk orang yang bekerja di lingkungan teknologi tinggi, tapi pada 1990-an penyebaran aplikasi seperti e-mail dan World Wide Web, dikombinasikan dengan pengembangan murah, teknologi jaringan cepat seperti Ethernet dan ADSL melihat komputer jaringan menjadi hampir di mana-mana. Bahkan, jumlah komputer yang jaringan tumbuh fenomenal. Sebuah proporsi yang sangat besar komputer pribadi secara teratur terhubung ke Internet untuk berkomunikasi dan menerima informasi. "Wireless" networking, sering memanfaatkan jaringan telepon seluler, berarti jaringan menjadi semakin dimana-mana bahkan di lingkungan komputasi mobile.
Apk Get File
BalasHapusBilqis Ardani
Black Surya
Jasa Ongkir
Muka Backlink
Muka Grosir
Muka Internet
Muka Mobil
Peluang Bisnis
Raja Ongkos
Muka Motor
Andro Get Like
D-Graha
InterJarKom
Bebas Ilmu
Junaqis.Com
Hamdani Helmi
Coba Ponsel
Muka Shoping
Muka Sport
Droid Net Fun
Kusnurhati.Com
Ari Kusnurhati
Buku Sehatku
Muka Bisnis
Muka Batu
Pikiran Bisnis
Backlink My Site
D-Cisanggiri
D-Cililitan
Manfaat Sehat
Muka Pulsa
Minta Ongkos
Jual Ongkir
Coba Cek Aja
Beli Piso
Gallery Pisau