Отрасли в которых применяются прикладные программы
Рис. 4.15. Различные области применения прикладного программного обеспечения.
Может случиться так, что создание прикладного обеспечения станет своего рода индустрией. На рис. 4.15 показан диапазон распространения программного обеспечения. Все, кто будет пользоваться какой-либо аппаратурой, будут использовать и системное обеспечение. А наряду с аппаратурой и системными программами будут использоваться некоторые части прикладных пакетов программ, разработанных. либо непосредственно пользователем, либо группой сопровождения или закупленных в качестве стандартного обеспечения.
Системное программное обеспечение
Системное программное обеспечение используется для управления вычислительной машиной во время выполнения или разработки других программ. Использование вычислительной машины для управления ею самой и ее окружением — это логическая работа, а не работа с числами или символами. Этот тип использования вносит дополнительную сложность в программное обеспечение. Далее в этой главе мы еще обратимся к этому вопросу.
Разрабатывать системные программы труднее других, к тому же их особенно трудно представить себе во всех деталях и понять принципы их действия. Системные программы значительно сложнее прикладных и сложнее инструментальных программ.
Системное программное обеспечение служит для следующих целей.
1. Динамическое распределение устройств вычислительной машины. С каким устройством связано поступившее задание? Когда это устройство будет использовано? Каков порядок или приоритет работ? Подобные решения принимает и тем самым управляет работой машины на фазе использования большой и сложный на бор программ, называемый операционной системой.
2. Выполнение требований к окружению программ на фазе их использования. Если наша работающая система не имеет права “выключаться” более чем на 30 с, мы не можем поручить человеку привести систему в порядок — он просто не сможет так быстро отреагировать. Вычислительная машина, однако, сможет, поэтому мы пишем программы, которые будут следить за всеми устройствами системы и правильностью работы. Если они работают неверно, операционная система изменит конфигурацию аппаратуры (у нее в запасе есть дополнительные устройства) и работа будет продолжена, хотя некоторые из устройств и отключатся.
Операционная система. Операционная система представляет собой большой набор программ. Это наиболее распространенная форма системного программного обеспечения.
Операционные системы применяются теперь почти повсюду. Размеры денежных вложений в создание и модификацию операционных систем просто ошеломляют. Фирма IBM вложила в свою операционную систему около 3 млрд. долларов, а конца расходам еще не видно.
Однако лишь немногие представляют себе всю необъятность функций, выполняемых этими системными программами, все великое множество программ, которое они предоставляют пользователям для их работы, а также то, насколько это облегчает пользователю работу с ЭВМ.
За годы, прошедшие после своего возникновения, операционные системы превратились из относительно простого в невероятно сложное программное обеспечение, которое в настоящее время необходимо и программистам, и обслуживающему персоналу, и операторам ЭВМ. Современная операционная система:
1. “Управляет” работой аппаратуры.
а. Операционная система реагирует на все отказы, регистрирует их, распределяет работу, управляет процедурами восстановления и возобновления работ. Она обрабатывает прерывания, идущие от других машин, часов, операторов и т.д. (до появления операционных систем всем этим занимались операторы ЭВМ).
б. Операционная система составляет расписание работ на машине, “решая”, что можно начать выполнять не которую работу, так как сейчас доступны все необходимые для нее магнитные ленты, диски, свободна оперативная память, печатающие устройства или какие-нибудь иные машинные ресурсы. Она ведет списки используемых устройств и поступающих заданий. Она составляет расписание! В этой роли она управляет работой трансляторов (компиляторов) и ввода/вывода. (Раньше эту работу выполнял обслуживающий персонал машинного зала.)
в. Она приписывает поступающим заданиям приоритеты. (Это делалось раньше обслуживающим персоналом.)
2. Помогает выполнять функции, необходимые для работы прикладных программ.
а. В ней есть программы сортировок, печати и загрузки, и программистам уже нет необходимости создавать собственные их версии. Ранее эти функции выполнялись программами, написанными прикладными программистами. Иногда эти функции считаются принадлежностью операционных систем, а иногда нет.
б. Она связывает между собой программы, тем самым множество различных частей программ может быть даже написанных разными программистами, будут работать как одно целое. (Ранее выполнялось программа ми прикладных программистов.)
3. Управляет хранением данных и их восстановлением, что совершенно необходимо для функционирования прикладных программ (так называемое Управление Данными)
а. Прикладной программист пишет команды запроса данных у операционной системы. Эти данные могут быть идентифицированы каким-либо специальным образом или вообще как-нибудь абстрактно, но в любом случае детали физического хранения не указываются. Операционная система вставляет в это места другие команды, которые приводят к запоминанию, отыскиванию, замене данных и т. д. (Ранее все это писалось прикладными программистами.) Этим достигается высокая сохранность данных и независимость программ от конкретных физических устройств. Пользователи и изготовители аппаратуры получают возможность, не внося никаких изменений в какие-либо прикладные программы, создавать новые, более совершенные, более дешевые устройства хранения файла. (Иногда эта область программного обеспечения рассматривается отдельно от операционных систем. Но она всегда является принадлежностью системного программирования.)
4. Управляет связью (посредством, например, телефонных линий) между программами, работающими на разных вычислительных машинах.
а. Обрабатывает сообщения, идущие от вычислительной машины и поступающие в нее извне, используя стандартные коммуникационные линии и сети. (Ранее писалось прикладными программистами.)
5. Управляет взаимодействием с пользователем (при помощи терминалов или телевизионных экранов).
а. Операционная система содержит программы, позволяющие пользователям работать с вычислительной машиной в диалоговом режиме с помощью стандартного дисплейного оборудования. (Ранее такие программы писали прикладные программисты.)
6. Защищает систему.
а. Она защищает свои собственные программы от “порчи” новыми, неотлаженными программами, впервые введенными в систему. (Ранее такой защиты не создавали.)
б. Операционная система выполняет восстановление функции, осуществляет дублирование, переключение, диагностическое и другое тестирование. (Ранее проделывалось вручную с помощью групп поддержки — т.е. крайне медленно.)
Операционные системы прошли длительный путь развития. В 1966 г. в журнале “IBM System Journal” была опубликована статья Мили под названием “Функциональная структура Операционной системы ОС/360” { 1 G.H.Mealy. Functional Structure of the OS/360 Operating System }. Мили отметил, что “идея операционных систем восходит по крайней мере к 1953 г., когда состоялась летняя школа по вычислительным машинам и пользовательским системам”. Перед операционными системами “тогда, как и сейчас... ставили цель добиться безостановочного выполнения сразу нескольких задач и организовать библиотеку стандартных программ”.
(Свое название операционные системы получили за то, что первоначально они помогали операторам поддерживать безостановочную работу машин, выполняя функции “восстановления”, проводившиеся раньше самими операторами.)
Автор статьи утверждает, что основной задачей разработки ОС/360 было получение системы “одинаково пригодной как для пакетной обработки, так и для применений в реальном времени”. (Эта вторая цель так и не была достигнута.) Были и вторичные цели:
— Повысить скорость решения задач
— Уменьшить время ответа
— Повысить производительность программиста
— Адаптируемость к новым условиям
— Расширяемость
Достижение всех этих целей, за исключением первой, помогает программистам. Что же касается производительности, то “ОС должна обеспечить качественно новый уровень гибкости путем предоставления программистам относительно большого набора входных языков”. Ставилась также и цель по достижению независимости от внешних устройств; новая аппаратура подключается автоматически без дополнительных усилий со стороны прикладных программистов! Среди многих других функций, выполняемых ОС/360 для программистов,— связывание частей больших программ, сортировки, работы по вводу/выводу. Для управления хранением и доступом к данным в операционную систему введено восемь различных вариантов программ. Теперь программисту не нужно писать самому подобные программы, в его распоряжении имеется много способов, чтобы указывать, как это должна делать операционная система.
Системы управления базами данных (СУБД). Относительно систем управления базами данных существует большая путаница. Эти системы настолько мощны и выполняют столь широкий диапазон функций, что многие путают их подлинное назначение со “случайными” проявлениями.
Самым большим достижением системы управления базой данных стало весьма значительное облегчение процесса внесения изменений в программное обеспечение. Благодаря СУБД облегчается модификация прикладных программ, логической и физической структур файлов данных. Во многих случаях СУБД различает, стоит ли вносить изменения или нет.
Второй причиной создания СУБД является стремление к экономии пространства для файлов. Третья причина — это необходимость повысить достоверность информации в файлах, т.е. облегчить проверку отсутствия синхронизационных сбоев. Достоверность повышается благодаря уменьшению общего числа файлов. И наконец, с появлением СУБД облегчается доступ к данным. Многие ошибочно считают эту четвертую причину возникновения СУБД самой главной
Как работает СУБД. Для понимания принципов работы системы управления базой данных полезно обратиться за иллюстрацией к организации авторемонтного дела. Начиная дело, я привлекаю всего трех механиков, причем каждый работает со своими собственными инструментами. Никаких стандартов пока не существует. Когда число механиков доходит до восьми, мы начинаем сталкиваться с проблемой несовместимости. Прибор, которым механик А1 устанавливает момент зажигания в автомобиле мистера Z, отличается от всех других аналогичных приборов — и, когда этот клиент начинает жаловаться, я проверяю все приборы и обнаруживаю, что все они работают по-разному! Различия между ними вызывают тревогу. Какой же из них “правильный”?
Шаг 1
Я ввожу стандарты на все инструменты и приборы. Они должны быть определенных марок и моделей. По мере расширения мастерской я обнаруживаю, что часть приборов для установки момента зажигания остается без дела, и вовсе не нужно иметь их столько же, сколько механиков.
Шаг 2
Я отвожу специальную кладовую для инструментов и приборов, в которой мы храним самые дорогие приборы, и выдаем, “выписываем”, их по требованию отдельным механикам, которые возвращают их после выполнения работы. Это уменьшает число используемых приборов, а также облегчает задачу их ремонта и калибровки.
Шаг 3
Я обнаруживаю, что работ по регулировке зажигания становится очень много, и создаю специальный отдел регулировки зажигания. Все работы по системе зажигания проводятся только здесь, даже в тех случаях, когда регулировка зажигания является лишь частью необходимых работ.
С чем-то подобным мы сталкиваемся и в области программного обеспечения.
Сначала у каждого программиста имеются собственные файлы, так же как у каждого механика имеется свой регулировочный прибор для установки момента зажигания. Программист может полностью распоряжаться своими файлами. Он определяет их размер, формат и содержание.
При таком порядке возникли три проблемы. Во-первых, программисту было очень трудно получить данные из чужого файла. Во-вторых, при изменении данных, скажем при переходе от чисел с 12 знаками к числам с 14 знаками, приходилось изменять все программы. Это было трудно, дорого, а во многих случаях просто невозможно. В-третьих, данные программиста А несколько отличались от данных программиста В. Чьи же данные были правильными?
Шаг 1
Мы утвердили стандарты на файлы — размеры, форматы, последовательности — и тем самым облегчили использование данных, подготавливаемых другими программистами.
Шаг 2
Мы создали централизованные файлы, для которых ввели правила использования, т.е. определили, какие операции можно выполнять и где эти файлы располагать. После этого мы поместили все данные в центральное хранилище и разрешили программистам пользоваться находящимися там данными только в том случае, если они следуют установленным нами правилам и правильно оформляют свои запросы. Их программы взаимодействовали с моими программами, которые в свою очередь управляли работой с файлами. Мои программы были системными программами.
Это сразу избавило нас от многих неприятностей.
1. Данные хранились в меньшем числе файлов; это экономило место.
2. Стало легче отслеживать текущее состояние элементов данных.
3. Стало возможно изменять размеры данных в файлах (числа с 12 знаками на числа с 14 знаками) без изменения всех индивидуальных прикладных программ.
Все это достигалось исключительно тем, что все работы по записи и считыванию данных были сосредоточены в одной программе. Но программисту все же еще нужно было знать о файлах очень много различных подробностей — их содержимое, используемые форматы, а также точные способы организации запросов. И тут было обнаружено, что вовсе не каждому программисту нужны столь подробные сведения об обрабатываемых им данных.
Шаг 3
Так появилась система управления базой данных. Большая программа, выполнявшая все манипуляции с данными, стала еще больше. Программистам больше не нужно было знать детали структуры файлов. Им оставалось теперь только идентифицировать нужные им данные, а система управления базой данных, представляющая собой очень большой набор программ, выполняла все остальное.
СУБД обычно сопровождается другими программами, которые 1) обеспечивают работу с дисплеями и 2) позволяют формулировать запросы к содержимым файл на простом языке. Такой язык часто называется языком запросов. На шаге 3 создается информационно-поисковая система. Функции, определенные нами на шаге 2, уточняются таким образом, чтобы они могли помочь при поиске данных. Но это лишь некоторая дополнительная выгода, побочный эффект усилий, прилагаемых для облегчения внесения изменений в файлы. Это отнюдь не главная причина, приведшая к появлению СУБД.
В табл. 4.3 сведены воедино все преимущества, даваемые СУБД.
Использование системного программного обеспечения. Зададим себе два вопроса, которые нам помогут сосредоточить свое внимание на системном программном обеспечении. Зачем нам системное программное обеспечение? На всех ли машинах оно используется?
Главная причина возникновения системного программного обеспечения — стремление максимизировать загрузку вычислительной машины! Машина должна постоянно работать с возможно более полной нагрузкой. Чтобы этого добиться, мы и пишем программы, в помощь оператору, инженерам, программистам. Но вся эта помощь оказывается им только ради максимального использования машины, поскольку все эти программы увеличивают ее занятость. Вторая причина — облегчить возможность вносить изменения, а третья — повысить производительность труда программистов, избавив их от дублирования работ.
Таблица 4.3. Преимущества использования системы управления базой данных
Описание проблемы
| Метод, применяемый в системе управления базой данных
| Выгода от использования СУБД
|
Дублирование данных, то есть рост размеров файлов
| Один файл
| Экономия места на диске
|
Расхождение данных, неодинаковость соответствующих друг другу файлов
| Один файл
| Данные становятся более достоверными
|
Любое изменение содержимого файлов, или их структуры, или прикладных программ сразу приводит к новым разработкам
| Расслоение
| Облегчается внесение исправлений; исключается необходимость модификации прикладных программ
|
Проведенные в начале 1960-х гг. измерения фактического уровня использования большого числа различных вычислительных машин, к большому удивлению очень многих, показали, что мощность центрального процессора использовалась не более чем на 50%. Операционные системы позволили значительно повысить этот показатель!
Ответом на второй вопрос может быть только одно слово — нет! Отнюдь не все машины работают с операционными системами. Могут работать все, но не все работают. Подавляющее большинство, возможно, более 90%, но все же не все. Позже мы увидим, что для использования в системах реального времени стандартное системное обеспечение работает слишком медленно.
Теперь ясно, что системное программное обеспечение в настоящее время начинает делать то, что раньше приходилось делать прикладным программистам. При этом как системные, так и прикладные программы выполняются в фазе использования (см. табл. 4.4). Каким же образом мы сможем отличить одни программы от других?
Таблица 4.4. Функции системных программ
| Системная функция
| Ранее выполнялась
|
| Переключение лент
| Операторами
|
2.
| Распределение ресурсов, расстановка приоритетов по ресурсам
| Операторами и начальником машинного зала
|
3.
| Восстановление после ошибки
| Операторами; программистами
|
| Работы по вводу/выводу
| Прикладным программистом
|
5.
| Работы с данными и файлами
| Прикладным программистом
|
| Работа с линиями связи
| Прикладным программистом
|
| Работа с дисплеями
| Прикладным программистом
|
8.
| Организация диалога
| Прикладным программистом
|
Отнести конкретную программу к системному или прикладному обеспечению нам помогут два следующих критерия:
1. Откуда возникла данная программа? Была ли она разработана прикладным программистом или отдельной группой, созданной для сопровождения программ, а может быть, ее разработали те же, кто создал и аппаратуру? Кто сопровождает эту программу?
2. Насколько универсальна данная программа, могут ли ее использовать какие-либо другие прикладные программисты?
В фазе использования программы, написанные прикладными программистами совместно с группой системных программистов, для стороннего наблюдателя ничем не отличаются от программ, целиком созданных одними прикладными программистами. Однако в фазах разработки и сопровождения различия становятся очень и очень заметными.
Разнообразие операционных систем. Некоторую путаницу в вопросы, связанные с операционными системами, вносит и тот факт, что их развитие привело в настоящий момент к появлению специализированных систем.
Для одной и той же аппаратуры создаются операционные системы, которые рекомендуется применять в фазе использования, и системы, которые следует применять в фазе разработки. Имеются пакетные операционные системы, системы управления сетями, системы реального времени и операционные системы, ориентированные на пользователя. На некоторых машинах реализованы своеобразные смеси всех этих операционных систем.
Стоимость операционной системы. Создание и сопровождение операционных систем обходится фирмам-изготовителям в миллионы долларов, а иногда счет доходит до миллиардов. Зачастую, однако, эти расходы не выделяют из стоимости аппаратуры.
А ведь в фазе использования операционные системы тоже кое-что “стоят”: они “едят” и машинное время, и память. Тысячи людей пользуются операционными системами, это заставляет предусматривать в них широчайшее многообразие функций. Если мне какие-либо функции не нужны, я могу попробовать исключить некоторые из них из своей системы, но все исключить невозможно. Отсюда следует, что вычислительная машина делает совсем ненужные мне вещи. С этим приходится мириться, поскольку это обходится все же дешевле, чем создание собственной операционной системы или передача ее функций прикладным программам.
Источник системного программного обеспечения. В настоящее время все возрастающую долю системных программ пишут компании по производству программного обеспечения или пользователи, однако до сих пор большую их часть создают изготовители аппаратуры. Почти все системы управления базами данных отделены от операционных систем. Хотя эти системы используются совместно, но разработка их ведется по отдельности, и продают их чаще всего отдельно друг от друга.
Системные и прикладные программы в фазе использования. Итак, прикладными считаются программы, которые печатают платежные ведомости, управляют полетом ракеты, ведут самолет на посадку или выписывают чеки.
Большинство прикладных программ пишется таким образом, чтобы пользоваться ими можно было только совместно с системными программами, которые управляют работой машины и ее окружением в фазе использования, а также выполняют наиболее общие функции, в частности печать. Взгляните на схему распределения памяти, изображенную на рис. 4.16. На схеме приведены те программы, которые размещаются в памяти вычислительной машины при выполнении производственного задания, ради которого эту машину и приобретали.
Из рис. 4.16 очень хорошо видно, что основную часть памяти машины занимают системные программы, управляющие работой этой машины и ее внешним окружением.
На большинстве машин программы пишутся таким образом, чтобы они соответствовали действующей операционной системе, работали именно в ней, выполнялись совместно с ней. Программисты, работающие в какой-то фирме, разрабатывают и пишут программы выдачи платежных ведомостей фирмы. Когда работает программа составления платежной ведомости, одновременно с ней работает операционное и другое системное программное обеспечение.
Рис. 4.16. Схема распределения памяти в фазе использования.
В самом начале процесса выполняется операционная система, которая определяет вид работы, сообщает операторам, какие ленты и куда надо поставить и т.д. В дальнейшем начинает выполняться собственно программа печати ведомости. Если возникает прерывание (например, встречается ошибка), управление опять передается операционной системе, которая обрабатывает ошибку, а затем возвращает управление программе печати.
Но этот пример слишком прост. Очень часто бывает так, что в одно и то же время в памяти машины размещается несколько, а то и несколько десятков различных прикладных заданий.
В случае мультипрограммирования операционная система управляет одновременно работой дюжины прикладных программ, распределяет между ними все ресурсы машины, доводя до максимума просто “работу” — работу, выполняемую за определенное время. Подробнее этот вопрос будет изучаться в гл.7.
Плохая операционная система может обесценить сколь угодно хорошую аппаратуру, в то время как хорошая система может спасти и плохую. Часто системные программы оказываются медленными просто из-за того, что им приходится разбираться с огромным количеством возможных пользователей, данных и т.д., а для этого нужны тысячи и даже миллионы команд. Иногда они бывают медленными, потому что плохо разработаны или плохо скомпонованы.
Стандартное и нестандартное системное обеспечение. Существуют две группы задач — для одних используется стандартное системное обеспечение, а для других нет. В операционные системы и системы управления базами данных уже вложено столько денег и усилий, что их нужно использовать везде, где только возможно. Писать новые программы для выполнения их функций очень разорительно.
В то же время существует часть пользователей вычислительных машин, которые обязаны создавать свои собственные системные программы, — это пользователи систем реального времени типа V. Необходимость выполнить цикл вычислений за определенное время — миллисекунды в оборонных системах, системах гражданской авиации и NASA или секунды в системах резервирования,— а также необходимость высокой надежности делают невозможным использование стандартного программного обеспечения. Поэтому многие пользователи систем реального времени должны создавать обеспечение сами.
Системные программы индивидуального пользования пишутся довольно часто. Иногда такие системные программы могут применяться более чем одним пользователем. Разработанная фирмой IBM для резервирования авиационных билетов операционная система PARS (или АСР) используется более чем двумя десятками авиакомпаний и несколькими банками. Создание системы PARS было обусловлено тем фактом, что система ОС/360 оказалась слишком большой и медленной.
Система диспетчеризации воздушного транспорта, управляющая рейсовым авиационным транспортом, была написана один раз, а используется в 20 авиапортах Соединенных Штатов и в одном из авиапортов Великобритании. ОС/360 не смогла обеспечить необходимую надежность и подходящую схему распределения ресурсов; пришлось FAA (Federal Aviation Agency)(с помощью отделения федеральных систем IBM) писать собственные системные программы.
Такая необходимость писать специализированное системное обеспечение является одной из причин высокой стоимости и трудоемкости больших программных систем типа V.
Не так давно сразу в двух разных книгах я встретил утверждение о том, что вычислительные машины не сбиваются при работе. Это явно абсурдное утверждение; конечно же, у них бывают сбои. Все электронные устройства подвержены сбоям.
Один из авторов пытался утверждать, что оправдание типа “произошел сбой вычислительной машины” представляет собой не более чем мошенничество; ошибка обычно заключена в процедурах или командах программ.
Хотя я согласен, что фраза “виновата машина” просто отговорка, но все же утверждение, что у машин не бывает сбоев, представляется слишком вредным, особенно в книге вводного характера.
Поскольку руководство знает, что вычислительные машины все же выходят из строя, оно должно позаботиться о том, чтобы включать процедуры проверки функционирования. Любой “сбой машины” означает недостаточно квалифицированное руководство, поскольку оно не обеспечило достаточно надежную защиту системы с помощью как программного, так и аппаратного контроля.
Для обеспечения правильного, своевременного и бесперебойного выполнения задачи руководство вольно выбирать либо стандартное, либо изготовленное специально программное обеспечение. Сегодня такой выбор вполне возможен.
От пакетного режима к режиму реального времени. Переход от пакетной обработки к работе в режиме реального времени не требует слишком больших переделок прикладных программ и их логики. Баллистические траектории остаются баллистическими траекториями. А вот реорганизация системных программ действительно необходима.
Очень часто эта капитальная реорганизация не предусматривается заранее, что приводит к ужасным последствиям. Люди думают, что если они отладили свои программы в пакетном режиме, то сам переход к режиму реального времени не составит для них затруднения. Графики перехода не разрабатываются, сметы с затратами не составляются.
В системах реального времени основным фактором является само время. В пакетных системах данные, например данные от радиолокационных станций, собранные на магнитной ленте, сначала вводятся в машину, а затем обрабатываются в ней. Как только будут обработаны все данные, случись это через 24 ч. или даже через неделю, машина закончит свою работу. Время при этом не принимается во внимание.
В системах же реального времени данные радиолокаторов должны быть обязательно обработаны не более чем, скажем, за 6 с, иначе система утеряет часть жизненно необходимых ей данных. Это обязывает операционную систему вести распределение работ таким образом, чтобы обеспечить обработку всех данных именно за 6 с. И точка! И конечно же, нужно иметь программы, обеспечивающие достаточную надежность (возврат и восстановление).
Переход от хорошей пакетной системы к системе реального времени — это переход к новым концепциям.
Преимущества системного программного обеспечения
1. Системное программное обеспечение увеличивает модульность и улучшает защиту информации, значительно упрощая процесс внесения изменений в программы.
2. Системное программное обеспечение избавляет прикладных программистов от необходимости затрачивать большие усилия на сопровождение стандартных программ.
3. Уменьшая простои, системное обеспечение доводит до максимума использование аппаратуры.
4. Исключая дублирование информации во внешних файлах, системное программное обеспечение лучше использует память.
Недостатки системного программного обеспечения
1. В силу универсальности системных программ снижается скорость их выполнения по сравнению со специализированными системами.
2. Системные программы велики, сложны, их часто трудно использовать надлежащим образом.
3. Системное программное обеспечение не всегда обладает гибкостью, достаточной, чтобы удовлетворять всем индивидуальным требованиям.
Таблица 4.5. Эволюция системного программного обеспечения
Проблема
| Ее решение
|
Машина простаивала, в то время как оператор в спешке ставил магнитные ленты и т.п.
| Была написана программа, которая отслеживала список поставленных лент, переключая ленты не физически, а логически. Это привело к сильному увеличению числа магнитофонов. В одно и то же время на машине стало возможно выполнять несколько программ
|
Начальник вычислительного центра не успевал принимать решения по поводу того, какую задачу запускать на машине. Сколько для этой задачи потребуется памяти? Лент? И т.д.
| Была написана программа, которая отслеживала списки свободных машинных ресурсов и стоящих в очереди программ. После этого машина стала сама распределять работы и устройства вычислительного комплекса
|
Программисты вставляли в прикладные программы детали физического расположения данных и дисков. Новые диски, более дешевые и быстрые, нельзя было внедрять до того, как будут переписаны старые прикладные программы. Это было очень трудно, поскольку программисты могли быть заняты чем-нибудь другим или вообще уволиться
| Были написаны программы управления данными, которые выполняли чтение и запись данных на диске. Программисты стали теперь писать команды для программы управления данными, которая взяла на себя все заботы. Имена, использовавшиеся для идентификации этих стандартных системных программ, скорее вводили в заблуждение, чем вносили ясность. Одним из имен было “Методы доступа”. Конечно же все думали о методах и расположении данных, забывая о программах, реализующих эти методы
|
Разным программистам часто были нужны одни и те же данные, но в разной последовательности или в различном порядке. Поэтому им приходилось создавать свои собственные файлы из главного файла и в дальнейшем пользоваться уже своими файлами. Это было чревато двумя опасностями во-первых, память для файлов становилась все больше заполненной, но, что еще хуже, данные в одном файле не согласовывались с данными в другом файле
| Были написаны программы управления базами данных, которые обеспечили сложный логический поиск файлов в тех случаях, когда файлы записывались не с теми ключами, которые использовались программистом для их поиска. Эти системы получили название систем управления базами данных (СУБД); они сняли с программистов обязанности по разработке и проведению логического проектирования методов поиска и хранения данных; все работы отныне выполнялись с помощью СУБД
|
Выводы о системном программном обеспечении. Мы теряем в скорости выполнения, памяти и гибкости, чтобы достичь порядка при работе, избежать создания дополнительных программ и снизить тем самым вероятность внесения ошибок в программную систему, а также чтобы облегчить процесс исправления программ. Системное программное обеспечение явилось огромным благом для пользователей, значительно увеличив коэффициент полезного действия вычислительных машин (см. табл. 4.5).
Для многих систем можно четко определить место их разработки, место работы и место сопровождения. Некоторые называют все обеспечение, посылаемое к месту работы, “операционным”. Это может вносить только путаницу, поскольку термин “операционное программное обеспечение” является синонимом термина “обеспечение времени использования”. Например, корабль, находящийся в море, является местом выполнения, но многие программы, посылаемые туда,, не работают в фазе использования. На корабль посылаются диагностические программы, помогающие инженерам-ремонтникам налаживать работу машин, но эти программы работают автономно, а не совместно с системой при ее использовании.
Таблица 4.6. Когда используется программное обеспечение разных типов
Тип программного обеспечения
| Выполняются во время разработки
| Выполняются во время использования
| Выполняются во время сопровождения
|
Инструментальное
| Трансляторы
| Нет
| Трансляторы
|
Программа-библиотекарь
| Программы-библиотекари
|
Отладочные программы
| Отладочные программы
|
Системное
| Операционные системы
| Диалоговый режим
| Операционные системы
|
| Системы управления базами данных
| Операционные системы СУБД Диагностика в диалоговом режиме Вычисления в диалоговом режиме
| СУБД
|
Прикладное
| Нет
| Ведомости (периодически) Управление или контроль (постоянно) Отслеживание даты (раз в сутки)
| Нет
|
Они представляют собой набор инструментальных программ, и называть их “операционными” только за то, что они находятся в одном месте со всей системой, ошибочно. В табл. 4.6 перечислено по крайней мере некоторое программное обеспечение, работающее в разных фазах независимо от места работы, а в табл. 4.7 показано, какие программы могут работать автономно в различных местах.
Таблица 4.7. Какое программное обеспечение может самостоятельно работать в различных местах
| Выполняются самостоятельно по месту разработки
| Выполняются самостоятельно по месту использования
| Выполняются самостоятельно по месту сопровождения
|
Инструментальные
| Диагностические программы
| Диагностические программы Элементы калькуляции
| Диагностические программы
|
Системные
| ОС
| Операционные системы
| ОС
|
Прикладные
| В целях тестирования программы калькуляции
| Нет
| В целях тестирования программы калькуляции
|
Инструментальное программное обеспечение
Инструментальное программное обеспечение — это третий раздел большой области всех программ. Применяет
Воспользуйтесь поиском по сайту: