SistemnoePO icon

SistemnoePO



НазваниеSistemnoePO
страница1/5
Дата конвертации14.03.2013
Размер2.68 Mb.
ТипДокументы
источник
  1   2   3   4   5
1. /Глава 1. Основные понятия.docx
2. /Глава 2. Управление задачами и памятью в ОС.docx
3. /Глава 3. Особенности архитектуры микропроцессоров i80x86.docx
4. /Глава 4. Управление вводом,выводом и файловые системы.docx
5. /Глава 5. Архитектура ОС и интерфейсы прикладного программирования.docx
6. /Глава 6. Проектирование параллельных взаимодействующих вычислительных процессов.docx
7. /Глава 7. Проблема тупиков и методы борьбы с ними.docx
8. /Глава 8. Современные ОС.docx
9. /Приложения и список литературы.docx
SistemnoePO
SistemnoePO
Реальный и защищённый режимы работы
SistemnoePO
Архитектура операционных систем и интерфейсы прикладного
Независимы е и вза и моде й ствующ и е
SistemnoePO
Современные операционные
Тексты программы параллельных взаимодействующих задач













































































































































































































































































































































А.В.Гордеев

А.Ю.Молчанов


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

ОБЕСПЕЧЕНИЕ


Электронный вариант книги издательства

«Питер»

Санкт–Петербург

Челябинск

ЮУрГУ

Каф. Автоматика и управление

2002


Предисловие

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

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

телями, желающими углубить свои познания в области системного программного

обеспечения.

Согласно Государственному образовательному стандарту, по которому ведёт-

ся обучение студентов, поступивших в вузы до 2000 г., в рамках дисциплины «Сис-

темное программное обеспечение», относящейся к обязательным специальным

дисциплинам учебного плана по направлению «Информатика и вычислительная

техника», студент должен изучить следующие обязательные разделы: «…назначе-

ние, функции и структура операционной системы (ОС); понятие процесса; управ-

ление процессами, способы диспетчеризации процессов; понятие ресурса, виды ре-

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

драйверы устройств, устройства в MS-DOS; файловая система на диске, струк-

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

ния, использование семафоров для решения задач взаимоисключения и синхрониза-

ции; тупики, способы борьбы с тупиками; загрузка и настройка ОС, файлы кон-

фигурирования MS-DOS, основное команды MS-DOS; обзор современных ОС;

трансляторы; формальные языки и грамматики, типы грамматик; вывод цепо-

чек; конечный и магазинный автоматы, распознаватели и преобразователи, по-

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

претаторов, лексический, синтаксический и семантический анализаторы, генера-

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

связывание; загрузчики; функции загрузчика; настраивающий и динамический за-

грузчики; подключение библиотек».

В новой редакции Государственного образовательного стандарта, который

вступил в силу в 2000 г. и относится к поколению студентов, поступивших в вузы

осенью 2000 г. и позже, несколько изменено основное содержание этой дисцип-

лины. В частности, в стандарте записано, что в рамках дисциплины «Системное

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


2


«...пользовательский интерфейс операционной среды; управление задачами; управ-

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

менной операционной системы; программирование в операционной среде; ас-

семблеры; мобильность программного обеспечения; макроязыки; трансляторы;

формальные языки и грамматики, типы грамматик; вывод цепочек; конечный и

магазинный автоматы, распознаватели и преобразователи, построение автома-

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

сический, синтаксический и семантический анализаторы, генератор кода; распре-

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

грузчики; функции загрузчика; настраивающий и динамический загрузчики; под-

ключение библиотек».

Таким образом, мы можем констатировать, что в основном в дисциплине

«Системное программное обеспечение» должно уделяться внимание операцион-

ным системам, средам и системам программирования. Именно в таком ключе в ос-

новном и строится настоящий учебник, поскольку предполагается, что его читате-

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

щимся к направлению «Информатика и вычислительная техника». Учебный мате-

риал, ставший основой для настоящего учебника, уже в течение нескольких лет

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

венном университете аэрокосмического приборостроения. Другими словами, по су-

ществу, в основу учебника лег расширенный конспект лекций по дисциплине

«Системное программное обеспечение». Эта дисциплина изучается в течение двух

семестров. В первом семестре рассматриваются операционные системы (принципы

их построения и функционирования, вопросы создания параллельных взаимо-

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

а во втором – формальные грамматики, трансляторы и системы программирования.

Поэтому книга разбита на две крупные части. Эти две части связаны между собой

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

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

её части. Таким образом, детальное изучение материала любой части книги требу-


3


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

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

можно без знания принципов распределения памяти, которые относятся к вопросам

построения операционных систем. Именно поэтому эти два крупных раздела объе-

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

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

практические вопросы, описаны конкретные реализации различных системных

программ.

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

принципы их построения и функционирования. В последние годы практически по-

всеместно ПК работают под управлением современных 32-битовых ОС, исполь-

зующих аппаратные возможности микропроцессоров для создания и организации

эффективных и защищённых вычислений. Мы посчитали необходимым рассмот-

реть в первой части учебника эти вопросы.

Наиболее популярными ОС являются системы Windows 95/98, Windows NT

4.0, начинается переход к Windows ME и семейству ОС Windows 2000 компании

Microsoft. По этим ОС имеется огромное количество самых разнообразных публи-

каций, в том числе и учебных материалов, объём которых порой очень велик. В то

же время по остальным ОС публикаций существенно меньше. Поэтому в первой

части настоящего учебного пособия мы в качестве примеров операционных систем

и сред кратко рассматриваем такие ОС, как OS/2 Warp, UNIX и Linux, QNX. Есте-

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

Windows 95/98 и Windows NT 4.0.

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

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

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

тическая реализация компиляторов и интерпретаторов рассматривается с точки

зрения современных широко распространенных языков программирования вы-

сокого уровня, таких как Pascal, С и C++.


4


Кратко рассматриваются также практические вопросы построения приклад-

ных программ на основе архитектуры «клиент–сервер» и трехзвенной архитекту-

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

Эти вопросы затрагиваются не с точки зрения технологии их реализации (такие

сведения можно найти в появившейся сейчас специализированной литературе) в

той или иной ОС, а со стороны методов разработки соответствующих прикладных

программ с помощью той или иной системы программирования. Для более деталь-

ного знакомства с конкретными реализациями читатели могут воспользоваться

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

вующие технические публикации в глобальной сети Интернет.

Таким образом, данный учебник должен быть полезен не только тем, кто хо-

чет детально изучить системное программное обеспечение, но и тем, кто собирает-

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

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

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

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

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

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

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

ленный в некоторой прикладной области).

Примеры систем программирования, которые рассматриваются в этом учеб-

нике, предназначены для работы в среде перечисленных выше операционных сис-

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

рования высокого уровня Pascal и С.

В этом коротком предисловии мы, как авторы этой книги, хотим ещё выска-

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

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

материалов, написания книги и её «бесконечного» улучшения, благодаря которым

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

рое время от домашних забот и хлопот. Хочется поблагодарить и Гордеева В. А. за


5


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

признательны также сотрудникам издательства «Питер» Васильеву А. В. и Ваули-

ной Е. Ю. за их терпеливое и внимательное отношение в процессе подготовки тек-

ста книги, его обработки и корректуры. Наше взаимное уважение и сотрудничество

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

лось сделать в заранее оговоренные сроки.

От издательства

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

почты comp@piter.com (издательство «Питер», компьютерная редакция).

Мы будем рады узнать ваше мнение!

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

ства http://www.piter.com.

Часть 1

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

В англоязычной технической литературе термин System Software (системное

программное обеспечение) означает программы и комплексы программ, являю-

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

тера, и применяемые как для автоматизации разработки (создания) новых про-

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

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

групп:

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

2 Системы управления файлами (СУФ).

3 Интерфейсные оболочки для взаимодействия пользователя с ОС и про-

граммные среды.

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

5 Утилиты.

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


6


1 Под операционной системой (ОС) обычно понимают комплекс управляю-

щих и обрабатывающих программ, который, с одной стороны, выступает как ин-

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

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

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

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

ОС. На рис.1 изображена обобщённая структура программного обеспечения вы-

числительной системы.


Рис.1 Обобщённая структура программного обеспечения вычислительной

системы


7


Видно, что ни один из компонентов программного обеспечения, за исключе-

нием самой ОС, не имеет непосредственного доступа к аппаратуре компьютера.

Даже пользователи взаимодействуют со своими программами через интерфейс ОС.

Любые их команды, прежде чем попасть в прикладную программу, сначала прохо-

дят через ОС.

Основными функциями, которые выполняют ОС, являются следующие:

♦приём от пользователя (или от оператора системы) заданий или команд,

сформулированных на соответствующем языке – в виде директив (команд) опера-

тора или в виде указаний (своеобразных команд) с помощью соответствующего

манипулятора (например, с помощью «мыши»), – и их обработка;

♦приём исполнение программных запросов на запуск, приостановку, оста-

новку других программ;

♦загрузка в оперативную память подлежащих исполнению программ;

♦инициация программы (передача ей управления, в результате чего процессор

исполняет программу);

♦идентификация всех программ и данных;

♦обеспечение работы систем управления файлами (СУФ) и/или системы

управления базами данных (СУБД), что позволяет резко увеличить эффективность

всего программного обеспечения;

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

или более программ на одном процессоре, создающее видимость их одновремен-

ного исполнения;

♦обеспечение функций по организации и управлению всеми операциями вво-

да/вывода;

♦удовлетворение жёстким ограничениям на время ответа в режиме реального

времени (характерно для соответствующих ОС);

♦распределение памяти, а в большинстве современных систем и организация

виртуальной памяти;

♦планирование и диспетчеризация задач в соответствии с заданными страте-

гией и дисциплинами обслуживания;


8



♦организация механизмов

обмена сообщениями и данными между выпол-

няющимися программами;

♦защита одной программы от влияния другой; обеспечение сохранности дан-

ных;

♦предоставление услуг на случай частичного сбоя системы;

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

ватели готовят свои программы.

2 Назначение системы управления файлами – организация более удобного

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

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

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

нием имени файла и записи в нём. Как правило, все современные ОС имеют соот-

ветствующие системы управления файлами. Однако выделение этого вида систем-

ного программного обеспечения в отдельную категорию представляется целесооб-

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

ми (либо с одной из нескольких, либо сразу с несколькими одновременно). В этом

случае говорят о монтируемых файловых системах (дополнительную систему

управления файлами можно установить), и в этом смысле они самостоятельны. Бо-

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

файловых систем, а значит, им необязательно иметь систему управления файлами,

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

что любая система управления файлами (СУФ) не существует сама по себе

она разработана для работы в конкретной ОС и с конкретной файловой сис-

темой. Можно сказать, что всем известная файловая система FAT (file allocation

table)1 имеет множество реализаций как система управления файлами, например,

FAT-16 для самой MS-DOS, super-FAT для OS/2, FAT для Windows NT и т. д. Дру-

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

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



1




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


9


щая система управления файлами; и эта система управления файлами будет рабо-

тать только в той ОС, для которой она и создана.

Для удобства взаимодействия с ОС могут использоваться дополнительные

интерфейсные оболочки. Их основное назначение – либо расширить возможности

по управлению ОС, либо изменить встроенные в систему возможности. В качестве

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

ных сред выполнения программ можно назвать различные варианты графического

интерфейса X Window в системах семейства UNIX (например, K Desktop

Environment в Linux), PM Shell или Object Desktop в OS/2 с графическим интерфей-

сом Presentation Manager; наконец, можно указать разнообразные варианты интер-

фейсов для семейства ОС Windows компании Microsoft, которые заменяют Explorer

и могут напоминать либо UNIX с его графическим интерфейсом, либо OS/2, либо

MAC OS. Следует отметить, что о семействе ОС компании Microsoft с общим ин-

терфейсом, реализуемым программными модулями с названиями Explorer (в файле

system.ini, который находится в каталоге Windows, имеется строка

SHELL=EXPLORER.EXE), всё же можно сказать, что заменяемой в этих системах

является только интерфейсная оболочка, в то время как сама операционная система

остаётся неизменной; она интегрирована в ОС. Другими словами, операционная

среда определяется программными интерфейсами, то есть API (application program

interface). Интерфейс прикладного программирования (API) включает в себя

управление процессами, памятью и вводом/выводом.

Ряд операционных систем могут организовывать выполнение программ, соз-

данных для других ОС. Например, в OS/2 можно выполнять как программы, соз-

данные для самой OS/2, так и программы, предназначенные для выполнения в сре-

де MS-DOS и Windows 3.x. Соответствующая операционная среда организуется в

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

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

санных для Windows 95/98. Определёнными возможностями исполнения программ,

созданных для иной операционной среды, обладает и Windows NT. Эта система по-

зволяет выполнять некоторые программы, созданные для MS-DOS, OS/2 1.x, Win-


10


dows 3.x. Правда, в своём последнем семействе ОС Windows 2000 разработчики

решили отказаться от поддержки возможности выполнения DOS–программ.

Наконец, к этому классу системного программного обеспечения следует отне-

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

кую-либо другую машину или операционную систему. Так, известна система эму-

ляции WMWARE, которая позволяет запустить в среде Linux любую другую ОС,

например, Windows. Можно, наоборот, создать эмулятор, работающий в среде

Windows, который позволит смоделировать компьютер, работающий под управле-

нием любой ОС, в том числе и под Linux.

Таким образом, термин операционная среда означает соответствующий ин-

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

лённый сервис1– выполнить операцию ввода/вывода, получить или освободить

участок памяти и т. д.

3 Система программирования на рис.1 представлена такими компонентами,

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

компоновщики и отладчики. Не бывает самостоятельных (оторванных от ОС) сис-

тем программирования. Любая система программирования может работать только

в соответствующей ОС, под которую она и создана, однако при этом она может

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

одна из популярных систем программирования на языке C/C++ фирмы Watcom

для OS/2 позволяет создавать программы и для самой OS/2, и для DOS, и для Win-

dows.

В том случае, когда создаваемые программы должны работать совсем на дру-

гой аппаратной базе, говорят о кросс-системах. Так, для ПК на базе микропроцес-

соров семейства i80x86 имеется большое количество кросс-систем, позволяющих

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

контроллеров.

4 Наконец, под утилитами понимают специальные системные программы, с

помощью которых можно как обслуживать саму операционную систему, так и под-



1




Сервис (service)–обслуживание, выполнение соответствующего запроса


11


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

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

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

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

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

темных файлов самой ОС. К утилитам относятся также и известные комплексы

программ фирмы Symantec, носящие имя Питера Нортона (создателя этой фирмы и

соавтора популярного набора утилит для первых IBM PC). Естественно, что утили-

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


  1   2   3   4   5




Разместите кнопку на своём сайте:
Документы


База данных защищена авторским правом ©lib2.podelise.ru 2000-2013
При копировании материала обязательно указание активной ссылки открытой для индексации.
обратиться к администрации
Документы