- •Системное программное обеспечение Учебное пособие
- •Введение
- •1.Основные понятия
- •1.1.Функции и ресурсы ос
- •1.2.Структура программного обеспечения
- •1.3.Режимы функционирования компьютера
- •1.4.Классификация ос
- •1.5.Состав ос
- •2.Управление памятью
- •2.1. Основная память
- •2.2.Регистровая память
- •2.3.Кэш память
- •2.4.Организация основной памяти
- •2.4.1.Режимы работы процессоров Intel
- •2.4.2.Преобразование логического адреса в физический в реальном режиме
- •2.4.3.Адресация памяти в защищенном режиме
- •2.5.Управление памятью
- •2.5.1.Модели памяти
- •2.5.2.Динамическое распределение памяти
- •2.5.3.Динамическое распределение памяти в windows nt
- •2.5.4.Функции ос по управлению основной памятью
- •2.6.Виртуальная память
- •2.6.1.Преобразование виртуального адреса в реальный
- •2.6.2.Страничная организация
- •2.6.3.Сегментная организация
- •2.6.4.Странично-сегментная организация
- •2.6.5.Сплошная модель памяти flat
- •2.6.6.Функции для доступа к виртуальной памяти
- •2.6.6.1Освобождение виртуальной памяти
- •2.6.6.2Фиксирование страниц основной памяти
- •2.6.7.Стратегии управления виртуальной памятью
- •2.6.7.1Определение оптимального размера страниц
- •2.6.7.2Поведение программ при подкачке страниц
- •3.Процессы и задачи. Мультипроцессорные системы
- •3.1.Управление процессами
- •3.1.1.Блок управления процессом (pcb)
- •3.1.2.Управление асинхронными параллельными процессами
- •3.2.Мультизадачность
- •3.2.1.Виды мультизадачности:
- •3.2.2.Процессы и задачи
- •3.2.3.Распределение времени между задачами
- •3.2.4.Процессовая мультизадачность
- •3.2.5.Потоковая мультизадачность
- •3.2.6. Синхронизация задач
- •3.2.6.1Ожидание завершения задачи или процесса
- •3.2.6.2Синхронизация с помощью событий
- •3.2.7.Взаимоисключение
- •3.2.7.1Критические секции в программном интерфейсе windows
- •3.2.7.2Блокирующие функции
- •3.2.8.Семафоры
- •3.3.Тупики
- •3.3.1.Условия возникновения тупика
- •3.3.2.Предотвращение тупиков
- •3.3.3. Обход тупиков
- •3.3.4.Обнаружение тупиков
- •3.3.5.Восстановление после тупика
- •3.4.Средства обеспечения мультизадачности в защищенном режиме работы процессора Intel
- •3.4.1.Переключение задач
- •3.5.Обработка прерываний
- •3.5.1.Обработка прерываний в защищенном режиме
- •3.5.2.Обработка аппаратных прерываний
- •3.6.Управление потоками заданий. Планирование заданий и загрузка процессоров
- •3.6.1.Цели планирования
- •3.6.2.Критерии планирования
- •3.6.3.Дисциплины планирования
- •3.6.4.Многоуровневые очереди с обратными связями
- •3.7.Мультипроцессорные архитектуры. Планирование загрузки ресурсов
- •3.7.1.Параллелизм
- •3.7.2.Цели мультипроцессорных систем
- •3.7.3.Автоматическое распараллеливание
- •3.7.3.1Расщепление цикла
- •3.7.3.2Редукция высоты дерева
- •3.7.4.Мультипроцессорные операционные системы
- •3.7.5.Организация мультипроцессорных операционных систем
- •3.7.6.Производительность мультипроцессорных систем
- •3.7.7.Экономическая эффективность мультипроцессорных систем
- •3.7.8.Восстановление после ошибок
- •3.7.9.Перспективы мультипроцессорных систем
- •4.Управление внешней памятью и файловые системы
- •4.1.Структура дискового тома. Таблица разделов
- •4.2.Управление данными
- •4.2.1.Организация данных
- •4.2.2.Методы доступа
- •4.3. Файловые системы
- •4.3.1.Файловая система fat
- •4.3.2.Файловая система fat32
- •4.3.3.Функции windows api для работы с директориями
- •4.3.4.Файловая система windows 95
- •4.3.5.Файловая система нpfs (os/2)
- •4.3.5.1 Структура тома
- •4.3.5.2Файлы и Fnodes
- •4.3.5.3Каталоги
- •4.3.5.4Расширенные атрибуты
- •4.3.5.5Инсталлируемые файловые системы
- •4.3.5.6Проблемы эффективности
- •4.3.5.7Отказоустойчивость
- •4.3.6.Файловая система ntfs (Windows nt)
- •4.3.6.1Главная файловая таблица
- •4.3.6.2Атрибуты файла ntfs
- •4.3.6.3Длинные и короткие имена файлов
- •4.3.6.4Потоки данных
- •4.3.6.5Согласованность с posix
- •4.4.Асинхронные операции с файлами
- •4.5.Файлы, отображаемые на память
- •4.5.1.Создание отображения файла
- •4.5.2.Выполнение отображения на память
- •5.Средства ввода информации
- •5.1.Аппаратные и программные средства ввода информации с клавиатуры
- •5.1.1.Анализ и преобразование скэн-кода
- •5.1.2.Буфер клавиатуры
- •5.1.3.Схема работы буфера
- •5.1.4.Ввод информации с клавиатуры в Windows
- •5.1.4.1Поддержка горячих клавиш (нot-key)
- •5.1.4.2Языки и локализация
- •5.2.Управление манипулятором "мышь"
- •5.2.1.Аппаратные средства манипулятора
- •5.2.2.Программная поддержка "мыши" (на примере ms dos)
- •5.2.3.Основные функции интерфейса программы с манипулятором "мышь" (int 33н)
- •5.2.4.Чтение позиции курсора и состояния кнопок "мыши"
- •5.2.5.Управление мышью в приложениях Windows
- •5.2.5.1Обработка двойного щелчка (Double-Click Messages)
- •5.2.5.2Сообщения неклиентской области
- •5.2.5.3Активизация окна
- •6.Сетевые операционные системы
- •Литература
- •Оглавление
- •Учебное издание
- •394026 Воронеж, Московский просп., 14
1.2.Структура программного обеспечения
Программное обеспечение (ПО) - это совокупность программ и правил со всей относящейся к ним документацией, позволяющая использовать вычислительную машину для решения различных задач (рис.1).
Рис. 1. Структура программного обеспечения компьютера
Прикладное ПО - совокупность программ, предназначенных для решения конкретных задач пользователя.
Кроссовое ПО - это ПО, предназначенное для работы с соответствующим компьютером и его программами, реализованное для вычислительных машин других классов при разработке новых компьютеров. Обычно реализуется в виде имитаторов или эмуляторов. Имитатор имитирует требуемую вычислительную среду при неизменном потоке команд, а эмулятор конвертирует поток команд, подстраивая его к имеющейся вычислительной среде.
Тестовое ПО - совокупность программ, предназначенных для проверки работоспособности устройств, входящих в состав компьютера на стадиях его изготовления и эксплуатации.
Системное ПО - совокупность программ и языковых средств, предназначенных для обеспечения функционирования компьютера и наибольшей эффективности его работы. ОС - комплекс программ и данных, которые обеспечивают управление аппаратурой компьютера, планирование эффективного использования ее ресурсов и решения задач по заданиям пользователей. Система программирования - совокупность программных средств, обеспечивающих автоматизацию разработки и отладки программ.
Сетевое ПО представляет собой комплекс программ, данных и протоколов, обеспечивающих передачу информации в среде удаленных компьютеров.
1.3.Режимы функционирования компьютера
1. Однопрограммный режим - все ресурсы предоставляются одной программе. На рис. 2 представлен пример последовательного решения двух задач (1 и 2) в системе, состоящей из микропроцессора (МП) и двух периферийных устройств (ПУ1 и ПУ2). Во время обращения к периферийным устройствам процессор простаивает.
Рис.2 Циклограмма функционирования компьютера в однопрограммном режиме
2. Мультипрограммный режим - несколько независимых программ выполняются одновременно. Отличие от однопрограммного режима состоит в том, что процессор используется другой задачей во время обращения первой к периферийным устройствам (рис. 3). Для создания очередности использования процессора применяются приоритеты.
Рис.3 Циклограмма функционирования компьютера в мультипрограммном режиме
3.Мультизадачный режим - служит для обеспечения функционирования связанных зависимых задач. ОС должна обеспечить механизм связи задач - передачу данных, ожидание, параллельное выполнение и т.п.
1.4.Классификация ос
Перечислим особенности различных видов операционных систем:
1. ОС пакетной обработки - взаимодействие между пользователем и заданием во время обработки невозможно или крайне ограничено.
2. ОС разделения времени - обеспечивает одновременное обслуживание многих пользователей в режиме диалога. Разделение времени процессора реализуется с помощью квантования времени ЦП (центрального процессора).
3. ОС реального времени - гарантия выполнения запроса в течение заданного интервала времени. Запросы могут поступать от пользователя или от внешних устройств. Скорость вычислительных процессов должна быть согласована со скоростью процессов вне компьютера.
4. Диалоговые ОС - используется в ПК. Обеспечивают удобную форму диалога. Возможность пакетной обработки.
Поколения ОС:
40-е годы - ОС не было. Работа в машинных кодах.
50-е годы - 1-ое поколение (IBM-701, фирма General Motors). Цель: сокращение времени запуска программ и их удаления. Это было начало систем пакетной обработки.
К концу 50-х годов фирмы-изготовители поставляли ОС со следующими характеристиками:
а) пакетная обработка одного потока задач - предусматривала минимальное взаимодействие программ и пользователей. В самом предельном случае такое взаимодействие должно быть невозможным, т.е. предполагается однопрограммный режим работы вычислительной системы.
б) наличие стандартных программ ввода-вывода;
в) возможность автоматического перехода от программы к программе;
г) средства восстановления после ошибок;
д) языки управления заданиями, предоставляющие пользователю возможность подробно описывать свои задания и ресурсы.
Уже в первых ОС появилась концепция имен системных файлов, как средства достижения определенной степени независимости программ от аппаратуры. Это дало пользователю возможность не задавать непосредственно в программе конкретные номера физических устройств ввода-вывода, а указывать стандартный системный файл ввода или вывода.
Начало 60-х гг. - 2 поколение ОС. Они создавались как системы коллективного пользования с мультипрограммным режимом работы и как первые системы мультипроцессорного типа. Основное внимание в системах такого типа уделяется повышенной производительности и сокращению простоев ЦП. Были разработаны системы с разделением времени, в которых пользователи работают в диалоговом или интерактивном режиме, например SABRE - система бронирования и продажи авиационных билетов в США. Основная характеристика системы разделения времени - время ответа (от запроса до ответа). Появились первые системы реального времени для управления технологическими процессами, подвижным составом, военной техникой и т.п. Важнейшее свойство системы реального времени состоит в том, что она должна согласовывать время обработки информации с реальными событиями, происходящими в управляемом процессе. Она должна обеспечить гарантированную реакцию на предусмотренные события. Система реального времени обычно работает с недогрузкой. Всегда должен быть запас вычислительной мощности, чтобы произвести необходимые вычисления.
Середина 60-х - середина 70-х - 3 поколение появилось с представлением фирмой IBM в 1964 году семейства компьютеров System/360. ОС была многорежимной системой: пакетной, с разделением времени, мультипроцессорной. ОС стали прослойкой между пользователем и аппаратурой. Недостатки: высокая цена как следствие многофункциональности, сложность описания ресурсов.
Основные варианты ОС:
DOS/360 - дисковая ОС с однопрограммным режимом;
OS/MFT - мультипрограммная ОС с фиксированным числом разделов (оперативная память разбивается на строго определенное число разделов, каждому разделу приписываются определенные потоки задач);
OS/MVT - мультипрограммная система с переменным числом разделов. Память непрерывна, построение очереди по приоритетам;
CP-67/CMS - диалоговая мониторная система с виртуальной памятью и разделением времени.
В 1969 г. фирма Bell Lab анонсировала новую информационную среду для мини ЭВМ - Unix - система с разделением времени, встроенными средствами защиты ресурсов и возможностью работы с виртуальными ресурсами, предназначенную для исследования процессов разработки программного обеспечения, Первоначально была написана на Ассемблере для компьютера PDP-7 фирмой DEC. В последствии переписана была на СИ, что позволило обеспечить высокую переносимость системы. Распространение системы в текстах обеспечило широкий успех, поскольку система могла быть адаптирована к условиям конкретной вычислительной среды.
Другим примером для миниЭВМ служит ОС VAX/VMS (компьютеры разработаны фирмой DEC). Особенностями данной системы являются оснащение мощными средствами защиты приложений (4 уровня), мультизадачность и применение концепции виртуальной памяти.
4 поколение: современные ОС.
Основными чертами ОС можно считать:
- обеспечение доступа к территориально распределенным компьютерам - вычислительные сети;
- обеспечение работы ПК в режиме разделения времени в качестве терминала мощной вычислительной системы;
- шифрование данных для разграничения доступа (линейное и программное);
- улучшение интерфейса пользователя (меню вместо языка управления заданиями);
- распространение концепции виртуальных машин;
- разработка и поддержание баз данных;
- распределенная обработка данных.