- •Системное программное обеспечение Учебное пособие
- •Введение
- •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
Литература
Основная
Ахо А., Ульман Дж. Теория синтаксического анализа, перевода и компиляции: Пер. с англ. / В 2 томах. - М.: Мир, 1978.
Гордеев А., Молчанов А.Ю. Системное программное обеспечение. – СПб.: Питер, 2001.- 736 с.
Дейтел Г. Введение в операционные системы: в 2-х т. - М.: Мир, 1987. - 359 с.
Касаткин А.И. Профессиональное программирование на языке Си. Системное программирование: Справочное пособие. - Минск: Высш. школа, 1992. - 299 с.
Касаткин А.И. Профессиональное программирование на языке Си. Управление ресурсами: Справочное пособие. - Минск: Высш. школа, 1992. - 432 с.
Фролов А.В., Фролов Г.В. Библиотека системного программиста. Т. 26 - 27. Программирование для Windows NT.- М.: Диалог МИФИ, 1996.
Дополнительная
Абель П. Язык Ассемблера для IBM PC и программирования / Пер. с англ. - М.:Высш. шк., 1992. - 447 с.
Брябрин В.М. Программное обеспечение персональных ЭВМ. - М.: Наука,1988. - 272 с.
Грибанов В.П. Операционные системы. - М.: Фин. и стат., 1990. - 1990. - 239 с.
Джордейн Р. Справочник программиста персональных компьютеров типа IBM PC, XT и AT Пер с англ. - М.: Финансы и статистика, 1992. - 544 с.
Илюшечкин В.М., Костин А.Е. Системное программное обеспечение. - М.: Высш. школа, 1991. - 128 с.
Касаткин А.И., Вальвачев А.Н. Профессиональное программирование на языке Си. От Turbo C к Borland C++: Справочное пособие. - Минск: Высш. школа, 1992. - 323 с.
Касьянов В.Н., Поттосин И.В. Методы трансляции. - Новосибирск: НГУ, 1978. - 111 с.
Касьянов В.Н., Поттосин И.В. Технология трансляции. - Новосибирск: НГУ, 1979. - 92 с.
Крейслер С. Проектирование операционных систем для малых ЭВМ. - М.: Мир, 1986. - 281 с.
Марков А.С., Милов М.П., Пеледов Г.В. Программное обеспечение ЭВМ. - М.:Высш.школа,1990. - 127 с.
Фролов А.В., Фролов Г.В. Библиотека системного программиста. Защищенный режим процессоров Intel 80286/80386/80486.- М.: Диалог МИФИ, 1991. - 358 с.
Хендрикс Д. Компилятор языка Си для микроЭВМ: Пер. с англ. - М.: Радио и связь, 1989. - 240 с.
Оглавление
ВВЕДЕНИЕ 3
1. ОСНОВНЫЕ ПОНЯТИЯ 4
1.1. Функции и ресурсы ОС 4
1.2. Структура программного обеспечения 6
1.3. Режимы функционирования компьютера 7
1.4. Классификация ОС 8
1.5. Состав ОС 11
2. УПРАВЛЕНИЕ ПАМЯТЬЮ 14
2.1. Основная память 14
2.2. Регистровая память 14
2.3. Кэш память 17
2.4. Организация основной памяти 17
2.4.1. Режимы работы процессоров Intel 18
2.4.2. Преобразование логического адреса в физический в реальном режиме 19
2.4.3. Адресация памяти в защищенном режиме 20
2.5. Управление памятью 23
2.5.1. Модели памяти 23
2.5.2. Динамическое распределение памяти 25
2.5.3. Динамическое распределение памяти в WINDOWS NT 26
2.5.4. Функции ОС по управлению основной памятью 28
2.6. Виртуальная память 29
2.6.1. Преобразование виртуального адреса в реальный 30
2.6.2. Страничная организация 31
2.6.3. Сегментная организация 32
2.6.4. Странично-сегментная организация 32
2.6.5. Сплошная модель памяти FLAT 35
2.6.6. Функции для доступа к виртуальной памяти 36
2.6.6.1 Освобождение виртуальной памяти 37
2.6.6.2 Фиксирование страниц основной памяти 38
2.6.7. Стратегии управления виртуальной памятью 38
2.6.7.1 Определение оптимального размера страниц 43
2.6.7.2 Поведение программ при подкачке страниц 43
3. ПРОЦЕССЫ И ЗАДАЧИ. МУЛЬТИПРОЦЕССОРНЫЕ СИСТЕМЫ 44
3.1. Управление процессами 44
3.1.1. Блок управления процессом (PCB) 46
3.1.2. Управление асинхронными параллельными процессами 47
3.2. Мультизадачность 48
3.2.1. Виды мультизадачности: 48
3.2.2. Процессы и задачи 49
3.2.3. Распределение времени между задачами 49
3.2.4. Процессовая мультизадачность 50
3.2.5. Потоковая мультизадачность 52
3.2.6. Синхронизация задач 54
3.2.6.1 Ожидание завершения задачи или процесса 54
3.2.6.2 Синхронизация с помощью событий 55
3.2.7. Взаимоисключение 57
3.2.7.1 Критические секции в программном интерфейсе WINDOWS 59
3.2.7.2 Блокирующие функции 61
3.2.8. Семафоры 61
3.3. Тупики 66
3.3.1. Условия возникновения тупика 67
3.3.2. Предотвращение тупиков 68
3.3.3. Обход тупиков 68
3.3.4. Обнаружение тупиков 68
3.3.5. Восстановление после тупика 69
3.4. Средства обеспечения мультизадачности в защищенном режиме работы процессора Intel 71
3.4.1. Переключение задач 73
3.5. Обработка прерываний 74
3.5.1. Обработка прерываний в защищенном режиме 75
3.5.2. Обработка аппаратных прерываний 77
3.6. Управление потоками заданий. Планирование заданий и загрузка процессоров 77
3.6.1. Цели планирования 78
3.6.2. Критерии планирования 79
3.6.3. Дисциплины планирования 80
3.6.4. Многоуровневые очереди с обратными связями 81
3.7. Мультипроцессорные архитектуры. Планирование загрузки ресурсов 83
3.7.1. Параллелизм 84
3.7.2. Цели мультипроцессорных систем 85
3.7.3. Автоматическое распараллеливание 86
3.7.3.1 Расщепление цикла 87
3.7.3.2 Редукция высоты дерева 88
3.7.4. Мультипроцессорные операционные системы 90
3.7.5. Организация мультипроцессорных операционных систем 91
3.7.6. Производительность мультипроцессорных систем 95
3.7.7. Экономическая эффективность мультипроцессорных систем 95
3.7.8. Восстановление после ошибок 96
3.7.9. Перспективы мультипроцессорных систем 97
4. УПРАВЛЕНИЕ ВНЕШНЕЙ ПАМЯТЬЮ И ФАЙЛОВЫЕ СИСТЕМЫ 99
4.1. Структура дискового тома. Таблица разделов 100
4.2. Управление данными 103
4.2.1. Организация данных 104
4.2.2. Методы доступа 106
4.3. Файловые системы 107
4.3.1. Файловая система FAT 109
4.3.2. Файловая система FAT32 114
4.3.3. Функции WINDOWS API для работы с директориями 115
4.3.4. Файловая система WINDOWS 95 117
4.3.5. Файловая система НPFS (OS/2) 123
4.3.5.1 Структура тома 124
4.3.5.2 Файлы и Fnodes 125
4.3.5.3 Каталоги 127
4.3.5.4 Расширенные атрибуты 128
4.3.5.5 Инсталлируемые файловые системы 129
4.3.5.6 Проблемы эффективности 130
4.3.5.7 Отказоустойчивость 131
4.3.6. Файловая система NTFS (Windows NT) 133
4.3.6.1 Главная файловая таблица 134
4.3.6.2 Атрибуты файла NTFS 135
4.3.6.3 Длинные и короткие имена файлов 137
4.3.6.4 Потоки данных 139
4.3.6.5 Согласованность с POSIX 139
4.4. Асинхронные операции с файлами 140
4.5. Файлы, отображаемые на память 142
4.5.1. Создание отображения файла 142
4.5.2. Выполнение отображения на память 143
5. СРЕДСТВА ВВОДА ИНФОРМАЦИИ 146
5.1. Аппаратные и программные средства ввода информации с клавиатуры 146
5.1.1. Анализ и преобразование скэн-кода 149
5.1.2. Буфер клавиатуры 150
5.1.3. Схема работы буфера 151
5.1.4. Ввод информации с клавиатуры в Windows 151
5.1.4.1 Поддержка горячих клавиш (нot-key) 153
5.1.4.2 Языки и локализация 153
5.2. Управление манипулятором "мышь" 154
5.2.1. Аппаратные средства манипулятора 154
5.2.2. Программная поддержка "мыши" (на примере MS DOS) 154
5.2.3. Основные функции интерфейса программы с манипулятором "мышь" (int 33Н) 155
5.2.4. Чтение позиции курсора и состояния кнопок "мыши" 158
5.2.5. Управление мышью в приложениях Windows 158
5.2.5.1 Обработка двойного щелчка (Double-Click Messages) 160
5.2.5.2 Сообщения неклиентской области 161
5.2.5.3 Активизация окна 161
6. СЕТЕВЫЕ ОПЕРАЦИОННЫЕ СИСТЕМЫ 162
ЛИТЕРАТУРА 165
ОГЛАВЛЕНИЕ 167