Автор работы: Пользователь скрыл имя, 17 Декабря 2013 в 21:20, лекция
В настоящее время отсутствует единая классификация состава программного обеспечения. Литературные источники по-разному трактуют структуры программных средств ЭВМ различных классов. Наиболее сложное ПО по структуре и составу имеют большие универсальные ЭВМ широкого назначения, так как они призваны обеспечивать пользователей самыми разнообразными сервисными услугами независимо от характера их задач. Программное обеспечение ЭВМ разделяют на общее, или системное (general Software), и специальное, или прикладное (application or special Software).
Набор программ управления данными обеспечивает процессы организации, идентификации, размещения в ОП и на ВЗУ, хранения, построения библиотек и выборки всех данных, которые могут обрабатываться в ЭВМ.
В ПЭВМ программы управления заданиями представлены достаточно слабо, так как они изначально создавались как однопользовательские и однозадачные ЭВМ. С появлением ОС типа Windows, ориентированных на многозадачные и многопользовательские режимы, появились и эти процедуры. Программы управления задачами и данными представлены достаточно полно. Так, ядро MS DOS включает следующие системы: файловую, управления памятью, управления программами, связи с драйверами устройств для управления серийной аппаратурой, обработки ошибок, службы времени, общения с оператором.
Структурно ОС IBM PC состоит из следующих элементов, представленных на рис.14.3. Кроме программных компонентов, указанных на рисунке, к ДОС относят еще вспомогательные файлы autoexec.bat и config.sys. Они предназначаются для настройки на конкретные режимы работы.
Рис. 14.3. Структура ДОС ПЭВМ
Программа начальной загрузки (Boot Record) находится в первом секторе на нулевой дорожке системного диска. Она занимает объем 512 байт. После включения компьютера и его проверки постоянный модуль BIOS формирует вызов данной программы и ее запуск. Назначением программы начальной загрузки является вызов модуля расширения IO.sys и базового модуля ДОС MS DOS.sys.
Базовая система ввода-вывода (BIOS) является надстройкой аппаратурной части компьютера. Постоянный модуль BIOS отвечает за тестирование компьютера после его включения, вызов программы начальной загрузки. Модули BIOS обрабатывают прерывания вычислительного процесса нижнего уровня и обслуживают стандартную периферию: дисплей, клавиатуру, принтер, дисководы.
Модуль расширения BIOS обеспечивает подключение к компьютеру дополнительных периферийных устройств, изменение некоторых параметров ДОС, замещение некоторых стандартных функций, загрузку командного процессора и его запуск.
Базовый модуль ДОС (MS DOS.sys или IBM DOS.com) отвечает за работу файловой системы, обслуживает прерывания верхнего уровня (32...63), обеспечивает информационное взаимодействие с внешними устройствами.
Командный процессор (command.com) предназначен для выполнения команд, загружаемых в командную строку ДОС. Все команды ДОС делят на внутренние и внешние. Внутренние команды содержатся внутри самого файла command.com. Внешние команды - это требования запуска каких-либо программ, находящихся на дисках. Кроме этого, командный процессор выполняет команды файла autoexec.bat, если он находится на системном диске.
Файл autoexec.bat содержит список команд, выполнение которых позволяет развернуть в оперативной памяти компьютера некоторый набор вспомогательных программ или пакетов для обеспечения последующей работы пользователя.
Файл config.sys отражает специфические особенности формирования конфигурации компьютера, т.е. состава его технических и программных средств.
В связи с постоянным совершенствованием ПЭВМ и улучшением их характеристик (быстродействия и емкости памяти) все большее число ЭВМ используют более сложные интегрированные ОС типа MS Windows 95, OS/2 Warp и им подобные.
14.3. Системы автоматизации программирования
К системам (или средствам) автоматизации программирования (САП) относят языки программирования, языковые трансляторы, редакторы, средства отладки и другие вспомогательные программы.
Языки программирования служат средством передачи информации, средством записи текстов исходных программ. Поэтому в состав программ общего ПО они не входят. Учитывая важность языковых средств, рассмотрим их состав более подробно.
В настоящее время известно несколько сотен языков программирования, которые используют пользователи при разработке своих заданий. Появление новых типов ЭВМ, например ПЭВМ, и новых областей их применения способствует появлению следующих поколений языковых средств, в большей степени отвечающих требованиям потребителей.
Вместе с тем число интенсивно применяемых языков программирования относительно невелико. Для каждого класса ЭВМ всегда существует несколько таких языков, ориентированных на определенные виды обработки информации, на уровень подготовки пользователей в области программирования. При выборе языка программирования пользователь должен учитывать, что описание алгоритма решаемой задачи можно выполнить на любом алгоритмическом языке в силу его универсальности. Однако изобразительные средства языков очень сильно отличаются, и задача выбора заключается в том, чтобы выбранный язык наилучшим образом соответствовал требуемым процедурам обработки данных в задании пользователя. Различают три уровня пользователей, работающих с языковыми средствами: пользователи-прикладники, системные программисты и инженерно-технический персонал, обеспечивающий техническое обслуживание ЭВМ. Каждая категория пользователей использует определенный набор языков.
Важнейшими характеристиками языка являются трудоемкость программирования и качество получаемого программного продукта. Качество программ определяется длиной программ (количеством машинных команд или емкостью памяти, необходимой для хранения программ), а также временем выполнения этих программ. Для языков различного уровня эти характеристики взаимосвязаны. Чем выше уровень языка (рис.14.4), тем меньше трудоемкость программирования, но тем сложнее средства САП (трансляторы, средства отладки и др.), привлекаемые для получения машинных программ, тем ниже качество генерируемых программных продуктов.
Машинные языки современных ЭВМ практически не используются для программирования даже программистами-профессионалами из-за чрезмерной трудоемкости процесса разработки программ. В редких случаях их используют инженерно-технические работники вычислительных центров для проверок работы устройств и блоков ЭВМ, для выяснения нестандартных, нештатных ситуаций, когда другими средствами не удается выявить причины их появления. Применение машинных языков требует знания специфики представления и преобразования информации в ЭВМ.
Особое место имеют машинно-ориентированные языки (язык Ассемблер, автокоды, языки символического кодирования и др.). Несмотря на высокую трудоемкость, ими часто пользуются профессиональные системные программисты, например при разработке программ общего или специального ПО, особенно в тех случаях, когда эти программы должны быть максимально компактными и быстродействующими. Пользователям с недостаточной программистской подготовкой эти языки практически недоступны.
Из процедурно-ориентированных языков широко известны языки Фортран, Алгол, Кобол, Basic, Pascal, Ада, Си и др. Спектр языков этой группы очень широк, и среди них существует определенная иерархия. Считается, что язык Basic предназначается для начинающих программистов, язык Pascal - язык для студентов, это язык "правильного", классического программирования, язык СИ - язык квалифицированных программистов и т.д. Существуют определенные соглашения в использовании языков программирования. Так, при создании программ для собственных работ пользователь может использовать любой язык, даже Basic. При разработке ПО для одного заказчика корректно использовать язык Pascal, при разработке программных средств для многих потребителей целесообразно использование языков Си и Ассемблер.
С появлением ПЭВМ наиболее распространенными языками являются Basic и Pascal. Первоначально они разрабатывались для целей обучения. Их применение обеспечивает быстрый и удобный перенос программ, написанных на этих языках, с одной ПЭВМ на другую. Наиболее простым языком является Basic. Трансляторы для этого языка имеются практически на всех ПЭВМ. Язык отличает простота и наличие средств интерактивной работы, что обеспечило ему популярность среди непрофессиональных программистов. Однако для построения сложных программ он в силу ограниченных возможностей (структурирование программ и данных, идентификация переменных и т.д.) подходит плохо.
Современный язык высокого уровня Pascal получил широкое распространение в силу ряда достоинств: простоты, ясности, сравнительно узкого набора возможных синтаксических конструкций наряду с семантическим их богатством. Общепризнано, что он является наилучшим средством для обмена программами между различными типами ПЭВМ. На основе разработки языка Pascal предложен ряд новых языков, например язык Модула-2, в котором особое внимание уделяется построению программы как набора независимых модулей. На базе языка Pascal создан достаточно мощный язык Ада, который задумывался как универсальный и наиболее перспективный язык программирования. К нему было приковано внимание разработчиков всех новых типов ЭВМ. Однако широкого распространения этот язык до сих пор не получил.
Для разработки коммерческих программ больше используется язык Си, который удачно сочетает в себе средства языка высокого уровня и языка Ассемблер, что позволяет разрабатывать компактные, быстродействующие, высокоэффективные программные продукты.
Все описанные выше языки программирования используют так называемые пошаговые описания алгоритмов. Именно в этом и заключается источник большой трудоемкости подготовки задач к решению. Несомненно, что для машин будущих поколений будут предложены более эффективные средства программирования. Так, например, все больше внимания уделяется разработке проблемно-ориентированных языков программирования (Симула, GPSS и др.). В этих языках имеется возможность описывать специфические алгоритмы обработки информации более крупными конструкциями. Это делает программы пользователей более наглядными, так как каждая используемая конструкция соответствует вполне определенному объекту, исследуемому пользователем.
Другой интересной тенденцией является появление непроцедурных описательных языков. Конструкции этих языков констатируют, какой результат желателен пользователю, не указывая, каким образом это сделать. Примером такого языка служит язык ПРОЛОГ (ПРОграммирование ЛОГики), который широко используется специалистами в области искусственного интеллекта. Конструкции языка соответствуют не математическим формулам, а определяют отношения между объектами и величинами. Язык состоит только из описаний и не имеет как таковых команд-инструкций.
В заключение необходимо отметить, что в машинах будущих поколений будут использоваться языки программирования, имеющие средства распараллеливания вычислительных работ для многомашинных и многопроцессорных вычислительных систем. Проблемы построения таких языков еще полностью не разрешены и находятся в стадии исследования.
В состав САП включаются также языковые трансляторы для всех языков, которые используют пользователи при разработке своих программ. В Зависимости от специфики вычислительного центра и контингента пользователей их состав формируется эмпирически. Обычно же он включает трансляторы процедурно-ориентированных языков высокого уровня (Pascal, Basic, Си) и машинно-ориентированных языков ( Ассемблер).
Различают трансляторы двух типов: интерпретаторы и компиляторы.
Трансляторы-интерпретаторы предназначаются для последовательного пооператорного преобразования каждого предложения исходного Модуля программы в блок машинных команд с одновременным их выполнением. Машинная программа в полном объеме при этом не создается, решение задач пользователей происходит замедленными темпами. Этот вид трансляции рекомендуется использовать при отладке новых программных продуктов.
Трансляторы-компиляторы, напротив, предназначаются для формирования полного загрузочного модуля по исходным программам пользователя. Это позволяет отделить полученный программный продукт от среды его разработки и в последующем использовать его автономно.
Из системных обслуживающих программ, широко используемых при подготовке вычислений, следует выделить редактор, загрузчик, библиотекарь, средства отладки и другие вспомогательные программы. Назначение программ вытекает из их названия.
Программы пользователей после обработки их транслятором (трансляторами) представляются в виде набора программных блоков, имеющих промежуточный формат, общий для всех трансляторов. Специфика исходных языков программирования при этом теряется. Объединение программных блоков в единую программу выполняет редактор. В зависимости от того, в какой стадии подготовки к решению находятся программы абонентов, они могут размещаться в различных библиотеках. Управляет размещением программ , последующей идентификацией и выборкой библиотекарь. Вызов готовых к решению программ в оперативную память, активизацию их с учетом их места размещения выполняет загрузчик.
Средства отладки обеспечивают проверку заданий пользователей, поиск в них различного рода ошибок, вывод на печать запрашиваемой отладочной информации, распечатку содержимого зон оперативной памяти, выдачу различных управляющих блоков и таблиц и т.п.
Вспомогательные программы (утилиты) служат для перемещения информации с одного носителя на другой, разметки накопителей, редактирования информации в наборах данных, сбора информации об ошибках.
14.4. Пакеты программ
Согласно рис.14.1 в ПО ЭВМ имеются две группы пакетов программ: пакеты прикладных программ (ППП) и пакеты, дополняющие возможности ОС (ППос). С развитием программного обеспечения ЭВМ наметилась тенденция к слиянию их в единые интегрированные пакеты. Например, операционная среда Windows может подключать и пакеты MS Office, объединяющие программы для работы экономиста-делопроизводителя. Однако не всегда централизованные средства обработки удовлетворяют всем требованиям пользователей, поэтому многие ЭВМ, наряду с интегрированными пакетами, продолжают использовать и более эффективные специализированные ППП.
ППП - это комплекс программ, предназначенных для решения определенного класса задач пользователей. Сначала к ППП относили только готовые программы, которые регулярно использовал пользователь. Однако каждая рабочая программа постоянно совершенствуется, дополняется, модифицируется. Поэтому все чаще к ППП относят наряду с комплексом готовых программ и программную среду, оболочку, в которой создаются пользовательские программы. Программы вместе со средой значительно облегчают процессы подготовки и решения задач и во многих случаях не требуют от пользователя знаний специфических языков и процедур программирования.