Проектирование операционных систем - Учебное пособие

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


Аннотация к работе
Перед включением прерываний необходимо настроить таблицу векторов прерываний. Для них устанавливается уровень привилегии ядра, чтобы пользовательский процесс не мог самостоятельно инициировать эти прерывания. Вектор с номером 6 - это программное прерывание (системный вызов), который должен быть доступен всем процессам, для чего устанавливается соответствующий уровень привилегий в таблицу векторов прерывания. Таблица векторов имеет вид: inter_descr_table ; таблица векторов прерывания db 0 ; Установка уровня привелегии, 0-аппаратное(внешнее) прерывание dw timer ; 0-Подпрограмма 0, выдающая сообщение о том, что сработало прерывание по таймеру db 0 ; Установка уровня привелегии, 0-аппаратное прерывание dw div_by_zero ; 1-подпрограмма 1, выдающая сообщение о том, что сработало прерывание при делении на ноль db 0 ; Установка уровня привелегии, 0-аппаратное аппаратное dw uncor_instr ; 2-подпрограмма 2, выдающая сообщение о том, что сработало прерывание при неверной инструкции db 0 ; Установка уровня привелегии, 0-аппаратное прерывание dw break_point ; 3-подпрограмма 3, выдающая сообщение о том, что сработало прерывание при отладке db 0 ; Установка уровня привелегии, 0-аппаратное прерывание dw page_fault ; 4-подпрограмма 4, выдающая сообщение о том, что сработало прерывание при сбое страницы db 0 ; Установка уровня привелегии, 0-аппаратное прерывание dw protection ; 5-подпрограмма 5, выдающая сообщение о том, что сработало прерывание при ошибке доступа db 1 ; Установка уровня привелегии, 1-пользовательское прерывание dw sys_call ; 6 - системный вызов 196 movw inter_descr_table, r1; в r1 - адрес таблицы прерываний lidt r1 ; загружаем адрес в процессор sti ; включаем прерывания retОперационные системы прошли большой путь развития. Но уже тогда операционные системы способствовали организации и структурированию данных на внешних носителях.

План
СОДЕРЖАНИЕ

ПРЕДИСЛОВИЕ ...........................................................................................................................8 Введение.........................................................................................................................................9 1. Основные понятия операционных систем.......................................................................10 1.1. Многопользовательские системы................................................................................11 1.2. Пользователи и группы ................................................................................................12 1.3. Процессы........................................................................................................................13 1.4. Архитектура ядра..........................................................................................................14 1.5. Модель процесс/ядро....................................................................................................16 1.6. Реализация процесса.....................................................................................................18 1.7. Реентерабельные ядра...................................................................................................19 1.8. Адресное пространство процесса................................................................................22 1.9. Синхронизация и критические области......................................................................23

1.9.1. Отключение вытеснения в ядре ..............................................................................23 1.9.2. Отключение прерываний.........................................................................................24 1.9.3. Семафоры..................................................................................................................24 1.9.4. Спин-блокировки......................................................................................................25 1.9.5. Предотвращение взаимных блокировок.................................................................25

1.10. Сигналы и взаимодействие между процессами ....................................................26 1.11. Управление процессами ..........................................................................................27

1.11.1. Процессы-зомби...................................................................................................28 1.11.2. Группы процессов и сеансы................................................................................29

1.12. Управление памятью................................................................................................30 1.12.1. Виртуальная память.............................................................................................30 1.12.2. Использование оперативной памяти..................................................................31 1.12.3. Аллокатор памяти ядра .......................................................................................32 1.12.4. Кэширование........................................................................................................34

1.13. Драйверы устройств.................................................................................................35 1.14. Особенности современных операционных систем...............................................37

1.14.1. Монолитное ядро.................................................................................................37 1.14.2. Потоки ядра..........................................................................................................37 1.14.3. Поддержка многопоточных приложений..........................................................37 1.14.4. Вытеснение в ядре ...............................................................................................38 1.14.5. Поддержка многопроцессорной обработки ......................................................38 1.14.6. Файловая система ................................................................................................38 1.14.7. Сетевые технологии.............................................................................................38 1.14.8. Зависимость от оборудования ............................................................................38

1.15. Контрольные вопросы..............................................................................................40 2. Центральный процессор....................................................................................................42

2.1. Регистры общего назначения.......................................................................................42 2.1.1. Регистры данных.......................................................................................................42 2.1.2. Регистры-указатели..................................................................................................42

2.2. Сегментные регистры...................................................................................................43 2.3. Регистр флагов...............................................................................................................43 2.4. Регистры управления памятью....................................................................................44 2.5. Управляющие регистры ...............................................................................................45

2.5.1. Регистр CR0...............................................................................................................45 2.5.2. Регистр CR3...............................................................................................................46 2.5.3. Регистр CR4...............................................................................................................46

2.6. Отладочные регистры...................................................................................................48 2.6.1. Назначение отладочных регистров.........................................................................48

4

5

2.6.2. Регистр DR6 ..............................................................................................................49 2.6.3. Регистр DR7 ..............................................................................................................50

3. Подсистема управления памятью ....................................................................................52 3.1. Адреса памяти ...............................................................................................................52 3.2. Сегментация в аппаратной части.................................................................................53

3.2.1. Селектор сегментов и сегментные регистры.........................................................53 3.2.2. Дескрипторы сегментов...........................................................................................54 3.2.3. Быстрый доступ к дескрипторам сегментов..........................................................56 3.2.4. Блок сегментации .....................................................................................................58

3.3. Сегментация в современных ОС .................................................................................60 3.4. Управление страницами на аппаратном уровне ........................................................61

3.4.1. Обычное управление страницами...........................................................................62 3.4.2. Расширенное управление страницами....................................................................65 3.4.3. Аппаратная схема защиты.......................................................................................66 3.4.4. Пример обычного управления страницами............................................................67 3.4.5. Механизм расширения физических адресов (РАЕ)...............................................68 3.4.6. Управление страницами в 64-разрядных архитектурах .......................................70 3.4.7. Аппаратный кэш.......................................................................................................71 1.1.1. Буферы быстрого преобразования адреса (TLB)...................................................74

???? Схема разбивки физической памяти...........................................................................74 ???? Таблицы страниц процесса ..........................................................................................76 ???? Таблицы страниц ядра..................................................................................................76 ???? Контрольные вопросы..................................................................................................77

4. Управление процессами....................................................................................................78 4.1. Процессы, облегченные процессы и потоки..............................................................78 4.2. Переключение процессов.............................................................................................80

4.2.1. Аппаратный контекст...............................................................................................80 4.2.2. Сегмент состояния задачи .......................................................................................81 4.2.3. Сохранение и загрузка регистров FPU, ММХ и ХММ.........................................82

4.3. Контрольные вопросы..................................................................................................84 5. Обработка прерываний и исключений ............................................................................85

5.1. Роль сигналов прерываний...........................................................................................85 5.2. Прерывания и исключения...........................................................................................87

5.2.1. Прерывания...............................................................................................................87 5.2.2. Исключения...............................................................................................................87

5.3. IRQ и прерывания .........................................................................................................88 5.4. Исключения...................................................................................................................90 5.5. Таблица дескрипторов прерываний............................................................................92 5.6. Аппаратная обработка прерываний и исключений...................................................93 5.7. Вложенное выполнение обработчиков исключений и прерываний ........................96 5.8. Обработка прерываний ввода/вывода.........................................................................98 5.9. Программирование контроллера прерываний 8259 ................................................100

5.9.1. Общая схема обработки прерывания....................................................................100 5.9.2. Обработка прерываний при каскадном соединении контроллеров...................101 5.9.3. Потеря прерываний ................................................................................................102 5.9.4. Приоритеты прерываний .......................................................................................103

5.9.5. Обычный и специальный режимы полной вложенности прерываний .....104 5.9.6. Режим программного опроса.................................................................................105 5.9.7. Окончание обработки прерывания .......................................................................106 5.9.8. Маскирование прерываний....................................................................................107 5.9.9. Фиксация запросов прерываний и разделение линий IRQ.................................108

5

6

5.9.10. Программирование контроллера прерываний ................................................109 5.9.11. Инициализация контроллера прерываний.......................................................110 5.9.12. Управляющее слово операций 1 (OCW1)........................................................112 5.9.13. Управляющее слово операций 2 (OCW2)........................................................112 5.9.14. Управляющее слово операций 3 (OCW3)........................................................113

5.10. Пример программирования контроллера прерываний.......................................114 5.11. Контрольные вопросы............................................................................................115

6. Подсистема времени........................................................................................................116 6.1. Микросхемы часов и таймеров..................................................................................116

6.1.1. Часы реального времени........................................................................................117 6.1.2. Счетчик отметок времени......................................................................................117 6.1.3. Программируемый таймер интервалов ................................................................118

6.2. Высокоточный таймер событий ....................................................trial.......................118 6.3. Программиtrialй интервальный таймер 8254.....................................trial.............119

6.3.1. Принципы работы...................................................................................................119 6.3.2. Программирование.................................................................................................122 6.3.3. Пример программирования таймера.....................................................................126

6.4. Контрольные вопросы................................................................................................126 7. Управление клавиатурой и мышью ...............................................................................128

7.1. Программное взаимодействие с контроллером .......................................................128 7.1.1. Регистры контроллера............................................................................................129 7.1.2. Команды контроллера............................................................................................130 7.1.3. Управляющий байт контроллера ..........................................................................133 7.1.4. Входной порт ..........................................................................................................134 7.1.5. Выходной порт........................................................................................................135

7.2. Команды управления мышью....................................................................................135 7.3. Пример программирования мыши PS/2....................................................................139

8. Пример проектирования операционной системы.........................................................154 8.1. Микроконтроллер VM8182........................................................................................154 8.2. Проектирование виртуальной машины VM8182.....................................................158

8.2.1. Модуль управления процессором.........................................................................159 8.2.2. Модуль управления памятью ................................................................................162 8.2.3. Модуль управления прерываниями......................................................................164 8.2.4. Главная программа.................................................................................................165

8.3. Проектирование ассемблера VM8182.......................................................................167 8.4. Стандартная библиотека функций для ядра операционной системы....................175 8.5. Подсистема управления памятью..............................................................................178

8.5.1. Структуры данных подсистемы памяти...............................................................178 8.5.2. Процедура инициализации памяти.......................................................................179 8.5.3. Заполнение глобальной таблицы страниц ядра...................................................181 8.5.4. Создание нового региона.......................................................................................182 8.5.5. Удаление региона ...................................................................................................183 8.5.6. Изменение размера региона...................................................................................184 8.5.7. Дублирование региона...........................................................................................187 8.5.8. Копирование памяти ..............................................................................................189

8.6. Подсистема управления процессами.........................................................................189 8.6.1. Инициализация подсистемы процессов ...............................................................190 8.6.2. Создание дочернего процесса ...............................................................................192 8.6.3. Создание нового региона для процесса................................................................193 8.6.4. Присоединение существующего региона к процессу.........................................194 8.6.5. Переключение между процессами........................................................................194

8.7. Подсистема управления прерываниями ...................................................................195

6

7

8.7.1. Процедура инициализации прерываний...............................................................196 8.7.2. Обработчик прерывания от таймера.....................................................................197

8.8. Системные вызовы ядра.............................................................................................197 8.8.1. Обработка системного вызова...............................................................................197

8.9. Главная программа ядра.............................................................................................198 Заключение................................................................................................................................200 Библиографический список......................................................................................................201

7

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

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

200

Список литературы
1. Бовет Д., Чезати М. Ядро Линукс. BHV - СПБ, 2007.

2. М.Дж. Бах. Архитектура опреационной системы UNIX.

3. Mauro, J. and R. MCDOUGALL. Solaris Internals: Core Kernel

Architecture. Prentice Hall, 2000

4. MCKUSICK, M. K., M. J. Karels, and K. Bostic. The Design and Implementation of the 4.4 BSD Operating System. Addison

Wesley, 1986.

5. Юров В.И. Assembler: 2-е изд. - СПБ.: Питер, 2010. - 637 с.

6. Древс Ю.Г. Организация ЭВМ и вычислительных систем -

М.: Высшая школа, 2006 - 501 с.

7. Закер К. Компьютерные сети : Модернизация и поиск неисправностей / К. Закер. - СПБ. : БХВ-Петербург, 2002. -

1008 с. : ил

8. Гук М. Аппаратные средства IBM PC. Энциклопедия. -СПБ. Питер 2001.

9. Танненбаум Э. Архитектура компьютера - СПБ. Питер 2002.

201
Заказать написание новой работы



Дисциплины научных работ



Хотите, перезвоним вам?