Компьютер

редактировать

Автоматическое универсальное устройство для выполнения арифметических или логических операций
Компьютер
Acer Aspire 8920 Gemstone.jpg Суперкомпьютер Columbia - NASA Advanced Supercomputing Facility.jpg Intertec Superbrain.jpg . 2010-01-26-technikkrempel-by-RalfR-05.jpg Машина для подключения мыслящих машин CM-5 Frostburg 2.jpg G5 поставляет Википедию через Gigabit на Lange Nacht der Wissenschaften 2006 в Дрездене.JPG . DM IBM S360.jpg Acorn BBC Master Series Microcomputer.jpg Dell PowerEdge Servers.jpg Компьютеры и вычислительные устройства разных эпох

A компьютер - это машина, которой можно дать указание выполнять последовательности из арифметических или логических операций автоматически через компьютерное программирование. Современные компьютеры могут выполнять обобщенные наборы операций, называемые программами. Эти программы позволяют компьютерам выполнять чрезвычайно широкий круг задач. «Полный» компьютер, включающий аппаратное обеспечение, операционную систему (основное программное обеспечение ) и периферийное оборудование, необходимое и используемое для «полного "операция может быть обозначена как компьютерная система . Этот термин может также использоваться для группы компьютеров, которые связаны и работают вместе, в частности, компьютерная сеть или компьютерный кластер.

Компьютеры используются как системы управления для широкого спектра промышленных и потребительских устройств. Сюда входят простые устройства специального назначения, такие как микроволновые печи и пульты дистанционного управления, заводские устройства, такие как промышленные роботы и системы автоматизированного проектирования, а также также устройства общего назначения, такие как персональные компьютеры и мобильные устройства, такие как смартфоны. Интернет работает на компьютерах и соединяет сотни миллионов других компьютеров и их пользователей.

Ранние компьютеры задумывались только как вычислительные устройства. С древних времен простые ручные устройства, такие как счеты, помогали людям в вычислениях. В начале промышленной революции были созданы некоторые механические устройства для автоматизации долгих утомительных задач, такие как создание шаблонов для ткацких станков. Более сложные электрические машины выполняли специализированные аналоговые вычисления в начале 20 века. Первые цифровые электронные вычислительные машины были разработаны во время Второй мировой войны. За первыми полупроводниковыми транзисторами в конце 1940-х годов последовали кремниевые -содержащие MOSFET (MOS-транзисторы) и монолитные интегрированные микросхемы (IC) в конце 1950-х годов, приведшие к микропроцессору и революции микрокомпьютеров в 1970-х. С тех пор скорость, мощность и универсальность компьютеров резко возросли, причем количество МОП-транзисторов увеличивалось быстрыми темпами (как предсказывается законом Мура ), что привело к Цифровая революция в конце 20-го - начале 21-го веков.

Обычно современный компьютер состоит по крайней мере из одного обрабатывающего элемента, обычно центрального процессора (ЦП) в виде оксида металла. -полупроводниковый (MOS) микропроцессор, вместе с некоторым типом компьютерной памяти, обычно микросхемы MOS полупроводниковой памяти. Элемент обработки выполняет арифметические и логические операции, а блок упорядочивания и управления может изменять порядок операций в ответ на сохраненную информацию . Периферийные устройства включают устройства ввода (клавиатуры, мыши, джойстик и т. Д.), Устройства вывода (экраны мониторов, принтеры и т. Д.) И устройства ввода / вывода, которые выполняют обе функции (например, в эпоху 2000-х сенсорный экран ). Периферийные устройства позволяют получать информацию из внешнего источника, а также позволяют сохранять и извлекать результаты операций.

Содержание

  • 1 Этимология
  • 2 История
    • 2.1 До 20 века
    • 2.2 Первое вычислительное устройство
    • 2.3 Аналоговые компьютеры
    • 2.4 Цифровые компьютеры
      • 2.4.1 Электромеханические
      • 2.4.2 Электронные лампы и цифровые электронные схемы
    • 2.5 Современные компьютеры
      • 2.5.1 Концепция современного компьютера
      • 2.5.2 Сохраненные программы
      • 2.5.3 Транзисторы
      • 2.5.4 Интегральные схемы
    • 2.6 Мобильные компьютеры
  • 3 типа
    • 3.1 По архитектуре
    • 3.2 По размеру, форм-фактору и назначению
  • 4 Аппаратное обеспечение
    • 4.1 История вычислительного оборудования
    • 4.2 Прочие разделы аппаратного обеспечения
    • 4.3 Устройства ввода
    • 4.4 Устройства вывода
    • 4.5 Блок управления
    • 4.6 Центральный процессор (ЦП)
    • 4.7 Арифметико-логический блок (ALU)
    • 4.8 Память
    • 4.9 Ввод / вывод (I /O)
    • 4.10 Многозадачность
    • 4.11 Многопроцессорность
  • 5 Программное обеспечение
    • 5.1 Языки
    • 5.2 Программы
      • 5.2.1 Архитектура хранимой программы
      • 5.2.2 Машинный код
      • 5.2. 3 Язык программирования
        • 5.2.3.1 Языки низкого уровня
        • 5.2.3.2 Языки высокого уровня
      • 5.2.4 Разработка программ
      • 5.2.5 Ошибки
  • 6 Сеть и Интернет
  • 7 Нетрадиционные компьютеры
  • 8 Будущее
    • 8.1 Парадигмы компьютерной архитектуры
    • 8.2 Искусственный интеллект
  • 9 Профессии и организации
  • 10 См. Также
  • 11 Ссылки
  • 12 Примечания
  • 13 Внешние ссылки

Этимология

Человек-компьютер. Человек-компьютер с микроскопом и калькулятором, 1952

Согласно Оксфордскому словарю английского языка, первое известное употребление слова «компьютер» было в 1613 году в книге английского писателя Ричарда Брейтуэйта под названием «Собирание Ён Мана»: «Я читал [sic] самый настоящий компьютер в мире. Times, и лучший арифметик, которого когда-либо видел, и он сокращает ваши дни в короткое число ". Это использование термина относится к человеческому компьютеру, человеку, который выполняет вычисления или вычисления. Слово сохраняло то же значение до середины 20 века. Во второй половине этого периода женщин часто нанимали в качестве компьютеров, потому что им могли платить меньше, чем их коллегам-мужчинам. К 1943 году большинство людей-компьютеров составляли женщины.

Интернет-словарь этимологии дает первое подтвержденное использование слова «компьютер» в 1640-х годах, что означает «тот, кто считает»; это «агент существительное из вычислений (v.)». Интернет-словарь этимологии утверждает, что этот термин используется для обозначения «вычислительная машина (любого типа) с 1897 года». Онлайн-словарь этимологии указывает на то, что «современное использование» термина, означающего «программируемый цифровой электронный компьютер», датируется «1945 годом под этим именем; [в] теоретическом [смысле] - с 1937 года, как машина Тьюринга ".

История

До 20 века

Кость Ишанго, костяной инструмент, восходящий к доисторической Африке.

Устройства использовались для помогать вычислениям в течение тысяч лет, в основном используя взаимно однозначное соответствие с пальцами. Самое раннее счетное устройство, вероятно, было формой счетной палочки. Более поздняя запись Вспомогательные приспособления для хранения на всем протяжении Плодородного полумесяца включали в себя камни (глиняные сферы, конусы и т. д.), которые представляли собой количество предметов, возможно, домашнего скота или зерна, запечатанных в полых необожженных глиняных контейнерах. 975>- один из примеров.

Китайский suanpan (算盘). Число, представленное на этом abacus, составляет 6 302 715 408.

Первоначально abacus используется для арифметики этические задачи. Римские счеты были разработаны на основе устройств, использовавшихся в Вавилонии еще в 2400 году до нашей эры. С тех пор было изобретено множество других форм счетных досок или столов. В средневековой европейской счетной палате клетчатая ткань была помещена на стол, и маркеры перемещались по нему в соответствии с определенными правилами, чтобы помочь при подсчете денежных сумм.

Антикитерский механизм, восходящий к Древней Греции примерно 150–100 до н.э., является ранним аналоговым вычислительным устройством.

Считается, что антикиферский механизм быть первым механическим аналоговым компьютером, согласно Дереку Дж. де Солла Прайсу. Он был разработан для расчета астрономических координат. Он был обнаружен в 1901 году на затонувшем корабле Антикитера у греческого острова Антикифера, между Китерой и Критом, и датирован ок. 100 г. до н. Э. Устройства уровня сложности, сравнимого с антикиферским механизмом, не появятся снова до тысячи лет спустя.

Многие механические средства для расчетов и измерений были созданы для использования в астрономии и навигации. планисфера была звездной картой, изобретенной Абу Райханом аль-Бируни в начале 11 века. астролябия была изобретена в эллинистическом мире либо в I, либо во II веках до нашей эры и часто приписывается Гиппарху. Комбинация планисферы и диоптрии, астролябия была фактически аналоговым компьютером, способным решать несколько различных типов задач в сферической астрономии. Астролябия, включающая в себя механический календарь компьютер и шестеренчатые колеса, была изобретена Аби Бакром из Исфахана, Персии в 1235 году. Абу Райхан аль-Бируни изобрел первую механическую зубчатую лунно-солнечный календарь астролябию, раннюю фиксированную проводную машину обработки знаний с зубчатой ​​передачей . и шестерни, ок. 1000 г. н.э.

Сектор сектор, вычислительный инструмент, используемый для решения задач пропорциональности, тригонометрии, умножения и деления, а также для различных функций, таких как квадраты и кубические корни, был разработан в конце 16 века. и нашел применение в артиллерийской, топографической и навигационной технике.

Планиметр был ручным прибором для вычисления площади замкнутой фигуры путем обводки ее с помощью механической связи.

A логарифмическая линейка.

Логарифм была изобретена примерно в 1620–1630 гг., Вскоре после публикации концепции логарифма . Это аналоговый компьютер с ручным управлением для умножения и деления. По мере развития логарифмической линейки добавлялись шкалы, обеспечивающие обратные величины, квадраты и квадратные корни, кубы и кубические корни, а также трансцендентные функции, такие как логарифмы и экспоненты, круговые и гиперболические тригонометрия и другие функции. Линейные линейки со специальными шкалами до сих пор используются для быстрого выполнения рутинных вычислений, например круговая линейка E6B, используемая для расчета времени и расстояния на легких самолетах.

В 1770-х годах Пьер Жаке-Дро, швейцарский часовщик, построил механическую куклу (автомат ), которая могла писать, держа перо ручка. Изменяя количество и порядок его внутренних колес, можно было создавать разные буквы и, следовательно, разные сообщения. Фактически, его можно было механически «запрограммировать» на чтение инструкций. Наряду с двумя другими сложными машинами, кукла находится в Музее искусства и истории Невшателя, Швейцария и все еще работает.

В 1831–1831 гг. В 1835 году математик и инженер Джованни Плана изобрел машину с вечным календарем, которая, несмотря на систему шкивов, цилиндров и более, могла предсказывать вечный календарь для каждого год от 0 (то есть 1 г. до н.э.) до 4000 г. н.э., отслеживая високосные годы и переменную продолжительность дня. машина для предсказания приливов, изобретенная сэром Уильямом Томсоном в 1872 году, была очень полезна для навигации на мелководье. Он использовал систему шкивов и тросов для автоматического расчета прогнозируемых уровней приливов за заданный период в определенном месте.

Дифференциальный анализатор , механический аналоговый компьютер, предназначенный для решения дифференциальных уравнений путем интегрирования, использовал колесно-дисковые механизмы для выполнения интеграция. В 1876 году лорд Кельвин уже обсуждал возможную конструкцию таких вычислителей, но он был загнан в тупик из-за ограниченного выходного крутящего момента шаровых интеграторов. В дифференциальном анализаторе выход одного интегратора управлял входом следующего интегратора или выводом графика. Усилитель крутящего момента был достижением, позволившим этим машинам работать. Начиная с 1920-х годов Ванневар Буш и другие разработали механические дифференциальные анализаторы.

Первое вычислительное устройство

Создана часть Бэббиджа Разностная машина.

Чарльз Бэббидж, английский инженер-механик и эрудит. понятие программируемого компьютера. Считающийся «отцом компьютера », он концептуализировал и изобрел первый механический компьютер в начале 19 века. После работы над своей революционной разностной машиной, предназначенной для помощи в навигационных расчетах, в 1833 году он понял, что возможна гораздо более общая конструкция, аналитическая машина. Ввод программ и данных должен был осуществляться в машину через перфокарты, метод, который в то время использовался для управления механическими ткацкими станками, такими как жаккардовый ткацкий станок. Для вывода машина будет иметь принтер, плоттер кривых и звонок. Машина также сможет вводить числа на карточки, чтобы их можно было прочитать позже. Механизм включает в себя арифметико-логический блок , поток управления в форме условного ветвления и циклов, а также интегрированную память, что делает его первым проектом универсального компьютера, который можно описать современными терминами как полный по Тьюрингу.

. Машина опередила свое время примерно на столетие. Все детали для его машины приходилось делать вручную - это была серьезная проблема для устройства, состоящего из тысяч деталей. В конце концов, проект был распущен с решением правительства Великобритании прекратить финансирование. Неспособность Бэббиджа завершить работу над аналитической машиной в основном объясняется политическими и финансовыми трудностями, а также его желанием разработать все более совершенный компьютер и двигаться вперед быстрее, чем кто-либо другой мог бы последовать. Тем не менее его сын, Генри Бэббидж, завершил упрощенную версию вычислительного блока (мельницы) аналитической машины в 1888 году. Он успешно продемонстрировал его использование в вычислительных таблицах в 1906 году.

Аналоговые компьютеры

Третья машина для предсказания приливов, созданная сэром Уильямом Томсоном, 1879–81

В течение первой половины 20-го века многие потребности в научных вычислениях удовлетворялись с помощью все более сложных аналоговых компьютеров., который использовал прямую механическую или электрическую модель проблемы в качестве основы для вычисления. Однако они не были программируемыми и, как правило, не обладали универсальностью и точностью современных цифровых компьютеров. Первым современным аналоговым компьютером была машина для прогнозирования приливов, изобретенная сэром Уильямом Томсоном в 1872 году. Дифференциальный анализатор, механический аналоговый компьютер, разработанный для решения дифференциальных уравнения путем интегрирования с использованием колесно-дисковых механизмов, была концептуализирована в 1876 году Джеймсом Томсоном, братом более известного лорда Кельвина.

Искусство механических аналоговых вычислений достигло своего апогея с дифференциальный анализатор, построенный HL Hazen и Vannevar Bush в MIT начиная с 1927 года. Он построен на механических интеграторах Джеймса Томсона и усилители крутящего момента, изобретенные HW Nieman. Десяток таких устройств были построены до того, как их устаревание стало очевидным. К 1950-м годам успех цифровых электронных компьютеров положил конец большинству аналоговых вычислительных машин, но аналоговые компьютеры продолжали использоваться в течение 1950-х годов в некоторых специализированных приложениях, таких как образование (логарифмическая линейка ) и авиация (системы управления ).

Цифровые компьютеры

Электромеханические

К 1938 году ВМС США разработали электромеханический аналоговый компьютер, достаточно малый, чтобы его можно было использовать на борту подводной лодки .. Это был компьютер данных торпеды, который использовал тригонометрию для решения задачи обстрела торпедой движущейся цели. Во время Второй мировой войны подобные устройства были разработаны и в других странах.

Копия Цузе Z3, первого полностью автоматического цифрового (электромеханического) компьютера.

Ранние цифровые компьютеры были электромеханическими; электрические переключатели приводили в движение механические реле для выполнения расчетов. Эти устройства имели низкую скорость работы и в конечном итоге были вытеснены гораздо более быстрыми полностью электрическими компьютерами, первоначально использующими электронные лампы. Z2, созданный немецким инженером Конрадом Цузе в 1939 году, был одним из первых примеров электромеханического релейного компьютера.

В 1941 году Цузе последовал за своей более ранней машиной. до Z3, первого в мире работающего электромеханического программируемого, полностью автоматического цифрового компьютера. Z3 был построен с 2000 реле, реализуя 22 бит слово длиной, которое работало на тактовой частоте примерно 5-10 Гц. Программный код поставлялся на перфорированной пленке, в то время как данные могли храниться в 64 словах памяти или передаваться с клавиатуры. В некоторых отношениях он был очень похож на современные машины, являясь пионером многочисленных достижений, таких как числа с плавающей запятой. Вместо более сложной в реализации десятичной системы (использовавшейся в более раннем проекте Чарльза Бэббиджа ) использование двоичной системы означало, что машины Цузе были проще в сборке и потенциально более надежны, учитывая технологии, доступные в то время. Z3 сам по себе не был универсальным компьютером, но его можно было расширить до системы Тьюринга.

Вакуумные лампы и цифровые электронные схемы

Чисто электронные схемы вскоре заменили их механические и электромеханические элементы. эквиваленты, в то время как цифровые вычисления заменили аналоговые. Инженер Томми Флауэрс, работая на Исследовательской станции почтового отделения в Лондоне в 1930-х годах, начал изучать возможное использование электроники для телефона . обмен. Экспериментальное оборудование, которое он построил в 1934 году, было введено в эксплуатацию пятью годами позже, преобразовав часть сети телефонной станции в систему электронной обработки данных с использованием тысяч электронных ламп. В США Джон Винсент Атанасов и Клиффорд Э. Берри из Университета штата Айова разработали и протестировали компьютер Атанасофф-Берри (ABC) в 1942 году, первый «автоматическая электронно-цифровая вычислительная машина». Эта конструкция также былаполностью электронной, и в ней использовалось около 300 электронных ламп с конденсаторами, закрепленными в механически вращающемся барабане для памяти.

Две женщины видят Компьютер Colossus. Colossus, первый электронный цифровой программируемое компьютерное устройство, использовалось для взлома немецких шифров во время Второй мировой войны.

Во время Второй мировой войны британцы в Блетчли-парк добились ряда успехов в взломе зашифрованных немецких военных сообщений. Немецкая шифровальная машина Enigma впервые подверглась атаке с помощью электромеханических бомб, часто управляли женщины. Чтобы взломать более совершенную немецкую машину Lorenz SZ 40/42, используемую для армейской связи высокого уровня, Макс Ньюман и его коллеги поручили Флауэрсу построить Colossus. С начала февраля 1943 года он потратил одиннадцать месяцев на график и строительство первого Колосса. После функциональных испытаний в декабре 1943 года Колосс был отправлен в Блетчли-парк, где он был доставлен 18 января 1944 года и атаковал свое первое сообщение 5 февраля.

Колосс был первым в мире электронным цифровой программируемый компьютер. В нем использовано большое количество вентилей (вакуумных трубок). Он имел ввод на бумажной ленте и мог быть сконфигурирован для выполнения различных логических операций над своими данными, но не был полным по Тьюрингу. Было построено девять Mk II Colossi (Mk I был преобразован в Mk II, всего было выпущено десять машин). Colossus Mark I содержал 1500 термоэмиссионных клапанов (трубок), но Mark II с 2400 клапанами был в 5 раз быстрее и проще в эксплуатации, чем Mark I, что быстрее ускорило процесс декодирования.

ENIAC был первым электронным, Turing -полное устройство и выполнило расчеты баллистической траектории для армии США.

. ENIAC (электронный числовой интегратор и компьютер) был первым электронным программируемым компьютером, построенным в США. Хотя ENIAC был похож на Колосса, это было намного быстрее, гибче и по Тьюрингу. Как и на Colossus, «программа» на ENIAC определялась состояниями коммутационных кабелей и переключателей, в отличие от хранимой электронных машин, появившихся позже. После того, как программа была написана, ее нужно было механически установить в машину с ручной переустановкой вилок и переключателей. Программистами ENIAC шесть женщин, широко известных под общим названием «девушки ENIAC».

Он сочетает в себе высокую скорость электроники с программирования для решения сложных задач. Он мог складывать или вычитать 5000 раз в секунду, что на тысячу раз быстрее, чем любая другая машина. В нем также были модули для умножения, деления и извлечения квадратного корня. Высокостная память была ограничена 20 словами (около 80 байтов). Построен под руководством Джона Мочли и Дж. Преспер Эккерт из Пенсильванского университета, разработка и строительство ENIAC длились с 1943 года до полной эксплуатации в конце 1945 года. Машина была огромной, весом 30 тонн, потребляла 200 киловатт электроэнергии и содержала более 18000 электронных ламп, 1500 реле и сотни тысяч резисторов, конденсаторов и катушек индуктивности.

Современные компьютеры

Концепция современного компьютера

Принцип современного компьютера был предложен Алан Тьюринг в своей основополагающей статье 1936 года «О вычислимых числах». Тьюринг, данное простое устройство, которое он назвал «Универсальной вычислительной машиной» и теперь известно как универсальная машина Тьюринга. Он доказал, что такая машина способна вычислить все, что можно вычислить, выполняя инструкции (программы), хранящиеся на ленте, что позволяет программировать машину. Фундаментальная концепция дизайна Тьюринга - это хранимая программа, где все инструкции для вычислений хранятся в памяти. Фон Нейман признал, что центральная концепция современного компьютера возникла благодаря этой статье. Машины Тьюринга по сей день являются центральным объектом изучения в теории вычислений. За исключением ограничений, накладываемых их ограниченным объемом памяти, современные компьютеры называются -полными по Тьюрингу, т. Е. Имеют алгоритм выполнения, эквивалентный универсальной машине Тьюринга.

Сохраненные программы

Три высокие стойки с электронными платами Раздел Manchester Baby, первый электронный компьютер с хранимыми программами

Ранние вычислительные машины имели фиксированные программы. Для изменения его функции потребовались переоборудование и реструктуризация машины. С предложением компьютера с хранимой программой это изменилось. Компьютер с хранимой программой включает в себя набор команд и может хранить в памяти набор команд (программа ), которые подробно описывают вычисление . Теоретическая основа компьютера с заложенной программой была заложена Аланом Тьюрингом в его статье 1936 года. В 1945 году Тьюринг присоединился к Национальной физической лаборатории и начал работу над созданием электронного компьютера с хранимой программой. Его отчет 1945 г. «Предлагаемый электронный калькулятор» был первой спецификацией для такого устройства. Джон фон Нейман из Пенсильванского университета также распространил свой первый проект отчета по EDVAC в 1945 году.

Manchester Baby был первый в мире компьютер с хранимой программой. Он был построен в Манчестерском университете Виктории Фредериком К. Уильямсом, Томом Килбурном и Джеффом Тутиллом и запустил свою первую программу 21 июня 1948 г. Он был разработан как испытательный стенд для трубки Вильямса, первый устройство памяти с произвольным доступом. Компьютер считался «маленьким и примитивным» по стандартам того времени, это была первая рабочая машина, которая содержала все элементы, необходимые для современного электронного компьютера. В университете был начат проект по разработке более удобного в использовании компьютера Manchester Mark 1. Грейс Хоппер был первым, кто разработал компилятор для языка программирования.

Марк 1, в свою очередь, быстро стал прототипом для Ферранти Марк 1, первый в мире коммерчески доступный компьютер общего назначения. Построенный Ферранти, он был доставлен в Манчестерский университет в феврале 1951 года. По крайней мере семь из этих более поздних машин были поставлены между 1953 и 1957 годами, одна из них - Shell. лаборатория в Амстердаме. Октябрь 1947 года директора британской кейтеринговой компании Дж. Lyons Company решила принять активное участие в коммерческой разработке компьютеров. Компьютер LEO I введен в эксплуатацию в апреле 1951 года и на нем был запущен первый в мире обычный офисный компьютер работа.

Транзисторы

Биполярный переходной транзистор (BJT)

Концепция полевой транзистор был предложен Юлиусом Эдгаром Лилиенфельдом в 1925 году. Джон Бардин и Уолтер Браттейн, работал под Уильям Шокли в Bell Labs построил первый рабочий транзистор, точечный транзистор, в 1947 году, за последовал Шокли. биполярный переходной транзистор в 1948 году. С 1955 года транзисторы заменили электронные лампы в компьютерных конструкциях, что привело к появлению компьютеров «второго поколения». По сравнению с электронными лампамиисторы имеют много преимуществ: они меньше по размеру и потребляют меньше энергии, чем электронные лампы, поэтому они меньше тепла. Переходные транзисторы были намного надежнее электронные ламп и имели более длительный, неопределенный срок службы. Транзисторные компоненты могут содержать десятки тысяч двоичных схем в относительно компактном визуальном представлении. Однако первые переходные транзисторы были относительно громоздкими устройствами, которые были трудно в массовом производстве, что ограничивало их ряд приложений приложений.

В Университете Манчестер, группа под руководством Тома Килберна разработала и построила машину, использующую недавно разработанные транзисторы вместо вентилей. Их транзисторный компьютер и в мире был введен в действие к 1953, а версия была завершена там в апреле 1955 года. Однако машина действительно использовала клапаны для генерации его тактовая частота 125 кГц и схемы для чтения и записи в его магнитную барабанную память, так что это не первый полностью транзисторный компьютер. Этим отличием является Harwell CADET 1955 года, построенный отделом электроники Исследовательского центра атомной энергии в Харвелле.

MOSFET (МОП-транзистор), показаны выводы затвора (G), корпуса (B), истока (S) и стока (D). Затвор отделен от корпуса изолирующим слоем (розовый).

Полевой транзистор металл-оксид-кремний (MOSFET), также известный как MOS-транзистор, был изобретен Мохамед М. Аталла и Давон Кан в Bell Labs в 1959 году. Это был первый по-настоящему компактный транзистор, который можно было миниатюризировать и выпускать серийно для широкого круга применений. Своей высокой масштабируемости, благодаря более низкому энергопотреблению и более высокой плотности, чем у транзисторов с биполярным переходом, MOSFET позволил создать интегральные схемы с высокой плотностью. Помимо обработки данных, это также использование использования МОП-транзисторов в качестве элементов памяти памяти памяти, что привело к разработке полупроводниковой памяти МОП , которая заменила ранее применявшуюся магнитно- основная память в компьютерах. MOSFET привел к революции микрокомпьютеров и стал движущей силой компьютерной революции. MOSFET - это наиболее широко используемый транзистор в компьютере, и он является основным строительным блоком цифровой электроники.

Интегральные схемы

Следующим достижением в области вычислительной мощности стало появление интегральная схема ( IC). Идея интегральной схемы была впервые предложена ученым-радаром, работающим в Королевском радиолокационном предприятии Министерства обороны , Джеффри В.А. Даммером. Даммер представил первое публичное описание интегральной схемы на симпозиуме по прогрессу в области качества электронных в Вашингтоне, округ Колумбия 7 мая 1952 года.

Первые рабочие ИС были изобретены Джек Килби в Texas Instruments и Роберт Нойс в Fairchild Semiconductor. Килби записал свои первоначальные идеи относительно интегральной схемы в июле 1958 года, успешно прошел первый работающий интегральный образец 12 сентября 1958 года. В своей заявке на патент от 6 февраля 1959 года Килби описал свое новое устройство как «корпус из полупроводникового материала... все электронные компоненты схемы полностью интегрированы». Однако изобретением Килби была гибридная интегральная схема (гибридная ИС), а не монолитная интегральная схема (IC) . ИС Килби имел внешние проводные соединения, что затрудняло серийное производство.

Нойс также придумал собственную интегральную схему на полгода позже, чем Килби. Изобретение Нойса было первым настоящим монолитным ИС. Его чип решал многие практические проблемы, которые не было у Килби. Изготовленный в Fairchild Semiconductor, он был сделан из кремния, тогда как чип Кил былби сделан из германия. Монолитная ИС Нойса была изготовлена ​​ с использованием планарного процесса, разработанного его коллегой Джин Хорни в начале 1959 года. В свою очередь, процесс был основан на кремнии процессы пассивации поверхности и термического окисления, разработанные Мохамедом Аталлой в Bell Labs в конце 1950 г. -х.

Современные монолитные ИС предпочтительно собой МОП (металл-оксид-полупроводник ) интегральные схемы, построенные на полевых МОП-транзисторах (МОП-транзисторы). После того, как первый полевой МОП-транзистор был изобретен Мохамедом Аталлой и Давоном Кангом в Bell Labs в 1959 году, Аталла впервые использовала концепцию МОП-интегральной схемы в 1960 году, а Канг в 1961 году, оба отметив, что простота использования МОП-транзистора Производство сделало его полезное для интегральных схем. Самой ранней экспериментальной МОП ИС, которая была изготовлена, была микросхема с 16 транзисторами, построенная Фредом Хейманом и Стивеном Хофштейном на RCA в 1962 году. General Microelectronics позже представила первую коммерческую МОП-микросхему в 1964 году. разработан Робертом Норманом. После разработки Робертом Кервином, Дональдом Кляйном и Джоном Сарасом в Bell Labs в 1967 году самоустанавливающегося затвора (кремниевого затвора) МОП-транзистора, первый кремниевый затвор gate MOS IC с самовыравнивающимися затворами была разработана Федерико Фаггин в Fairchild Semiconductor в 1968 году. MOSFET с тех пор стал наиболее важным компонентом современных ИС.

Разработка интегральной схемы MOS привела к изобретению микропроцессора и возвестила взрыв в коммерческом и личном использовании компьютеров. В то время как предмет, какие именно устройство было первый микропроцессор спорный, отчасти из-за отсутствие соглашения о точном определении термина «микропроцессор», это в значительной степени бесспорный, что первый однокристальный микропроцессор был Intel 4004, разработанный и реализованный Федерико Фаггин с его технологией МОП-микросхемы с кремниевым затвором, вместе с Тедом Хоффом, Масатоши Шимой и Стэнли Мазором в Intel. В начале 1970-х годов технология MOS IC позволила интегрировать более 10 000 транзисторов на одной микросхеме.

Система на микросхеме (SoC) - это законченные компьютеры на микрочипе (или чип) размером с монету. Они могут иметь или не иметь интегрированных RAM и флэш-памяти. Если не интегрировано, ОЗУ обычно размещается непосредственно над (известный как пакет на упаковке ) или ниже (на противоположной стороне печатной платы ) SoC, а флэш-память обычно размещается рядом с SoC, все это делается для повышения скорости передачи данных, поскольку сигналы данных не должны перемещаться на большие расстояния. Со времени ENIAC в 1945 году компьютеры сильно продвинулись вперед: современные SoC (такие как Snapdragon 865) размером с монету, а также в сотни тысяч раз мощнее ENIAC, интегрируют миллиарды транзисторов и потребляют всего несколько ватт. власти.

Мобильные компьютеры

Первые мобильные компьютеры были тяжелыми и работали от электросети. 50lb IBM 5100 был ранним примером. Более поздние портативные компьютеры, такие как Osborne 1 и Compaq Portable, были значительно легче, но их все же нужно было подключать к сети. Первые ноутбуки, такие как Grid Compass устранил это требование за счет включения батарей - и с продолжающейся миниатюризацией вычислительных ресурсов и улучшением срока службы портативных батарей популярность портативных компьютеров в 2000-х годах выросла. Те же разработки позволили производителям интегрировать вычислительные ресурсы в сотовые мобильные телефоны к началу 2000-х годов.

Эти смартфоны и планшеты работают под управлением различных операционных систем и недавно стали доминирующими вычислительными устройствами на рынке. Они питаются от системы на чипе (SoC), которые представляют собой законченные компьютеры на микрочипе размером с монету.

Типы

Компьютеры можно классифицировать в количество различных способов, в том числе:

По архитектуре

По размеру, форм-фактору и назначению

Аппаратное обеспечение

Файл: Computer Components.webm Воспроизведение медиа Видео, стандартные стандартные компоненты «тонкого» компьютера

Термин «аппаратное обеспечение. ение »охватывает все те части компьютера, которые являются материальными физическими объектами. Схемы, компьютерные микросхемы, графические карты, звуковые карты, память (RAM), материнская плата, дисплеи, блоки питания, кабели, клавиатура, принтеры и устройства ввода «мыши» - все это оборудование.

История вычислительного оборудования

Первое поколение (механическое / электромеханическое)КалькуляторыКалькулятор Паскаля, Арифмометр, Разностный двигатель, Аналитические машины Кеведо
Программируемые устройстваЖаккардовый ткацкий станок, Аналитическая машина, IBM ASCC / Harvard Mark I, Harvard Mark II, IBM SSEC, Z1, Z2, Z3
Второе поколение (электронные лампы)КалькуляторыAtanasoff - Berry Computer, IBM 604, UNIVAC 60, UNIVAC 120
Программируемые устройства Colossus, ENIAC, Manchester Baby, EDSAC, Manchester Mark 1, Ferranti Pegasus, Ferranti Mercury, CSIRAC, EDVAC, UNIVAC I, IBM 701, IBM 702, IBM 650, Z22
Третье поколение (дискретные транзисторы и SSI, M SI, LSI интегральные схемы )мэйнфреймы IBM 7090, IBM 7080, IBM System / 360, BUNCH
Миникомпьютер HP 2116A, IBM System / 32, IBM System / 36, LINC, PDP-8, PDP-11
Настольный компьютер HP 9100
Четвертое поколение (СБИС интегральных схем)МиникомпьютерVAX, IBM System i
4-битный микрокомпьютерIntel 4004, Intel 4040
8-бит микрокомпьютерIntel 8008, Intel 8080, Motorola 6800, Motorola 6809, MOS Technology 6502, Zilog Z80
16-битный микрокомпьютерIntel 8088, Zilog Z8000, WDC 65816/65802
32-битный микрокомпьютерIntel 80386, Pentium, Motorola 68000, ARM
64-бит микрокомпьютерAlpha, MIPS, PA-RISC, PowerPC, SPARC, x86-64, ARMv8-A
Встроенный компьютер Intel 8048, Intel 8051
Персональный компьютерНастольный верхний компьютер, Домашний компьютер, Портативный компьютер компьютер, Персональный цифровой помощник (КПК), Портативный компьютер, Планшет ПК, Носимый компьютер
Теоретический / экспериментальныйКвантовый компьютер, Химический компьютер, ДНК-вычисления, Оптический компьютер, Компьютер на базе Spintronics, Компьютер Wetware / Organic

Другое оборудование

Периферийное устройство (ввод / вывод )ВходМышь, клавиатура, джойстик, сканер изображений, веб-камера, графический планшет, микрофон
ВыводМонитор, принтер, громкоговоритель
ОбаДисковод, жесткий диск, привод оптических дисков, телетайп
Компьютерные шины Короткий диапазонRS-232, SCSI, PCI, USB
большой диапазон (компьютерные сети )Ethernet, ATM, FDDI

общего назначения Компьютер состоит из четырех основных компонентов: арифметико-логический блок (ALU), блок управления, память и устройства ввода и вывода (совместно именуемые I / O). Эти части соединены между собой шинами , часто состоящими из групп проводов. Внутри каждой из этих частей находятся от тысяч до триллионов небольших электрических цепей, которые можно выключить или включить с помощью электронного переключателя. Каждая схема представляет собой бит (двоичная цифра) информации, так что, когда схема включена, она представляет собой «1», а в выключенном состоянии - «0» (в представлении положительной логики). Схемы расположены в логических элементах , так что одна или несколько схем могут управлять состоянием одной или нескольких других схем.

Устройства ввода

Когда необработанные данные отправляются на компьютер с помощью устройств ввода, данные обрабатываются и отправляются на устройства вывода. Устройства ввода могут быть ручными или автоматизированными. Процесс обработки в основном регулируется ЦП. Некоторые примеры устройств ввода:

Устройства вывода

Средства, с помощью которых компьютер выдает выходные данные, известны как устройства вывода. Вот некоторые примеры устройств вывода:

Блок управления

Схема, показывающая, как конкретный Архитектура MIPS инструкция будет декодирована системой управления

Блок управления (часто называемый системой управления или центральным контроллером) управляет различными компонентами компьютера; он считывает и интерпретирует (декодирует) инструкции программы, преобразуя их в управляющие сигналы, которые активируют другие части компьютера. Системы управления в современных компьютерах могут изменять порядок выполнения некоторых инструкций для повышения производительности.

Ключевым компонентом, общим для всех ЦП, является программный счетчик , специальная ячейка памяти (регистр ), которая отслеживает, в каком месте памяти находится следующая инструкция. для чтения.

Система управления выполняет следующие функции - обратите внимание, что это упрощенное описание, и некоторые из этих шагов могут выполняться одновременно или в другом порядке в зависимости от типа ЦП:

  1. Считайте код следующей инструкции из ячейки, указанной программным счетчиком.
  2. Расшифруйте числовой код для инструкции в набор команд или сигналов для каждой из других систем.
  3. Увеличьте программный счетчик так, чтобы он указывал на следующую команду.
  4. Прочтите любые данные, которые требуются инструкции, из ячеек в памяти (или, возможно, с устройства ввода). Расположение этих требуемых данных обычно хранится в коде инструкции.
  5. Предоставляет необходимые данные в ALU или регистр.
  6. Если для выполнения инструкции требуется ALU или специализированное оборудование, проинструктируйте аппаратное обеспечение для выполнения запрошенной операции.
  7. Записать результат из ALU обратно в ячейку памяти, в регистр или, возможно, на устройство вывода.
  8. Вернуться к шагу (1).

Поскольку программный счетчик (концептуально) представляет собой просто еще один набор ячеек памяти, его можно изменить с помощью вычислений, выполняемых в ALU. Добавление 100 к счетчику программы приведет к тому, что следующая инструкция будет считана из места на 100 позиций дальше по программе. Команды, которые изменяют счетчик программ, часто называются «переходами» и допускают циклы (инструкции, которые повторяются компьютером) и часто условное выполнение команд (оба примера потока управления ).

Последовательность операций, которые выполняет блок управления для обработки инструкции, сама по себе подобна короткой компьютерной программе, и действительно, в некоторых более сложных конструкциях ЦП есть еще один компьютер меньшего размера, называемый microsequencer, который запускает программу микрокода , которая вызывает все эти события.

Центральный процессор (ЦП)

Блок управления, ALU и регистры вместе известны как центральный процессор (ЦП). Ранние процессоры состояли из множества отдельных компонентов. С 1970-х годов ЦП обычно строятся на одной микросхеме MOS, называемой микропроцессором.

Арифметико-логическим блоком (ALU)

ALU может выполнять два классы операций: арифметические и логические. Набор арифметических операций, поддерживаемых конкретным ALU, может быть ограничен сложением и вычитанием или может включать в себя умножение, деление, функции тригонометрии, такие как синус, косинус и т. Д., И квадратный корень. Некоторые могут работать только с целыми числами (целыми числами ), в то время как другие используют с плавающей запятой для представления действительных чисел, хотя и с ограниченной точностью. Однако любой компьютер, способный выполнять только простейшие операции, можно запрограммировать так, чтобы разбивать более сложные операции на простые шаги, которые он может выполнять. Следовательно, любой компьютер можно запрограммировать на выполнение любых арифметических операций, хотя для этого потребуется больше времени, если его ALU не поддерживает эту операцию напрямую. ALU может также сравнивать числа и возвращать логические значения истинности (истина или ложь) в зависимости от того, равно ли одно другому, больше или меньше («64 больше 65?»). Логические операции включают логику : И, OR, XOR и НЕ. Они могут быть полезны для создания сложных условных операторов и обработки логической логики.

Суперскалярные компьютеры могут содержать несколько ALU, что позволяет им обрабатывать несколько инструкций одновременно. Графические процессоры и компьютеры с функциями SIMD и MIMD часто содержат ALU, которые могут выполнять арифметические действия с векторами и матрицами.

Память

Магнитное ядро память (с использованием магнитных сердечников ) была компьютерной памятью, которую выбирали в 1960-х, пока она не была заменена полупроводниковой памятью (с использованием MOS ячейки памяти ).

Память компьютера можно рассматривать как список ячеек, в которые можно помещать или считывать числа. Каждая ячейка имеет пронумерованный «адрес» и может хранить один номер. Компьютер может быть получил указание «поместить число 123 в ячейку с номером 1357» или «прибавить число из ячейки 1357 к числу в ячейке 2468 и поместить ответ в ячейку 1595». Информация, хранящаяся в памяти, может представлять практически что угодно. Буквы, числа и даже компьютерные инструкции могут быть с такой же легкостью помещены в память. Поскольку ЦП не различает разные типы информации, программное обеспечение обязано придавать значение тому, что память видит не чем иным, как набором чисел.

Почти во всех современных компьютерах каждая ячейка памяти настроена для хранения двоичных чисел группами по восемь бит (называемых байтом ). Каждый байт может представлять 256 различных чисел (2 = 256); либо от 0 до 255, либо от −128 до +127. Для хранения больших чисел могут использоваться несколько последовательных байтов (обычно два, четыре или восемь). Когда требуются отрицательные числа, они обычно сохраняются в нотации с дополнением до двух. Возможны и другие варианты, но их обычно не видно за пределами специализированных приложений или исторического контекста. Компьютер может хранить в памяти любую информацию, если она может быть представлена ​​в числовом виде. Современные компьютеры имеют миллиарды или даже триллионы байтов памяти.

ЦП содержит специальный набор ячеек памяти, называемых регистрами, которые можно читать и записывать гораздо быстрее, чем в область основной памяти. Обычно существует от двух до ста регистров в зависимости от типа процессора. Регистры используются для наиболее часто используемых элементов данных, чтобы избежать доступа к основной памяти каждый раз, когда требуются данные. Поскольку данные постоянно обрабатываются, уменьшение потребности в доступе к основной памяти (которая часто является медленной по сравнению с ALU и блоками управления) значительно увеличивает скорость компьютера.

Основная память компьютера бывает двух основных разновидностей:

RAM может быть прочитан и записан в любое время им управляет ЦП, но ПЗУ предварительно загружено данными и программным обеспечением, которые никогда не меняются, поэтому ЦП может только читать из него. ПЗУ обычно используется для хранения начальных инструкций по запуску компьютера. Как правило, содержимое ОЗУ стирается при выключении питания компьютера, но ПЗУ сохраняет свои данные на неопределенный срок. В ПК ПЗУ содержит специализированную программу под названием BIOS, которая организует загрузку операционной системы компьютера с жесткого диска в ОЗУ при каждом включении или перезагрузке компьютера. Во встроенных компьютерах , которые часто не имеют дисководов, все необходимое программное обеспечение может храниться в ПЗУ. Программное обеспечение, хранящееся в ПЗУ, часто называют прошивкой, потому что теоретически оно больше похоже на оборудование, чем на программное обеспечение. Флэш-память стирает различие между ПЗУ и ОЗУ, поскольку она сохраняет свои данные при выключении, но также может перезаписываться. Однако он обычно намного медленнее, чем обычные ПЗУ и ОЗУ, поэтому его использование ограничено приложениями, в которых высокая скорость не требуется.

В более сложных компьютерах может быть одна или несколько кэш-памяти RAM , которые медленнее, чем регистры, но быстрее, чем основная память. Обычно компьютеры с таким типом кэша предназначены для автоматического перемещения часто необходимых данных в кэш, часто без необходимости какого-либо вмешательства со стороны программиста.

Ввод / вывод (I / O)

Жесткие диски - обычные устройства хранения данных, используемые с компьютерами.

Ввод / вывод - это средство, с помощью которого компьютер обменивается информацией с внешним миром. Устройства, обеспечивающие ввод или вывод на компьютер, называются периферийными устройствами. На типичном персональном компьютере периферийные устройства включают в себя устройства ввода, такие как клавиатура и мышь, и устройства вывода, такие как дисплей и принтер. Жесткие диски, дисководы гибких дисков и дисководы оптических дисков служат как устройствами ввода, так и вывода. Компьютерные сети - это еще одна форма ввода-вывода. Устройства ввода-вывода часто представляют собой сложные компьютеры со своими собственными процессорами и памятью. графический процессор может содержать пятьдесят или более крошечных компьютеров, которые выполняют вычисления, необходимые для отображения трехмерной графики. Современные настольные компьютеры содержат много компьютеров меньшего размера, которые помогают главному процессору выполнять операции ввода-вывода. Плоский экран эпохи 2016 года содержит собственную компьютерную схему.

Многозадачность

Хотя компьютер можно рассматривать как выполняющий одну гигантскую программу, хранящуюся в его основной памяти, в некоторых системах необходимо создать видимость одновременного запуска нескольких программ. Это достигается за счет многозадачности, то есть быстрого переключения компьютера между запуском каждой программы по очереди. Одно из средств, с помощью которого это делается, - это специальный сигнал, называемый прерыванием, который может периодически заставлять компьютер прекращать выполнение инструкций на месте и вместо этого делать что-то другое. Запомнив, где он выполнялся до прерывания, компьютер может вернуться к этой задаче позже. Если несколько программ работают «одновременно». тогда генератор прерываний может вызывать несколько сотен прерываний в секунду, вызывая каждый раз переключение программы. Поскольку современные компьютеры обычно выполняют инструкции на несколько порядков быстрее, чем человеческое восприятие, может показаться, что многие программы работают одновременно, даже если в любой момент времени выполняется только одна. Этот метод многозадачности иногда называют «разделением времени», поскольку каждой программе по очереди выделяется «отрезок времени».

До эры недорогих компьютеров основное использование многозадачности заключалось в том, чтобы позволить многим людям использовать один и тот же компьютер. Казалось бы, многозадачность заставит компьютер, который переключается между несколькими программами, работать медленнее, прямо пропорционально количеству запущенных программ, но большинство программ тратят большую часть своего времени на ожидание, пока медленные устройства ввода / вывода завершат свои задачи. Если программа ожидает, пока пользователь щелкнет мышью или нажмет клавишу на клавиатуре, то она не займет «временной интервал», пока не произойдет событие, которого она ожидает. Это освобождает время для выполнения других программ, так что многие программы могут выполняться одновременно без неприемлемой потери скорости.

Многопроцессорность

Cray спроектировал множество суперкомпьютеров, интенсивно использующих многопроцессорность.

Некоторые компьютеры спроектированы так, чтобы распределять свою работу между несколькими процессорами в многопроцессорной конфигурации, метод, который когда-то применялся только в больших и мощных машины, такие как суперкомпьютеры, мэйнфреймы и серверы. Многопроцессорные и многоядерные (несколько процессоров на одной интегральной схеме) персональные и портативные компьютеры теперь широко доступны и, как следствие, все чаще используются на рынках младшего класса.

Суперкомпьютеры, в частности, часто имеют весьма уникальную архитектуру, которая значительно отличается от базовой архитектуры хранимых программ и от компьютеров общего назначения. Они часто включают тысячи процессоров, настраиваемые высокоскоростные межсоединения и специализированное вычислительное оборудование. Такие конструкции, как правило, полезны только для специализированных задач из-за большого масштаба организации программы, необходимой для успешного использования большей части доступных ресурсов сразу. Суперкомпьютеры обычно используются в крупномасштабных приложениях моделирования, визуализации графики и криптографии, а также в других так называемых «смущающе параллельных "задачи.

Программное обеспечение

Программное обеспечение относится к частям компьютера, не имеющим материальной формы, таким как программы, данные, протоколы и т. Д. Программное обеспечение - это часть компьютерной системы, состоящая из закодированных информация или компьютерные инструкции, в отличие от физического аппаратного обеспечения, на котором построена система. Компьютерное программное обеспечение включает компьютерные программы, библиотеки и соответствующие неисполняемые данные, такие как онлайн-документация или цифровые носители. Его часто делят на системное программное обеспечение и прикладное программное обеспечение Компьютерное оборудование и программное обеспечение требуют друг друга, и ни одно из них не может реально использоваться отдельно. Когда программное обеспечение хранится в аппаратном обеспечении, которое не может быть легко изменено, например, с BIOS ПЗУ в IBM PC-совместимом компьютере, его иногда называют «прошивкой».

Операционная система / Системное программное обеспечениеUnix и BSD UNIX System V, IBM AIX, HP-UX, Solaris (SunOS ), IRIX, Список операционных систем BSD
GNU / Linux Список дистрибутивов Linux, Сравнение дистрибутивов Linux
Microsoft Windows Windows 95, Windows 98, Windows NT, Windows 2000, Windows ME, Windows XP, Windows Vista, Windows 7, Windows 8, Windows 8.1, Windows 10
DOS 86-DOS (QDOS), IBM PC DOS, MS-DOS, DR-DOS, FreeDOS
Операционные системы Macintosh Классическая Mac OS, macOS (ранее OS X и Mac OS X)
Встроенные и реального времени Список встроенных операционных систем
ЭкспериментальнаяAmoeba, Oberon / Bluebottle, Plan 9 из Bell Labs
Библиотека Мультимедиа DirectX, OpenGL, OpenAL, Vulkan (API)
Библиотека программированияСтандартная библиотека C, Стандартный шаблон Библиотека
Данные Протокол TCP / IP, Кермит, FTP, HTTP, SMTP
Формат файла HTML, XML, JPEG, MPEG, PNG
Пользовательский интерфейс Графический пользовательский интерфейс (WIMP )Microsoft Windows, GNOME, KDE, QNX Photon, CDE, GEM, Aqua
Текстовый интерфейс пользователя Интерфейс командной строки, Текстовый интерфейс пользователя
Приложение Программное обеспечениеОфисный пакет Текстовый редактор, Настольная издательская система, Программа презентации, Система управления базами данных, Планирование и управление временем, Электронная таблица, Бухгалтерское программное обеспечение
Доступ в ИнтернетБраузер, Почтовый клиент, Веб-сервер, Агент передачи почты, Мгновенный обмен сообщениями
Дизайн и производствоКомпьютерное проектирование, Автоматизированное производство, Управление производством, Роботизированное производство, Управление цепочкой поставок
Графика , Разработчик 3D-моделей, Редактор анимации, 3D компьютерная графика, Обработка изображений
Аудио , Воспроизведение аудио, Микширование, Синтез звука, Компьютерная музыка
Программная инженерия Компилятор, Ассемблер, Интерпретатор, Отладчик, Интегрированная среда разработки, Анализ производительности программного обеспечения, Контроль версий, Управление конфигурацией программного обеспечения
ОбразовательныеEdutainment, Образовательные игры, Серьезная игра, Симулятор полета
Игры Стратегия, Аркада, Головоломка, Симуляторы, Шутер от первого лица, Платформа, Многопользовательская игра, Интерактивная фантастика
РазноеИскусство ificial Intelligence, Антивирусное ПО, Сканер вредоносных программ, Установщик / Системы управления пакетами, Файловый менеджер

Языки

Существуют тысячи различных языков программирования - некоторые предназначены для общего назначения, другие полезны только для узкоспециализированных приложений.

Языки программирования
Списки языков программированияХронология языков программирования, Список языков программирования по категориям, Список поколений языков программирования, Список языков программирования, Неанглийские языки программирования
Обычно используются языки ассемблера ARM, MIPS, x86
Обычно используются языки программирования высокого уровня Ada, BASIC, C, C ++, C#, COBOL, Fortran, PL / I, REXX, Java, Lisp, Pascal, Object Pascal
Часто используемые сценарии языков сценарий Борна, JavaScript, Python, Ruby, PHP, Perl

Программы

Отличной чертой современные компьютеры, которые отличает их от всех других машин, это то, что они могут быть запрограммированы. Это означает некоторый тип инструкций (программа ) может быть передан компьютеру, и он будет их обрабатывать. Современные компьютеры, основанные на энергии фон Неймана, часто имеют машинный код в императивного языка программирования. На практике компьютерная программа может состоять всего из нескольких инструкций или расширяться до многих миллионов инструкций, например, программы для текстовых процессоров и веб-браузеров. Типичный современный компьютер может выполнять миллиарды инструкций в секунду (гигафлопс ) и допускает ошибки в течение многих лет работы. Для написания больших компьютерных программ, состоящих из нескольких миллионов инструкций, команда программистов может потребоваться лет, и из-за сложности задачи почти наверняка будут ошибки.

Архитектура хранимой программы

Копия Manchester Baby, первый в мире электронного компьютер с хранимой программой, в Музее и промышленности в Манчестере, Англия

Этот раздел относится к наиболее распространенным компьютерам на базе RAM-машины.

В большинстве случаев компьютерные инструкции просты: добавить одно число к другому, переместить некоторые данные из одного места в другое, отправить сообщение на какое-то внешнее устройство и т. Д. Эти считываются с памяти компьютера и обычно выполняются (выполняются ) в том порядке, в котором они были заданы. Однако обычно специальные инструкции, которые предлагают компьютер перейти вперед или назад в программу продолжения. Они называются инструкциями «перехода» (или ветвями ). Кроме того, инструкции племенной инструкции условно, так что разные инструкции разные инструкции в зависимости от результата предыдущего вычисления или некоторого внешнего события. Многие компьютерные системы подпрограммы , предоставляющие тип перехода, который «запоминает» место перехода, другую инструкцию для возврата к инструкции, следующую за этой инструкцией перехода.

Выполнение программы можно сравнить с чтением книги. В то время как человек обычно читает слово по порядку, он может иногда возвращаться к более раннему месту в тексте или пропускать разделы, которые не расходуются. Точно так же компьютер может иногда возвращаться и повторять инструкции в каком-то разделе программы снова и снова, пока не будет выполнено какое-то внутреннее условие. Это называется потоком управления в программе, что позволяет компьютеру многократно выполнять задачи без вмешательства человека.

Для сравнения, человек, использующий карманный калькулятор, может выполнить базовую арифметическую операцию, например, сложить два числа всего используемых кнопок. Но для того, чтобы сложить вместе все числа от 1 до 1000, потребуются тысячий кнопок и много времени с почти наверняка ошибкой. С другой стороны, компьютер можно запрограммировать на это с помощью всего нескольких простых инструкций. Следующий пример написан на языке ассемблера MIPS :

begin: addi $ 8, $ 0, 0 # инициализировать сумму до 0 addi $ 9, $ 0, 1 # установить число для добавления = 1 цикл: slti $ 10, $ 9, 1000 # проверяем, меньше ли число 1000 beq $ 10, $ 0, завершаем # если нечетное число больше n, то выходим, добавляем $ 8, $ 8, $ 9 # добавляем новую сумму $ 9, $ 9, 1 # получаем следующий номер j loop # повторяем Завершение процесса суммирования: добавить $ 2, $ 8, $ 0 # добавить сумму в выходной регистр

После выполнения команды на запуск этой компьютер выполнит повторяющуюся программу сложения без дальнейшего вмешательства человека. Он почти никогда не ошибется, а современный ПК может выполнить задачу за доли секунды.

Машинный код

В большинстве компьютеров отдельные инструкции сохраняются как машинный код, где каждая инструкция присваивается уникальный номер (ее код операции или код операции для краткости). Команда сложения двух чисел будет иметь один код операции; команда для их умножения будет иметь другой код операции и так далее. Самые простые компьютеры способны выполнять любые из нескольких различных инструкций; у более сложных компьютеров есть несколько сотен на выбор, каждый с уникальным числовым кодом. Память компьютера может хранить числа, она также может хранить команд. Это приводит к тому важному факту, что можно представить в виде списков чисел и ими манипулировать внутри компьютера так же, как числовые данные. Фундаментальная концепция хранения программной памяти компьютера вместе с данными, которые они работают, является стержнем системы фон Неймана, или хранимой программы. В некоторых случаях компьютер может хранить часть или свою программу в памяти, которая хранится отдельно от данных, с которой он работает. Это называется архитектурой Гарварда в честь компьютера Гарвард Марк I. Современные компьютеры фон Неймана демонстрируют некоторые черты гарвардской архитектуры в своих конструкциях, например, в кэшах ЦП.

. Можно писать компьютерные программы в виде длинных списков чисел (машинный язык ) и хотя этот метод использовался на многих ранних компьютерах, на практике это обычно и подвержено ошибкам, особенно для сложных программ. Вместо этого в каждой инструкции можно дать короткое имя, которое указывает на ее функцию и легко запоминается - это функция и легко запоминается - , такое как ADD, SUB, MULT или JUMP. Эти мнемоники известны как компьютерный язык ассемблер. Преобразование программ, написанных на ассемблере, что компьютер действительно может понять (машинный язык), обычно выполняется компьютерной программой, называемой ассемблером.

Перфокарта 1970-х годов , содержащая одну строку из программы Фортран. На карточке написано: «Z (1) = Y + W (1)» и для идентификации она помечена «PROJ039».

Язык программирования

Языки программирования включают способы указания программ для запуска на компьютерех. В отличие от естественных, языки программирования разработаны таким образом, чтобы не допускать языков двусмысленности и быть краткими. Это чисто письменные языки, и их часто трудно читать вслух. Обычно они либо транслируются в машинный код компилятором , либо ассемблером перед запуском, либо транслируются непосредственно во время выполнения интерпретатором . Иногда программы выполняются гибридным методом из двух методов.

Языки низкого уровня

Машинные языки и языки ассемблера, которые представляют (вместе называемые языками программирования низкого уровня), как правило, уникальны для конкретной архитектуры центрального процессора компьютера (ЦП ). Например, процессор ARM с архитектурой (такой, который можно найти в смартфоне или портативной видеоигре ) не может понимать машинный язык x86 ЦП, который может быть в ПК. Исторически сложилось так, что было создано и широко использовалось множество других архитектурных ЦП, в частности, MOS Technology 6502 и 6510 в дополнение к Zilog Z80.

Языки высокого уровня

Хотя это значительно проще, чем на машинном языке, написание длинных программ на языке ассемблера часто затруднено, а также подвержено ошибкам. Поэтому большинство практических программ написано на более абстрактных языках программирования высокого уровня, которые могут более удобно выражать потребности программиста (и тем самым уменьшить количество ошибок программиста). Языки высокого уровня обычно «компилируются» в машинный язык (или иногда в язык ассемблера, а затем в машинный язык) с помощью другой компьютерной программы, называемой компилятором. Языки высокого уровня меньше связаны с работой целевого компьютера, чем язык ассемблера, и больше связаны с языком и структурой проблем, которые должны быть решены окончательной программой. Поэтому часто можно использовать разные компиляторы для перевода одной и той же программы на языке высокого уровня на машинный язык многих различных типов компьютеров. Это часть средств, с помощью которых программное обеспечение, такое как видеоигры, может быть доступно для различных компьютерных архитектур, таких как персональные компьютеры и различные игровые консоли.

Разработка программ

Разработка программ небольших программ относительно простой и включает в себя анализ проблемы, сбор входных данных, использование программных конструкций в пределах языков, разработку или использование установленных процедур и алгоритмов, предоставление данных для устройств вывода и решения проблемы, если это применимо. По мере того, как проблемы становятся более крупными и сложными, появляются такие функции, как подпрограммы, модули, формальная документация и новые парадигмы, такие как объектно-ориентированное программирование. Большие программы, включающие тысячи строк кода и более, требуют формальных программных методологий. Задача разработки больших программных систем представляет собой значительную интеллектуальную задачу. Производство программного обеспечения с приемлемо высокой надежностью в рамках предсказуемого графика и бюджета исторически было трудным; академическая и профессиональная дисциплина программная инженерия сосредоточена именно на этой задаче.

Ошибки

Фактическая первая компьютерная ошибка, моль, обнаруженная в ловушке реле компьютера Harvard Mark II

Ошибки в компьютерных программах называются «ошибками ». Они могут быть доброкачественными и не влиять на полезность программы или иметь лишь незначительные эффекты. Но в некоторых случаях они могут привести к тому, что программа или вся система «зависает », перестают реагировать на ввод, такой как щелчки мыши или нажатия клавиш, полностью выходить из строя или сбой. В противном случае доброкачественные ошибки могут иногда использоваться для злонамеренных действий недобросовестным пользователем, написавшим эксплойт, код, предназначенный для использования ошибки и нарушения правильной работы компьютера. Ошибки обычно возникают не по вине компьютера. Поскольку компьютеры просто выполняют данные им инструкции, ошибки почти всегда являются результатом ошибки программиста или недосмотра при разработке программы. Адмирал Грейс Хоппер, американский ученый-компьютерщик и разработчик первого компилятора, считается за то, что впервые применила термин «ошибки» в вычислениях после того, как была обнаружена мертвая бабочка, замыкающая реле компьютер Harvard Mark II в сентябре 1947 года.

Сеть и Интернет

Визуализация части маршрутов в Интернете

Компьютеры были используется для координации информации между несколькими точками с 1950-х годов. Система SAGE вооруженных сил США была первым крупномасштабным примером такой системы, которая привела к появлению ряда коммерческих систем специального назначения, таких как Sabre. В 1970-е годы компьютерные инженеры исследовательских институтов США начали соединять свои компьютеры вместе с помощью телекоммуникационных технологий. Работа финансировалась ARPA (ныне DARPA ), и образовавшаяся компьютерная сеть была названа ARPANET. Технологии, которые сделали возможным появление Arpanet, распространялись и развивались.

Со временем сеть распространилась за пределы академических и военных институтов и стала известна как Интернет. Появление сетей повлекло за собой переопределение природы и границ компьютера. Компьютерные операционные системы и приложения были модифицированы, чтобы включить возможность определять и получать доступ к ресурсам других компьютеров в сети, таким как периферийные устройства, хранимая информация и т.п., как расширения ресурсов отдельного компьютера. Первоначально эти возможности были доступны в первую очередь людям, работающим в сфере высоких технологий, но в 1990-х годах произошло распространение таких приложений, как электронная почта и World Wide Web, в сочетании с самыми дешевыми и быстрыми сетевыми технологиями, таких как Ethernet и ADSL, привело к тому, что компьютерные сети стали почти повсеместно. На самом деле количество компьютеров, объединенных в сеть, феноменально растет. Очень большая часть системных компьютеров регулярно подключается к Интернету для связи и получения информации. «Беспроводные» сети, часто использующие сети мобильных телефонов, означают, что сети становятся все более крупными в мобильных вычислительных средах.

Нетрадиционные компьютеры

Компьютер не обязательно должен быть электронным, не иметь даже процессора, RAM или даже жесткий диск. Современное определение компьютера: «Устройство, которое вычисляет, особенно программируемую [обычную] машину, которая выполняет функции высокоскоростных математических или логических операций или который собирает, хранит, коррелирует или

Будущее

Ведущие активные исследования по созданию компьютеров на основе многих многообещающих новых типов технологий, таких как такие. как оптические компьютеры, ДНК-компьютеры, нейронные компьютеры и квантовые компьютеры. Большинство компьютеров универсальны и способны вычислять любую вычислимую функцию, и ограничены только объем памяти и скорость работы. утончить очень разную производительность для конкретных задач; например, квантовые компьютеры компьютерные очень быстро некоторые современные алгоритмы шифрования (с помощью квантового взлома факторизации ).

Парадигмы компьютерной архитектуры

Существует много типов компьютерных архитектур :

Из всех этих абстрактных машин квантовый компьютер является наиболее многообещающим для революции в вычислениях. Логические ворота - это общая абстракция, которая может использовать к большинству из приведенных выше цифровых или аналоговых парадигм. Возможность выполнять и списки инструкций, называемые программы, поддерживает компьютеры чрезвычайно универсальными, отличная их от калькуляторов. Тезис Черча - Тьюринга является математическим утверждением этой универсальности: любой компьютер с минимальными возможностями (будучи полным по Тьюрингу), в принципе, способен выполнять те же задачи, что и любой другой компьютер может выполнить. Следовательно, любой тип компьютера (нетбук, суперкомпьютер, клеточный автомат и т. Д.) Способен выполнять одни и те же вычислительные задачи при наличии достаточного времени и возможностей память..

Искусственный интеллект

Компьютер будет решать проблемы точно так, как он запрограммирован, без учета эффективности, альтернативных решений, сокращений или виновников в коде. Компьютерные, которые обучаются и адаптируются, являются частью развивающейся программы искусственного интеллекта и машинного обучения. Продукты на основе искусственного интеллекта обычно делятся на две основные категории: системы на основе правил и системы распознавания образов. Системы, основанные на правилах, используют правила, используемые человеческими экспертами. Системы на основе шаблонов используют данные о проблеме для создания выводов. Примеры систем на основе шаблонов включают распознавание голоса, распознавание шрифтов, перевод и развивающуюся область онлайн-маркетинга.

Профессии и организации

По мере того как использование компьютеров распространилось по всему обществу, растет число профессий, связанных с компьютерами.

Компьютерные профессии
Аппаратные средстваЭлектротехника, Электронная инженерия, Компьютерная инженерия, Телекоммуникационная техника, Оптическая инженерия, Наноинженерия
Программное обеспечениеИнформатика, Компьютерная инженерия, Настольная издательская система, Человек– взаимодействие с компьютером, Информационные технологии, Информационные системы, Вычислительные науки, Программная инженерия, Индустрия видеоигр, Веб-дизайн

Потребность в том, чтобы компьютеры хорошо работали вместе и могли обмениваться информацией, породила потребность во многих организациях по стандартизации, клубах и обществах как формального, так и неформального характера.

Организации
Группы стандартовANSI, IEC, IEEE, IETF, ISO, W3C
Профессиональные обществаACM, AIS, IET, IFIP, BCS
Free / программное обеспечение с открытым исходным кодом группыFree Software Foundation, Mozilla Foundation, Apache Software Foundation

См. Также

Ссылки

Примечания

Внешние ссылки

Последняя правка сделана 2021-05-15 08:30:42
Содержание доступно по лицензии CC BY-SA 3.0 (если не указано иное).
Обратная связь: support@alphapedia.ru
Соглашение
О проекте