Инструменты пользователя

Инструменты сайта


igor:istoria

Различия

Показаны различия между двумя версиями страницы.

Ссылка на это сравнение

Предыдущая версия справа и слеваПредыдущая версия
Следующая версия
Предыдущая версия
Следующая версияСледующая версия справа и слева
igor:istoria [2019/04/11 21:37] – [Программирование в средние века] igorigor:istoria [2019/04/24 10:08] – [Три поколения цифровых электронных вычислительных машин] igor
Строка 80: Строка 80:
 Первобытная эпоха в компьютерном мире продолжалась до середины XX века и характеризовалась следующим: \\ Первобытная эпоха в компьютерном мире продолжалась до середины XX века и характеризовалась следующим: \\
 * Половина объема вычислений, производимых во всем мире с применением технических средств, приходилась на механические и электромеханические вычислительные устройства, выполняющие только одиночные или однообразно повторяющиеся операции под непрерывным управлением человека, а другая половина - на специализированные приборы, значительная часть которых работала по аналоговому принципу и не обеспечивала возможности сменить программу. Появление программируемых цифровых компьютеров ознаменовало собой первую __смену исторических эпох__ (не путать с поколениями ЭВМ). \\ * Половина объема вычислений, производимых во всем мире с применением технических средств, приходилась на механические и электромеханические вычислительные устройства, выполняющие только одиночные или однообразно повторяющиеся операции под непрерывным управлением человека, а другая половина - на специализированные приборы, значительная часть которых работала по аналоговому принципу и не обеспечивала возможности сменить программу. Появление программируемых цифровых компьютеров ознаменовало собой первую __смену исторических эпох__ (не путать с поколениями ЭВМ). \\
-Не существовало ни общей теории построения вычислительных машин, ни каких-либо единых стандартов их конструирования: каждый автор создавал свое детище с нуля, был вынужден вычерчивать отдельно каждую деталь. Все это сильно замедляло работу. \\+Предлагаемый здесь термин "первобытная эпоха" отражает то обстоятельство, что в эту эпоху не существовало ни общей теории построения вычислительных машин, ни каких-либо единых стандартов их конструирования: каждый автор создавал свое детище с нуля, был вынужден вычерчивать отдельно каждую деталь. Все это сильно замедляло работу. \\
 * Хотя к концу эпохи уже налаживалось серийное производство вычислительных устройств на заводах, основной движущей силой прогресса были одиночные гении-изобретатели, многие из которых остались непонятыми и непризнанными. Что же касается программирования, то его по сути не было, если не считать той самой первой программы, которую якобы составила Ада Лавлейс. \\ \\ * Хотя к концу эпохи уже налаживалось серийное производство вычислительных устройств на заводах, основной движущей силой прогресса были одиночные гении-изобретатели, многие из которых остались непонятыми и непризнанными. Что же касается программирования, то его по сути не было, если не считать той самой первой программы, которую якобы составила Ада Лавлейс. \\ \\
 ===== 50-е-60-е годы ХХ века - эпоха древней компьютерной цивилизации ===== ===== 50-е-60-е годы ХХ века - эпоха древней компьютерной цивилизации =====
Строка 118: Строка 118:
 ==== Три поколения цифровых электронных вычислительных машин ==== ==== Три поколения цифровых электронных вычислительных машин ====
 Электронные цифровые вычислительные машины //первого  поколения// (1950-х годов) строились на электронных лампах. Они (и лампы, и машины) были громоздки и нежны и потребляли очень много электроэнергии. Так, например, "Стрела" потребляла мощность 150 кВт (как трамвай на полном ходу), из них ровно половина - 75 кВт - приходилась на вентиляторы, обеспечивавшие охлаждение машины. Это несколько странно, потому что у большинства других компьютеров доля энергозатрат на охлаждение гораздо меньше. Устанавливались они в специально оборудованных зданиях или помещениях - вычислительных центрах (ВЦ). Последняя ламповая машина - "Урал-4" - строилась на Пензенском заводе до 1964 г. \\ Электронные цифровые вычислительные машины //первого  поколения// (1950-х годов) строились на электронных лампах. Они (и лампы, и машины) были громоздки и нежны и потребляли очень много электроэнергии. Так, например, "Стрела" потребляла мощность 150 кВт (как трамвай на полном ходу), из них ровно половина - 75 кВт - приходилась на вентиляторы, обеспечивавшие охлаждение машины. Это несколько странно, потому что у большинства других компьютеров доля энергозатрат на охлаждение гораздо меньше. Устанавливались они в специально оборудованных зданиях или помещениях - вычислительных центрах (ВЦ). Последняя ламповая машина - "Урал-4" - строилась на Пензенском заводе до 1964 г. \\
-Электронные лампы были дороги в изготовлении, имели небольшой срок службы и ограниченное быстродействие, так что стоимость каждой вычислительной операции, произведенной с помощью ламп, была высока. Не хотелось бы втравливать читателя в дебри экономики, но придется хотя бы на первоклашечно-промакашечном уровне кое-какие вопросы затронуть. Денег стоит не только сам компьютер - определенных расходов потребует и его повседневная эксплуатация. Компьютер нужно установить в соответствующем здании, которое размещается на соответствующем земельном участке... Здание нужно обеспечить освещением, отоплением, охраной. Компьютер потребляет электроэнергию - это понятно всем, но еще нам потребуется бумага, перфокарты или то, что придет им на смену, и, извините за вульгарные технические подробности, спирт... Мало-мальски грамотному экономисту даже не потребуются подробные расчеты, чтобы прийти к очевидному решению: каков бы ни был наш бюджет, компьютеры нужно строить в минимальном количестве, но максимально мощные. В идеале - один-единственный компьютер, но такой, в котором каждая лампа работала бы с максимальной отдачей (в начале 50-х годов только так и поступали). Дробление бюджета на N компьютеров меньшей мощности привело бы к тому, что суммарный объем работы, которую эти компьютеры могут поднять за все время своей службы, уменьшится, не говоря уж о том, что какие-то задачи им будут просто не по зубам. \\ 
 В 1947 г. был изобретен полупроводниковый прибор - транзистор, способный выполнять функции, аналогичные функциям электронных ламп, но более компактный, надежный и энергоэкономичный. Первые транзисторы (точечные) оказались неудовлетворительными, затем еще несколько лет потребовалось для налаживания массового производства транзисторов, и в итоге ближе к 1960 г. появились ЭВМ //второго поколения// (подчеркиваю: мы говорим о поколениях электронных цифровых машин, а не компьютеров вообще). \\ В 1947 г. был изобретен полупроводниковый прибор - транзистор, способный выполнять функции, аналогичные функциям электронных ламп, но более компактный, надежный и энергоэкономичный. Первые транзисторы (точечные) оказались неудовлетворительными, затем еще несколько лет потребовалось для налаживания массового производства транзисторов, и в итоге ближе к 1960 г. появились ЭВМ //второго поколения// (подчеркиваю: мы говорим о поколениях электронных цифровых машин, а не компьютеров вообще). \\
 +
 +Электронные лампы были дороги в изготовлении, имели небольшой срок службы и ограниченное быстродействие, так что стоимость каждой вычислительной операции, произведенной с помощью ламп, была высока. Денег стоит не только сам компьютер - определенных расходов потребует и его повседневная эксплуатация. Компьютер нужно установить в соответствующем здании, которое размещается на соответствующем земельном участке... Здание нужно обеспечить освещением, отоплением, охраной. Компьютер потребляет электроэнергию - это понятно всем, но еще нам потребуется бумага, перфокарты или то, что придет им на смену, и, извините за вульгарные технические подробности, спирт... Мало-мальски грамотному экономисту даже не потребуются подробные расчеты, чтобы прийти к очевидному решению: каков бы ни был наш бюджет, компьютеры нужно строить в минимальном количестве, но максимально мощные. В идеале - один-единственный компьютер, но такой, в котором каждая лампа работала бы с максимальной отдачей (в начале 50-х годов только так и поступали). Дробление бюджета на N компьютеров меньшей мощности привело бы к тому, что суммарный объем работы, которую эти компьютеры могут поднять за все время своей службы, уменьшится, не говоря уж о том, что какие-то задачи им будут просто не по зубам. \\
 +Применение транзисторов радикально снизило стоимость вычислительной операции, но переписывать начисто всю ту экономику, которой мы только что коснулись, было еще рано - это произойдет в 70-е годы, с появлением больших микросхем.
 На следующих фото - платы (типовые элементы замены - ТЭЗ) советских транзисторных ЭВМ, датируемые 1969, 1981 и 1975 годами соответственно. Две последних, очевидно, были изготовлены как запчасти к машинам более раннего выпуска. \\ На следующих фото - платы (типовые элементы замены - ТЭЗ) советских транзисторных ЭВМ, датируемые 1969, 1981 и 1975 годами соответственно. Две последних, очевидно, были изготовлены как запчасти к машинам более раннего выпуска. \\
 {{igor:istoria-plata-drtl.jpg?400}} \\ {{igor:istoria-plata-drtl.jpg?400}} \\
Строка 125: Строка 127:
 Далее перед нами сфотографированная с большим увеличением структура модуля оперативной памяти ("куба") на ферритовых кольцевых сердечниках. Для сравнения в верхней части снимка - сантиметровая линейка. Датировать этот модуль можно лишь приблизительно: 60-е-70-е годы XX века. \\ Далее перед нами сфотографированная с большим увеличением структура модуля оперативной памяти ("куба") на ферритовых кольцевых сердечниках. Для сравнения в верхней части снимка - сантиметровая линейка. Датировать этот модуль можно лишь приблизительно: 60-е-70-е годы XX века. \\
 {{igor:istoria-ram-ferrit.jpg?400}} \\ {{igor:istoria-ram-ferrit.jpg?400}} \\
-Применение транзисторов радикально снизило стоимость вычислительной операции, но переписывать начисто всю ту экономику, которой мы только что коснулись, было еще рано - это произойдет в 70-е годы, с появлением больших микросхем. Однако уже на втором поколении ЭВМ стало возможным разделение двух направлений развития вычислительной техники: с одной стороны, никто не отменял //"больших"// ЭВМ с новыми техническими возможностями, казавшимися немыслимыми всего несколько лет назад, и с другой стороны, был начат выпуск более простых //малых ЭВМ (мини-ЭВМ)//, которые количественно и качественно не уступают большим ЭВМ предыдущего поколения, но при этом компактны и дешевы, так что их можно строить в больших количествах. Примерами малых ЭВМ являются рассмотренные выше "Наири", "Проминь" и МИР. \\+ Однако уже на втором поколении ЭВМ стало возможным разделение двух направлений развития вычислительной техники: с одной стороны, никто не отменял //"больших"// ЭВМ с новыми техническими возможностями, казавшимися немыслимыми всего несколько лет назад, и с другой стороны, был начат выпуск более простых //малых ЭВМ (мини-ЭВМ)//, которые количественно и качественно не уступают большим ЭВМ предыдущего поколения, но при этом компактны и дешевы, так что их можно строить в больших количествах. Примерами малых ЭВМ являются рассмотренные выше "Наири", "Проминь" и МИР. \\
 В начале 60-х годов XX века были изобретены микросхемы, применение которых позволило продолжить тенденцию к уменьшению размеров и стоимости компьютеров. Так появилось //третье поколение// ЭВМ, но о нем чуть позже, потому что его появление совпало во времени с наступлением средних веков. \\ \\ В начале 60-х годов XX века были изобретены микросхемы, применение которых позволило продолжить тенденцию к уменьшению размеров и стоимости компьютеров. Так появилось //третье поколение// ЭВМ, но о нем чуть позже, потому что его появление совпало во времени с наступлением средних веков. \\ \\
 ==== На земле, в небесах и на море ==== ==== На земле, в небесах и на море ====
Строка 276: Строка 278:
 Выше мы уже употребили термин "системы виртуальных машин" - настала пора хоть немного разобраться, что это такое. Сформулируем так: **//виртуальная машина//** (ВМ) - это машина, которой нет, но функции ее выполняются. Это программный инструмент в составе операционной системы, который придается в помощь каждой прикладной программе с целью преодоления ограничений, накладываемых реальной машиной. Это оболочка (контейнер), изолирующий "свою" прикладную программу от всего внешнего мира, как программного, так и железячного, и эмулирующий (воспроизводящий) "целевую платформу" (компьютер, которого у нас нет, но который мы хотели бы иметь) на имеющемся компьютере ("хост-платформе"). Системные вызовы прикладной программы воспринимаются виртуальной машиной и при необходимости передаются операционной системе, так что прикладная программа живет в виртуальной машине не как рак-отшельник в раковине, а скорее как морская свинка в клетке, ни в чем не нуждаясь, никому не мешая и ничего не зная о том, что происходит за стенами клетки. \\ Выше мы уже употребили термин "системы виртуальных машин" - настала пора хоть немного разобраться, что это такое. Сформулируем так: **//виртуальная машина//** (ВМ) - это машина, которой нет, но функции ее выполняются. Это программный инструмент в составе операционной системы, который придается в помощь каждой прикладной программе с целью преодоления ограничений, накладываемых реальной машиной. Это оболочка (контейнер), изолирующий "свою" прикладную программу от всего внешнего мира, как программного, так и железячного, и эмулирующий (воспроизводящий) "целевую платформу" (компьютер, которого у нас нет, но который мы хотели бы иметь) на имеющемся компьютере ("хост-платформе"). Системные вызовы прикладной программы воспринимаются виртуальной машиной и при необходимости передаются операционной системе, так что прикладная программа живет в виртуальной машине не как рак-отшельник в раковине, а скорее как морская свинка в клетке, ни в чем не нуждаясь, никому не мешая и ничего не зная о том, что происходит за стенами клетки. \\
 В древнюю эпоху, когда программы на компьютере исполнялись одна за другой, проблема обеспечения "уживаемости" множества прикладных программ на одной машине не стояла. Когда же она возникла, виртуальные машины стали одним из вариантов решения этой проблемы. Если прикладная программа делает что-то не то, то последствия ее действий не выходят за пределы "своей" виртуальной машины, так что она не может серьезно навредить. \\ В древнюю эпоху, когда программы на компьютере исполнялись одна за другой, проблема обеспечения "уживаемости" множества прикладных программ на одной машине не стояла. Когда же она возникла, виртуальные машины стали одним из вариантов решения этой проблемы. Если прикладная программа делает что-то не то, то последствия ее действий не выходят за пределы "своей" виртуальной машины, так что она не может серьезно навредить. \\
-Идея виртуальных машин позволяет решить проблему переносимости программ с компьютера на компьютер на новом уровне. Представим, что у нас имеется игровая программа, созданная когда-то раньше для эксплуатации на игровой приставке, а теперь мы хотим эксплуатировать ее на обычном компьютере. Теперь мы можем категорически отказаться от переделки самой программы: максимум, что нам грозит, - это написать новый контейнер, но это придется делать, только если не найдем подходящий готовый. Правда, эта задача хорошо решается при условии, что обе "платформы" снабжены хорошей документацией, а это в нашем мире, к сожалению, бывает не всегда. Так появилась идея создать СВМ - операционную систему, в которой прикладная программа обязательно помещается в "контейнери живет только в нем. Стало быть, все, что нужно для плодотворной работы прикладному программисту, - это справочник по тем услугам (сервисам), которые предоставляет контейнер, а программисту, пишущему контейнер, - справочники по системным вызовам обеих ОС. Но ведь контейнер обычно проще, чем большая прикладная программа или чем ОС, да и необходимость в его разработке возникает не так часто, поэтому программистов, разрабатывающих контейнеры, может быть немного, и основные людские силы можно сосредоточить на разработке прикладных программ, что мы и хотим. \\+Идея виртуальных машин позволяет решить проблему переносимости программ с компьютера на компьютер на новом уровне. Представим, что у нас имеется игровая программа, созданная когда-то раньше для эксплуатации на игровой приставке, а теперь мы хотим эксплуатировать ее на обычном компьютере. Теперь мы можем категорически отказаться от переделки самой программы: максимум, что нам грозит, - это написать новый контейнер, но это придется делать, только если не найдем подходящий готовый. Правда, эта задача хорошо решается при условии, что обе "платформы" снабжены хорошей документацией, а это в нашем мире, к сожалению, бывает не всегда. Так появилась идея создать СВМ - операционную систему, в которой прикладная программа обязательно помещается в контейнер и живет только в нем. Стало быть, все, что нужно для плодотворной работы прикладному программисту, - это справочник по тем услугам (сервисам), которые предоставляет контейнер, а программисту, пишущему контейнер, - справочники по системным вызовам обеих ОС. Но ведь контейнер обычно проще, чем большая прикладная программа или чем ОС, да и необходимость в его разработке возникает не так часто, поэтому программистов, разрабатывающих контейнеры, может быть немного, и основные людские силы можно сосредоточить на разработке прикладных программ, что мы и хотим. \\
 Сказанное не означает, что виртуализация нужна только для запуска программ на "чужом" железе. Она уместна и в том случае, если хост-платформа и целевая платформа различаются чисто количественно, например емкостью оперативной памяти. \\ Сказанное не означает, что виртуализация нужна только для запуска программ на "чужом" железе. Она уместна и в том случае, если хост-платформа и целевая платформа различаются чисто количественно, например емкостью оперативной памяти. \\
-**//Виртуальную память//** определим подобно тому, как мы выше определили виртуальную машину: это память, которой нет, но функции ее выполняются. Виртуальная память - важнейший элемент виртуальной машины. Настолько важнейший, что оправдывает существование даже такой ВМ, которая ничего иного не обеспечивает. Представим, что у нас есть модельный ряд машин с емкостью оперативной памяти от 8КБ (ЕС-1010) до 8МБ (ЕС-1060), а нам поставили задачу обработать массив размером 64МБ. Без виртуальной памяти это задача не может быть решена ни на одной из имеющихся машин, но на ЕС есть СВМ, которая позволяет нам писать программы, вообще не задумываясь о том, сколько памяти будет на той машине, на которой эта программа будет работать - и, с другой стороны, нашу программу можно будет эксплуатировать на любой машине, поддерживающей СВМ. \\+**//Виртуальную память//** определим подобно тому, как мы выше определили виртуальную машину: это память, которой нет, но функции ее выполняются. Виртуальная память - важнейший элемент виртуальной машины. Настолько важнейший, что оправдывает существование даже такой ВМ, которая ничего иного не обеспечивает. Представим, что у нас есть модельный ряд машин с емкостью оперативной памяти от 8КБ (ЕС-1010) до 8МБ (ЕС-1060), а нам поставили задачу обработать массив размером 64МБ. Без виртуальной памяти это задача не может быть решена ни на одной из имеющихся машин, но на ЕС есть СВМ, которая позволяет нам писать программы, вообще не задумываясь о том, сколько памяти будет на той машине, на которой эта программа будет работать - и, с другой стороны, нашу программу можно будет эксплуатировать на любой машине, поддерживающей СВМ, причем эксплуатировать с максимальной эффективностью, с использованием всей памяти, которую машина готова нам предоставить, и без необходимости что-либо менять в прикладной программе или в ОС. \\
 По аналогии с виртуальной памятью нетрудно разобраться, что такое виртуальные периферийные устройства. Средневековые ЭВМ чаще всего имели множество однотипных периферийных устройств, например 8 накопителей на магнитных дисках. Который из них будет отведен для нашей задачи? Прикладному программисту было бы крайне желательно работать, не задумываясь над такими вопросами. А в идеале - писать программу так, чтобы устройство ввода-вывода при эксплуатации программы можно было бы переназначить, не переделывая саму программу... Забегая вперед, скажу, что в ОС нового времени, например в DOS и GNU/Linux, имеются механизмы стандартного ввода и стандартного вывода - по большому счету это то же самое, что виртуальные устройства. \\ По аналогии с виртуальной памятью нетрудно разобраться, что такое виртуальные периферийные устройства. Средневековые ЭВМ чаще всего имели множество однотипных периферийных устройств, например 8 накопителей на магнитных дисках. Который из них будет отведен для нашей задачи? Прикладному программисту было бы крайне желательно работать, не задумываясь над такими вопросами. А в идеале - писать программу так, чтобы устройство ввода-вывода при эксплуатации программы можно было бы переназначить, не переделывая саму программу... Забегая вперед, скажу, что в ОС нового времени, например в DOS и GNU/Linux, имеются механизмы стандартного ввода и стандартного вывода - по большому счету это то же самое, что виртуальные устройства. \\
 Очевидно, операционные системы виртуальных машин обещают определенное удобство, но мы должны понимать, что любое удобство в этом мире не бесплатно: СВМ требует определенного времени на выполнение своих обязанностей, поэтому множество прикладных программ в СВМ будет выполняться медленнее (иногда значительно медленнее), чем на реальной машине без СВМ. В древние века, когда машин было мало и их быстродействие оставляло желать лучшего, такие идеи не имели шансов на признание. В средние века они оказались востребованы, а в последующие десятилетия стали практически обязательными. \\ Очевидно, операционные системы виртуальных машин обещают определенное удобство, но мы должны понимать, что любое удобство в этом мире не бесплатно: СВМ требует определенного времени на выполнение своих обязанностей, поэтому множество прикладных программ в СВМ будет выполняться медленнее (иногда значительно медленнее), чем на реальной машине без СВМ. В древние века, когда машин было мало и их быстродействие оставляло желать лучшего, такие идеи не имели шансов на признание. В средние века они оказались востребованы, а в последующие десятилетия стали практически обязательными. \\
igor/istoria.txt · Последнее изменение: 2022/05/01 18:15 — igor