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

Растригин. С компьютером наедине. 1990

Страница 2 из 6 Предыдущий  1, 2, 3, 4, 5, 6  Следующий

Перейти вниз

Растригин. С компьютером наедине. 1990 - Страница 2 Empty Re: Растригин. С компьютером наедине. 1990

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

ПАКЕТЫ ПРОГРАММ БАЗ ДАННЫХ

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

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

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

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

Пакет баз данных позволяет пользователю самому сконструировать свою базу данных, соответствующую тем данным, которыми он располагает. Кроме того, в пакете имеется программа, обеспечивающая пользователю возможность манипулировать созданной базой данных, работать с ней, изменять, пополнять и корректировать данные. Эту программу называют СУБД - Система Управления Базой Данных. Каждый из таких пакетов записан на гибком диске. Здесь же записан небольшой курс обучения правилам работы с этим пакетом и приведены наглядные примеры. Такие гибкие диски с ППП обычно тиражируются, что обеспечивает их дешевизну на рынке.
Gudleifr
Gudleifr
Admin

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

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

Растригин. С компьютером наедине. 1990 - Страница 2 Empty Re: Растригин. С компьютером наедине. 1990

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

КОМПЬЮТЕР - СРЕДСТВО ФОРМАЛИЗАЦИИ ЗНАНИИ

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

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

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

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

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

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

Растригин. С компьютером наедине. 1990 - Страница 2 Empty Re: Растригин. С компьютером наедине. 1990

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

ЧТО ЖЕ ДАЛЬШЕ?

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

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

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

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

Поль распаковывал коробки, насвистывая модный шлягер.

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

Поль быстро соединил шнурами блоки компьютера.

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

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

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

Растригин. С компьютером наедине. 1990 - Страница 2 Empty Re: Растригин. С компьютером наедине. 1990

Сообщение автор Gudleifr Вс Янв 24, 2021 12:36 pm

3. КАК БЫ ТЕБЕ ЭТО ОБЪЯСНИТЬ! (ПРОБЛЕМА ОБЩЕНИЯ)

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

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

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

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

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

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

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

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

Что же это такое?
Gudleifr
Gudleifr
Admin

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

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

Растригин. С компьютером наедине. 1990 - Страница 2 Empty Re: Растригин. С компьютером наедине. 1990

Сообщение автор Gudleifr Вс Янв 24, 2021 12:38 pm

МАШИННЫЙ ЯЗЫК

Он и по сей день остается для компьютера основным, самым близким и понятным ему. Это язык команд, которые может выполнять данная машина. Очевидно, что машинный язык определяется устройством и схемой компьютера. Каждый новый компьютер порождает новый машинный язык. Например, команда "Сложить два числа, хранящиеся в ячейках памяти А и В" записывается в виде трех элементов КAB, где К - код (номер) операции "сложить", A и B - адреса (номера) ячеек памяти (ОЗУ), где хранятся слагаемые (операнды). Аналогично может быть записана любая другая команда над двумя числами (операндами), которые хранятся по адресам А и В. Современные компьютеры имеют большую и разветвленную систему таких команд. Одних только сложений более десятка: сложение содержимого ячеек А и В, когда А и В - номера регистров, когда A - номер регистра, а B - номер ячейки ОЗУ и т.д. Например, машины серии ЕС ЭВМ содержат около 200 различных команд.

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

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

Например, вот так выглядит программа решения задачи сложения двух чисел, расположенных в ячейках ОЗУ с номерами 125 и 168, когда результат следует занести в ячейку под номером 193:

88 6 0125 'Загрузить в регистр 6 содержимое ячейки 125. Здесь 88 - код оператора "загрузить", 6 - номер регистра, куда загружается число из ячейки 125, 0125 - номер ячейки
90 6 0168 'Сложить содержимое регистра 6 с содержимым ячейки 168. Здесь 90 - код оператора "сложить". Результат сложения по коду 90 записывается в регистр первого слагаемого, т.е. в регистр 6 (есть другие коды сложения, при которых результат направляется в другое место, например по адресу второго слагаемого)
80 6 0193 'Записать содержимое регистра 6 в ячейку 193. Здесь 80 - код оператора "записать в ОЗУ".
***

Так устроена ДВУХАДРЕСНАЯ СИСТЕМА КОМАНД. Ее двухадресность определяется числом адресов в команде. Количество адресов ячеек памяти, которые можно упоминать в одной команде, называют АДРЕСНОСТЬЮ компьютера. Двухадресная система команд наиболее распространенная, но далеко не единственная. Существуют еще одноадресная, трехадресная и даже четырехадресная системы команд.

ОДНОАДРЕСНАЯ КОМАНДА имеет структуру КA, где К - код операции и A - адрес одного из операндов, другой при этом должен находиться в специальном регистре - накопителе. Результат же заносится в тот же регистр-накопитель. Очевидно, что нужный операнд в этот накопитель следует заносить всегда предварительно. На это есть специальная команда.

ТРЕХАДРЕСНАЯ КОМАНДА имеет структуру КABC, где К - по-прежнему код операции, A и B - адреса операндов, а C - адрес ячейки, куда следует поместить результат.

В ЧЕТЫРЕХАДРЕСНОЙ КОМАНДЕ KABCD добавляется еще четвертый адрес D, где находится следующая команда, которую нужно выполнить в соответствии с программой. Заметим, что одно-, двух- и трехадресные машины имеют естественный порядок выполнения команд - последовательный, так, как они расположены в программе. Четырехадресная машина позволяет располагать команды произвольно, что иногда бывает очень важно.
Gudleifr
Gudleifr
Admin

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

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

Растригин. С компьютером наедине. 1990 - Страница 2 Empty Re: Растригин. С компьютером наедине. 1990

Сообщение автор Gudleifr Вс Янв 24, 2021 12:39 pm

"ЗА" И "ПРОТИВ" МАШИННОГО ЯЗЫКА

Чтобы программировать на машинном языке, следует знать не только всю систему команд той ЭВМ, для которой пишется программа, но ее и устройство. Это нужно прежде всего для того, чтобы представлять, как будет она реагировать на ту или иную команду. Без этого программы не напишешь! Следует также следить, чтобы не "затереть" нужную информацию в памяти при отсылке результата в ОЗУ. Ведь при этом уничтожается прежнее содержимое ячейки, куда записывается новое значение.

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

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

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

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

Растригин. С компьютером наедине. 1990 - Страница 2 Empty Re: Растригин. С компьютером наедине. 1990

Сообщение автор Gudleifr Вс Янв 24, 2021 12:39 pm

БЛИЖЕ К ЧЕЛОВЕКУ!

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

Процесс преобразования программы, написанной на одном языке, в программу, написанную на другом языке, называют ТРАНСЛЯЦИЕЙ, а программу, выполняющую эту функцию,- ТРАНСЛЯТОРОМ. Легко заметить, что транслятор выполняет функцию автоматического переводчика с одного формального языка на другой, тоже формальный. Стоит ли говорить, что программа такого транслятора очень сложна и создают ее программисты высокого класса. Очевидно, что выходным языком транслятора всегда является уже известный нам машинный язык. А входным?
Gudleifr
Gudleifr
Admin

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

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

Растригин. С компьютером наедине. 1990 - Страница 2 Empty Re: Растригин. С компьютером наедине. 1990

Сообщение автор Gudleifr Вс Янв 24, 2021 12:42 pm

СИМВОЛИЧЕСКИЕ ЯЗЫКИ

Исторически первыми входными языками для трансляции в машинные стали символические языки. Суть их заключается в том, что коды операций и адреса операндов записываются в символической форме, удобной и понятной человеку. Например, уже известная нам двухадресная команда КAB может быть записана на символическом языке в виде СЛЖ A X1, где СЛЖ - удобный символ операции "сложить", а A и X1 - символы, т.е. обозначения, имена (а не номера) адресов первого и второго слагаемого. Содержимое ячеек памяти с этими адресами и будет складываться, а результат будет занесен в ячейку с адресом А.

В символических языках появляются переменные. Это названия (имена) тех ячеек памяти, где расположены интересующие пользователя величины. Именем (или символом) может быть любая последовательность букв и цифр, начинающаяся с буквы. Например, A, B, X1 являются именами адресов, где хранятся переменные a, b и х1 соответственно, а переменным "фи-2я", "капа-4я" удобно дать имена FI2 и КАРА4. Эти имена и будут обозначать ячейки памяти, где хранятся конкретные значения переменных фи-2я и капа-4я в данный момент. В другой момент их значения могут измениться, но имена ячеек остаются неизменными. Таким образом, каждая переменная имеет свою ячейку памяти, где и хранится ее значение. Об этом заботится транслятор, на который возлагается функция перевода имени переменной в номер ячейки, содержащей значение этой переменной.

Легко заметить, что имя переменной эквивалентно номеру ячейки памяти (ОЗУ), где хранится значение этой переменной, но имя для человека значительно удобней: он всю свою жизнь оперирует названиями, именами вещей, его окружающих. Составляя программу на символическом языке, программист оперирует только именами переменных, а в машинной программе транслятор вместо каждого имени поставит адрес ячейки памяти, где хранится значение соответствующей переменной. Для этого в начале программы всегда указываются все переменные и требуемый для них объем ячеек памяти (и все константы, как в машинном языке).
***

Приведем пример программы на символическом языке для решения задачи суммирования двух чисел x3 = x1+x2:
ЗГР РЕГ6 X1 'Загрузить в регистр 6 переменную x1. Здесь ЗГР - символ (имя) оператора "загрузить", РЕГ6 - символ регистра 6, X1 - символ переменной x1, хранящейся в ячейке 125 ОЗУ (см. предыдущий пример).
СЛЖ РЕГ6 X2 'Сложить содержимое регистра 6 с переменной x2. Здесь СЛЖ - символ оператора "сложить", X2 - символ второй переменной x2, хранящейся в ячейке 168 ОЗУ.
ЗПМ РЕГ6 ХЗ 'Запомнить содержимое регистра 6 в ячейке, соответствующей переменной x3. Здесь ЗПМ - символ оператора "запомнить", ХЗ - символ третьей переменной x3, хранящейся в ячейке 193 ОЗУ.
***

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

Транслятор с программы символического языка на машинный достаточно прост. Ему лишь нужно заменить символические обозначения цифрами номеров кодов и ячеек памяти. В приведенном примере транслятор сделает такие замены: СЛЖ на 90, ЗПМ на 80, X1 на 0125 и т.д. Именно поэтому его часто называют АВТОМАТИЧЕСКИМ КОДИРОВЩИКОМ, сам же символический язык - АВТОКОДОМ. Но главное достоинство автокода - автоматизация распределения памяти компьютера. Программисту теперь не надо следить, как распределяется память, и переживать, что будет "затерта" нужная информация.

Транслятор с символического языка часто называют АССЕМБЛЕРОМ (англ. assemble - собирать, монтировать), а сам язык - языком ассемблера. Так выстраивается цепочка (рис.2), где программисту стало уже значительно легче, а для преобразования его программы в машинную введен транслятор - ассемблер.

Растригин. С компьютером наедине. 1990 - Страница 2 9004910
Рис.2

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

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

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

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

Растригин. С компьютером наедине. 1990 - Страница 2 Empty Re: Растригин. С компьютером наедине. 1990

Сообщение автор Gudleifr Вс Янв 24, 2021 12:44 pm

ЯЗЫКИ, НЕ ЗАВИСЯЩИЕ ОТ КОМПЬЮТЕРА

Это языки ВЫСОКОГО УРОВНЯ. Отличительной их чертой является независимость от компьютера, на котором будет решаться задача. Поэтому их часто и называют МАШИННО-НЕЗАВИСИМЫМИ ЯЗЫКАМИ. Пользователь, составляющий программу на языке высокого уровня, совершенно не обязан знать тот компьютер, на котором будет решаться его задача. Ему достаточно знать только символику и грамматику такого языка. Символы операторов этого языка обычно максимально приближены к естественному языку, а грамматика - к правилам манипулирования в той проблемной области, для которой создан этот язык.

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

Растригин. С компьютером наедине. 1990 - Страница 2 9005010
Рис.3

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

ПРИСВАИВАНИЕ, с помощью которого определяется новое значение переменной. Этот оператор имеет вид ":=" и ставится между переменной и ее новым значением. Например, X:=3 (здесь переменной x присваивается значение 3), Y:=Z+U (значение y должно стать равным сумме значений переменных z и u), G:=X*Y (переменной g присваивается значение произведения xy, здесь * - знак умножения). Заметим, что в некоторых языках высокого уровня этот оператор записывается в виде обычного знака равенства "=".

Например, программа задачи сложения двух чисел x3 = x1+x2, рассмотренная выше в машинных и символических кодах, на языке высокого уровня выглядит очень просто:

X3 = X1+X2

и пользователю не нужно беспокоиться о загрузке переменных в регистры - это сделает сам транслятор. Если значение переменной b нужно увеличить на 5, то это записывается в несколько странном виде:

B = B+5

Это не уравнение: здесь знак равенства является оператором присваивания. В левой части этого выражения стоит новое значение переменной b, а в правой - старое, предыдущее значение.

Как видно, оператору присваивания может предшествовать процесс вычисления по формулам, программирование которых не представляет труда. Например, одно из решений квадратного уравнения ax2+bx+c=0 реализуется (если b**2-4ас>0) одним оператором

X = (-B + (B**2-4*A*C)*0.5)/(2*A),

где ** - знак возведения в степень, а / - знак деления.

УСЛОВНЫЙ ПЕРЕХОД определяет ветвление программы в зависимости от сложившейся ситуации. Например, оператор ЕСЛИ X>5 ТО 36 означает, что при x<=5 следует выполнять очередной оператор программы, а при x>5 надо обращаться к оператору под номером 36 или с меткой 36. (Меткой называется значок, стоящий перед оператором, к которому следует переходить при появлении этой метки в программе, меткой могут быть любые числа, буквы, значки и т.д.). Наличие оператора условного перехода позволяет делать программы очень гибкими и решать чрезвычайно сложные задачи.

ЦИКЛ позволяет повторить однотипные вычисления при изменяющихся значениях переменных. Например, оператор ДЕЛАТЬ X=X*I ДЛЯ I=1 ДО N вычислит значение факториала N! (где N-конкретное число), если предварительно присвоить X=1. Действительно, на первом шаге x=x*1=1, так как вначале x=1 и I=1. На втором шаге х=1*2=2, так как I = 2, третьем x=2*3 и т.д. до I=N. В результате получим x=1*2*3 ... N = N!.

Далее (в гл.5) мы рассмотрим основные черты наиболее распространенных языков высокого уровня, таких, как Бейсик, Фортран, Алгол, Паскаль, и др. А всего существует более 3тыс. (!) языков высокого уровня. Не следует смущаться этим обстоятельством, алгоритмические языки похожи друг на друга. Так, например, Бейсик очень похож на Фортран, а Паскаль на Алгол. Так что хорошее знание одного языка очень облегчает понимание других (как и в естественных языках).
Gudleifr
Gudleifr
Admin

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

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

Растригин. С компьютером наедине. 1990 - Страница 2 Empty Re: Растригин. С компьютером наедине. 1990

Сообщение автор Gudleifr Вс Янв 24, 2021 12:45 pm

КОМПИЛЯЦИЯ И ИНТЕРПРЕТАЦИЯ - РЕЖИМЫ ТРАНСЛЯЦИИ

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

Можно сначала перевести всю программу на машинный язык и только после этого ее выполнять. Этот режим называют КОМПИЛЯЦИЕЙ, подчеркивая функциональную идентичность обеих программ - исходной на языке высокого уровня и полученной машинной.

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

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

Как видно, процесс составления программы для компьютера требует определенных знаний и навыков (иногда достаточно глубоких). Значит ли это, что диалог с компьютером доступен лишь тем, кто владеет языками программирования? Разумеется, нет!
Gudleifr
Gudleifr
Admin

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

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

Растригин. С компьютером наедине. 1990 - Страница 2 Empty Re: Растригин. С компьютером наедине. 1990

Сообщение автор Gudleifr Вс Янв 24, 2021 12:46 pm

ПРОГРАММИРОВАНИЕ БЕЗ... ПРОГРАММИРОВАНИЯ

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

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

Приведем пример диалога в режиме меню. Пусть вам понадобилось решить квадратное уравнение ax2+bx+c=0, а формулу решения вы забыли (или просто не знали). Компьютер поможет вам в этом.

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

Этот диалог будет иметь примерно такой вид.

П: ХОЧУ РЕШИТЬ УРАВНЕНИЕ
(Компьютер не понял - в режиме меню он понимает лишь ответы на заданные им же вопросы, поэтому сообщает на экране дисплея о своих возможностях, то, что он умеет делать).

К: ИМЕЮТСЯ ПРОГРАММЫ ПО СЛЕДУЮЩИМ ТЕМАМ:
1. РЕДАКТИРОВАНИЕ ТЕКСТА
2. РЕШЕНИЕ УРАВНЕНИЙ
3. СПРАВОЧНЫЕ ТАБЛИЦЫ
4. ОБУЧЕНИЕ ИНОСТРАННОМУ ЯЗЫКУ
и т.д.
НАБЕРИТЕ НОМЕР НУЖНОЙ ТЕМЫ

П: 2 (это и есть выбор пользователя из предложенного меню)

К: ИМЕЮТСЯ ПРОГРАММЫ РЕШЕНИЯ СЛЕДУЮЩИХ УРАВНЕНИЙ:
1. АЛГЕБРАИЧЕСКИЕ
2. ДИФФЕРЕНЦИАЛЬНЫЕ
НАБЕРИТЕ НУЖНЫЙ НОМЕР

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

П: 1 (он выбрал правильно, ему действительно надо решить алгебраическое уравнение).

К: УРАВНЕНИЕ
1. ЛИНЕЙНОЕ
2. НЕЛИНЕЙНОЕ
НАБЕРИТЕ НУЖНЫЙ НОМЕР
(Это нужно компьютеру: методы решения линейных и нелинейных уравений различны, а следовательно, в его памяти находятся разные программы).

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

К: КАКОВ ПОРЯДОК УРАВНЕНИЯ?
1. МЕНЬШЕ ИЛИ РАВНО 3
2. БОЛЬШЕ 3

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

П: 1 (так как уравнение, которое следует решить, квадратное)

К: УКАЖИТЕ ПОРЯДОК УРАВНЕНИЯ
(Если до этого пользователь выбирал один из вариантов ответов, предложенных самим компьютером, то сейчас нужно ответить числом).

П:2

К: ВАШЕ УРАВНЕНИЕ ИМЕЕТ ВИД
A*Х**2+B*X+C=0?
(это машинная запись уравнения ax2+bx+c=0)
ОТВЕТЬТЕ "ДА" ИЛИ "НЕТ"

П:ДА
(Если бы ответом было "нет", то компьютер стал бы выяснять, где вами была допущена ошибка и снова задавал бы предыдущие вопросы).

К: ВВЕДИТЕ ДАННЫЕ
А =
В =
С =

П: вводит конкретные значения коэффициентов a, b и c своего уравнения.

K: X1=...; X2=...;
(Это ответ, где точками обозначены конкретные значения корней. Он был получен путем решения уравнения по известной школьной формуле, программа вычисления которой была в памяти компьютера и приведена в разделе "Языки, не зависящие от компьютера" в этой главе).

К: ВЫ УДОВЛЕТВОРЕНЫ?
ОТВЕТЬТЕ: "ДА" ИЛИ "НЕТ"
(Результат может не удовлетворить пользователя, например, когда корни окажутся мнимыми, а должны быть действительными. Ему придется либо пересмотреть вывод этого уравнения - для этого компьютер не нужен, либо изменить уравнение. Пусть случилось последнее).

П: НЕТ
К: ЧТО ИЗМЕНЯЕТСЯ?
1. ТЕМА
2. ТИП УРАВНЕНИЯ
3. СТРУКТУРА УРАВНЕНИЯ
4. ПОРЯДОК
5. КОЭФФИЦИЕНТЫ НАБЕРИТЕ
НУЖНЫЙ НОМЕР

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

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

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

Растригин. С компьютером наедине. 1990 - Страница 2 9005510
Рис.4

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

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

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

Растригин. С компьютером наедине. 1990 - Страница 2 Empty Re: Растригин. С компьютером наедине. 1990

Сообщение автор Gudleifr Вс Янв 24, 2021 12:48 pm

КОГДА МЕНЮ "НЕВКУСНОЕ"

Дело в том, что для работы в режиме меню требуется заранее предвидеть все ответы пользователя на все вопросы компьютера. Если на каждый вопрос иметь только два ответа (меньше нельзя), то для всех случаев N-шагового диалога (один шаг: вопрос-ответ) необходимо не менее 2**N вопросов - за каждым ответом пользователя должен следовать вопрос компьютера с не менее чем двумя вариантами ответа. При N=10 нужно иметь более тысячи таких вариантов (2**10~1000), а при N=50 свыше 1e15 вопросов - это миллион миллиардов. Здесь проблема не столько в том, чтобы разместить такой гигантский объем информации (емкость ОЗУ современных компьютеров значительно меньше - 1e9-1e10 байт), сколько в том, чтобы записать такое число вопросов. Несложный подсчет показывает, что даже произносить эти вопросы придется свыше 10млн. лет, если на один вопрос тратить всего 1с. Это и ограничивает возможности метода.

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

Растригин. С компьютером наедине. 1990 - Страница 2 9005610
Рис.5

Здесь компьютер должен не только понимать естественный язык пользователя (эта функция возлагается на программу лингвистического процессора), но и создавать программу решения задачи пользователя (это делает программа "планировщик", который может пользоваться готовыми программами из имеющихся в памяти пакетов прикладных программ). Отличительной чертой этой схемы является наличие баз знаний о языке пользователя (для лингвистического процессора) и о предметной области, в которой работает пользователь. Эта база знаний нужна еще и на тот случай, если для задачи пользователя не найдется программы ее решения в пакете прикладных программ. Тогда планировщик составит нужную программу, оперируя знаниями о предметной области пользователя. Такие программные системы называют ИНТЕЛЛЕКТУАЛЬНЫМ ИНТЕРФЕЙСОМ (он выделен на рис.5 штриховой линией; подробнее о нем см. в гл.11).

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

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

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

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

Растригин. С компьютером наедине. 1990 - Страница 2 Empty Re: Растригин. С компьютером наедине. 1990

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

4. "ДУША" КОМПЬЮТЕРА (ОПЕРАЦИОННАЯ СИСТЕМА)

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

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

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

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

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

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

Растригин. С компьютером наедине. 1990 - Страница 2 Empty Re: Растригин. С компьютером наедине. 1990

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

ФУНКЦИИ ОПЕРАЦИОННОЙ СИСТЕМЫ

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

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

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

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

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

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

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

Растригин. С компьютером наедине. 1990 - Страница 2 Empty Re: Растригин. С компьютером наедине. 1990

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

ФАЙЛОВАЯ СИСТЕМА

Напомним, что ФАЙЛОМ называют упорядоченный набор записей, выступающий как самостоятельный единый объект. В виде файлов хранятся программы, данные для их работы, любые тексты, таблицы, изображения и т.д. Каждый файл имеет свое имя, которое регистрируется в каталоге диска, на котором хранится этот файл. В каталоге имен файлов имеются сведения об их размерах и положении на диске.

Для манипулирования файлами пользователю следует знать несложный язык команд, с помощью которого он сможет активно вмешиваться в содержимое файлов. Такими командами в операционной системе СР/М, например, являются:
DIR - вывести каталог файлов диска,
REN - переименовать файл,
ERA - уничтожить файл,
TYPE - вывести файл на дисплей или принтер,
COPY - копировать файл.

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

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

Одной из самых популярных программ операционной системы является...
Gudleifr
Gudleifr
Admin

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

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

Растригин. С компьютером наедине. 1990 - Страница 2 Empty Re: Растригин. С компьютером наедине. 1990

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

РЕДАКТОР

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

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

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

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

Растригин. С компьютером наедине. 1990 - Страница 2 Empty Re: Растригин. С компьютером наедине. 1990

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

ТЕКСТОВЫЙ РЕДАКТОР

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

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

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

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

Растригин. С компьютером наедине. 1990 - Страница 2 Empty Re: Растригин. С компьютером наедине. 1990

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

ГРАФИЧЕСКИЙ РЕДАКТОР

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

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

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

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

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

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

Растригин. С компьютером наедине. 1990 - Страница 2 Empty Re: Растригин. С компьютером наедине. 1990

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

ОПЕРАЦИОННАЯ СИСТЕМА - РАСПРЕДЕЛИТЕЛЬ РЕСУРСОВ

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

В компьютере ресурсами являются процессорное время, оперативная память, устройства ввода-вывода и прикладные программы. На каждый из этих ресурсов могут претендовать как сами пользователи, так и процессы, порождаемые этими пользователями. Рассмотрим, как управляет операционная система каждым из этих ресурсов.
Gudleifr
Gudleifr
Admin

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

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

Растригин. С компьютером наедине. 1990 - Страница 2 Empty Re: Растригин. С компьютером наедине. 1990

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

РАСПРЕДЕЛЕНИЕ ПРОЦЕССОРНОГО ВРЕМЕНИ

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

Рассмотрим, как решается эта проблема при решении компьютером сразу нескольких задач. Эта ситуация типична при обработке мощным компьютером потока поступающих на него задач, например в автоматизированных системах управления производством (АСУП).

Характерной особенностью процесса решения почти любой задачи является то, что время от времени в ней возникает необходимость в получении информации из внешних запоминающих устройств (чаще всего с магнитных дисков). Для этого необходимо обратиться к операции ввода-вывода, на которую затрачивается время (по крайней мере равное времени одного оборота диска - примерно 0.02с). Но за это время процессор производительностью в 1млн. операций в секунду может выполнить свыше 20тыс. операций, т.е. решить небольшую задачу. Поэтому задачу, которая ждет получения необходимой информации, целесообразно временно снять с процессора и загрузить его выполнением другой задачи, готовой к обработке (из очереди). А снятая задача после получения информации снова ставится в очередь к процессору. Такой режим работы называют МНОГОПРОГРАММНЫМ или МУЛЬТИПРОГРАММНЫМ. Он обеспечивает высокую загрузку процессора: незначительные простои происходят только в моменты перезагрузки процессора - перехода с одной задачи на другую.

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

Растригин. С компьютером наедине. 1990 - Страница 2 9006510
Рис.6

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

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

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

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

Растригин. С компьютером наедине. 1990 - Страница 2 Empty Re: Растригин. С компьютером наедине. 1990

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

КРУГОВОРОТ

Для преодоления этой трудности и был предложен режим квантования процессорного времени. В этом режиме каждой задаче при ее выходе на процессор выделяется квант времени DELTA, равный, например, 0.01с. Если задача за это время была решена, то процессор немедленно загружается другой готовой к выполнению задачей из очереди. Но решение этой задачи может быть приостановлено по двум причинам. Во-первых, исчерпан выделенный квант времени DELTA, так как задача оказалась не очень короткой. И во-вторых, необходимость обращения к устройству ввода-вывода для получения информации с магнитного диска, требуемой для дальнейшего решения этой задачи. В первом случае незаконченная задача отправляется в конец очереди задач к процессору, который продолжит ее решение не позже чем через n*DELTA секунд, где n - число подготовленных задач, стоящих в очереди к процессору. Во втором случае (задача снимается из-за необходимости обращения к внешней памяти) процессор обращается к очередной задаче, а снятая задача дожидается необходимой информации и, получив ее, ставится в конец той же очереди готовых задач к процессору. Схема такой обработки (рис.7) получила название круговорота (RR - Round Robin).

Растригин. С компьютером наедине. 1990 - Страница 2 9006610
Рис.7

Действительно, большие задачи, не требующие ввода-вывода, как бы вращаются до тех пор, пока не будут решены. При этом новые задачи поступают на процессор без очереди, и их обработка начинается не позже чем через квант времени после их поступления. В результате короткие задачи (требующие для своего решения не больше одного кванта процессорного времени) будут решаться сразу. Если нужно два кванта, то задача будет пребывать в системе время, равное (n+1)*DELTA, где n - длина очереди и т.д.

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

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

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

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

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

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

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

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

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

Растригин. С компьютером наедине. 1990 - Страница 2 Empty Re: Растригин. С компьютером наедине. 1990

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

РАСПРЕДЕЛЕНИЕ РЕСУРСА ПАМЯТИ

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

Чтобы преодолеть указанные трудности, и был предложен остроумный механизм ВИРТУАЛЬНОЙ ПАМЯТИ - памяти, кажущейся пользователю оперативной, но не являющейся ею в действительности. Реализует такую память операционная система.

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

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

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

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

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

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

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

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

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

Растригин. С компьютером наедине. 1990 - Страница 2 Empty Re: Растригин. С компьютером наедине. 1990

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

И ЕЩЕ МНОГОЕ ДРУГОЕ...

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

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

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

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

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

Растригин. С компьютером наедине. 1990 - Страница 2 Empty Re: Растригин. С компьютером наедине. 1990

Сообщение автор Gudleifr Вт Янв 26, 2021 11:25 am

5. ЯЗЫК МОЙ - ДРУГ МОЙ (ЯЗЫКИ ОБЩЕНИЯ С КОМПЬЮТЕРОМ)

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

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

Мы уже познакомились с общими идеями построения языков общения пользователя с компьютером (см. гл.3). Выяснили, что языки бывают низкого (машинный и символический языки) и высокого уровня. Последние представляют наибольший интерес для широких кругов пользователей: они максимально приближены к естественному языку человека, что очень важно для освоения техники программирования. Языки высокого уровня не требуют от пользователей знаний об устройстве и функционировании компьютера, на котором будет решаться задача. Языки бывают УНИВЕРСАЛЬНЫЕ и СПЕЦИАЛИЗИРОВАННЫЕ. Последние ориентированы на узкий класс задач и строятся обычно на базе универсальных. Поэтому рассмотрим лишь основные универсальные языки.

Сразу следует отметить, что все эти языки пользуются английским алфавитом и языком для изображения операторов, переменных, меток. Причина этого вовсе не в каких-то удобствах английского языка, а в том, что сами языки высокого уровня и первые программы для компьютеров появились в англоязычных странах. И хотя есть неплохие русские варианты языков высокого уровня, программисты, а вслед за ними и пользователи обычно предпочитают английский. При этом программы понятны всему миру, с чем, естественно, нельзя не считаться. А если необходимо ввести русские слова, их пишут латинскими буквами. Так, в программах появляются довольно забавные образования типа VREMJA или DEN NEDELI. В этом ничего страшного нет, хотя учителя русского языка наверняка будут шокированы.
Gudleifr
Gudleifr
Admin

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

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

Растригин. С компьютером наедине. 1990 - Страница 2 Empty Re: Растригин. С компьютером наедине. 1990

Сообщение автор Gudleifr Вт Янв 26, 2021 11:27 am

ПРОГРАММИРОВАТЬ ИЛИ МОДЕЛИРОВАТЬ?

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

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

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

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

Растригин. С компьютером наедине. 1990 - Страница 2 9007410
Рис.8

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


Последний раз редактировалось: Gudleifr (Вт Янв 26, 2021 12:57 pm), всего редактировалось 1 раз(а)
Gudleifr
Gudleifr
Admin

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

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

Страница 2 из 6 Предыдущий  1, 2, 3, 4, 5, 6  Следующий

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

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

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