Добавил:
Developer Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ОС Нижний.pdf
Скачиваний:
13
Добавлен:
25.03.2023
Размер:
2.75 Mб
Скачать

Нижегородский государственный университет им. Н.И. Лобачевского Факультет вычислительной математики и кибернетики

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

компьютерных систем (Информационные технологии)»

Линев А.В., Свистунов А.Н.

Лабораторный практикум по курсу "Операционные системы"

Нижний Новгород

2004

Лабораторный практикум по курсу "Операционные системы"

Оглавление

 

Введение ...........................................................................................................................

6

Требования к содержанию лекций...............................................................................................

6

Организация лабораторного практикума ....................................................................................

7

Программа лабораторного практикума .......................................................................................

7

Литература......................................................................................................................................

8

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

Основные понятия и определения..............................................................................................

10

Распределение ресурса «центральный процессор» ..................................................................

11

Управление памятью...................................................................................................................

40

Взаимодействие потоков – передача данных и синхронизация..............................................

62

Архитектура файловой системы.................................................................................................

86

Лабораторная работа 1. Краткосрочное планирование задач ..............................

95

Симулятор многозадачной системы...........................................................................................

95

Архитектура планировщика в Linux (Ядро 2.4.18).................................................................

102

Компиляция и установка ядра Linux........................................................................................

108

Литература по лабораторной работе 1.....................................................................................

109

Лабораторная работа 2. Замещение областей памяти .........................................

110

Симулятор многозадачной системы.........................................................................................

110

Управление памятью в Linux (ядро 2.4.18) .............................................................................

111

Литература по лабораторной работе 2.....................................................................................

131

Лабораторные работы 3-4. Синхронизация процессов/потоков. Передача

данных между процессами/потоками ......................................................................

132

Механизмы межпроцессного взаимодействия ОС UNIX ......................................................

133

Механизмы межпроцессного взаимодействия ОС Windows.................................................

138

Литература по лабораторным работам 3-4..............................................................................

144

Лабораторная работа 5. Файловые системы .........................................................

145

Предлагаемые к реализации файловые системы....................................................................

145

Симулятор работы с файловой системой................................................................................

149

Обзор архитектуры модуля поддержки файловой системы в Linux.....................................

152

Литература по лабораторной работе 5.....................................................................................

158

Литература....................................................................................................................

159

Дополнительная литература .....................................................................................................

159

2 Учебно-исследовательская лаборатория «Информационные технологии»

Лабораторный практикум по курсу "Операционные системы"

Содержание

 

Введение ...........................................................................................................................

6

Требования к содержанию лекций...............................................................................................

6

Организация лабораторного практикума ....................................................................................

7

Программа лабораторного практикума .......................................................................................

7

Лабораторная работа 1. Краткосрочное планирование задач................................................

7

Лабораторная работа 2. Замещение областей памяти............................................................

8

Лабораторная работа 3. Синхронизация процессов/потоков ................................................

8

Лабораторная работа 4. Передача данных между процессами/потоками............................

8

Лабораторная работа 5. Файловые системы............................................................................

8

Литература......................................................................................................................................

8

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

Основные понятия и определения..............................................................................................

10

Распределение ресурса «центральный процессор» ..................................................................

11

Процесс и поток – типы ресурсов операционной системы..................................................

11

Классификация ОС по признаку поддержки процессов и потоков....................................

12

Состояния потока.....................................................................................................................

15

Дескрипторы процессов и потоков........................................................................................

17

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

19

Операции над потоками ..........................................................................................................

22

Планирование...........................................................................................................................

23

Критерии оценки алгоритмов планирования........................................................................

26

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

27

Алгоритмы планирования в интерактивных системах ........................................................

29

Заключение...............................................................................................................................

39

Управление памятью...................................................................................................................

40

Архитектура оперативной памяти..........................................................................................

40

Алгоритм формирования физического адреса и логическая структура адресного

пространства.............................................................................................................................

44

Способ описания физической памяти....................................................................................

47

Виртуальное адресное пространство прикладной программы (ВАП) и способ его

отображения на физическую память......................................................................................

47

Алгоритм связывания адресов программных модулей с адресами ВАП...........................

52

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

52

Заключение...............................................................................................................................

61

Учебно-исследовательская лаборатория «Информационные технологии» 3

Лабораторный практикум по курсу "Операционные системы"

Взаимодействие потоков – передача данных и синхронизация..............................................

62

Взаимодействие потоков.........................................................................................................

62

Критическая секция.................................................................................................................

64

Задача взаимного исключения................................................................................................

64

Семафоры..................................................................................................................................

67

Тупики.......................................................................................................................................

70

Синхронизирующие объекты ОС...........................................................................................

73

Сигналы.....................................................................................................................................

75

Обмен сообщениями (message passing) (Хоар, 1978 год).....................................................

76

Реализация взаимоисключений..............................................................................................

76

Аппаратная поддержка взаимоисключений..........................................................................

78

Классические задачи взаимодействия потоков.....................................................................

79

Передача данных между взаимодействующими потоками.................................................

84

Архитектура файловой системы.................................................................................................

86

Файлы с точки зрения пользователя......................................................................................

86

Виртуальная Файловая Система.............................................................................................

91

Лабораторная работа 1. Краткосрочное планирование задач ..............................

95

Симулятор многозадачной системы...........................................................................................

95

Модель эксперимента..............................................................................................................

95

Архитектура программной лаборатории...............................................................................

99

Проведение эксперимента.....................................................................................................

101

Выполнение лабораторной работы......................................................................................

101

Архитектура планировщика в Linux (Ядро 2.4.18).................................................................

102

Очередь процессов.................................................................................................................

103

Кванты времени центрального процессора.........................................................................

104

Выбор процесса на исполнение............................................................................................

105

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

106

Вытеснение процесса.............................................................................................................

107

Изменение алгоритма планирования...................................................................................

107

Компиляция и установка ядра Linux........................................................................................

108

Литература по лабораторной работе 1.....................................................................................

109

Лабораторная работа 2. Замещение областей памяти .........................................

110

Симулятор многозадачной системы.........................................................................................

110

Управление памятью в Linux (ядро 2.4.18) .............................................................................

111

Описание физической памяти в Linux .................................................................................

111

Адресное пространство процесса.........................................................................................

117

Страничные сбои....................................................................................................................

123

4 Учебно-исследовательская лаборатория «Информационные технологии»

Лабораторный практикум по курсу "Операционные системы"

Кэш страниц ...........................................................................................................................

126

Изменение стратегии замещения .........................................................................................

130

Литература по лабораторной работе 2.....................................................................................

131

Лабораторные работы 3-4. Синхронизация процессов/потоков. Передача

данных между процессами/потоками ......................................................................

132

Механизмы межпроцессного взаимодействия ОС UNIX ......................................................

133

Семафоры................................................................................................................................

134

Очереди сообщений...............................................................................................................

136

Работа с разделяемой памятью.............................................................................................

137

Механизмы межпроцессного взаимодействия ОС Windows.................................................

138

Wait-функции .........................................................................................................................

138

События ..................................................................................................................................

140

Ожидаемые таймеры..............................................................................................................

141

Семафоры................................................................................................................................

141

Мьютексы...............................................................................................................................

142

Литература по лабораторным работам 3-4..............................................................................

144

Лабораторная работа 5. Файловые системы .........................................................

145

Предлагаемые к реализации файловые системы....................................................................

145

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

145

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

147

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

147

Симулятор работы с файловой системой................................................................................

149

Постановка задачи.................................................................................................................

149

Требования к лабораторной работе......................................................................................

150

Архитектура программной лаборатории.............................................................................

151

Обзор архитектуры модуля поддержки файловой системы в Linux.....................................

152

Модули драйвера файловой системы Minix........................................................................

153

Реализация драйвера файловой системы.............................................................................

157

Литература по лабораторной работе 5.....................................................................................

158

Литература....................................................................................................................

159

Дополнительная литература .....................................................................................................

159

Учебно-исследовательская лаборатория «Информационные технологии» 5

Лабораторный практикум по курсу "Операционные системы"

Введение

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

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

Данная работа описывает лабораторный практикума для курса "Принципы построения современных ОС", основное предназначение практикума - получение слушателями практических навыков реализации некоторых моделей и алгоритмов, рассматриваемых в курсе лекций, и осуществление ими оценки собственных разработок с учетом положений, изучаемых в теоретической части курса.

Требования к содержанию лекций

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

Мы будем считать, что курс лекций содержит, по крайней мере, следующие разделы.

1.Недетализованные модели объектов аппаратного уровня.

2.Управление ресурсом "память".

3.Управление ресурсом "центральный процессор".

4.Процессы и потоки, операционная среда.

5.Синхронизация выполнения процессов/потоков.

6.Обмен данными между процессами/потоками.

7.Архитектура ввода/вывода.

8.Долгосрочное хранение данных.

6 Учебно-исследовательская лаборатория «Информационные технологии»

Соседние файлы в предмете Современные операционные системы