авторефераты диссертаций БЕСПЛАТНАЯ БИБЛИОТЕКА РОССИИ

КОНФЕРЕНЦИИ, КНИГИ, ПОСОБИЯ, НАУЧНЫЕ ИЗДАНИЯ

<< ГЛАВНАЯ
АГРОИНЖЕНЕРИЯ
АСТРОНОМИЯ
БЕЗОПАСНОСТЬ
БИОЛОГИЯ
ЗЕМЛЯ
ИНФОРМАТИКА
ИСКУССТВОВЕДЕНИЕ
ИСТОРИЯ
КУЛЬТУРОЛОГИЯ
МАШИНОСТРОЕНИЕ
МЕДИЦИНА
МЕТАЛЛУРГИЯ
МЕХАНИКА
ПЕДАГОГИКА
ПОЛИТИКА
ПРИБОРОСТРОЕНИЕ
ПРОДОВОЛЬСТВИЕ
ПСИХОЛОГИЯ
РАДИОТЕХНИКА
СЕЛЬСКОЕ ХОЗЯЙСТВО
СОЦИОЛОГИЯ
СТРОИТЕЛЬСТВО
ТЕХНИЧЕСКИЕ НАУКИ
ТРАНСПОРТ
ФАРМАЦЕВТИКА
ФИЗИКА
ФИЗИОЛОГИЯ
ФИЛОЛОГИЯ
ФИЛОСОФИЯ
ХИМИЯ
ЭКОНОМИКА
ЭЛЕКТРОТЕХНИКА
ЭНЕРГЕТИКА
ЮРИСПРУДЕНЦИЯ
ЯЗЫКОЗНАНИЕ
РАЗНОЕ
КОНТАКТЫ


Pages:   || 2 | 3 | 4 |
-- [ Страница 1 ] --

УДК 004.45(075.8)

ББК -018.2*32.973я73

МИНОБРНАУКИ РОССИИ

У 91

ФЕДЕРАЛЬНОЕ ГОСУДАРСТВЕННОЕ БЮДЖЕТНОЕ ОБРАЗОВАТЕЛЬНОЕ

УЧРЕЖДЕНИЕ ВЫСШЕГО ПРОФЕССИОНАЛЬНОГО ОБРАЗОВАНИЯ

«ПОВОЛЖСКИЙ ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ СЕРВИСА»

(ФГБОУ ВПО «ПВГУС»)

Рецензент Кафедра «Информационный и электронный сервис» к.т.н., доц. Будилов В. Н.

УЧЕБНО-МЕТОДИЧЕСКИЙ КОМПЛЕКС по дисциплине «Системное программное обеспечение»

для студентов специальности 100101.65 «Сервис»

Учебно-методический комплекс по дисциплине «Системное У 91 программное обеспечение» / сост. В. И. Воловач, А. В. Шляпкин. – Тольятти : Изд-во ПВГУС, 2012. – 80 с.

Для студентов специальности 100101.65 «Сервис».

Одобрено Учебно-методическим Советом университета Составители: Воловач В. И., Шляпкин А. В.

© Воловач В. И., Шляпкин А. В., составление, © Поволжский государственный университет сервиса, Тольятти Содержание Введение.................................................................................................................................................... 1. РАБОЧАЯ УЧЕБНАЯ ПРОГРАММА................................................................................................ 1.1. Цели и задачи изучения дисциплины.............................................................................................. 1.2. Структура и объем дисциплины....................................................................................................... 1.3. Распределение фонда времени по темам и видам занятий............................................................ 1.4. Перечень лабораторных занятий...................................................................................................... 1.5. Требования к уровню освоения программы и формы текущего и промежуточного контроля. 1.5.1. Порядок и содержание промежуточных и итоговых аттестаций...................................... 1.5.2. Контрольные вопросы для самопроверки............................................................................ 1.5.3. Примерные вопросы для экзамена...................................................................................... 1.5.4. Промежуточное тестирование............................................................................................. 1.5.5. Критерии оценки.................................................................................................................. 2. КОНСПЕКТ ЛЕКЦИЙ....................................................................................................................... Лекция 1. Понятие системного программного обеспечения и его роль в программном обеспечении ЭВМ..........

......................................................................................................................... Лекция 2. Взаимосвязь архитектуры ЭВМ и системного программного обеспечения................... Лекция 3. Низкоуровневые средства языка Си для реализации системного программного обеспечения в среде MS DOS................................................................................................................ Лекция 4. Visual C++ и библиотека MFC как средства реализации системного ПО в среде Windows................................................................................................................................................... Лекция 5. Основные отличия операционных систем семейства Windows от MS-DOS.................. Лекция 6. Разработка компонент системного программного обеспечения...................................... Лекция 7. Основные тенденции развития методов и средств автоматизации проектирования и создания системного ПО........................................................................................................................ 3. Лабораторный практикум.................................................................................................................. Лабораторная работа №1 Функции прерываний. Реализация механизма прерываний с использованием средств языка Си........................................................................................................ Лабораторная работа №2 Системные ресурсы ПЭВМ Управление внутренними ресурсами ПЭВМ. Порты ввода-вывода. Системные ресурсы............................................................................. Лабораторная работа №3 Средства BIOS для работы с клавиатурой Управление вводом с клавиатуры средствами BIOS................................................................................................................ Лабораторная работа №4 Работа с видеоадаптерами. Видеоадаптеры и их характеристика......... Лабораторная работа №5 Visual C++ и библиотека MFC................................................................... Лабораторная работа №6 DLL библиотеки в Windows. Создание DLL........................................... 4. Учебно-методическое обеспечение.................................................................................................. 4.1. Рекомендуемая литература:............................................................................................................ 4.2. Методические рекомендации (материалы) для преподавателя.................................................. 4.3. Методические указания для студентов......................................................................................... 4.3.1. Рекомендации по самостоятельному чтению литературы............................................... 4.3.2. Рекомендации по подготовке к лабораторным работам................................................... 4.4. Методические указания по выполнению контрольных работ.................................................... 5. Материально-техническое обеспечение дисциплины.................................................................... 5.1. Учебно-лабораторное оборудование............................................................................................. 6. Программное обеспечение использования современных информационно коммуникационных технологий........................................................................................................... Введение Настоящий учебно-методический комплекс предназначается в первую очередь студентам технических вузов, хотя может быть востребован и обычными подготовленными пользователя ми, желающими углубить свои познания в области системного программного обеспечения.

Согласно Государственному образовательному стандарту, по которому ведётся обучение студентов, поступивших в вузы до 2000 г., в рамках дисциплины «Системное программное обес печение», относящейся к обязательным специальным дисциплинам учебного плана по направле нию «Информатика и вычислительная техника», студент должен изучить следующие обязатель ные разделы: «Назначение, функции и структура операционной системы (ОС);

понятие процесса;

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

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

управление памятью;

устройства, виды устройств, драйверы устройств, устройства в MS-DOS;

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

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

тупики, способы борьбы с тупиками;

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

обзор современных ОС;

трансляторы;

формальные языки и грамматики, типы грамматик;

вывод цепочек;

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

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

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

статическое и ди намическое связывание;

загрузчики;

функции загрузчика;

настраивающий и динамический за грузчики;

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

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

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

1. РАБОЧАЯ УЧЕБНАЯ ПРОГРАММА 1.1. Цели и задачи изучения дисциплины Дисциплина «Системное программное обеспечение» предназначена для изучения прин ципов организации, проектирования и анализа современных операционных систем, освоения ос нов системного программирования в различных операционных системах и особенностей про граммирования процессов операционных системах. Знания, полученные при изучении этой дис циплины должны предоставить в распоряжение обучаемого набор теоретических методов, пред назначенных для проведения исследований в области «Компьютерной безопасности», а также послужить основой для практического освоения системных средств, проектирования вычисли тельных систем.

1.1 Цель преподавания дисциплины:

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

1.2. Задачи изучения дисциплины.

В результате изучения курса студент должен знать:

• области применения конкретных операционных систем;

• основные функции, назначение составных частей и принципы построения ОС;

• объяснять назначение отдельных блоков ОС и логику их работы;

• составлять упрощенные алгоритмы работы блоков ОС;

• описывать логику взаимодействия компонентов вычислительных систем;

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

• о направлениях дальнейшего развития;

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

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

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

• основы администрирования современных операционных систем.

В результате изучения дисциплины студент должен уметь:

• использовать возможности, предоставляемые ОС;

• квалифицированно оценивать область применения системного ПО;

• грамотно использовать системное программное обеспечение при решении практиче ских задач;

• администрировать системное программное обеспечение;

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

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

• включать в операционные системы дополнительные сервисные средства.

В результате изучения дисциплины студент должен владеть:

• методами изменения параметров ОС;

• системными программными средствами;

• средства трассировки и отладки программ.

1.3. Место дисциплины в учебном процессе. Связь с другими дисциплинами.

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

• Организация ЭВМ и систем;

• Микропроцессоры;

• Дискретная математика;

• Математическая логика и теория алгоритмов;

• Программирование на языке высокого уровня;

• Теория массового обслуживания.

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

• Параллельные вычислительные системы;

• Распределенные вычисления;

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

• Базы данных;

• Информационная безопасность.

1.2. Структура и объем дисциплины В соответствии с учебным планом направления подготовки 100101.65 «Сервис» на изуче ние дисциплины «Системное программное обеспечение» отведено 170 часов.

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

Распределение фонда времени по семестрам, неделям, видам занятий № Число Количество часов по плану Количество часов в неделю Самост.

семест- не- работа ра дель Всего Лек- Лаб. Практ. Всего Лекции Лаб. Практ. Часов Часов в ции занятия занятия занятия занятия всего неделю 8 16 170 32 42 - 5 2 3 - 96 1.3. Распределение фонда времени по темам и видам занятий Ауд. заня- Сам. Всего № Наименование разделов по темам тия рабо- часов та Лек. Лаб.

1 2 3 4 5 Введение. Понятие системного ПО и его место в про 2 - 10 граммном обеспечении ЭВМ.

Взаимосвязь архитектуры ЭВМ и системного ПО.

2.

Архитектура и логическое устройство ЭВМ. Форматы данных и машинных инструкций. Адресация памяти. 4 - 10 Прерывания. Механизмы взаимодействия процессов.

Механизмы ввода-вывода и доступа к файлам Низкоуровневые средства языка С для реализации 3.

компонент системного ПО в среде MS-DOS.

Модели оперативной памяти. Распределение памяти при работе С-программы. Методы доступа к регистрам процессора, произвольным адресам оперативной памя- 6 16 18 ти и портам ввода-вывода. Генерация прерываний.

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

Низкоуровневая работа с файлами, клавиатурой и эк раном.

Visual C++ и библиотека MFC как средства реализации 4.

6 12 14 системного ПО в среде Windows Основные отличия операционных систем семейства 5.

Windows от MS-DOS.

Понятие сообщения и очередей сообщений. Источники сообщений. Главный цикл обработки сообщений. 16- 6 - 18 ти и 32-х разрядные приложения Windows. Потоки приложений на языке Visual C++ - Application Wizard, Class Wizard, Application Studio 1 2 3 4 5 Разработка компонент системного ПО.

6.

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

DLL библиотеки в Windows. Создание DLL. Функции входа/выхода. Экспорт и импорт функций и перемен ных. Создание DLL для использования средствами раз работки, отличными от Visual C++.

Основные тенденции развития методов и средств авто 7.

2 - 12 матизации проектирования и создания системного ПО.

Всего 32 42 96 1.4. Перечень лабораторных занятий № Тема дисцип- Лабораторная Используемое Программное Литера- Ча лины работа оборудование обеспечение тура со в 1 Низкоуровне- Функции пре- 1. Персональ- 1. Среда програм- [2], р. 1.1- вые средства рываний. Реали- ный компью- мирования С. 1.8.

языка С для зация механиз- тер 2. Операционная реализации ма прерываний системаMS DOS.

компонент сис- с использовани темного ПО в ем средств язы среде MS-DOS ка Си.

2 Низкоуровне- Системные ре- 1. Персональ- 1. Среда програм- [2], р. 2.2- вые средства сурсы ПЭВМ ный компью- мирования С. 2.5.

языка С для Управление тер 2. Операционная реализации внутренними системаMS DOS.

компонент сис- ресурсами темного ПО в ПЭВМ. Порты среде MS-DOS ввода-вывода.

Системные ре сурсы 3 Низкоуровне- Средства BIOS 1. Персональ- 1. Среда програм- [2], р. 2.6 вые средства для работы с ный компью- мирования С.

языка С для клавиатурой тер 2. Операционная реализации Управление системаMS DOS.

компонент сис- вводом с кла темного ПО в виатуры средст среде MS-DOS вами BIOS.

4 Низкоуровне- Работа с видео- 1. Персональ- 1. Среда програм- [2], р. 2.7 вые средства адаптерами. ный компью- мирования С.

языка С для Видеоадаптеры тер 2. Операционная реализации и их характери- системаMS DOS.

компонент сис- стика темного ПО в среде MS-DOS № Тема дисцип- Лабораторная Используемое Программное Литера- Ча лины работа оборудование обеспечение тура со в 5 Visual C++ и Visual C++ и 1. Персональ- 1. Среда програм- [3], гл. 1 библиотека библиотека ный компью- мирования С++.

MFC как сред- MFC тер 2. Операционная ства реализации система Windows.

системного ПО в среде Windows.

6 Разработка DLL библиоте- 1. Персональ- 1. Среда програм- [3], гл. 1- компонент сис- ки в Windows. ный компью- мирования С++. темного ПО. Создание DLL. тер 2. Операционная система Windows.

1.5. Требования к уровню освоения программы и формы текущего и промежуточного контроля.

1.5.1. Порядок и содержание промежуточных и итоговых аттестаций Порядок и содержание промежуточных и итоговых аттестаций приведены в технологиче ской карте дисциплины (см. Приложение).

1.5.2. Контрольные вопросы для самопроверки 1. Операционные системы и среды.

2. Состав и функции операционных систем.

3. Различия между понятиями «операционная система» и «операционная среда».

4. Понятие вычислительного процесса и ресурса.

5. Классификация ресурсов.

6. Диаграмма состояний процесса.

7. Процессы и треды.

8. Прерывания.

9. Механизм обработки прерываний.

10. Внешние и внутренние прерывания.

11. Дисциплины обслуживания прерываний.

12. Управление задачами и памятью в операционных системах.

13. Планирование и диспетчеризация процессов и задач.

14. Стратегии планирования.

15. Дисциплины диспетчеризации.

16. Вытесняющие и невытесняющие алгоритмы диспетчеризации.

17. Качество диспетчеризации и гарантии обслуживания.

18. Диспетчеризация задач с использованием динамических приоритетов.

19. Простое непрерывное распределение и распределение с перекрытием (оверлейные струк туры).

20. Распределение статическими и динамическими разделами.

21. Сегментная, страничная и сегментно-страничная организация памяти.

22. Распределение оперативной памяти в Microsoft Windows NT.

23. Основные понятия и концепции организации ввода/вывода в ОС.

24. Режимы управления вводом/выводом.

25. Закрепление устройств, общие устройства ввода/вывода.

26. Синхронный и асинхронный ввод/вывод.

27. Функции файловой системы ОС и иерархия данных.

28. Файловая система FAT. Файловые системы VFAT и FAT32.

29. Файловая система HPFS.

30. Файловая система NTFS (New Technology File System). Основные отличия FAT и NTFS.

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

32. Автоматизация построения синтаксических анализаторов (программа YACC).

33. Семантический анализ и подготовка к генерации кода. Назначение семантического анали за. Этапы семантического анализа.

34. Генерация кода. Методы генерации кода. Общие принципы генерации кода. Синтаксически управляемый перевод. Способы внутреннего представления программ.

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

1.5.3. Примерные вопросы для экзамена 1. Основные принципы построения операционных систем.

2. Микроядерные операционные системы.

3. Монолитные операционные системы.

4. Принципы построения интерфейсов операционных систем.

5. Интерфейс прикладного программирования.

6. Способы реализации API.

7. Платформенно-независимый интерфейс POSIX.

8. Семейство операционных систем UNIX. Общая характеристика семейства операционных систем UNIX, особенности архитектуры семейства ОС UNIX.

9. Семейство операционных систем OS/2 Warp компании IBM.

10. Сетевая ОС реального времени QNX.

11. Языки и цепочки символов. Способы задания языков. Цепочки символов.

12. Операции над цепочками символов.

13. Понятие языка. Формальное определение языка.

14. Способы задания языков. Синтаксис и семантика языка.

15. Особенности языков программирования.

16. Определение грамматики. Форма Бэкуса-Наура.

17. Понятие о грамматике языка.

18. Принцип рекурсии в правилах грамматики.

19. Запись правил грамматик с использованием метасимволов.

20. Запись правил грамматик в графическом виде.

21. Классификация языков и грамматик.

22. Цепочки вывода. Сентенциальная форма.

23. Проблемы однозначности и эквивалентности грамматик.

24. Распознаватели. Задача разбора. Общая схема распознавателя. Виды распознавателей. За дача разбора (постановка задачи).

25. Определение транслятора, компилятора, интерпретатора и общая схема работы.

26. Назначение трансляторов, компиляторов, и интерпретаторов. Примеры реализации.

27. Понятие прохода. Многопроходные и однопроходные компиляторы.

28. Трансляторы с языка ассемблера («ассемблеры»). Макроопределения и макрокоманды.

29. Лексические анализаторы (сканеры). Принципы построения сканеров 30. Назначение лексического анализатора. Принципы построения лексических анализаторов.

31. Автоматизация построения лексических анализаторов (программа LEX).

32. Синтаксические анализаторы.

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

34. Основные принципы работы синтаксического анализатора. Дерево разбора. Преобразование дерева разбора в дерево операций.

35. Машинно-зависимые методы оптимизации.

36. Понятие и структура систем программирования. Принципы функционирования систем программирования. Компилятор как составная часть системы программирования.

37. Назначение и функции компоновщика. Загрузчики и отладчики. Библиотеки подпрограмм как составная часть системы программирования.

1.5.4. Промежуточное тестирование Промежуточное тестирование проводится в часы лекций в виде ответа на 20 тестовых во просов. Вопросы выбираются в случайном порядке из 30 вопросов для самоконтроля.

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

«отлично» - студентам, ответившим правильно на 18 и более вопросов;

«хорошо» - студентам, ответившим правильно на 16-17 вопросов;

«удовлетворительно» - студентам, ответившим правильно на 13-15 вопросов;

«неудовлетворительно» - студентам, ответившим правильно менее чем на 13 вопросов.

Студенты, получившие на промежуточном тестировании «отлично», получают дополни тельно 10 баллов модульно-рейтинговой системы промежуточного контроля. Студенты, полу чившие на промежуточном тестировании «хорошо», получают дополнительно 5 баллов. Студен ты, получившие на промежуточном тестировании «удовлетворительно» или «неудовлетвори тельно», не получают дополнительных баллов.

1.5.5. Критерии оценки Итоговая оценка учитывает результаты модульно-рейтинговой системы промежуточного контроля.

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

• промежуточное тестирование.

За успешно выполненную лабораторную работу студент получает 8 баллов. При условии вы полнения 6 лабораторных работ студент может получить 48 баллов.

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

Доклад на студенческой конференции может добавить к рейтингу до 15 баллов. Научная ста тья объемом не менее 5 стр. может добавить к рейтингу до 25 баллов.

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

• 0 - если студент не ответил ни на один из трех вопросов;

• 15 - если студент ответил на 1 вопрос;

• 30 - если студент ответил на 2 вопроса.

После экзамена выставляются оценки:

• «отлично» - студентам, набравшим рейтинг более 85 баллов;

• «хорошо» - студентам, набравшим от 71 до 85 баллов включительно;

• «удовлетворительно» - студентам, набравшим от 51 до 70 баллов включительно;

• «неудовлетворительно» - студентам, набравшим менее 51 балла 2. КОНСПЕКТ ЛЕКЦИЙ Лекция 1. Понятие системного программного обеспечения и его роль в программном обес печении ЭВМ В англоязычной технической литературе термин System Software (системное программное обеспечение) означает программы и комплексы программ, являющиеся общими для всех, кто со вместно использует технические средства компьютера, и применяемые как для автоматизации разработки (создания) новых программ, так и для организации выполнения программ уже суще ствующих. С этой точки зрения программное обеспечение может быть разделено на следующие пять групп:

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

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

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

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

5 Утилиты.

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

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

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

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

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

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

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

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

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

обеспечение функций по организации и управлению всеми операциями ввода/вывода;

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

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

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

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

защита одной программы от влияния другой;

обеспечение сохранности данных;

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

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

Назначение системы управления файлами – организация более удобного доступа к дан ным, организованным как файлы. Именно благодаря системе управления файлами вместо низко уровневого доступа к данным с указанием конкретных физических адресов нужной нам записи используется логический доступ с указанием имени файла и записи в нём. Как правило, все со временные ОС имеют соответствующие системы управления файлами. Однако выделение этого вида системного программного обеспечения в отдельную категорию представляется целесооб разным, поскольку ряд ОС позволяет работать с несколькими файловыми системами (либо с од ной из нескольких, либо сразу с несколькими одновременно). В этом случае говорят о монтируе мых файловых системах (дополнительную систему управления файлами можно установить), и в этом смысле они самостоятельны. Более того, можно назвать примеры простейших ОС, которые могут работать и без файловых систем, а значит, им необязательно иметь систему управления файлами, либо они могут работать с одной из выбранных систем. Надо, однако, понимать, что любая система управления файлами (СУФ) не существует сама по себе –она разработана для ра боты в конкретной ОС и с конкретной файловой системой. Можно сказать, что всем известная файловая система FAT (file allocation table) 1 имеет множество реализаций как система управле ния файлами, например, FAT-16 для самой MS-DOS, super-FAT для OS/2, FAT для Windows NT и т. д. Другими словами, для работы с файлами, организованными в соответствии с некоторой файловой системой, для каждой ОС должна быть разработана соответствую Здесь и далее без указания на источник заимствования приводятся английские эквиваленты слов и словосочетания система управления файлами;

и эта система управления файлами будет работать только в той ОС, для которой она и создана. Для удобства взаимодействия с ОС могут использоваться допол нительные интерфейсные оболочки. Их основное назначение – либо расширить возможности по управлению ОС, либо изменить встроенные в систему возможности. В качестве классических примеров интерфейсных оболочек и соответствующих операционных сред выполнения про грамм можно назвать различные варианты графического интерфейса X Window в системах се мейства UNIX (например, K Desktop Environment в Linux), PM Shell или Object Desktop в OS/2 с графическим интерфейсом Presentation Manager;

наконец, можно указать разнообразные вариан ты интерфейсов для семейства ОС Windows компании Microsoft, которые заменяют Explorer и могут напоминать либо UNIX с его графическим интерфейсом, либо OS/2, либо MAC OS. Следу ет отметить, что о семействе ОС компании Microsoft с общим интерфейсом 0.0008, реализуемым программными модулями с названиями Explorer (в файле system.ini, который находится в катало ге Windows, имеется строка SHELL=EXPLORER.EXE), всё же можно сказать, что заменяемой в этих системах является только интерфейсная оболочка, в то время как сама операционная систе маостаётся неизменной;

она интегрирована в ОС. Другими словами, операционная среда опреде ляется программными интерфейсами, то есть API (application programinterface). Интерфейс при кладного программирования (API) включает в себя управление процессами, памятью и вво дом/выводом. Ряд операционных систем могут организовывать выполнение программ, создан ных для других ОС. Например, в OS/2 можно выполнять как программы, созданные для самой OS/2, так и программы, предназначенные для выполнения в среде MS-DOS и Windows 3.x. Соот ветствующая операционная среда организуется в операционной системе в рамках отдельной вир туальной машины. Аналогично, в системе Linux можно создать условия для выполнения некото рых программ, написанных для Windows 95/98. Определёнными возможностями исполнения программ, созданных для иной операционной среды, обладает и Windows NT. Эта система по зволяет выполнять некоторые программы, созданные для MS-DOS, OS/2 1.x, Win11dows 3.x.

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

Система программирования представлена такими компонентами, как транслятор с соот ветствующего языка, библиотеки подпрограмм, редакторы, компоновщики и отладчики. Не бы вает самостоятельных (оторванных от ОС) систем программирования. Любая система програм мирования может работать только в соответствующей ОС, под которую она и создана, однако при этом она может позволять разрабатывать программное обеспечение и под другие ОС. На пример, одна из популярных систем программирования на языке C/C++ фирмы Watcom для OS/ позволяет создавать программы и для самой OS/2, и для DOS, и для Windows. В том случае, ко гда создаваемые программы должны работать совсем на другой аппаратной базе, говорят о кросс-системах. Так, для ПК на базе микропроцессоров семейства i80x86 имеется большое коли чество кросс-систем, позволяющих создавать программное обеспечение для различных микро процессоров и микроконтроллеров.

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

Контрольные вопросы 1. Какие основные функции выполняет операционная система?

2. Назначение системы управления файлами.

3. Чем отличается система программирования от языка программирования?

4. Какую роль играет системное программное обеспечение в программном обеспечении?

5. Разновидности системного программного обеспечения.

Литература: [1], гл. 1;

[6], гл. 1.

Лекция 2. Взаимосвязь архитектуры ЭВМ и системного программного обеспечения.

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

Рис. 2.1. Логическая структура ЭВМ Положения фон Неймана:

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

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

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

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

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

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

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

В качестве устройства ввода информации служит, например, клавиатура. В качестве уст ройства вывода – дисплей, принтер и т.д.

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

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

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

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

• форматы данных математического сопроцессора (FPU);

• форматы данных MMX/3DNow!;

• форматы данных SIMD.

Все рассматриваемые в данном разделе процессоры поддерживают стандартные команды целочисленной арифметики (ADD, ADC, SUB, SBB, IMUL, MUL, IDIV, DIV, INC, DEC, NEG, CMP), команды двоично-десятичной арифметики (DAA, DAS, AAA, AAS, AAM, AAD), а также некоторые другие группы команд, которые предназначены для обработки целочисленных и стро ковых данных.

Целые числа могут занимать байт, слово или двойное слово. Они могут быть знаковыми и беззнаковыми. В знаковых целых самый старший бит байта, слова или двойного слова, занимае мого числом, отводится для индикации знака числа. Нуль соответствует плюсу, 1 — минусу. Та ким образом, возможный диапазон представляемых значений для знаковых целых составляет: от –128 до +127 для байтовых величин, от –32768 до +32767 для слов, от –231 до 231-1 для двойных слов. Беззнаковые целые могут принимать значения: от 0 до 255 для байтовых величин, от 0 до 65535 для слов, от 0 до 232-1 для двойных слов.

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

Битовые поля — это непрерывные последовательности битов, которые могут располагать ся в любом месте памяти и начинаться с любого бита любого байта по любому адресу. Началом битового поля считается самый младший используемый бит самого младшего байта. Битовые поля могут иметь длину до 32 бит.

Строки — это непрерывные последовательности битов, байтов, слов или двойных слов в памяти. Битовые строки могут располагаться в любом месте памяти и начинаться с любого бита любого байта по любому алресу. Максимальная длина битовых строк 232-1 бит. Строки байт, слов и двойных слов могут занимать до 232-1 байт (4 Гб).

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

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

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

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

Программные наборы инструкций. Опкод можно найти и в так называемом байт-коде и прочих представлениях, разработанных скорее для программных интерпретаторов, чем для аппа ратного обеспечения. Эти программные наборы инструкций часто задействуют несколько более высокоуровневые типы данных и операции, чем большинство аппаратных аналогов, но, тем не менее, они основаны на тех же принципах. Примерами может послужить Java Virtual Machine (JVM) языка программирования Java, байт-код, используемый в Emacs для скомпилированного кода Лисп и многие другие.

Адресация памяти Логическая структура памяти PC обусловлена особенностями системы адресации процес соров семейства х86. Процессоры 8086/88, применявшиеся в первых моделях PC, имели доступ ное адресное пространство 1 Мбайт (20 бит шины адреса). Эти процессоры использовали сег ментную модель памяти, унаследованную и следующими моделями в реальном режиме. Соглас но этой модели исполнительный (линейный) адрес вычислялся по формуле 4.1. Таким образом, обеспечивался доступ к адресному пространству Addr = 00000 – FFFFFh при помощи пары 16 битных регистров. Заметим, что при Seg = FFFFh и Offset = =FFFFh данная формула дает адрес 10FFEFh, но ввиду 20-битного ограничения на шину адреса эта комбинация в физической памяти указывает на 0FFEFh. Таким образом, адресное пространство как бы сворачивается в кольцо с небольшим «нахлестом».

Начиная с процессора 80286 шина адреса была расширена до 24 бит, а впоследствии (386DX, 486 и выше) до 32 и даже 36 (P6). P6 – компьютеры, основанные на процессоре Pentium Pro и выше.

В реальном режиме процессора, используемом в DOS, применяется та же сегментная мо дель памяти и формально доступен лишь 1 Мбайт памяти, что является недостаточным для большинства современных приложений. Однако выяснилось, что процессоры 80286 в реальном режиме эмулируют 8086 с ошибкой: та самая единица в бите А20, которая отбрасывалась в про цессорах 8086/88, теперь попадает на шину адреса, и в результате максимально доступный ли нейный адрес в реальном режиме достигает 10FFEFh. За эту ошибку с радостью ухватились раз работчики PC, поскольку дополнительные (64К – 16) байты оперативной памяти, адресуемой в реальном режиме, оказались подарком, позволяющим освободить дефицитное пространство опе ративной памяти для прикладных программ. В эту область (100000h – 10FFEFh), названную «вы сокой памятью» – High Memory Area (HMA), стали помещать часть операционной системы и не большие резидентные программы.

Однако для обеспечения полной совместимости с процессором 8086/88 в схему PC ввели вентиль линии А20 шины адреса – GateA20, который либо пропускает сигнал от процессора, ли бо принудительно обнуляет линию А20 системной шины адреса. Более старшие биты такой «за боты» не требуют, поскольку переполнение при суммировании 16-битных компонентов адреса по данной схеме до них не распространяется.

Управление этим вентилем подключили к свободному программно-управляемому выход ному биту 1 контроллера клавиатуры 8042, ставшего стандартным элементом архитектуры PC начиная с AT. Предполагалось, что этим вентилем часто пользоваться не придется. Однако жизнь внесла свои поправки, и оказалось, что переключение вентиля в многозадачных ОС, часто переключающих процессор между защищенным режимом, реальным режимом и режимом V86, контроллером клавиатуры выполняется слишком медленно. Так появились альтернативные ме тоды быстрого переключения вентиля, специфичные для различных реализаций системных плат (например, через порт 92h). Кроме того, иногда использовали и аппаратную логику быстрого де кодирования команды на переключение бита, поступающую к контроллеру клавиатуры. Для оп ределения способа переключения в утилиту CMOS Setup ввели соответствующие параметры, по зволяющие выбрать между стандартным, но медленным способом и менее стандартизованным, но быстрым, в зависимости от используемого ПО.

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

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

Распределение памяти PC, непосредственно адресуемой процессором, приведено на рис.

2.2 и представляется следующим образом.

Рис. 2.2 Распределение памяти ПК 00000h-9FFFFh – Conventional (Base) Memory, 640 Кбайт – стандартная (базовая) память, доступная DOS и программам реального режима. В некоторых системах с видеоадаптером MDA верхняя граница сдвигается к AFFFFh (704 Кбайт). Иногда верхние 128 Кбайт стандартной памя ти (область 80000h-9FFFFh) называют Extended Conventional Memory.

A0000h-FFFFFh – Upper Memory Area (UMA), 384 Кбайт – верхняя память, зарезервированная для системных нужд. В ней размещаются области буферной памяти адаптеров (например, видео память) и постоянная память (BIOS с расширениями). Эта область, обычно используемая не в полном объеме, ставит непреодолимый архитектурный барьер на пути непрерывной (нефрагмен тированной) памяти, о которой мечтают программисты.

Память выше 100000h – Extended Memory – дополнительная (расширенная) память, непо средственно доступная только в защищенном (и в «большом реальном») режиме для компьюте ров с процессорами 286 и выше. В ней выделяется область 100000h-10FFEFh – высокая память, НМА, – единственная область расширенной памяти, доступная 286+ в реальном режиме при от крытом вентиле Gate A20.

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

Ее современное английское название – Extended Memory – пересекается с названием одной из спецификаций ее использования – Extended Memory Specification. Но название другой специфи кации использования – Expanded Memory Specification – в прямом переводе на русский язык не отличимо от перевода предыдущего термина (и Extended и Expanded переводятся как «расши ренный»). Будем придерживаться терминологии, укрепившейся в литературе, и область всей фи зической памяти, расположенной в адресном пространстве выше 1 Мбайта, будем называть до полнительной памятью. Ее объем у современных компьютеров указывается строкой Extended Memory xxxxx Kbyte в таблице, выводимой после прохождения теста POST, и в меню стандарт ной конфигурации CMOS Setup.

Вышеприведенное разделение памяти актуально только для приложений и операционных систем реального режима типа MS-DOS. Для ОС защищенного режима (в том числе Windows 9x/NT/2000) доступна вся оперативная память, причем без каких-либо ухищрений вроде EMS и XMS, описанных ниже. Однако область UMA, сохраняемая ради совместимости, остается барье ром на пути к единой однородной памяти.


Для компьютеров класса АТ-286 с 24-битной шиной адреса верхняя граница оперативной памяти – FDFFFFh (максимальный размер 15,9 Мбайт). Область FE0000h-FFFFFFh содержит ПЗУ BIOS (ROM BIOS Area), обращение к этой области эквивалентно обращению к ROM BIOS по адресам 0E0000h-0FFFFFh. Для 386+ процессоров и 32-битной шины адреса теоретическая верхняя граница – 4 Гбайт, а для Р6 – 64 Гбайт (36-битная шина адреса). В компьютерах с 32 разрядной шиной адреса образ BIOS дополнительно проецируется в адреса FFFE0000h FFFFFFFFh, хотя для процессоров Р6 это и необязательно. Однако иногда используется и проек ция BIOS в область FE0000h-FFFFFFh, что не позволяет задействовать более 16 Мбайт ОЗУ, по скольку система воспринимает только найденную непрерывную область оперативной памяти.

Если 32-разрядный компьютер имеет отображение области BIOS под границей 16 Мбайт, это отображение обычно можно запретить установкой соответствующего параметра CMOS Setup.

Иногда для использования специфических адаптеров ISA, имеющих буфер с адресами в 16-м ме габайте памяти, предусматривают параметр Memory Hole At 15-16M. Его установка также не по зволяет использовать оперативную память свыше 16 Мбайт.

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

Компьютеры, использующие режим системного управления SMM (System Management Mode), имеющийся у большинства процессоров последних поколений, имеют еще одно адресное пространство памяти – SMRAM. Это адресное пространство «параллельно» пространству обыч ной памяти и при работе доступно процессору только в режиме обработки SMI. Память SMRAM может представлять собой часть физической оперативной памяти (DRAM), а может быть реали зована и специальной микросхемой энергонезависимой памяти. Ее размер может варьироваться в диапазоне от 32 Кбайт (минимальные потребности SMM) до 4 Гбайт. SMRAM располагается, на чиная с адреса SMIBASE (по умолчанию 30000h), и распределяется относительно адреса SMIBASE следующим образом.

SMI# (System Management Interrupt). В режим SMM процессор может войти только по сигналу на входе SMI#. Сигнал SMI# для процессора является немаскируемым прерыванием с наивысшим приоритетом.

FE00h-FFFFh (3FE00h-3FFFFh) – область сохранения контекста (распределяется, начиная со старших адресов по направлению к младшим). По прерыванию SMI сохраняются почти все регистры процессора, но сохранение регистров FPU не производится.

8000h (38000h) – точка входа в обработчик (SMI Handler).

0-7FFFh (30000h-37FFFh) – свободная область.

Память SMRAM должна быть схемотехнически защищена от доступа прикладных про грамм. Процессор генерирует специальный выходной сигнал SMIACT# во время обработки SMI, который и должен являться «ключом» доступа к этой памяти. Если SMRAM не является энерго независимой, то системная логика должна обеспечить возможность ее инициализации (записи программного кода обработчика) процессором из обычного режима работы до разрешения появ ления сигнала SMI#.

Стандартная память – Conventional Стандартная память является самой дефицитной в PC, когда речь идет о работе в среде операционных систем типа MS-DOS. На ее небольшой объем (типовое значение 640 Кбайт) пре тендуют и BIOS, и ОС реального режима, а остатки отдаются прикладному ПО. Стандартная па мять распределяется следующим образом:

00000h-003FFh – Interrupt Vectors – векторы прерываний (256 двойных слов);

00400h-004FFh – BIOS Data Area – область переменных BIOS;

00500h-00xxxh – DOSArea – область DOS;

00xxxh-9FFFFh – User RAM – память, предоставляемая пользователю (до 638 Кбайт);

при использовании PS/2 Mouse область 9FC00h-9FFFFh используется как расширение BIOS Data Area, и размер User RAM уменьшается.

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

С появлением механизма страничной переадресации (у процессоров 386 и выше) их стали по возможности заполнять «островками» оперативной памяти, названными блоками верхней памяти UMB(Upper Memory Block). Эти области доступны DOS для размещения резидентных программ и драйверов через драйвер EMM386, который отображает в них доступную дополнительную па мять.

Стандартное распределение верхней памяти выглядит следующим образом:

A0000h-BFFFFh – Video RAM, 128 Кбайт – видеопамять (обычно используется не пол ностью).

C0000h-DFFFFh – Adapter ROM, Adapter RAM,128 Кбайт – резерв для адаптеров, ис пользующих собственные модули ROM BIOS или (и) специальное ОЗУ, разделяемое с системной шиной.

E0000h-EFFFFh – свободная область, 64 Кбайт, иногда занятая под System BIOS.

F0000h-FFFFFh – System BIOS, 64 Кбайт – системная BIOS.

FD000h-FDFFFh – ESCD (Extended System Configuration Data) – область энергонезави симой памяти, используемая для конфигурирования устройств Plug and Play. Эта область имеется только при наличии PnP BIOS, ее положение и размер жестко не заданы.

В области UMA практически всегда присутствует графический адаптер. В зависимости от модели он занимает следующие области:

MDA RAM – B 0000h-B0FFFh;

CGA RAM – B8000h-BBFFFh;

EGA ROM – C0000h-C3FFFh/C7FFFh;

VGA ROM – C0000h-C7FFFh;

EGA, VGA RAM – A0000h-BFFFFh, в зависимости от видеорежима используются сле дующие области:

Graphics – A0000h-AFFFFh;

Color Text – B8000h-BFFFFh;

Mono Text – B0000h-B7FFFh.

Также распространенным потребителем UMA являются расширения ROM BIOS, распо ложенные на платах дисковых контроллеров и микросхемы удаленной загрузки (Boot ROM) на платах адаптеров ЛВС. Обычно они занимают область C8000h – CBFFFh/C9FFFh/C8FFFh (для дисковых контроллеров), но могут и перемещаться при конфигурировании адаптеров.

Размер области, занимаемой системной ROM BIOS, колеблется от 8 Кбайт у PC/XT до Кбайт, однако разумное значение – 64 Кбайт. Большая область использовалась «на радостях» от появления микросхем ROM и флэш-памяти объемом 1 Мбит (128Кх8), но при этом размер дос тупной UMA сократился. Тогда стали микросхемы того же (и большего) объема отображать только на область FOOOOh-FFFFFh (64 Кбайт), а иногда и меньшую. Это оказалось возможным, поскольку не все содержимое микросхемы ROM BIOS должно быть доступно одновременно. Та ким способом удалось примирить интересы пользователей UMB с необходимостью расширения объема BIOS, связанной с усложнением технических средств.

Видеопамять графического адаптера является особой областью памяти, к которой во время не прерывного процесса регенерации экрана интенсивно обращаются и центральный процессор, и графический акселератор (если таковой имеется). Видеопамять традиционно является физически выделенной памятью сравнительно (по сравнению с ОЗУ) небольшого объема, и для нее разны ми способами обеспечивают максимальную производительность – увеличивают разрядность до 128 бит, повышают частоту, применяют специализированные, в том числе и двухпортовые, мик росхемы памяти. Это, конечно же, приводит к удорожанию компьютера. Для современных гра фических акселераторов требуется доступ к большому объему памяти, причем с высокой произ водительностью. Вместо предоставления локальной памяти адаптера была предложена архитек тура унифицированной памяти UMA (Unified Memory Architecture). Здесь для видеопамяти (и других нужд акселератора) выделяется область в общем пространстве единой физической опера тивной памяти. За этот способ снижения стоимости приходится расплачиваться снижением про изводительности как видеосистемы, так и основной памяти. Архитектура UMA применяется в чипсетах системной платы с интегрированной графикой для недорогих компьютеров. При этом может предоставляться возможность установки и дополнительного специализированного модуля видеопамяти, позволяя за дополнительные деньги отказаться от UMA. Если с графического адап тера AGP убрать локальную память, этот высокопроизводительный адаптер вырождается в сис тему с UMA.

Accelerated Graphic Port, ускоренный графический порт.

Отображаемая и расширенная память – спецификации EMS и XMS Отображаемая память EMS (Expanded Memory Specification) – программная спецификация использования дополнительной памяти DOS-программами реального режима. Спецификация LIM EMS–соглашение фирм Lotus, Intel, Microsoft на использование EMS. С помощью специаль ных аппаратных или программных средств любая область дополнительной памяти может быть отображена на небольшие страницы, расположенные в области UMA. В первоначальном вариан те можно было использовать 4 страницы по 16 Кбайт, примыкающие друг к другу, обычно начи ная с адреса D0000h (положение страниц можно менять в пределах свободных областей UMA).

Обращение прикладных программ к памяти EMS осуществляется через диспетчер памяти, вызы ваемый по прерыванию Int 67h. Программа, нуждающаяся в дополнительной памяти, должна сначала запросить выделение области, указав ее размер в 16-килобайтных страницах. В ответ на этот запрос (если имеется свободная память) диспетчер сообщает программе номер дескриптора EMS (EMS handler), по которому программа в дальнейшем будет ссылаться на выделенную ей область при управлении отображением. Далее программа через диспетчер назначает отображе ние требуемой логической страницы из выделенной ей области дополнительной памяти на вы бранную физическую страницу, расположенную в области UMA. После этого любые программ ные обращения процессора к физической странице, расположенной в пределах первого мегабай та, будут в действительности работать с логической страницей дополнительной памяти, распо ложенной выше первого мегабайта, причем без переключения в защищенный режим. Для работы с иной логической страницей требуется вызов диспетчера для переназначения отображения. В EMS 4.0, эмулируемой на процессорах 386+, появилась возможность увеличения числа доступ ных физических страниц и отображения дополнительной памяти не только на фиксированные области UMA, но и на любые области памяти.


Для поддержки EMS поначалу требовались специальные аппаратные средства. В компью терах на процессорах 386 и выше появилась возможность программной эмуляции EMS, которую в MS-DOS 5+ выполняет драйвер EMM386.EXE.

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

Расширенная память XMS (extended Memory Specification) – иная программная специфи кация использования дополнительной памяти DOS-программами, разработанная компаниями Lotus, Intel, Microsoft и AST для компьютеров на процессорах 286 и выше. Эта спецификация по зволяет программе получить в распоряжение одну или несколько областей дополнительной па мяти, а также использовать область НМА. Распределением областей ведает диспетчер расширен ной памяти – драйвер HIMEM.SYS. Диспетчер позволяет захватить или освободить область НМА (65 520 байт, начиная с 100000h), а также управлять вентилем линии адреса А20. Функции собственно XMS позволяют программе:

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

• захватить или освободить блок памяти;

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

• запереть блок памяти (запретить копирование) и отпереть его;

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

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

Размер блока может достигать 64 Мбайт. Спецификация XMS позволяет программам реального режима устраивать «склады» данных в дополнительной памяти, которая им непосредственно не доступна, копируя в нее и из нее данные доступных областей первого мегабайта памяти. Доступ к диспетчеру XMS осуществляется через прерывание Int 2Fh. Заботу о переключении в защи щенный режим и обратно для получения доступа к дополнительной памяти берет на себя дис петчер. По умолчанию HIMEM.SYS позволяет использовать до 32 дескрипторов блоков, но это число можно увеличить, задав параметр /NUMHANDLES=xx в строке загрузки драйвера HIMEM.SYS.

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

Как видно, спецификации EMS и XMS отличаются по принципу действия: в EMS для дос тупа к дополнительной памяти выполняется отображение (страничная переадресация) памяти, а в XMS – копирование блоков данных. На компьютерах с процессорами 386+ эти спецификации мирно сосуществуют при использовании драйвера HIMEM.SYS, поверх которого может быть загружен и драйвер EMM386.EXE, пользующийся памятью XMS для эмуляции EMS-памяти.

Память, доступная EMS и XMS, может выделяться динамически из числа дополнительной. Ключ NOEMS в строке запуска EMM386 запрещает выделение памяти под использование по специфи кации EMS.

Теневая память – Shadow ROM и Shadow RAM В области верхней памяти UMA обычно располагаются устройства с медленной памятью:

системная BIOS (System ROM BIOS), расширения BIOS на графическом адаптере (Video ROM BIOS), на контроллерах дисков и интерфейсов (Adapter ROM), ПЗУ начальной загрузки на сете вой карте (Boot ROM), видеопамять (Video Memory Buffer). Они, как правило, реализованы на 8 или 16-битных микросхемах с довольно большим временем доступа. Обращение к полноразряд ному системному ОЗУ выполняется гораздо быстрее. Для ускорения обращений к памяти этих устройств применяется теневая память (Shadow Memory) – подмена ее системным ОЗУ. Теневая память появилась на развитых моделях АТ-286, где она была реализована аппаратно. Процессо ры класса 386+ позволяют ее реализовать программно, с помощью страничной переадресации.

Затенение ОЗУ и ПЗУ выполняется по-разному.

При инициализации теневого ПЗУ (Shadow ROM) содержимое затеняемой области копи руется в ОЗУ, и при дальнейшем чтении по этим адресам подставляется ОЗУ, а запись в эту об ласть блокируется.

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

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

Обычно теневая память включается через CMOS Setup отдельными областями размером по 16 Кбайт или более крупными, и для каждой области указывают режим затенения (Shadow ROM или Shadow RAM). Возможно ее включение и драйверами ОС (например, драйвером EMM386). На современных системных платах затенение области системной BIOS выполняется всегда, на старых платах затенением этой области можно было управлять. Затенение BIOS ви деоадаптера (Video BIOS Shadowing) для работы в среде Windows с «родными» драйверами гра фического адаптера может и не давать прирост производительности.

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

В зависимости от источника возникновения сигнала прерывания делятся на:

а) асинхронные или внешние (аппаратные) — события, которые исходят от внешних ис точников (например, периферийных устройств) и могут произойти в любой произвольный мо мент: сигнал от таймера, сетевой карты или дискового накопителя, нажатие клавиш клавиатуры, движение мыши. Факт возникновения в системе такого прерывания трактуется как запрос на прерывание (англ. Interrupt request, IRQ);

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

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

Термин «ловушка» (англ. trap) иногда используется как синоним термина «прерывание»

или «внутреннее прерывание». Как правило, словоупотребление устанавливается в документа ции производителя конкретной архитектуры процессора.

В зависимости от возможности запрета внешние прерывания делятся на:

а) маскируемые — прерывания, которые можно запрещать установкой соответствующих битов в регистре маскирования прерываний (в x86-процессорах — сбросом флага IF в регистре флагов);

б) немаскируемые (англ. Non maskable interrupt, NMI) — обрабатываются всегда, незави симо от запретов на другие прерывания. К примеру, такое прерывание может быть вызвано сбо ем в микросхеме памяти.

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

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

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

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

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

Программное прерывание — синхронное прерывание, которое может осуществить про грамма с помощью специальной инструкции.

В процессорах архитектуры x86 для явного вызова синхронного прерывания имеется ин струкция Int, аргументом которой является номер прерывания (от 0 до 255). В IBM PC совместимых компьютерах обработку некоторых прерываний осуществляют подпрограммы BIOS, хранящиеся в ПЗУ, и это служит интерфейсом для доступа к сервису, предоставляемому BIOS. Также, обслуживание прерываний могут взять на себя BIOS карт расширений (например, сетевых или видеокарт), операционная система и даже обычные (прикладные) программы, кото рые постоянно находятся в памяти во время работы других программ (т. н. резидентные про граммы). В отличие от реального режима, в защищённом режиме x86-процессоров обычные про граммы не могут обслуживать прерывания, эта функция доступна только системному коду (опе рационной системе).

MS-DOS использует для взаимодействия со своими модулями и прикладными програм мами прерывания с номерами от 20h до 3Fh (числа даны в шестнадцатеричной системе счисле ния, как это принято при программировании на языке ассемблера x86). Например, доступ к ос новному множеству функций MS-DOS осуществляется исполнением инструкции Int 21h (при этом номер функции и её аргументы передаются в регистрах). Это распределение номеров пре рываний не закреплено аппаратно и другие программы могут устанавливать свои обработчики прерываний вместо или поверх уже имеющихся обработчиков, установленных MS-DOS или дру гими программами, что, как правило, используется для изменения функциональности или рас ширения списка системных функций. Также, этой возможностью пользуются вирусы.

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

В многозадачной (многопроцессной) системе процесс может находиться в одном из трех основных состояний:

ВЫПОЛНЕНИЕ - активное состояние процесса, во время которого процесс обладает все ми необходимыми ресурсами и непосредственно выполняется процессором;

ОЖИДАНИЕ - пассивное состояние процесса, процесс заблокирован, он не может выпол няться по своим внутренним причинам, он ждет осуществления некоторого события, например, завершения операции ввода-вывода, получения сообщения от другого процесса, освобождения какого-либо необходимого ему ресурса;

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

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

Типичный граф состояний процесса показан на рисунке 2.1.

В состоянии ВЫПОЛНЕНИЕ в однопроцессорной системе может находиться только один процесс, а в каждом из состояний ОЖИДАНИЕ и ГОТОВНОСТЬ - несколько процессов, эти процессы образуют очереди соответственно ожидающих и готовых процессов. Жизненный цикл процесса начинается с состояния ГОТОВНОСТЬ, когда процесс готов к выполнению и ждет сво ей очереди. При активизации процесс переходит в состояние ВЫПОЛНЕНИЕ и находится в нем до тех пор, пока либо он сам освободит процессор, перейдя в состояние ОЖИДАНИЯ какого нибудь события, либо будет насильно "вытеснен" из процессора, например, вследствие исчерпа ния отведенного данному процессу кванта процессорного времени. В последнем случае процесс возвращается в состояние ГОТОВНОСТЬ. В это же состояние процесс переходит из состояния ОЖИДАНИЕ, после того, как ожидаемое событие произойдет.

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

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

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

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

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

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

включить дескриптор нового процесса в очередь готовых процессов;

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

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

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

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

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

Другая группа алгоритмов использует понятие "приоритет" процесса. Приоритет - это число, характеризующее степень привилегированности процесса при использовании ресурсов вычислительной машины, в частности, процессорного времени: чем выше приоритет, тем выше привилегии.

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

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



Pages:   || 2 | 3 | 4 |
 





 
© 2013 www.libed.ru - «Бесплатная библиотека научно-практических конференций»

Материалы этого сайта размещены для ознакомления, все права принадлежат их авторам.
Если Вы не согласны с тем, что Ваш материал размещён на этом сайте, пожалуйста, напишите нам, мы в течении 1-2 рабочих дней удалим его.