Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ПСПЭВМ-УМК.pdf
Скачиваний:
17
Добавлен:
02.04.2015
Размер:
1.35 Mб
Скачать

40

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

Вопросы для самопроверки по теме 1.2

1.Состав аппаратных средств ПК.

2.Системная шина, её назначение и состав.

3.Назначение счётчика адресов команд (программного счётчика).

4.Состав внутренней памяти центрального процессора.

5.Классификация команд по функциональному назначению.

6.Способы адресации операндов.

7.Что понимается под аппаратными ресурсами ПК?

Раздел 2. Программное обеспечение ПЭВМ

Перечень тем, изучаемых в разделе:

1.Структура программного обеспечения ПЭВМ;

2.Операционная система MS DOS;

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

1.Практическое занятие №1;

2.Практическое занятие №2.

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

Тема 2.1. Структура программного обеспечения ПЭВМ

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

ПО – неотъемлемая часть ЭВМ. Оно является логическим продолжением аппаратных средств.

41

Все возможные программные средства, которых насчитывается уже сотни тысяч для компьютеров различных типов, можно разделить на три категории в зависимости от их назначения, как показано на рис 2.1:

Системное

ПО

Операционные системы (ОС)

Сервисные

системы

Утилиты

Программное обеспечение

Инструментальное ПО (системы программирования)

Текстовые редакторы

Интегрированнаясреда

программирования

Трансляторы

 

 

Библиотеки подпрограмм

 

 

Редакторы связей

 

 

Отладчики

 

 

Прикладное ПО

Текстовые

прикладныхПакеты

)ППП(программ

редакторы

 

 

Графические

 

 

редакторы

 

 

СУБД

 

 

Электронные

 

 

таблицы

 

 

САПР

 

 

ИПС и др.

 

 

Рис. 2.1

-системное программное обеспечение - программы и комплексы про-

грамм, являющиеся общими для всех, кто совместно использует технические средства компьютера, и применяемые для организации выполнения прикладных программ;

-инструментальное программное обеспечение (системы программи-

рования), обеспечивающее создание новых программ для компьютера;

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

Грани между указанными тремя категориями программ весьма условны, например, в состав программы системного характера может входить редактор текстов, т. е. программа прикладного характера.

2.1.1. Прикладное программное обеспечение

Прикладным называют ПО, предназначенное для решения определенных целевых задач или классов таких задач.

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

42

В настоящее время для ПК разработано множество прикладных программных продуктов. Это текстовые и графические редакторы, электронные таблицы и системы управления базами данных (СУБД), системы автоматизированного проектирования (САПР) и информационно-поисковые системы (ИПС) и др. (см рис. 2.1)

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

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

Структура и принципы построения ППП зависят от класса ЭВМ и операционной системы, в рамках которой этот пакет будет функционировать. Наибольшее количество разнообразных ППП создано для IBM PC - совместимых компьютеров с операционными системами MS DOS и Windows. Классификация этих пакетов программ по функционально-организационному признаку представлена на рис. 2.2.

Пакеты прикладных программ (ППП)

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Проблемно – ориентированные

 

 

 

Интегрированные

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Текстовые процессоры

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Полносвязанные

 

 

 

 

 

НИС

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Графические редакторы

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Демонстрационная графика

 

 

 

 

Объектно-связанные

 

 

 

 

 

 

 

 

 

 

Системы мультимедиа

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

САПР

 

 

 

 

 

 

Профессиональные

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Организаторы работ

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Табличные процессоры

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Пользовательские

 

 

 

 

СУБД

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Распознавание символов

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Финансовые, статистические

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Рис. 2.2

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

ППП. Она включает следующие проблемно-ориентированные программные продукты: текстовые процессоры, настольные издательские системы (НИС), графические редакторы, демонстрационную графику, системы мультимедиа,

43

программное обеспечение систем автоматизированного проектирования (САПР), организаторы работ, электронные таблицы (табличные процессоры), системы управления базами данных (СУБД), программы распознавания символов, финансовые и аналитико-статистические и другие программы.

Интегрированные пакеты программ по количеству наименований продуктов немногочисленная, но в вычислительном плане довольно мощная и активно развивающаяся часть ПО.

Традиционные, или полносвязанные, интегрированные комплексы представляют собой многофункциональный автономный пакет, в котором в одно целое соединены функции и возможности различных специализированных (проблемно-ориентированных) пакетов, родственных в смысле технологии обработки данных на отдельном рабочем месте. Типичными представителями таких программ являются пакеты Framework, Symphony, а также пакеты нового поколения Microsoft Word, Lotus Works. В этих программах происходит интеграция функций редактора текстов, системы управления базами данных и табличного процессора.

В настоящее время активно реализуется другой подход интеграции программных средств: объединение специализированных пакетов в рамках единой ресурсной базы, обеспечение взаимодействия приложений (программ пакета) на уровне объектов и единого упрощенного центра-переключения между приложениями. Интеграция в этом случае носит объектно-связанный характер. Типичные и наиболее мощные пакеты данного типа: Borland Office for Windows, Lotus SmartSuite for Windows, Microsoft Office. В профессиональной ре-

дакции этих пакетов присутствуют четыре приложения: текстовый редактор, СУБД, табличный процессор, программы демонстрационной графики.

Идея создания интегрированных программных комплексов не нова и в той или иной мере была реализована во всех поколениях ПЭВМ.

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

Особенностью нового типа интеграции пакетов является использование общих ресурсов. Здесь можно выделить четыре основных вида совместного доступа к ресурсам:

-использование утилит, общих для всех программ комплекса. Так, например, утилита проверки орфографии доступна из всех программ пакета;

-применение объектов, которые могут находиться в совместном использовании нескольких программ;

44

- реализация простого метода перехода (или запуска) из одного приложения к другому.

Совместное использование объектов с несколькими приложениями — краеугольный камень современной технологии интеграции программ и манипулирования данными. Разработаны два основных стандарта в этой области – динамической компоновки и встраивания объектов:

1)Object Linking and Embedding (OLE) фирмы Microsoft. Механизм динамической компоновки объектов дает возможность пользователю помещать информацию, созданную одной прикладной программой, в документ, формируемый в другой. При этом пользователь может редактировать информацию в новом документе средствами того продукта, с помощью которого этот объект был создан (при редактировании автоматически запускается соответствующее приложение). Кроме того, данный механизм позволяет переносить OLEобъекты из окна одной прикладной программы в окно другой.

Недостатком данной технологии является ограничение на размер объекта размером одной страницы.

2)OpenDoc (открытый документ) фирм Apple, Borland, IBM, Novell и WordPerfect.

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

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

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

45

пользователя привлекает в них нe только начинающих пользователей, но и специалистов.

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

2.1.2. Системное программное обеспечение

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

Это программы общего использования и предназначены для всех пользователей.

Системное программное обеспечение может быть разделено на следующие группы:

1.Операционные системы;

2.Сервисные системы: интерфейсные оболочки и операционные среды;

3.Утилиты.

Рассмотрим эти группы системных программ.

2.1.2.1. Операционные системы

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

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

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

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

46

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

Операционная система как менеджер ресурсов осуществляет упорядочен-

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

Ресурсы вычислительной системы можно разбить на первичные - аппаратные ресурсы и вторичные - логические, программные и информационные ресурсы.

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

сов.

Вторичные ресурсы связаны с техническими устройствами косвенно, так как являются логическими, виртуальными.

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

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

Можно выделить пять основных функций, которые выполняют классические операционные системы в процессе их эволюции:

1.Управление ресурсами и временем использования процессора;

2.Управление процессами;

3.Управление памятью;

4.Управление файловой системой;

5.Управление вводом-выводом;

47

6. Обеспечение безопасности.

Управление ресурсами включает решение следующих общих, не зависящих от типа ресурса задач:

1)планирование ресурса - определение, какому процессу, когда и в каком количестве следует выделить данный ресурс;

2)удовлетворение запросов на ресурсы;

3)отслеживание состояния и учет использования ресурса;

4)разрешение конфликтов между процессами, использующими один ресурс. Организация эффективного совместного использования ресурсов несколь-

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

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

Наиболее важными подсистемами являются:

1.Подсистема управления процессами;

2.Подсистема управления памятью;

3.Подсистема управления файлами;

4.Подсистема управления внешними устройствами.

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

Ранее было определено понятие «программа» как объект, содержащий команды и хранящийся в памяти ПК. Для вычислительных систем пакетной обработки был введен термин «задание» как совокупность программы; набора команд языка управления заданиями, необходимых для ее выполнения, и входных данных.

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

48

ектов внутри компьютерной системы вместо терминов "программа" и "задание" используется новый термин – "процесс".

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

Рассмотрим основные задачи, возложенные на вышеперечисленные подсистемы.

1.Подсистема управления процессами генерирует системные информаци-

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

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

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

цессами.

Поскольку процессы довольно часто одновременно претендуют на одни и те же ресурсы вычислительной системы, на ОС ложится задача поддержания очередей заявок на такие ресурсы.

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

49

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

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

3.Подсистема управления файлами. Способность ОС к "сокрытию" слож-

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

4.Подсистема управления внешними устройствами, называемая также

подсистемой ввода-вывода, является интерфейсом, обеспечивающим доступ ко всем внешним устройствам, подключенным к компьютеру.

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

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

50

память при запуске компьютера. Они расширяют возможности операционных систем по управлению устройствами ввода-вывода компьютера. С помощью драйверов возможно подключение к компьютеру новых устройств или нестандартное использование имеющихся устройств.

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

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

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

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

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

Классификация ОС

Рассмотрев назначение ОС и выполняемые ими функции, можно классифицировать все многообразие существующих ОС, взяв за основу наиболее общие классификационные признаки:

1. По количеству одновременно существующих программных процессов ОС делятся на однопрограммные и мультипрограммные. В мультипрограммных ОС, в отличие от однопрограммных, вычислительный процесс организуется та-

51

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

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

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

3.По назначению ОС делятся на универсальные и специализированные.

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

4.По способу загрузки можно выделить загружаемые ОС и системы, по-

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

5.По особенности выполнения процессов ОС подразделяются на системы пакетной обработки, системы разделения времени и системы реального времени.

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

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

52

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

Системы реального времени применяются для управления различными техническими объектами или технологическими процессами. Критерием эффективности для этих систем является способность ОС выдерживать заранее заданные интервалы времени между запуском программы и получением результата. Это время называется временем реакции.

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

Архитектура операционных систем

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

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

Большинство современных ОС представляют собой хорошо структурированные модульные системы, способные к развитию, расширению и переносу на новые аппаратные платформы. Не существует какой-либо единой архитектуры, но есть универсальные подходы к структурированию ОС.

Наиболее общим подходом к структуризации ОС является разделение всех

еемодулей на две группы:

1)ядро – содержит модули, выполняющие основные функции ОС;

2)модули ОС, выполняющие вспомогательные функции ОС.

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

53

ядра, которые могут вызываться приложениями, образуют интерфейс при-

кладного программирования - API (Application Programming Interface).

Всостав ядра, как правило, входят следующие средства:

средства управления процессами;

модуль управления системой прерываний;

средства по распределению оперативной памяти и процессорного

времени;

программы, управляющие файловой системой;

программы управления вводом – выводом данных;

процессор командного языка (командный процессор).

Для обеспечения высокой скорости работы ОС все модули ядра или большая их часть постоянно находятся в оперативной памяти, то есть являются ре-

зидентными модулями ОС.

Таким образом, ядро - это основной элемент всех вычислительных процессов в системе, поэтому крах ядра приводит к краху всей вычислительной системы

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

Вспомогательные модули ОС, в свою очередь, делятся на следующие основные группы:

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

2)системные обрабатывающие программы это текстовые или графические редакторы, компиляторы, компоновщики, загрузчики, отладчики и другие программы, входящие в комплект поставки данной ОС;

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

Как и обычные пользовательские приложения, все перечисленные группы

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

54

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

Вспомогательные модули ОС

Утилиты

Библиотеки процедур и

функций ЯДРО Системные

Приложения

пользователей

Рис. 2. 3

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

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

Обеспечение привилегий ОС требует не только соответствующей программной, но и аппаратной поддержки. Поэтому аппаратура компьютера имеет возможность работать в двух режимах - пользовательском режиме (user mode) и привилегированном режиме, который также называется режимом ядра (kernel mode), или режимом супервизора (supervisor mode).

Описанная выше архитектура, основанная на привилегированном ядре и приложениях пользовательского режима, стала классической. Ее применяют многие популярные ОС, в том числе версии Windows, UNIX, VAX VMS и др.

В процессорах Intel, используемых в персональных компьютерах, возможность работы в привилегированном режиме появилась, начиная с процессора 80286. Однако разработчики широко распространенной ОС MS-DOS не исполь-

55

зовали это свойство, и их ОС всегда работает в так называемом реальном режиме. Некорректно написанные приложения вполне могут разрушить основные модули MS-DOS, что приведет к краху системы.

2.1.2.2. Сервисные системы

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

К сервисным системам относятся интерфейсные оболочки и операционные среды.

Интерфейсная (программная) оболочка – это программный продукт, ко-

торый облегчает общение пользователя с ПК и предоставляет ему ряд дополнительных общеупотребимых возможностей. К таким оболочкам можно отнести файловые менеджеры (диспетчеры) Norton Commander, Volkov Commander, Far Manager, Window Commander, Total Commander.

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

В качестве классических примеров операционных сред выполнения программ можно назвать различные варианты графического интерфейса в системах семейства UNIX (например, Desktop Environment в Linux), PM Shell или Object Desktop в OS/2 с графическим интерфейсом; можно указать разнообразные варианты интерфейсов для семейства ОС Windows компании Microsoft, которые заменяют Explorer. Ярким представителем операционных сред являлась система Windows 3.11, функционирующая в среде MS DOS.

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

56

2.1.2.3. Утилиты

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

Различия между оболочками и развитыми утилитами достаточно условны. Они зачастую состоят в универсальном характере первых и специализации вторых. Можно считать, что оболочка это такая программа, которая работает на ПК постоянно, а утилита – программа, которая запускается по мере необходимости.

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

Опишем некоторые разновидности утилит.

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

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

Коммуникационные программы предназначены для организации обмена информацией между компьютерами.

Программы для диагностики компьютера позволяют проверить конфигура-

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

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

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

57

Рассмотрим более подробно структуру и выполняемые функции операционной системы MS DOS, а также принципы построения файловой системы и порядок её обслуживания.

Вопросы для самопроверки по теме 2.1

1.Перечислить категории программного обеспечения ПЭВМ;

2.Что представляет собой пакет прикладных программ?

3.Какие программные продукты относятся к системному ПО?

4.;Дать определение операционной системе ЭВМ.

5.Каковы основные функций классической операционной системы?

6.Что понимается под линейным порядком выполнения команд?

7.Дать определение понятию «процесс».

8.Каков состав классической операционной системы?

9.Какие программные продукты относятся к сервисным системам и их назначение?

10.В чём различие между утилитами и драйверами?

Тема 2.2. Операционная система MS DOS

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

ОС MS DOS (дисковая операционная система) представляет собой со-

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

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

58

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

Классически MS DOS содержит ядро и вспомогательные модули. Структура ОС представлена на рис. 2.4.

Место

 

 

 

 

 

 

 

 

 

 

 

 

 

 

размещения:

 

 

 

 

 

 

Модули ядра MS DOS

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

ПЗУ на

 

 

Базовая система ввода – вывода

 

 

материнской

 

 

 

 

 

 

(BIOS)

 

 

 

 

плате

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Системный

 

 

Блок начальной

 

Модуль расширения

 

 

 

 

Модуль обработки

 

диск:

 

 

загрузки

 

 

 

BIOS (IO.SYS)

 

 

 

 

 

прерываний

 

скрытые файлы

 

 

(Boot Record)

 

 

 

 

 

 

 

 

(MSDOS.SYS)

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Командный процессор

 

 

 

 

 

 

Системный

 

 

 

 

(COMMAND.COM)

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

диск:

 

 

 

 

 

 

 

 

 

 

 

 

 

 

обычные файлы

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Утилиты для внешних

 

Файл конфигурации

 

Файл автозапуска

 

 

 

 

 

 

 

 

 

команд DOS

 

 

 

(CONFIG.SYS)

 

(AUTOEXEC.BAT)

 

Вспомогательные модули MS DOS

Рис. 2.4

Всостав ядра входят следующие основные модули:

1.Базовая система ввода – вывода (BIOS);

2.Блок начальной загрузки (Boot Record);

3.Модуль расширения BIOS (IO.SYS);

4.Модуль обработки прерываний (MSDOS.SYS);

5.Командный процессор (COMMAND.COM).

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

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

59

BIOS находится в ПЗУ ПК. Этот модуль одновременно является частью аппаратуры и частью ОС. Все остальные модули хранятся на системном диске в соответствующих файлах.

Рассмотрим назначение модулей ядра MS DOS.

Базовая система ввода – вывода (BIOS) предназначена для реализации наиболее простых и универсальных функций ОС по организации ввода-вывода информации.

Входящие в BIOS программы обеспечивают выполнение следующих функций:

1.Автоматическое тестирование аппаратуры при включении питания;

2.Вызов блока начальной загрузки MS DOS;

3.Обслуживание системных вызовов и прерываний низкого уровня.

Блок начальной загрузки (Boot Record) – это небольшая программа,

функция которой заключается в считывании с диска в ОП двух других частей MS DOS - модуля расширения BIOS (IO.SYS) и модуля обработки прерываний

(MSDOS.SYS).

Модуль расширения BIOS (IO.SYS) – по специальным командам файла конфигурации CONFIG.SYS подключает к системе драйверы дополнительных ВУ, а также производит загрузку командного процессора с диска в ОП и передает ему управление.

Модуль обработки прерываний (MSDOS.SYS) содержит подпрограммы,

предназначенные для реализации основных функций по управлению всеми ресурсами ПК при выполнении программ:

1.Обслуживание файловой системы;

2.Управление ВУ посредством вызова соответствующих драйверов;

3.Создание операционной среды для выполнения программ с обслуживанием прерываний верхнего уровня, обработки ошибок и др.;

4.Организация диалога с пользователем.

Командный процессор (COMMAND.COM) предназначен для обработки команд, вводимых пользователем, и поддержки пользовательского интерфейса

MS DOS.

Основные функции командного процессора следующие:

1.Прием и анализ команд, полученных с клавиатуры или из команд-

ного файла;

2.Исполнение встроенных команд DOS, находящихся внутри файла

COMMAND.COM;

60

3.Загрузка и исполнение внешних команд DOS и прикладных программ (находящихся в файлах *.COM и *.EXE);

4.По окончании работы программы удаление её из памяти и вывод приглашения к вводу и выполнению следующей команды;

5.Исполнение файла автозапуска AUTOEXEC.BAT.

Назначение вспомогательных модулей ОС следующее.

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

Файл конфигурации (CONFIG.SYS) – предназначен для задания некоторых параметров ОС, а также указания, какие дополнительные драйверы, расширяющие возможности MS DOS, необходимо загрузить в ОП.

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

В этом файле целесообразно записать команды, которые должны выполняться каждый раз при запуске ОС.

Хотя эти два файла не считаются обязательными, без них вряд ли ктолибо обходится.

2.2.1. Понятие о файловой системе MS DOS

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

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

В качестве единицы хранения данных в ПК принят объект переменной длины, называемый файлом.

61

Файл (от английского file – подшивка) — это последовательность произвольного числа байтов, записанная на внешнем носителе информации и обладающая уникальным собственным именем.

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

В MS DOS различаются файлы двух форматов: текстовые и двоичные фай-

лы.

Текстовым называется файл, содержимое которого без преобразования может быть воспринято пользователем с экрана.

Двоичный файл – это любой файл, не являющийся текстовым. Он представляет собой просто последовательность байтов информации.

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

В связи с этим каждый файл имеет составное имя, содержащее собст-

венно имя и расширение имени файла.

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

Например: prog3, mytext1, bmw3x.

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

Например: .COM, .EXE – файлы с машинной программой, готовой к выполнению;

.BAT – командный файл (текстовый файл с командами MS DOS);

.SYS – системный файл;

.TXT – текстовый файл;

.BAS – текстовый файл с программой на языке бейсик;

.PAS – текстовый файл с программой на языке паскаль, и т. д. Файлы с расширениями .COM, .EXE и .BAT иногда называют исполняе-

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

62

Необходимо отметить, что DOS не различает в именах строчные буквы (маленькие) от прописных букв (больших).

В именах файлов могут использоваться шаблоны двух типов:

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

*- символ в имени или расширении имени файла означает, что любой допустимый символ может занимать эту и все остальные позиции в имени или расширении имени файла. Например, *.txt указывает на все файлы с расширением TXT.

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

Основных атрибутов четыре:

-только для чтения (Read only);

-скрытый (Hidden);

-системный (System);

-архивный (Archive).

Атрибут «Только для чтения» ограничивает возможности работы с файлом. Его установка означает, что файл не предназначен для удаления и внесения изменений.

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

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

Атрибут «Архивный» в прошлом использовался для работы программ резервного копирования. Современные программы резервного копирования дан-

63

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

ОС DOS позволяет объединять файлы в каталоги.

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

Если файл зарегистрирован в каталоге, то говорят, что файл входит в каталог или содержится в каталоге. Реально (физически) в каталоге содержится не сам файл, а только его дескриптор – составное имя, все характеристики файла, а также номер первого кластера, занимаемого файлом.

Любой каталог имеет имя и характеристики, аналогичные характеристикам обычных файлов (с небольшим отличием).

ОС DOS различает два типа периферийных устройств (devices) – посимвольные и поблочные.

Посимвольные устройства обмен информацией с ОП осуществляют побайтно и последовательно. Их имена LPT и COM (параллельный и последовательный интерфейсы).

Поблочные устройства обмен информацией с ОП осуществляют блоками

– секторами по 512 байтов. К ним относятся все магнитные и лазерные диски, а также съемные флэш-диски, которые называются накопителями. Они именуются буквами латинского алфавита: А, В, С …

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

Жесткий диск может быть разделен на несколько логических дисков, или разделов, с каждым из которых связывается свое имя. Первый логический диск (раздел) имеет имя С, второй – D и т. д. до Z.

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

Для пользователя при работе в среде ОС необходимо иметь понятия о текущем каталоге и диске.

Текущий (активный) каталог – это такой каталог, на который настроена ОС в текущий момент времени.

В процессе работы имеется возможность изменять текущий каталог.

64

Текущий (активный) диск – это такой диск, на который ОС настроена в текущий момент времени.

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

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

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

 

 

 

Каталоги 1-го

Каталоги 2-го

 

Каталоги 3-го

 

 

 

 

 

 

 

уровня

уровня

 

уровня

 

 

 

А:

 

 

 

 

 

 

 

 

 

 

 

 

prog1.pas

\

 

 

USERS

 

 

IVANOV

 

 

PROGS

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

prog2.bas

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

prog3.asm

 

 

 

 

 

 

 

 

 

 

 

 

 

prog1.dat

 

 

 

 

fint.com

 

 

 

 

DATA5

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

prog2.dat

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

conf.sys

 

 

 

 

 

 

 

prog3.dat

 

 

 

 

 

 

 

 

 

 

 

lex.com

 

 

 

 

 

PETROV

 

 

PROGR

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

fixt.com

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

prog5.bat

 

 

 

 

 

 

 

 

 

 

 

 

 

lex.txt

 

 

 

 

 

 

 

 

 

 

DATA7

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

genus.doc

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

brut.xls

 

 

 

 

 

 

 

 

 

 

 

 

 

abc.exe

 

 

 

 

 

 

 

 

 

 

EXE

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

dent.exe

 

 

 

 

 

 

 

 

 

 

 

 

 

Рис. 2.5

Символ \ отображает корневой каталог, в котором содержатся каталог первого уровня USERS и файлы fint.com и conf.sys. В свою очередь каталог USERS содержит вложенные каталоги (или подкаталоги) второго уровня IVANOV и PETROV. Для последних каталог USERS является надкаталогом. В каталог IVANOV включены каталоги PROGS и DATA5 третьего уровня.

Для обращения к файлу (или каталогу), как правило, надо указать путь доступа к нему.

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

65

Путь доступа к файлу начинается с имени диска и включает все имена каталогов, через которые проходит этот путь. В качестве разделителя используется символ «\» (обратная косая черта). Пути доступа бывают полными и неполными.

Формат записи полного пути к файлу:

<имя диска:>\<имя каталога 1-го ур.>\...\<имя каталога N-го ур.>\< имя файла>.

Обратите внимание, что первый символ \ - не разделитель, а имя корневого каталога.

Пример записи пути двух файлов, размещенных на одном носителе, но отличающихся путем доступа, то есть полным именем:

А:\ USERS \ IVANOV \ DATA5\ prog2.dat А:\ USERS \ PETROV \ EXE \ dent.exe

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

DATA7\ lex.txt

К функциям обслуживания файловой системы относятся следующие операции, происходящие под управлением операционной системы:

-создание файлов и присвоение им имен;

-создание каталогов и присвоение им имен;

-переименование файлов и каталогов;

-копирование и перемещение файлов между дисками компьютера и между каталогами одного диска;

-удаление файлов и каталогов;

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

Обслуживание файловой системы осуществляется путем выполнения соответствующих команд ОС MS DOS.

2.2.2. Общие сведения о командах MS DOS

Все команды, которые ОС способна выполнить, можно разделить на 4 группы:

1.Внутренние команды – такие, которые выполняет непосредственно командный процессор COMMAND.COM;

2.Внешние команды – выполняются программами, записанными в отдельных файлах, входящих в стандартный комплект DOS. Это в основном утилиты;

66

3.Команды на запуск прикладной программы – это указание системе выполнить программу из некоторого файла;

4.Макрокоманды (командные файлы) – это команды, которые раз-

ворачиваются в последовательность других команд DOS или прикладных программ.

Структура команды DOS в общем виде может быть представлена следующим образом:

имя_команды [аргументы] [переключатели]

Здесь:

имя_команды – собственно имя команды или исполняемого файла; аргументы – необязательный параметр. В роли аргументов выступают

объекты, над которыми требуется выполнить определяемые командой или программой действия, например, файлы или каталоги. Аргументы должны следовать в строго определенном порядке;

переключатели – необязательный параметр. Управляют режимом выполнения команды или программы, модифицируя ее функции. Переключатель начинается с символа слэш «/» и имеет имя в виде одного или нескольких символов.

Составные части команды: имя_команды, аргументы и переключатели – отделяются друг от друга разделителем, в качестве которого используется про-

бел.

Команда вводится с клавиатуры в стандартной форме и затем нажимается клавиша исполнения - ENTER.

При готовности к работе ОС выдает на экран приглашение для ввода команды. В приглашении обычно указывается текущий дисковод и путь к текущему каталогу, например, А:\>_ или С:\EXE\CONT>_ .

Команды для работы с дисководами и каталогами:

1.Команда изменения текущего дисковода, имя_дисковода;

2.Команда связывания пути с именем виртуального диска SUBST;

3.Команда изменения текущего каталога CHDIR (CD);

4.Команда вывода на экран содержимого каталога DIR;

5.Команда создания нового каталога MKDIR (MD);

6.Команда удаления пустого каталога RMDIR (RD).

Команды для работы с файлами:

1.Команда копирования одного или более файлов COPY;

2.Команда удаления одного или более файлов DEL;

67

3.Команда переименования файла RENAME (REN);

4.Команда вывода содержимого файла на экран TYPE;

5.Команда перемещения файлов MOVE.

Вспомогательные команды:

1.Команда очистки экрана CLS;

2.Команда вызова редактора MS DOS EDIT;

3.Команда вызова справочной системы MS DOS HELP;

4.Команда завершения работы в среде ОС MS DOS EXIT.

Команды на выполнение прикладных программ

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

Исполняемые файлы (с расширениями *.com, *.exe, *.bat) выполняются ПК непосредственно без дополнительных преобразований.

Формат: < дисковод:\путь\исполняемый_файл> Команда на запуск программы набирается с клавиатуры в командной

строке и выполняется после нажатия клавиши “Enter”.

Команда на выполнение программы в файле proba.bas, написанной на алгоритмическом языке бейсик, с использованием интерпретатора интегрированной среды программирования BASIC будет иметь следующий вид:

А:\QBASIC\qb.exe /RUN A:\SZTU\proba.bas

Общие сведения о командных файлах

Если пользователь часто исполняет одну и ту же последовательность команд DOS, каждый раз вводя их с клавиатуры, лучше оформить её в виде командного файла. Тогда для выполнения этой последовательности команд достаточно будет выполнить такой командный файл. Этот файл можно рассматривать как макрокоманду, так как она исполняет серию команд ОС.

Командным (или пакетным) файлом называется неформатированный текстовый файл (в кодах ASCII) с расширением *.bat, в каждой строке которого записана команда DOS или имя программного фала.

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

(Norton Commander, Volkov Commander, Far Manager, Windows Commander и

др.), а также в Блокноте Windows.

68

Командный файл запускается на исполнение путем ввода его имени с клавиатуры и нажатием клавиши “ENTER”.

Командный файл обрабатывается командным процессором построчно, т. е. после выполнения команды в текущей строке считывается очередная строка файла и т. д. Каждая команда перед выполнением отображается на экране монитора.

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

1.Команда приостановки выполнения командного файла PAUSE;

2.Команда включения комментариев в командный файл REM;

3.Команда безусловной передачи управления GOTO;

4.Команда условной передачи управления IF;

5.Команда организации цикла FOR.

Вопросы для самопроверки по теме 2.2

1.Перечислить состав ядра ОС MS DOS.

2.Что называется файлом и каталогом?

3.Какие компоненты входят в состав команды ОС MS DOS?

4.Какие команды предназначены для работы с каталогами?

5.Какие команды предназначены для работы с файлами?

6.Что входит в состав командных файлов?

7.Перечислить атрибуты файлов.

8.Как осуществляется запуск на исполнение прикладных программ?

9.Какие команды предназначены специально для командных файлов?

Тема 2.3. Инструментальное программное обеспечение

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

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

Инструментальное ПО компьютера может содержать в себе одну или несколько систем программирования.

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

69

Таким образом, каждая система программирования ориентирована на конкретный язык программирования.

2.3.1. Языки программирования

Язык программирования - язык записи алгоритмов для исполнения их на ЭВМ. Запись алгоритма на таком языке называется программой.

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

Все языки программирования по уровню можно разделить на две большие группы (рис. 2.6):

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

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Алгоритмические

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

(высокого уровня)

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Процедурно-

 

 

 

Объектно-

 

 

 

 

Визуального

 

 

ориентированные

 

 

ориентированные

 

программирования

 

 

 

 

 

 

Basic

 

 

 

 

 

Object Pascal

 

 

 

 

Visual Basic

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Pascal

 

 

 

 

 

C++ (Си++)

 

 

 

 

Delphi

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Borland C++ Builder

 

 

 

 

 

С (Си)

 

 

 

 

 

Java (Ява)

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Машинно-ориентированные

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

(низкого уровня)

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Машинные

 

 

Символического

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

кодирования

 

 

 

 

 

 

 

 

 

 

 

 

 

 

По типу

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Ассемблер

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

МП

 

 

 

Макроассемблер

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Рис. 2.6

машинно-ориентированные языки (языки низкого уровня);

алгоритмические языки (языки высокого уровня).

Машинно-ориентированные языки

Машинно-ориентированные языки подразделяются на машинные и символические.

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

70

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

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

MOV B, A – «переслать содержимое регистра А в регистр В».

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

К таким языкам относятся ассемблеры и макроассемблеры.

Язык ассемблера – это система обозначений, используемая для представления машинных команд в удобной форме записи. Т. е. каждой команде ПК соответствует своя запись символов.

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

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

семблером.

Алгоритмические языки

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

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

Достоинства программ, написанных на языках высокого уровня (ЯВУ):

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

71

самодокументирование, так как операторы языка понятны человеку

ипочти не нуждаются в комментариях.

Всреднем один оператор ЯВУ заменяет 5 – 10 операторов языка ассемблера. Негативная сторона ЯВУ: программист теряет возможность непосредственного доступа к аппаратным средствам машины.

Алгоритмические языки можно разбить на три подгруппы: языки проце-

дурно-ориентированные, объектно-ориентированные и визуального программирования.

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

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

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

При объектно-ориентированном программировании данные и процедуры для их обработки объединяют в одно целое и называют объектами. Таким образом, объект можно выразить формулой:

Объект = Данные + Процедуры обработки.

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

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

Наиболее популярны следующие визуальные среды проектирования про-

грамм для Windows: Basic: Microsoft Visual Basic; Pascal: Borland Delphi; C++: Borland C++ Builder.

72

2.3.2.Системы программирования

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

Обычно все перечисленные компоненты объединяются в единое целое, ко-

торое называется интегрированной средой программирования.

Рассмотрим назначение и функции перечисленных компонентов.

1.Текстовые редакторы

Программист, составив алгоритм, приступает к созданию программы на

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

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

Созданный и записанный в файл редактором текст программы на выбранном языке программирования называется исходным текстом программы, или

исходным модулем.

Файлы с исходным текстом обычно имеют расширение, соответствующее языку программирования: *.BAS, *.PAS, *.S, *.ASM и т. д.

2.Трансляторы

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

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

На этапе трансляции уже возможно получение готовой программы, но чаще всего в ней не хватает некоторых компонентов, поэтому компилятор обычно

73

выдает промежуточный вид программы, которая называется объектной про-

граммой, или объектным модулем.

Объектный модуль – это двоичный файл, имеющий стандартное расшире-

ние *.OBJ.

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

Любой транслятор осуществляет трансляцию только с определенного языка программирования, а объектный модуль формируется только для конкретного типа МП (ПК).

В зависимости от функционального назначения существуют трансляторы следующих типов:

а) компиляторы; б) интерпретаторы; в) ассемблеры.

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

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

По сравнению с компиляторами для интерпретаторов характерна малая скорость работы. Однако они обладают и преимуществами:

обеспечивают более удобные и простые формы отладки, исправления и изменения программы пользователем;

возможность выполнения программы, минуя этап редактирования

связей.

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

иинтерпретатор.

74

Ассемблер (assembler – собиратель) – это транслятор, выполняющий перевод исходной программы, записанной на языке ассемблера, в объектную программу на машинном языке.

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

3.Библиотеки стандартных подпрограмм (БСП)

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

Библиотека стандартных подпрограмм – это совокупность предназна-

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

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

4.Редакторы связей (компоновщики)

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

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

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

Редактор связей – это программа, предназначенная для установления связей между объектными модулями пользователя, модулями стандартных под-

75

программ и компоновки из этих модулей единой программы, которая имеет на-

звание загрузочный модуль.

Исходными данными для редактора связей являются файлы объектных модулей.

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

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

Загрузочный модуль, как правило, записывается для хранения в отдельный файл, имеющий стандартное расширение *.EXE или *.COM. Но так как он имеет относительные адреса, то пока не пригоден для исполнения на ПК.

5. Загрузчики Загрузчик – это программа, предназначенная для подготовки загрузочного

модуля к исполнению и записи (загрузки) его в ОП по физическим адресам. Программа - загрузчик осуществляет следующие действия:

1)поиск файла загрузочного модуля по его имени;

2)выделение свободного участка ОП;

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

4)загрузку модуля в выделенный участок памяти.

Врезультате работы загрузчика формируется абсолютный, или исполняе-

мый модуль программы.

После загрузки и настройки управление передается первой команде исполняемого модуля и начинается его выполнение на ПК.

6. Отладчики

Отладка (debugging – вылавливание жучков) – это процесс выявления и устранения логических, синтаксических ошибок и явных ошибок кодирования

впрограмме. В современных СП отладка осуществляется с использованием специальных программных средств.

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

76

Программы-отладчики обычно обеспечивают следующие возможности:

1)пошаговое исполнение программы с остановкой после каждой команды или оператора входного языка;

2)просмотр текущего значения любой переменной;

3)установка в программе «контрольных точек», т. е. точек, в которых программа временно прекращает свое выполнение и др.

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

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

 

 

 

 

 

Инструментальное ПО

 

 

 

 

 

 

 

 

 

 

 

 

 

Редактор

 

Транслятор

 

БСП

Редактор

 

 

 

 

текста

 

(компилятор)

 

связей

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Объединение

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Ввод и

 

 

Перевод

 

 

Текст

Исходный

 

 

Объектный

Загрузочный

 

редактирование

программы на

 

 

модулей в

 

 

 

 

 

 

 

 

 

программы

 

программы

модуль

машинный язык

 

модуль

 

 

 

единую

модуль

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

программу

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Ошибки

 

 

 

Объектные

 

 

 

Исполнительный

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

модули

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

модуль

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Загрузочный

 

Размещение

Исполнительный

 

 

Отладка

 

Исполнительный

Исполнение

Результат

модуль

 

программы

модуль

 

 

программы

 

 

модуль

программы

 

 

в ОП

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Запрос модуля

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Загрузчик

 

 

 

 

Отладчик

 

 

 

 

 

 

 

Исходные

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

данные

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Инструментальное ПО

Рис. 2.7.

2.3.3. Модели памяти и структуры программ

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

77

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

2.Область данных – содержит данные, которые обрабатываются программой при её выполнении. Процессор может запоминать данные в этой области или выбирать их оттуда.

3.Область стека – может содержать как управляющую информацию, так и данные для временного хранения.

Обращение ЦП к памяти в пределах 1 Мбайта осуществляется посредством организации так называемой сегментации памяти.

Сегмент – логическое образование части объёма ОП, соответствующее определённому участку адресного пространства.

Для ПК размер одного сегмента должен находиться в пределах от 0 до 64 Кбайт.

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

Кроме этого, в ЦП каждому сегменту отводится по одному регистру сегментов: CS – регистр программного сегмента,

DS – регистр сегмента данных, SS – регистр сегмента стека.

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

зываются адресами сегментов.

Программы, выполняемые под управлением MS-DOS, могут принадлежать и одному из двух типов программ, которым соответствуют расширения имён программных файлов *.EXE. и *. COM. Основное различие этих программ заключается в том, что они по-разному размещаются в ОП.

Структура и образ памяти программ типа *.ЕХЕ

Программе типа *.ЕХЕ в памяти всегда выделяются три сегмента: программный сегмент, сегмент данных и сегмент стека.

При загрузке программы сегменты размещаются в памяти, как показано на рис. 2.8,а.

Содержимое регистров CS, DS, SS, указывает на начало программного сегмента и сегментов данных и стека соответственно. Каждому сегменту выделяется область памяти в пределах 64 Кбайт.

Указатель команд IP (которому соответствует одноимённый регистр IP в ЦП – регистр адреса команд) определяет начальный адрес программы. Указа-

78

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

Практически размер программы типа *.ЕХЕ может быть не ограничен, так как в неё может входить любое число сегментов программ и данных.

В настоящее время большая часть прикладных программ – это программы типа *.ЕХЕ.

 

*.ЕХЕ

 

 

*.COM

 

CS

ОП

IP

CS=DS=SS

ОП

IP

ПРОГРАММНЫЙ

 

ПРОГРАММА

 

 

0 - 64 Кбайт

 

 

 

DS

СЕГМЕНТ

 

 

 

 

СЕГМЕНТ

0 - 64 Кбайт

 

ДАННЫЕ

64Кбайт

 

 

SS

ДАННЫХ

 

 

 

 

СЕГМЕНТ

0 - 64 Кбайт

 

СТЕК

 

 

 

 

 

СТЕКА

 

 

SP=

 

 

SP

 

 

=FFFEh

а

б

Рис. 2.8.

Структура и образ памяти программ типа *.COM

Программы типа *.СОМ состоят из единственного сегмента, в котором размещаются программа, данные и стек. Таким образом, размер программы типа *.СОМ не может превысить 64 Кбайт. Образ памяти программы типа *.СОМ показан на рис. 2.8,б.

Данные можно разместить после программы, или внутри неё или, даже перед ней.

После загрузки программы в ОП сегментные регистры содержат один и тот же адрес начала единственного сегмента. Указатель стека SP автоматически заполняется числом FFFEh. Причём весь остаток памяти сегмента в 64 Кбайт, не занятый программой и данными, отдаются под стек.

Таким образом, независимо от фактического размера программы, ей выделяется 64 Кбайт адресного пространства, всю нижнюю часть которого занимает стек.

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

79

Если объём памяти для программы меньше 64 Кбайт, то перед освобождением лишней памяти указатель стека необходимо перевести вверх.

Программы типа *.СОМ используются в основном при составлении программ, резидентных в памяти. Для формирования программы типа *.СОМ полученный на выходе компоновщика файл *.ЕХЕ преобразуется в формат типа *.СОМ с помощью системной утилиты.

Программы, резидентные в памяти

Прикладная программа типа *.СОМ или *.ЕХЕ после её выполнения считается использованной, и повторно её исполнительный модуль запустить на выполнение невозможно. Память, которую она занимает после выполнения, считается свободной и может быть использована другими программами.

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

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

Такие программы носят название программ, резидентных в памяти

( Terminate and Stay resident, TSR), или просто резидентные программы.

Резидентная программа - программа в машинных кодах, постоянно находящаяся в ОП и в любой момент готовая к исполнению.

Сделать резидентной можно программу как типа *.СОМ, так и типа *.ЕХЕ. Но поскольку резидентная программа должна быть максимально компактной, чаще всего в качестве резидентных используются программы типа

*.СОМ.

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

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