KRIEGSSPIELE!
Вы хотите отреагировать на этот пост ? Создайте аккаунт всего в несколько кликов или войдите на форум.

Растригин. Вычислительные машины, системы, сети... 1982

Страница 1 из 3 1, 2, 3  Следующий

Перейти вниз

Растригин. Вычислительные машины, системы, сети... 1982 Empty Растригин. Вычислительные машины, системы, сети... 1982

Сообщение автор Gudleifr Пт Янв 15, 2021 11:35 am

Л.А.РАСТРИГИН
ВЫЧИСЛИТЕЛЬНЫЕ МАШИНЫ, СИСТЕМЫ, СЕТИ...
М.: "Наука", 1982

Растригин. Вычислительные машины, системы, сети... 1982 8200010

ПРЕДИСЛОВИЕ
Писать книгу об ЭВМ - и легко и трудно. Легко потому, что об ЭВМ уже много писали и говорили, так что читатель уже подготовлен к восприятию этой тематики, тем более, что он все чаще сталкивается с ЭВМ и их деятельностью при оплате счетов, начислении зарплаты, заказе билетов и т.д. Трудно потому, что уже никого не удивишь огромным быстродействием ЭВМ, их малыми размерами и большой памятью.

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

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

Бессмертную мысль Козьмы Пруткова о том, что "нельзя объять необъятное" сейчас следовало бы расширить словами "...и нецелесообразно". Именно эта нецелесообразность и определила состав представленного в книге материала.

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

Говорят, что на Диком Западе в салунах у стойки бара висело объявление "В бармена просят не стрелять!". Это предупреждение было особо своевременным, когда "полемика" между посетителями принимала очень личный характер.

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

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

Книгу в рукописи много читали и обсуждали до тех пор, пока она не приняла настоящий вид. Автор признателен всем, кто принял в этом участие. Особые усилия приложили рецензент книги Д.И.Поспелов, редактор Л.А.Чульскнй, а также Е.В.Гливенко, Я.А.Гельфандбейн, Н.А.Левин, А.Б.Розенблит, А.Н.Скляревич, Ф.П.Тарасенко, В.В.Шкварцев. Их замечания и советы были учтены в максимальной мере.


Последний раз редактировалось: Gudleifr (Сб Янв 16, 2021 11:36 am), всего редактировалось 1 раз(а)
Gudleifr
Gudleifr
Admin

Сообщения : 3246
Дата регистрации : 2017-03-29

Вернуться к началу Перейти вниз

Растригин. Вычислительные машины, системы, сети... 1982 Empty Re: Растригин. Вычислительные машины, системы, сети... 1982

Сообщение автор Gudleifr Пт Янв 15, 2021 11:37 am

ГЛАВА 1. ВЫЧИСЛИТЕЛЬНЫЕ МАШИНЫ
"Дважды два - четыре,
Дважды два - четыре,
это знают дети в целом мире,
а не три и не пять,
это надо знать".
Детская песенка

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

"Что же она делает в остальное время?" спросит возмущенный читатель. В остальное время она перерабатывает информацию и занята этим туманным занятием 90% своего "рабочего дня".

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

Что же такое "информация" и зачем понадобилось ее "перерабатывать" да еще применять для этого такие сложные машины - ЭВМ?

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

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

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

Для того чтобы разобраться в этом, давайте попробуем ответить на старый-престарый вопрос...
Gudleifr
Gudleifr
Admin

Сообщения : 3246
Дата регистрации : 2017-03-29

Вернуться к началу Перейти вниз

Растригин. Вычислительные машины, системы, сети... 1982 Empty Re: Растригин. Вычислительные машины, системы, сети... 1982

Сообщение автор Gudleifr Пт Янв 15, 2021 11:38 am

ЧТО ЖЕ ТАКОЕ ИНФОРМАЦИЯ?

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

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

Начнем с простейшей ситуации - выясним, дома или нет наш приятель? Будет ли при этом получена информация и какая?

Естественно считать, что информация будет получена: раньше не знали, позвонили - узнали. Это и есть информация, точнее: информация есть прирост знания.

Следующий вопрос: сколько информации мы получим. Естественно связать объем получаемой информации со степенью неожиданности. Чем более неожиданно сообщение, тем больше оно содержит информации. Если приятеля не обнаружим дома в рабочее время, то информация, полученная при этом, не будет большой. А вот если ночью?

Таким образом, объем информации связывается с вероятностью события: чем менее вероятное событие произошло, тем больше информации содержит сообщение о том, что оно совершилось.

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

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

А теперь обратимся к вычислительным машинам, перерабатывающим информацию. Переработка информации машиной, как всякий регулярный процесс преобразования, позволяет получить на ее выходе нечто такое, что не подавалось на вход ЭВМ. Так, при решении задачи 2*2=? на вход машины подаются две двойки и операция умножения. Они не содержат искомой четверки, которая является результатом работы машины по решению указанной задачи. Поэтому можно считать, что ЭВМ вырабатывает информацию, т.е. создает новую информацию.

В последней фразе не случайно использовано осторожное "можно". Дело в том, что есть и другая точка зрения на процесс переработки информации с помощью ЭВМ. Она опирается на понятие тавтологии. При этом регулярные преобразования лишь меняют форму представления информации, не внося ничего принципиально нового, т.е. являются тавтологическими. "2*2" и "4" - пример двух тавтологических записей.

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

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

Хорошо это или плохо? Сказать трудно. Конечно, чисто по-человечески хочется иметь одну модель изучаемого явления.

Когда на вопрос "Что это такое?" получаешь много ответов, то невольно подозреваешь своего собеседника в некомпетентности. Пока науке удавалось давать однозначные ответы. Однако совсем недавно появились объекты, относительно которых не существует (возможно - пока!) единых представлений. Такова, например, природа света, двойственность которой постулируется в физике. Сосуществуют (хотя и не без трений) две теории происхождения нефти - органическая и неорганическая. Феномен информации относится именно к этому классу явлений. Разница лишь в том, что теорий информации не две и не три. Их число уже перевалило за десяток.

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

А теперь рассмотрим вычислительную функцию ЭВМ. Сейчас она относительно незначительна, а раньше, лет 15-20 назад, была основной, что и определило название ЭВМ. Заметим, что указанная "незначительность" вовсе не означает неважность этой функции. Вычисления являются очень важной функцией в научно-технической и экономической практике общества. Поэтому давайте рассмотрим как потребность в вычислениях "довела" человечество до изобретения ЭВМ. Это короткая, но поучительная история.
Gudleifr
Gudleifr
Admin

Сообщения : 3246
Дата регистрации : 2017-03-29

Вернуться к началу Перейти вниз

Растригин. Вычислительные машины, системы, сети... 1982 Empty Re: Растригин. Вычислительные машины, системы, сети... 1982

Сообщение автор Gudleifr Пт Янв 15, 2021 11:41 am

ЗАЧЕМ НУЖНО МНОГО И БЫСТРО СЧИТАТЬ?

Потребность в вычислениях возникла у человека давно. И так же давно он придумал много хитрых и ловких приемов ускорения счета (известный способ вычислений "столбиком" является одним из таких замечательных изобретений).

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

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

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

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

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

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

Именно в такой ситуации оказывается наводчик зенитного орудия. Ему еще хуже - ведь упреждать самолет приходится на десять-двадцать корпусов! А за это время летчик может сделать так называемый "противозенитный маневр", целью которого является изменение прямолинейного движения самолета, которое легко экстраполируется наводчиком зенитного орудия. А так как летчик не заинтересован в том, чтобы наводчик угадал, как он изменит направление полета, то этот маневр он делает наиболее замысловатым образом. В этом случае эффективность линейного упреждения падает до нуля.

Именно такая ситуация сложилась в ходе войны между Англией и фашистской Германией. Самолеты гитлеровского Люфтваффе почти безнаказанно бомбили города и военные объекты Великобритании, нанося при этом огромный военный и материальный ущерб. Перед союзниками возникла острейшая проблема повышения эффективности зенитной стрельбы. Наводчик с этой задачей перестал справляться - слишком велики стали скорости самолетов и их маневренность. Надо было автоматизировать эту функцию.

За решение этой проблемы взялись крупнейшие умы науки того времени. Среди них был Норберт Винер - известный американский математик.

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

Таким образом, автомат, ведущий стрельбу, должен предвидеть поведение случайной траектории. А можно ли экстраполировать случайные кривые? Именно такую задачу поставил Н.Винер как математик.

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

Способ, предложенный Н.Винером, требовал большого объема вычислений, которые необходимо было сделать за те мгновения, пока самолет приближается к цели - 2-3 секунды. Здесь, как легко заметить, никакой арифмометр не справится, даже если его снабдить самым быстрым электромотором. Здесь были нужны новые принципы вычислений, исключающие механику вращающихся колес арифмометра. Была нужна электроника! И электроника пришла на помощь.

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

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

Первая электронная машина заработала в 1945 году и была названа ENIAC (аббревиатура слов Electronic Numerical Integrator And Calculator, что в дословном переводе значит: электронный численный интегратор и калькулятор). Она выполняла 5000 операций в секунду и имела память емкостью всего 20 десятизначных чисел. А дальше пошли поколения машин, которые быстро сменяли друг друга. Каждое новое поколение отличалось от предыдущего качественно новыми свойствами. На каждое поколение уходило в среднем 10 лет.
Gudleifr
Gudleifr
Admin

Сообщения : 3246
Дата регистрации : 2017-03-29

Вернуться к началу Перейти вниз

Растригин. Вычислительные машины, системы, сети... 1982 Empty Re: Растригин. Вычислительные машины, системы, сети... 1982

Сообщение автор Gudleifr Пт Янв 15, 2021 11:43 am

ПЕРВОЕ ПОКОЛЕНИЕ

Это поколение отличалось применением электронных ламп и сравнительно низким быстродействием - 10-20тыс. арифметических операций (таких, как сложение, умножение и т.д.) в секунду. В Советском Союзе к первому поколению относится первая отечественная вычислительная машина МЭСМ (Малая Электронная Счетная Машина), созданная в 1951г. в г.Киеве под руководством академика С.А.Лебедева, серийные машины Минск-1, Стрела, БЭСМ (Большая Электронная Счетная Машина), Урал-1, Урал-4 и др. Любопытно, что одной из самых острых проблем эксплуатации этих машин был отвод тепла. Тысячи электронных ламп создавали такую температуру, с которой нелегко было справиться. Во всяком случае отопление зимой в машинных залах не включали.

Машины первого поколения использовались только для решения вычислительных задач научного характера. Машины ускоряли счет в рамках существовавших тогда методов, разработанных для "ручных" расчетов.

Процесс программирования на этих машинах требовал большого искусства и изворотливости - нужно было хорошо представлять, как устроена ЭВМ и каким образом она реагирует на ту или иную ситуацию.
Gudleifr
Gudleifr
Admin

Сообщения : 3246
Дата регистрации : 2017-03-29

Вернуться к началу Перейти вниз

Растригин. Вычислительные машины, системы, сети... 1982 Empty Re: Растригин. Вычислительные машины, системы, сети... 1982

Сообщение автор Gudleifr Пт Янв 15, 2021 11:43 am

ВТОРОЕ ПОКОЛЕНИЕ

Это поколение отличалось тем, что вместо громоздких и горячих электронных ламп стали употребляться миниатюрные и "теплые" транзисторы.

Быстродействие машин второго поколения возросло до сотен тысяч операций в секунду. Стала использоваться библиотека стандартных программ. Появилась возможность программирования на так называемых алгоритмических языках, значительно облегчивших процесс программирования (позже мы расскажем о них). Первой полупроводниковой машиной была модель RCA-501, появившаяся в 1959г. В Советском Союзе к этому поколению относятся машины Минск-2, Минск-22, Ммнск-32, БЭСМ-2, БЭСМ-4, БЭСМ-6 и др. (Заметим, что БЭСМ-6, делающая миллион операций в секунду, великолепно служит до сих пор и используется для решения научно-технических задач).
Gudleifr
Gudleifr
Admin

Сообщения : 3246
Дата регистрации : 2017-03-29

Вернуться к началу Перейти вниз

Растригин. Вычислительные машины, системы, сети... 1982 Empty Re: Растригин. Вычислительные машины, системы, сети... 1982

Сообщение автор Gudleifr Пт Янв 15, 2021 11:44 am

ТРЕТЬЕ ПОКОЛЕНИЕ

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

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

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

Первым таким семейством машин третьего поколения была выпущенная в 1965 году вычислительная система IBM/360. Она имеет свыше семи моделей.

В Советском Союзе такую серию машин третьего поколения образует семейство ЕС ЭВМ (Единая Система ЭВМ), в значительной части совместимая с IBM/360.
Gudleifr
Gudleifr
Admin

Сообщения : 3246
Дата регистрации : 2017-03-29

Вернуться к началу Перейти вниз

Растригин. Вычислительные машины, системы, сети... 1982 Empty Re: Растригин. Вычислительные машины, системы, сети... 1982

Сообщение автор Gudleifr Пт Янв 15, 2021 11:44 am

ЧЕТВЕРТОЕ ПОКОЛЕНИЕ

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

Такими машинами стали В-7700 фирмы Барроуз, Иллиак-IV, созданный в Иллинойском университете, Эльбрус, разработанный в Советском Союзе. Принципы, используемые в этих машинах, мы рассмотрим во второй главе.

Этим счет поколений не заканчивается. Говорят о пятом, спорят о шестом, фантазируют о седьмом поколениях машин. Едва ли стоит говорить о них - это пока проекты и мечты. А реально существуют сейчас машины - немного - второго, в основном - третьего, и чуть-чуть - четвертого поколений.

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

Итак - ЭВМ как неодушевленное лицо.
Gudleifr
Gudleifr
Admin

Сообщения : 3246
Дата регистрации : 2017-03-29

Вернуться к началу Перейти вниз

Растригин. Вычислительные машины, системы, сети... 1982 Empty Re: Растригин. Вычислительные машины, системы, сети... 1982

Сообщение автор Gudleifr Пт Янв 15, 2021 11:45 am

ЭТИКЕТ ОБЩЕНИЯ С ЭВМ

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

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

Всякий процесс обработки информации вообще и вычислений в частности требует введения в ЭВМ исходной информации. Эту информацию можно условно, но довольно четко подразделить на два вида, отвечающие на вопросы: что обрабатывать (считать) и как это делать, Первый вид информации называют "данные", о второй - "программа". О программе стоит поговорить подробное.
Gudleifr
Gudleifr
Admin

Сообщения : 3246
Дата регистрации : 2017-03-29

Вернуться к началу Перейти вниз

Растригин. Вычислительные машины, системы, сети... 1982 Empty Re: Растригин. Вычислительные машины, системы, сети... 1982

Сообщение автор Gudleifr Пт Янв 15, 2021 11:45 am

ПРОГРАММА

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

С подобными программами мы очень часто встречаемся в жизни. Так, обычная кулинарная книга составлена из "программ", которые здесь названы рецептами.

Например, рецепт пражского салата записывается следующим образом. "Данные": 150г жареной телятины, 150г жареной свинины, 150г соленых огурцов, 150г лука, 100г яблок, майонез, лимонный сок или уксус. "Программа" - все твердые компоненты нарезают ломтиками, заливают лимонным соком или уксусом и смешивают с майонезом.

Иную "программу" сообщает мастер слесарного дела своему ученику: "Возьмешь ту штуковину и приставишь вот так к той, что побольше. Затем соединишь их этим болтом". Здесь "данными" являются две "штуковины": гайка и болт, а "программа" указывает на то, как их соединять.

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

Заметим, что программы, предназначенные для ЭВМ, должны быть составлены куда более точно, чем программы, предназначенные для выполнения человеком. Составляя "программу" для человека, мы рассчитываем, что он сам домыслит то, что не было нами сказано, или переспросит, если что неясно. А при составлении программы для ЭВМ нужно учесть все до последней мелочи. Поэтому существенной особенностью любой программы является наличие в ней нескольких "запасных" вариантов, определяющих, как поступать при различных обстоятельствах. Чем тщательнее разработана программа, тем больше в ней предусмотрено вариантов - ветвей программы. Такие ветвления мы часто используем в жизни: "... а если нет кефира, купи простоквашу".

Читатель, наверное, уже догадался, что все, на что способна ЭВМ, зависит от того, какие программы в нее заложены, какую программу она в данный момент выполняет и какие данные эта программа использует в своей работе. Следовательно, более точно было бы говорить не об умной машине, а об умной программе, заложенной в эту машину. (А если уж быть совсем точным, то следует говорить об умном программисте, который составил эту программу. Но умного программиста можно встретить значительно чаще, чем "умную" программу. Именно поэтому можно, хотя и с оговоркой, сказать, что интеллект ЭВМ определяется ее программой).
Gudleifr
Gudleifr
Admin

Сообщения : 3246
Дата регистрации : 2017-03-29

Вернуться к началу Перейти вниз

Растригин. Вычислительные машины, системы, сети... 1982 Empty Re: Растригин. Вычислительные машины, системы, сети... 1982

Сообщение автор Gudleifr Пт Янв 15, 2021 11:46 am

КАЛЬКУЛЯТОР - ПРОСТЕЙШАЯ ЭВМ

Знакомство с ЭВМ начнем с простейшей вычислительной машины, называемой электронным калькулятором. В таком калькуляторе отражены почти все основные принципы современной ЭВМ. Рассмотрим их.

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

Четкую границу, разделяющую ЭВМ и калькуляторы, провести очень трудно. Простейшие калькуляторы могут выполнять только четыре арифметических действия. Более сложные имеют набор сменных программ, которые изменяют производимые калькулятором операции. Например, вычисление сложных процентов, перевод измерений из одной шкалы в другую (градусы Цельсия в градусы Фаренгейта и т.д.) и др. Эти программы (точнее: программки) записаны на маленькие кусочки магнитофонной ленты (примерно 1*5см) и называются магнитными картами. Пропустив такую карту через калькулятор и тем самым введя в него записанную на карту программу, можно задавать исходные данные, которые будут переработаны в соответствии с введенной программой. Например, программа вычисления сложных процентов требует исходных данных в виде трех чисел - годового процента, исходной суммы и срока ее хранения, а результатом вычислений будет конечная сумма.

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

Как видно, такой калькулятор по праву можно назвать маленькой ЭВМ. Он имеет изменяющуюся программу и память, отличающие "настоящие" ЭВМ.

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

Так что, пожалуй, единственным формальным отличием калькулятора от ЭВМ является его портативность и транспортабельность (обычно каждый калькулятор снабжается удобным чехлом для его транспортировки).

Удобство и возможности подобных калькуляторов были быстро оценены потребителями и... фирмами-производителями ЭВМ. Сейчас на международный рынок выпускается огромное количество электронных калькуляторов самых разнообразных типов. Многие из них могут соединяться с обычным домашним телевизором и кассетным магнитофоном. Телевизор выполняет роль дисплея и на его экран калькулятор выводит всю информацию, необходимую пользователю (окончательный и промежуточный результаты, графики и т.д.), а также задает вопросы и отдает распоряжения пользователю (например, "ВВЕДИТЕ ДАННЫЕ" или "=?"). Кассетный магнитофон играет роль внешней памяти калькулятора. Здесь пользователь может хранить свои программы и информационные материалы (например, библиографию книг и статей по своей специальности).

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

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

А теперь рассмотрим трудности общения с ЭВМ. Именно они часто заставляют создавать новые типы ЭВМ.
Gudleifr
Gudleifr
Admin

Сообщения : 3246
Дата регистрации : 2017-03-29

Вернуться к началу Перейти вниз

Растригин. Вычислительные машины, системы, сети... 1982 Empty Re: Растригин. Вычислительные машины, системы, сети... 1982

Сообщение автор Gudleifr Пт Янв 15, 2021 11:51 am

ЯЗЫКОВЫЕ ТРУДНОСТИ (ОБЩЕНИЕ С ЭВМ)

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

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

А теперь рассмотрим общение человека и ЭВМ. Оно так же происходит на языке. Каким должен быть этот язык? "Разумеется, разговорным!" - ответит человек. ЭВМ будет иного мнения. Но стоит ли считаться с этим "мнением"? - Стоит и очень даже! Для того чтобы ЭВМ понимала разговорный язык, ее следует снабдить соответствующей программой. А именно эта проблема создания программы понимания машиной разговорного языка является пока нерешенной проблемой. Мы (пока!?) не знаем, как должна быть устроена программа, с помощью которой машина будет способна понимать или научиться пониманию живого разговорного языка. (Имеется опыт создания программ, позволяющих ЭВМ понимать вопросы, заданные пока на очень узкую тему, например, о расписании движения самолетов, о наличии изделий на складе и т.д.).

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

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

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

Очевидно, что в этом языке отражена специфика устройства именно той ЭВМ, с которой предстоит "общаться", т.е. давать ей свое задание на обработку информации. Очевидно, что таких машинных языков существует ровно столько, сколько типов ЭВМ.

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

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

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

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

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

Это означает, что каждый из них позволяет эффективно решать проблемы своего класса. Так проблему формульных вычислений решают языки алгол, фортран, ПЛ/1 и др. Проблему обработки списков - язык ЛИСП, моделирования - GPSS и т.д. Такого рода языки называют ЯЗЫКАМИ ВЫСОКОГО УРОВНЯ. Они максимально приближены к человеческому языку, но, разумеется, не совпадают с ним. Овладение таким языком требует несколько дней или недель (а не месяцев, необходимых для того, чтобы овладеть машинным языком).

Итак, человек доволен! А как машина? Ведь она "понимает" лишь машинные программы, написанные на ее машинном языке!

Для того чтобы и ЭВМ понимала языки высокого уровня, для нее необходим переводчик с этого языка на ее машинный язык. Таким переводчиком является ТРАНСЛЯТОР, т.е. программа, которая преобразует программу, написанную на языке высокого уровня, в машинную программу. Так образуется более удобная для пользователя цепочка: пользователь - программа на языке высокого уровня - транслятор - машинная программа - ЭВМ.

Эта цепочка буквально сделала революцию в применении ЭВМ, а следовательно, и в их развитии. Число активных пользователей стало быстро расти, так как процесс программирования упростился и, что тоже очень важно, не надо было идти "на поклон" к программисту.

А что же программисты? Остались без куска хлеба? Нет! Им дел даже прибавилось. На их плечи легли проблемы так называемого системного программирования, например такие, как сложнейшая задача создания транслятора. Современный программист - это прежде всего системный программист. Если теперь массовому пользователю не надо знать специфику каждой конкретной машины (программы на языках высокого уровня никак не связаны со спецификой той машины, на которой будет решаться задача, об этом позаботится транслятор), то программист по-прежнему представляет "интересы" ЭВМ и следит, чтобы она с максимальной эффективностью и правильно была использована (транслятор и выполняет некоторые из этих функций).

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

Именно так ЭВМ из машины для "избранных", т.е. для программистов, превратилась в машину для всех. И произошло это в результате применения языков высокого уровня и трансляторов.

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

Внимательный читатель, наверно, удивится, а зачем все это здесь рассказывается? Ведь книга написана для пользователя, которому совершенно не интересна "внутримашинная кухня" с транслятором и машинной программой Не все ли ему равно, работает машина по машинной программе или по программе высокого уровня. Результат ведь будет одинаковым!

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

Вот и получается, что программа, составленная пользователем, не работает не по вине пользователя, а по вине транслятора. Достаточно ее немного изменить и транслятор выдает правильную машинную программу. У пользователя создается впечатление, что машина "не любит" какие-то программы. А не любит их не машина, а транслятор.

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

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

Давайте ознакомимся с элементарными основами одного из самых распространенных языков высокого уровня - фортрана (известно, что 80% пользователей предпочитают этот язык другим).
Gudleifr
Gudleifr
Admin

Сообщения : 3246
Дата регистрации : 2017-03-29

Вернуться к началу Перейти вниз

Растригин. Вычислительные машины, системы, сети... 1982 Empty Re: Растригин. Вычислительные машины, системы, сети... 1982

Сообщение автор Gudleifr Сб Янв 16, 2021 11:39 am

ЭЛЕМЕНТАРНЫЙ ФОРТРАН

Свое название (FORTRAN) этот язык получил в результате сокращения двух английских слов FORmula TRANslator, т.е. "формульный переводчик". А по-русски: фортран есть ФОРмульный ТРАНслятор (напомним, что транслятор и есть переводчик). Он был создан в 1956г. в США.

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

Вот и получилось, что изобретение фортрана свалило бремя программирования на самих пользователей, что сразу решило проблему загрузки ЭВМ.

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

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

Растригин. Вычислительные машины, системы, сети... 1982 8202710

z = (ax + y) в степени b -  c дробь w,

где величины  a, b, c, x, y, w заданы. Фортран-программа в этом случае будет иметь, вид

Z=(A*X+Y)**B-C/W .

легко заметить, что звездочкой обозначается произведение, двумя звездочками (**) возведение в степень, косая черта - деление. Все переменные в фортране обозначаются большими буквами или любым их сочетанием, включая цифры (например, X1, Y18, Z7A, IKS, FI40, PSI, DELTA9 обозначают соответственно привычные нам "икс-первый, игрек 18-й, z c индексом 7a, икс, фи 40-е, кси, дельта-девятая".

Очень часто приходится использовать оператор условного перехода. Например, при X>=B следует делать одно (например, выполнять ту часть программы, которая отмечена цинфрой 5), а в обратном случае другое. Фортран-программа такого условного перехода записывается так:

IF(X.GE.B) GOTO 5 ,

т.е. "Если (IF) x>=b, то иди на (GOTO) метку 5 (эта метка поставлена перед соответствующей строкой программы). В противном случае (x<b) нужно переходить к следующему оператору в программе".

Растригин. Вычислительные машины, системы, сети... 1982 8202810

Используем этот оператор для решения квадратного уравнения ax2+bx+c=0. Его решение зависит от знака дискриминанта. При дельта<0 корни мнимые. Различный знак дискриминанта дельта требует при вычислении корней применения оператора условного перехода, так как считать приходится по разным формулам.

Фортран-программа в этом случае принимает, например, такой вид (справа на рисунке приведена ее расшифровка в обычных обозначениях).

DEL = B**2-4*A*C
IF (DEL.LT.0) GOTO 1
X1 = (-B+DEL**0.5)/(2*A)
X2 = (-B-DEL**0.5)/(2*A)
PRINT X1, X2
STOP
1 Y1 = -B/(2*A)
Y2 = (-DEL)**0.5/(2*A)
Y3 = -Y2
PRINT Y1, Y2, Y1, Y3
STOP

Здесь введен оператор печати (PRINT), при котором ЭВМ печатает на бумаге значения указанных после этого оператора переменных. При дельта>=0 будут напечатаны численные значения двух корней x1 и x2. А при дельта<0 - четыре числа. Первые два (y1 и y2) второе определяют первый корень, а остальные - второй.

И, наконец, оператор цикла, который очень часто применяется в массовых вычислениях. Пусть, например, нужно определить среднее значение заданных чисел x1, ..., xN. При вычислении суммы SN = x1+x2+...+xN естественно повторять операцию сложения.

Растригин. Вычислительные машины, системы, сети... 1982 8202910

Это делается с помощью оператора цикла, который позволяет вычисление SN сделать с помощью такой простой программки:

S=0
DO 1 I=1, N
1 S=S+X(I)

Здесь оператор цикла DO 1 I = 1, N указывает, что надо выполнять все последующие операторы до и включая оператор с меткой 1 (до него может быть много операторов), после чего следует возвращаться к оператору цикла. И делать это N раз, изменяя переменную I от 1 до N последовательно. Оператор цикла DO 1 I = 1, N таким образом  означает: "Идти до метки 1 и при возвращении изменять переменную I на 1, повторяя такой цикл до I = N".

Оператор S = S+X(I) выполняет операцию вычисления, т.е. добавляет к уже накопленной сумме очередное значение x. Для работы такой программы в ЭВМ необходимо предварительно ввести все числа xi (i = 1, ..., N).

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

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


Последний раз редактировалось: Gudleifr (Вс Янв 09, 2022 5:35 pm), всего редактировалось 1 раз(а)
Gudleifr
Gudleifr
Admin

Сообщения : 3246
Дата регистрации : 2017-03-29

Вернуться к началу Перейти вниз

Растригин. Вычислительные машины, системы, сети... 1982 Empty Re: Растригин. Вычислительные машины, системы, сети... 1982

Сообщение автор Gudleifr Сб Янв 16, 2021 11:47 am

КАК ВВОДЯТ ИНФОРМАЦИЮ В ЭВМ?

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

Поэтому выделим проблеме ввода информации в ЭВМ специальный параграф.

Процедура введения таких чисел и букв, образующих исходные данные и программы в ЭВМ, может быть самой разнообразной. Старым способом является использование перфокарт или перфоленты (дословно: "дырявые" карты и ленты). Здесь дырки, а точнее их расположение, кодируют определенным образом исходные данные и программу. Однако прежде всего программу и данные следует записать на специальном бланке, где для каждого знака (цифры или буквы) отводится отдельная клетка. Эти бланки отдаются в перфораторную, где молодые девушки - перфораторщицы (что в дословном переводе означает: "дыропро-бивалыцицы") "пробьют" эту информацию в картонных карточках (размером 8*19см) или бумажной ленте (шириной 2.5см), получив в результате колоду перфокарт или рулончик перфоленты. Заложив их в устройство ввода (это делает оператор ЭВМ), можно очень быстро ввести данные и программу в память ЭВМ. Эту программу машина тут же оттранслирует в машинную программу, которую немедленно и выполнит, если, разумеется, транслятор не выявит ошибок, которые он не сможет исправить. Обнаружив ошибку, транслятор указывает на нее и комментирует. Все это займет считанные секунды.

В результате вы получите так называемый "листинг". Это широкая бумажная лента (шириной 42см), на которой прежде всего будет напечатана ваша программа в том виде, как вы ее написали (точнее: в виде, в котором ЭВМ ее получила). В этой программе транслятор отметит ваши ошибки, т.е. все нарушения грамматики языка, на котором была написана ваша программа. Если ошибок не будет, то далее будут приведены результаты работы машины по этой программе. Но считать, что вы получили то, что хотели, было бы преждевременным. Ошибки могли быть в алгоритме - их-то транслятор заметить никак не может, так как он следит только за грамматикой (синтаксисом) программы, а не ее семантикой (смыслом). Бессмысленная программа может быть синтаксически правильной (как, например, фраза "овца ест волка") и виноват в этом будет не транслятор, а создатель программы.

Мм здесь рассмотрели старые и до сих пор применяемые способы введения информации в ЭВМ - перфокарты и перфоленту. Всем хорош этот способ, но требует процедуры перфорирования, которую должен выполнять человек. Процесс перфорирования чисто механический: смотри на знак (цифру или букву) в бланке программы и нажимай на клавишу с таким же знаком на перфораторе. Вот и все! Не то что интеллекта, но и элементарного соображения не нужно. При перфорировании трудно не делать ошибок, так как работа эта однообразная, нетворческая. Единственным "творчеством" здесь являются ошибки. И они неизбежны. (Заметим, что машинистка, печатающая на машинке, ошибается значительно меньше и печатает значительно быстрее, чем перфораторщица, хотя внешне они выполняют одинаковую работу. Дело здесь в том, что машинистка обычно понимает печатаемый текст, а перфораторщица - нет. Если машинистке дать печатать текст на неизвестном ей языке, то ее скорость и число ошибок станут такими же, как у перфораторщицы). Что же делать?
Gudleifr
Gudleifr
Admin

Сообщения : 3246
Дата регистрации : 2017-03-29

Вернуться к началу Перейти вниз

Растригин. Вычислительные машины, системы, сети... 1982 Empty Re: Растригин. Вычислительные машины, системы, сети... 1982

Сообщение автор Gudleifr Сб Янв 16, 2021 11:49 am

КАК ИЗБАВИТЬСЯ ОТ ОШИБОК?

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

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

Всем хорош такой читающий автомат: и работает быстро и ошибок не делает при условии, что бланки программ заполняются правильно, т.е. стандартными знаками. Это значит, что записывать программу на бланках нужно печатными знаками, т. е. применять для этого специальную пишущую машинку и, следовательно, обращаться надо к машинистке. А чем она отличается от перфораторщицы? Ведь перфоратор внешне очень похож на пишущую машинку, только клавиши побольше и работает помедленнее! Если же бланк программы заполняет пользователь и при этом очень старается правильно рисовать знаки, то автомат при считывании делает ошибок не больше, чем перфораторщица. При небрежном заполнении бланка число ошибок, естественно, значительно больше.

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

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

Дело в том, что мы говорим по разному. Автомат можно настроить на определенный тембр голоса, темп и способ говорения, высоту звука. И он будет уверенно понимать говорящего. Если же диктор изменится, то нужно менять настройку, иначе неизбежны ошибки. Трудность пытаются преодолеть путем специальной процедуры подстройки автомата. Новому диктору дают начитать автомату определенный текст. Так как автомат знает текст то он соответственно корректирует себя, т.е. свои решения, так, чтобы они были правильными. Чем больше текст, тем точнее настроится автомат на данного диктора.

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

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

Если необходимо произносить любой текст, то в память ЭВМ вводятся правила фонетики, следуя которым она произносит слова и фразы так же как ученик, начинающий изучать иностранный язык. Ведь для ЭВМ человеческая речь является иностранной. Любопытно, что подобные автоматы имеют ярко выраженный национальный характер произношения. И если его заставить
Произносить слова из другого языка, сделает он это с сильным акцентом. (Автору пришлось слышать автомат, сделанный в Финляндии. Русские слова он произносил с сильнейшим финским акцентом и ударением на первом слоге - такова специфика финского языка).

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

Читатель уже заметил, наверное, что трудности при введении информации в ЭВМ всегда связаны с индивидуальностью пользователя. То он пишет знаки своей программы не так, как это требует машина, то не так говорит! Ей бы общаться с автоматом, "индивидуальность" которого всегда можно уложить в требуемые пределы, контролируемые ОТК цеха-изготовителя. (Известно, что индивидуальные свойства всякой машины образуются за счет разброса ее параметров).

Эта идея оказалась не такой уж бредовой. Действительно, нельзя ли потребовать от пользователя быть поаккуратней? Ну хотя бы в написании текста программы? Не посадить ли для этого пользователя за пульт пишущей машинки с тем, чтобы свою программу он не писал "шариком" или фломастером, а печатал и (уж это дело простой техники) вводил сразу свою программу в машину? Идея оказалась очень плодотворной!
Gudleifr
Gudleifr
Admin

Сообщения : 3246
Дата регистрации : 2017-03-29

Вернуться к началу Перейти вниз

Растригин. Вычислительные машины, системы, сети... 1982 Empty Re: Растригин. Вычислительные машины, системы, сети... 1982

Сообщение автор Gudleifr Сб Янв 16, 2021 11:50 am

ДИАЛОГ С ЭВМ - ЗАЧЕМ ОН?

Диалог пользователя и ЭВМ опирается на два фундамента:
- простота общения,
- польза от общения, т.е. заинтересованность пользователя в диалоге.

Первый фундамент (простота общения) требует организации простого и надежного обмена информацией между пользователем и ЭВМ. Он реализуется с помощью так называемых терминалов, или точнее терминальных (оконечных) устройств. Простейшим терминалом является электрическая пишущая машинка, с помощью которой можно просто и надежно реализовать взаимодействие пользователя и ЭВМ. Клавиатура машинки со всеми необходимыми символами позволяет пользователю вводить в ЭВМ ЛЮБЫЕ исходные данные и ЛЮБУЮ программу на любом языке, включая машинный. Эта возможность гарантирует, что все, что захочет "высказать" пользователь, будет введено в ЭВМ.

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

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

Опишем типичную ситуацию, складывающуюся в процессе общения ЭВМ с не слишком опытным пользователем. Он обычно забывает (или не знает как) ввести исходные данные для решения его задачи. Так, например, при решении квадратного уравнения необходимо задать его коэффициенты a, b и c. Получив программу, ЭВМ не сможет ее выполнить. Эта ситуация (отсутствие данных) предусмотрена заранее и из памяти ЭВМ будет извлечена первая реплика машины:

М: ВВЕДИТЕ ДАННЫЕ. (Здесь буквой М обозначена машина. Пользователя мы будем обозначать буквой П).

Пусть пользователь не знает как это делать (если б знал, то немедленно
и немедленно ввел бы). В таком случае его реакция будет однозначной:

П:? (он нажал клавишу со знаком вопроса, признавая свою беспомощность).

Эта ситуация так же предусмотрена, и ЭВМ задает вопрос (точнее три):

М: A = ?
B = ?
C = ?

Этот вопрос не извлечен из памяти, а построен ЭВМ исходя из ситуации (в программе не хватает трех чисел: A, B и C). Но процедура построения вопроса тмкже находилась в памяти машины.

Пусть наш пользователь совсем... малоинтеллектуален и не понял, что от него требуется и снова реагирует:

П: ?

Тогда ЭВМ дает конкретный пример введения данных:

М: ПРИМЕР ВВЕДЕНИЯ ДАННЫХ:
A = 0.346
B = 5.87
C = -76.3

Здесь значения чисел и знаков взяты случайно (у ЭВМ есть программа, генерирующая случайные числа).

Если и после этого пользователь задаст вопрос

П: ?

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

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


Последний раз редактировалось: Gudleifr (Пн Янв 18, 2021 10:30 am), всего редактировалось 1 раз(а)
Gudleifr
Gudleifr
Admin

Сообщения : 3246
Дата регистрации : 2017-03-29

Вернуться к началу Перейти вниз

Растригин. Вычислительные машины, системы, сети... 1982 Empty Re: Растригин. Вычислительные машины, системы, сети... 1982

Сообщение автор Gudleifr Сб Янв 16, 2021 11:52 am

ПОЛЬЗОВАТЕЛИ БЫВАЮТ РАЗНЫЕ...

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

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

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

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

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

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

Сообщения : 3246
Дата регистрации : 2017-03-29

Вернуться к началу Перейти вниз

Растригин. Вычислительные машины, системы, сети... 1982 Empty Re: Растригин. Вычислительные машины, системы, сети... 1982

Сообщение автор Gudleifr Сб Янв 16, 2021 11:54 am

ДИАЛОГ СПОСОБ "МЕНЮ"

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

Пусть эта нужда медицинская - у вас заболел, ну, скажем (извините), живот. Зная понаслышке о возможных последствиях, превратностях ("острый живот" и проч.) и опасностях самолечения вы решили пойти проконсультироваться у своего врача, районного, разумеется. Усевшись в конце длинной очереди вы с тревогой оглядываетесь и видите нечто вроде телевизора. Экран телевизионный, но вместо ручек настройки только три кнопки с надписями "Да", "Пот" и "?". На ваш вопрос вам ответят, что это ЭК, (электронный консультант). Тоскливо оглядев очередь вы, наверняка, обратитесь к этому консультанту, хотя он и электронный. Лечить он вас вроде бы не будет (манипуляторов, как у робота, у него нет), а общаться с ним с помощью трех кнопок не сложно (это не программирование).

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

Перед вами так называемый терминал вычислительной машины, которая стоит где-то поблизости (а может стоять и далеко!), т.е. "видеооконечное" устройство ЭВМ. На экран телевизионной трубки этого терминала ЗВМ может выводить тексты вопросов и пояснений, которые хранятся в ее памяти. Три кнопки также связаны с машиной.

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

Растригин. Вычислительные машины, системы, сети... 1982 8203810
Рис.1. Вот так происходит общение пользователя с ЭВМ через дисплей, который является посредником, обеспечивающим надежную связь человека с машиной.

Только в данном случае консультант имеет клавиатуру лишь из трех указанных кнопок. (Обычный дисплей имеет клавиатуру из 50-70 таких кнопок).

Вот и все. Начинайте! На экране дисплея-консультанта засветился следующий текст.

1. ЭВМ: Я - консультант. Моя задача - консультировать всех желающих и, если нужно, собирать предварительную информацию для направления к врачу. Я понимаю только три простых ответа: ДА, НЕТ и ? (что означает "не понимаю" или "не знаю"). Поняли ли вы этот текст? Нажмите, пожалуйста, нужную кнопку.

Вы человек любознательный и решили вступить в беседу с "консультантом" (вы-то знаете, что это ЭВМ). Ваш разговор с машиной мог быть, например, таким:

Вы: ДА (т. е. вы решили проявить свою любознательность и нажали кнопку ДА. Если бы вы нажали кнопку НЕТ, то на экране появился бы текст, разъясняющий сказанное в более простых и ясных выражениях, при ? - то же).

2. ЭВМ: Спасибо. Позвольте задать вам несколько вопросов. Можно ли врачам узнать ваши ответы? Нажмите, пожалуйста, нужную кнопку.

Вы: Да. (Если бы вы возражали, то могли бы нажать кнопку НЕТ и тогда все ваши ответы были бы стерты из ее памяти после диалога. Это важное свойство по заказу полностью "забывать услышанное" очень ценно для ведения конфиденциальных разговоров и возможно только с таким собеседником, как ЭВМ. Именно это и дает вам возможность быть полностью откровенным, что чрезвычайно важно при обсуждении интимных вопросов вашего нездоровья. Если бы вы нажали "кнопку" "?", то ЭВМ объяснила бы, зачем врачам нужно знать содержание вашего диалога с ней).

3. ЭВМ: Скажите, является ли неприятное ощущение или боль в животе одной из причин, побудивших нас обратиться к врачу?

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

4. ЭВМ: эти боли или неприятное ощущение в животе беспокоят вас постоянно с момента их возникновения?

Вы: Нет.

5. ЭВМ: Бывают ли промежутки времени - часы, дни или недели, когда боли вас совсем не беспокоят?

Вы: ДА.

6. ЭВМ: связаны ли эти неприятные ощущения с приемом пищи?

Вы: ? (вы не поняли вопроса и поэтому затрудняетесь ответить определенно).

7. ЭВМ: Влияют ли на ваши боли или неприятные ощущения время приема и состав пищи?

Вы: ДА.

8. ЭВМ: Вы принимаете лекарства?

Вы: ДА. (при ответе "?" ЭВМ указала бы какие лекарства она имеет в виду).

9. ЭВМ: Беспокоят ли вас боли или неприятные ощущения по утрам?

Вы: ДА.

10. ЭВМ: Можете ли вы указать на область локализации боли?

Вы: ДА.

11. ЭВМ: Укажите область живота, где вы чувствуете боль. Можете вы показать эту область одним-двумя пальцами или накрыть ладонью? Если вы можете указать на болевую область одним-двумя пальцами, нажмите кнопку ДА, если ладонью - нажмите кнопку НЕТ, если вопрос непонятен, нажмите кнопку "?".

Вы: НЕТ (если вы ответите "?", машина пояснит, что значит указать пальцем или ладонью).

12. ЭВМ: Расположена ли боль по средней линии живота?

Вы: ДА.

13. ЭВМ: Вы питались нормально во время недомогания?

Вы: ?

14. ЭВМ: У вас был хороший аппетит?

Вы: ДА.

15. ЭВМ: Были у вас случаи рвоты?

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

Такой диалог и реализует "принцип меню". На каждый вопрос здесь предусмотрено очень простое "меню" из трех "блюд" - возможные ответы ДА, НЕТ и ?. Иначе отвечать нельзя, так же как нельзя заказать в обычном ресторане блюдо, не включенное в меню. Составляя меню, ресторан или столовая защищают себя от непредвиденных заказов, которые возможно они не смогут выполнить. Предлагая варианты ответов на заданный вопрос, ЭВМ так же "защищает себя" от непонятных ей ответов. Как видно, меню является очень эффективным средством преодоления ЭВМ собственной слабости, которая (увы!) неизбежна.

Программа, по которой работала ЭВМ в приведенном диалоге, была составлена в Теддингтонской национальной физической лаборатории в Англии и использовалась для опроса пациентов, у которых предполагался гастрит или язва желудка. Интересно, что ни один из пациентов независимо от пола и возраста и образования, не отказался беседовать с ЭВМ.

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

Итак мы установили, что в таком диалоге любой человек успешно может взаимодействовать ("беседовать") с ЭВМ, ничего не зная об ее устройстве и совершенно не умея составлять программы на языках любого уровня. Это достигнуто ценой очень примитивного языка общения с ЭВМ. Легко представить, как бы реагировал человек, получая в ответ ваши "да", "нет" и "не понимаю". ЭВМ тем и отличается от человека, что волею программиста она не может раздражиться и довольствуется одним из трех ответов.

Всем хорош диалог методом "меню". Но такие разговоры возможно лишь на очень и очень узкие темы. Почему? Да потому, что машина должна реагировать на все варианты ответов собеседника. А это означает, что программист должен в нее заложить реакцию на каждый из ответов. Давайте подсчитаем, как велика должна быть память такой машины!

На каждый вопрос возможны три ответа. Каждый из ответов должен порождать новый вопрос. Сначала, после первого вопроса будет три варианта ответа, на каждый из которых необходимо иметь определенный вопрос. Таких вопросов на втором этапе будет три, затем девять, потом 3**3 = 27 и т.д. На N-м этапе нашего разговора их будет 3**(N-1). Много это или мало? Так, для приведенного выше простенького разговора N = 14, то есть в память ЭВМ необходимо заложить более миллиона вопросов! Много это или мало? Легко прикинуть. Если вопрос занимает всего две строки (иные, как показано, значительно длиннее), то миллион вопросов занимают треть Большой Советской Энциклопедии! Это допускает далеко не всякая современная ЭВМ, так как для записи всех этих вопросов требуется огромная память. А для более содержательного разговора с консультантом понадобится N = 30, т.е. вся Ленинская библиотека! Таких машин сейчас нет и не будет в ближайшем будущем. И это только по поводу живота!

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

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

Метод меню может определять не ответы, а вопросы конечного пользователя, на которые ЭВМ может дать ответ. Такое меню "наоборот" принципиально ничем не отличается от описанного, так как для ЭВМ все равно: предлагать ли варианты ответов пользователю на заданный вопрос или принимать варианты его вопросов на полученный ответ. Но все же меню "наоборот" чаще используется. И причиной этому является активность конечного пользователя, который обычно предпочитает знать, какими средствами он располагает при общении с ЭВМ. Наиболее рельефно преимущество такого меню видно в информационных системах, с которыми мы сейчас и познакомимся.
Gudleifr
Gudleifr
Admin

Сообщения : 3246
Дата регистрации : 2017-03-29

Вернуться к началу Перейти вниз

Растригин. Вычислительные машины, системы, сети... 1982 Empty Re: Растригин. Вычислительные машины, системы, сети... 1982

Сообщение автор Gudleifr Сб Янв 16, 2021 11:55 am

МЕНЮ В ИНФОРМАЦИОННЫХ СИСТЕМАХ
Информационные системы, создаваемые для удовлетворения информационных потребностей пользователей (конечных, в первую голову), занимают основное время работы современного парка ЭВМ. Информация нужна всем, и ЭВМ является идеальным ее хранителем и "выдавателем", так как обращение к самой медленной памяти ЭВМ (это магнитные ленты) занимает во много раз меньше времени, чем обращение к самой быстрой неэлектронной памяти (например, на фотопленке). Именно это обстоятельство делает информационные системы незаменимым средством оперативного получения информации.

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

Приведем пример использования меню в библиографической системе. Представьте, что вы пришли в библиотеку, снабженную такой системой. Здесь нет унылых рядов библиографических шкафов, заполненных тысячами библиографических карточек. Только видеотерминалы с перенумерованными кнопками. Кнопок немного больше, чем на "консультанте" в поликлинике. Их десять штук и все они имеют номера 1, 2, ..., 10.

Вы садитесь за видеотерминал, включаете его и диалог начинается с такого кадра на экране:

ЭВМ: Библиографическая информационная система приветствует нас!
В библиотеке имеются книги по следующим разделам:
1 - наука
2 - литература
3 - история
4 - искусство
5 - спорт
и т.д.
Наберите, пожалуйста, номер раздела, который вас интересует.

Обратите внимание, что вам предложены не ответы, а вопросы, а точнее: области, внутри которых вы можете найти ответы на интересующие вопросы.

Допустим, что вы интересуетесь наукой и в ответ на этот кадр набрали на клавиатуре номер 1. Тогда машина предлагает следующий кадр "меню":

ЭВМ: В разделе "Наука" имеются книги по следующим областям:
1 - физика
2 - химия
3 - вычислительная техника
4 - механика
5 - биология
6 - математика
и т.д.
Наберите номер той области, которая вас интересует.

Пусть вы набрали номер 3, на что следует кадр:

ЭВМ: В разделе "Вычислительная техника" имеются книги по следующим направлениям:
1 - вычислительная математика
2 - программирование
3 - архитектура ЭВМ
4 - системотехника
5 - диалог "человек-ЭВМ".
Наберите номер направления, которое вас интересует.

Вас, разумеется, интересует диалог, и следовательно, кнопка номер 5. В ответ на это вы получите следующую страницу "меню" на экране дисплея:

ЭВМ: В разделе Диалог "человек-ЭВМ" имеются следующие книги:
1 - Глушков В.М. и др. Человек и вычислительная техника. Киев, 1971.
2 - Мартин Дж. Системный анализ передачи данных. Т.1. М., 1975.
3 - Чачко А. Человек за пультом. М., 1974 Растригин. Вычислительные машины, системы, сети... 1982 Leaf10ТЕМА #144, АБЗАЦ #3210Растригин. Вычислительные машины, системы, сети... 1982 Leaf10.
Наберите номер книги, которая вас интересует.

Нажав кнопку 3 вы получите на экране реферат книги А.Чачко (это необходимо, так как название книги редко правильно отражает ее содержание).

Ознакомившись с ним вы должны сделать очередной выбор, предлагаемый машиной:

ЭВМ: Что желаете получить:
1. Содержание
2. Книгу с экрана
3. Собственно книгу
Нажмите соответствующую кнопку.

Нажав первую кнопку, вы получите на экране содержание этой книги с повторением двух остальных вопросов. Вторая кнопка дает вам возможность читать книгу с экрана. Каждая ее страница будет сопровождаться вопросами:

ЭВМ: 1. Следующую страницу?
2. Через одну страницу?
и т.д.

Так вы можете "листать" и читать ее "по диагонали".

Нажав третью кнопку вы тем самым автоматически сделаете заказ в книгохранилище, а на экране получите указание когда и где в библиотеке вы можете получить книгу в ее натуральном виде.

Выключив экран, вы в любой момент можете выйти из системы.

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

Как видно, способ меню не требует от пользователя никаких знаний о программировании, устройстве и специфике ЭВМ. Знай читай текст и нажимай нужную кнопку - благо, что их немного. Но таким способом удается решать крайне узкий класс задач. Чуть ваша задача отклонится от предусмотренных в программе и в меню не окажется нужного вам "блюда".

Что же делать?- Надо программировать - никуда тут не денешься! А уж если приходится программировать, то хотелось бы иметь в своем распоряжении очень простой язык. Таким языком является БЭЙСИК.


Последний раз редактировалось: Gudleifr (Сб Апр 08, 2023 12:20 am), всего редактировалось 2 раз(а)
Gudleifr
Gudleifr
Admin

Сообщения : 3246
Дата регистрации : 2017-03-29

Вернуться к началу Перейти вниз

Растригин. Вычислительные машины, системы, сети... 1982 Empty Re: Растригин. Вычислительные машины, системы, сети... 1982

Сообщение автор Gudleifr Сб Янв 16, 2021 11:58 am

ЯЗЫК ДЛЯ ТУЗЕМЦЕВ (БЭЙСИК)

В прошлом веке один английский миссионер, желая приобщить туземцев к цивилизации, выделил из английского языка самую распространенную и самую простую его часть и стал учить туземцев такому упрощенному английскому языку. Этот язык содержал всего 300 слов и почти не имел грамматики. Назвали его "Basic English", то есть "основной английский" (в русской транскрипции: бэйсик инглиш). Язык привлекал своей простотой и вскоре завоевал популярность не только среди туземцев, но и эмигрантов.

В 1965г. был разработан новый бэйсик, но уже для других "туземцев" - людей, не владеющих языками общения с ЭВМ. Назвали его тоже BASIC, что является аббревиатурой английской фразы: Beginner's All-purpose Symbolic Instruction Code, то есть многоцелевой язык символических инструкций для начинающих. Название несколько надуманное для того, чтобы получить сокращение бэйсик, известное всему миру.

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

Бэйсик (одна из его версий) содержит следующие символы:
1. 26 заглавных английских букв от А до Z.
2. 10 цифр от 0 до 9.
3. 4 знака препинания: . (точка), , (запятая), ; (точка с запятой), ' (апостроф).
4. 5 знаков операций: + (плюс), - (минус), * (умножение), / (деление), ^ (возведение в степень).
5. 6 знаков отношений: =, <>, >, >=, <, <=.
6. ( ) - круглые скобки.

Вот и все! В русском варианте добавлены заглавные русские буквы, отличающиеся от английских, например, Б, Ю и т.д.

Основные операторы бэйсика:
NEW (новый) - открывает новую программу,
RUN (прогон) - запускает программу,
PRINT (печатать) - команда на печать того, что следует за этим оператором.

Все операторы в программе нумеруются обычно через 10, кроме NEW и RUN.

Пример простейшей программы!

NEW
10 PRINT 'Я УЧУ БЭЙСИК'
RUN

ЭВМ на эту программу выдаст:

Я УЧУ БЭЙСИК,

то есть напечатает то, что окаймлено апострофами (').

Еше операторы бэйсика:
LET (пусть) - оператор присвоения. Он определяет значение переменных, следующих за ним.
IF... THEN... (Если..., то...) - оператор условного перехода. Отличается от фортрановского только тем, что отсылает не к метке, а к номеру оператора, который играет в бэйсике роль метки.

Другой пример - вычисление факториала N!, заданного числа N:

NEW
10 LET X=1 'Задается начальное значение переменной x.
20 LET I= 0 'Задается начальное значение переменной i.
30 LET I=I+1 'Увеличение i на единицу.
40 LET X=X*I 'Новое значение x равно старому, умноженному на i.
50 IF I<N THEN 30 'Если i<N, то следует идти на оператор с номером 30 (при i = N программа перейдет на следующий оператор с номером 60, в этот момент x=1*2*3*...*N=N!.
60 PRINT X 'Печать результата N!.

Как легко заметить, бэйсик очень похож на фортран, только значительно проще. Именно поэтому этим языком сейчас снабжены почти все ЭВМ, чаще всего используемые в диалоговом режиме.

Опыт показывает, что тот, кто хоть раз посидел за пультом дисплея и поработал с ЭВМ на бэйсике никогда не забывает захватывающего ощущения огромных возможностей, которые открывает ЭВМ перед пользователем: ее мгновенная реакция на любой фрагмент составленной программы (достаточно нажать клавишу "RUN", а если ее нет, то набрать слово RUN на клавиатуре дисплея) и неограниченные возможности по исправлению и совершенствованию программы. Так, если надо в старую программу вставить новый кусок, то достаточно после какого-то, например, 80-го, оператора вставить 85 GOTO 500 и направить вычисления в нужную сторону (в данном случае к оператору под номером 500) с тем, чтобы, аналогично, вернуться в нужном месте к старой программе при помощи того же GOTO например, так: 590 GOTO 90 (оператор GOTO в дословном переводе на русский означает "иди к..." оператору, номер которого указан далее). Работая по такой программе ЭВМ после 80-го оператора обратится к 85-му, выполнит далее кусок от 500 до 590-го оператора и возвратится к 90-му. (Именно для реализации таких возможностей и предусмотрен порядковый счет операторов в бэйсике через 10).

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

А для того чтобы решать более или менее сложные задачи на ЭВМ, нужно не только уметь программировать, но и знать, какими готовыми программами можно воспользоваться (они расположены обычно во внешней памяти ЭВМ, т.е. на магнитных дисках или лентах). Все это образует программное обеспечение.

Давайте разберемся в этом.
Gudleifr
Gudleifr
Admin

Сообщения : 3246
Дата регистрации : 2017-03-29

Вернуться к началу Перейти вниз

Растригин. Вычислительные машины, системы, сети... 1982 Empty Re: Растригин. Вычислительные машины, системы, сети... 1982

Сообщение автор Gudleifr Сб Янв 16, 2021 11:59 am

ЧТО ТАКОЕ ПРОГРАММНОЕ ОБЕСПЕЧЕНИЕ ЭВМ?

Читатель уже заметил в описанных примерах, что привлекательность ЭВМ для пользователя определяется двумя ее фундаментальными свойствами: уметь работать по задаваемой извне программе и хранить в своей памяти информацию с тем, чтобы выдавать ее пользователю по мере необходимости. К этим двум свойствам надо добавить и третье: способность выполнять и другие программы, хранимые в памяти ЭВМ. Эти другие программы очень разнообразны. Они-то и образуют так называемое программное обеспечение современной ЭВМ. Иногда его называют математическим обеспечением, но к математике, как к науке, оно отношения почти не имеет. Программное обеспечение современной ЭВМ представляет собой набор программ, с помощью которых реализуются ее различные и многочисленные функции и режимы работы. Объем современного программного обеспечения хорошо иллюстрируется его стоимостью - она сейчас в десять раз превышает стоимость той машины, для которой разработано это программное обеспечение. Так что ЭВМ в ее "металлическом" исполнении представляет собой только возможности, которые реализуются с помощью и при непосредственном участии программного обеспечения. Без него ЭВМ, грубо говоря, лишь груда красивого металла.

Учитывая важность программного обеспечения, давайте рассмотрим его структуру. Оно подразделяется на два класса программ: прикладных и системных.

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

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

Если прикладные программы нужны пользователю, то системные - машине. Именно они позволяют ей работать хорошо, т.е. эффективно обслуживать пользователя. Для этого ЭВМ нужно уметь многое. Именно это многое программируется и образует системное программное обеспечение ЭВМ. О системных программах будет рассказано чуть позже, а теперь вернемся к прикладным.
Gudleifr
Gudleifr
Admin

Сообщения : 3246
Дата регистрации : 2017-03-29

Вернуться к началу Перейти вниз

Растригин. Вычислительные машины, системы, сети... 1982 Empty Re: Растригин. Вычислительные машины, системы, сети... 1982

Сообщение автор Gudleifr Сб Янв 16, 2021 12:00 pm

ПАКЕТЫ ПРИКЛАДНЫХ ПРОГРАММ

Прикладные программы объединяются в пакеты, которые так и называются "пакеты прикладных программ" (сокращенно ППП). Это объединение производится по принципу специализации, т.е. в один пакет объединяют прикладные программы, решающие задачи из одного и того же раздела науки, техники и т.д. Например, упомянутая выше программа решения систем линейных алгебраических уравнений будет извлечена из пакета "Алгебра", где она объединена вместе с программами вычисления определителя, обращения матрицы и т.д.

Пакет "Статистика" объединяет программы, необходимые для обработки результатов наблюдений. А в пакете "Анализ" собраны программы численного решения дифференциальных уравнений, вычисления определенных интегралов и другие вычислительные программы математического анализа. И т.д. Очевидно, что число таких пакетов определяется числом областей, требующих широкого применения ЭВМ (для редких случаев заранее составлять прикладную программу нецелесообразно).

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

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

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

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

Как видно, пакет прикладных программ является довольно сложной, но очень компактной программной системой.

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

Следует, однако, заметить, что грань, отделяющая библиотеку от пакета, определена не четко. Действительно, программы библиотеки могут использовать в качестве вызываемых подпрограмм стандартные программы ЭВМ. Эти вызываемые программы можно рассматривать, как программный модуль, что делает библиотеку похожей на пакет. Именно поэтому иногда пакет называют библиотекой, а библиотеку - пакетом.
Gudleifr
Gudleifr
Admin

Сообщения : 3246
Дата регистрации : 2017-03-29

Вернуться к началу Перейти вниз

Растригин. Вычислительные машины, системы, сети... 1982 Empty Re: Растригин. Вычислительные машины, системы, сети... 1982

Сообщение автор Gudleifr Сб Янв 16, 2021 12:01 pm

СИСТЕМНЫЕ ПРОГРАММЫ

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

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

Совсем другая ситуация складывается при желании убыстрить работу ЭВМ. Это можно сделать по разному. Во-первых, можно запараллелить выполнение одной программы, то есть одновременно выполнять ее разные куски (если это возможно). Например, во время печати промежуточных результатов продолжать выполнение другой части программы, если эта часть не требует печати. За этим "если" должна следить системная программа и устранять конфликт, координируя работу процессора и устройства вывода (в данном случае - печать). А, во-вторых, можно на одной ЭВМ одновременно решать сразу несколько задач.
Gudleifr
Gudleifr
Admin

Сообщения : 3246
Дата регистрации : 2017-03-29

Вернуться к началу Перейти вниз

Растригин. Вычислительные машины, системы, сети... 1982 Empty Re: Растригин. Вычислительные машины, системы, сети... 1982

Сообщение автор Gudleifr Сб Янв 16, 2021 12:02 pm

ЭВМ В РОЛИ ЦЕЗАРЯ

Очевидно, режим работы ЭВМ должен быть таким, чтобы быстрее решать задачи. А от чего зависит скорость решения? Прежде всего от скорости выполнения операторов программы ЭВМ, от скорости ввода данных и и вывода результатов. Если скорость работы машины невелика, то рабочие операции в основном и "съедают" все время. Так было в недавнем прошлом. Однако, как всем известно, скорость счета современных ЭВМ очень быстро растет (так, за каждые 10 лет развития вычислительной техники эта скорость увеличивается более чем в 10 раз).

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

Напрашивалось решение - обеспечить одновременную работу всех устройств, но над разными задачами. Когда N-я задача вычисляется, (N+1)-я вводится, а (N-1)-я (уже решенная) - выводится. Так появился пакетный режим работы ЭВМ, суть которого заключается в следующем. Из подготовленных программ и данных составляется так называемый "пакет задач", которые поступают непрерывно в ЭВМ. Машина решает задачи одну за другой без перерыва, а результаты выводятся по мере их получения.

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

Говорят, что известный Гай Юлий Цезарь мог одновременно слушать, писать и говорить. Такое умение совмещать различные "режимы" работы произвело настолько большое впечатление на современников, что до многих из нас, их потомков, дошли сведения только об этом его достоинстве (если не верите, спросите у знакомых, чем был знаменит Цезарь). Современная ЭВМ, работающая в пакетном режиме, подобна Цезарю: она может одновременно выводить результат решения одной (уже решенной) задачи, считать другую и вводить программу третьей, которую ей предстоит решать.

Если продолжить аналогию с Цезарем, то можно сказать, что пакетный режим позволяет ЭВМ одновременно "слушать" (вводить программу и данные следующей задачи), "думать" (решать задачу, программа и данные которой уже введены в ее память) и "говорить" (т.е. выводить результаты решения только что просчитанной задачи).

Выигрыш налицо! И обеспечивают этот выигрыш системные программы, координирующие работу всех устройств ЭВМ.

Самой сложной и самой важной системной программ мой является следующая.
Gudleifr
Gudleifr
Admin

Сообщения : 3246
Дата регистрации : 2017-03-29

Вернуться к началу Перейти вниз

Растригин. Вычислительные машины, системы, сети... 1982 Empty Re: Растригин. Вычислительные машины, системы, сети... 1982

Сообщение автор Gudleifr Сб Янв 16, 2021 12:04 pm

ОПЕРАЦИОННАЯ СИСТЕМА

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

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

Распределение ресурсов ЭВМ операционной системой производится в соответствии с потребностями пользователей (точнее: их программ) и при учете требований эффективности и надежности работы ЭВМ.

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

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

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

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

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

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

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

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

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

Взаимоотношения между планировщиком и супервизором можно сравнить с взаимоотношениями между Госпланом и министерством. Госплан планирует, а министерство реализует этот план с учетом сложившейся ситуации, которая иногда заставляет министерство действовать вопреки плану, но обеспечивая при этом максимальную эффективность своей отрасли.
Gudleifr
Gudleifr
Admin

Сообщения : 3246
Дата регистрации : 2017-03-29

Вернуться к началу Перейти вниз

Страница 1 из 3 1, 2, 3  Следующий

Вернуться к началу

- Похожие темы

 
Права доступа к этому форуму:
Вы не можете отвечать на сообщения