Операционные системы. Ч
.2.pdfТомский межвузовский центр дистанционного образования
Ю.Б. Гриценко
ОПЕРАЦИОННЫЕ СИСТЕМЫ
Часть 2
Учебное пособие
ТОМСК — 2009
Федеральное агентство по образованию
ТОМСКИЙ ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ СИСТЕМ УПРАВЛЕНИЯ И РАДИОЭЛЕКТРОНИКИ (ТУСУР)
Кафедра автоматизации обработки информации (АОИ)
Ю.Б. Гриценко
ОПЕРАЦИОННЫЕ СИСТЕМЫ
Часть 2
Учебное пособие
2009
Рецензенты: канд. техн. наук, доцент кафедры теоретических основ информатики Томского государственного университета Гусев И.С.; д-р техн. наук, профессор, заведующий кафедрой
теоретических основ информатики Томского государственного университета Костюк Ю.Л.
Корректор: Осипова Е.А.
Гриценко Ю.Б.
Операционные системы: Учебное пособие. В 2-х частях. — Томск: Томский межвузовский центр дистанционного образования, 2009. — Ч.2. — 230 с.
Данное учебное пособие содержит вторую часть курса «Операционные системы», изучаемого студентами специальности 230102 «Автоматизированные системы обработки информации и управления», обучающимися по дистанционной форме. Рассмотрены вопросы организации вычислительных задач, управления памятью и устройствами ввода-вывода. Основное внимание уделено механизмам планирования процессов, диспетчеризации задач и программной модели микропроцессора Intel P6.
©Гриценко Ю.Б., 2009
©Томский межвузовский центр дистанционного образования, 2009
|
3 |
|
|
ОГЛАВЛЕНИЕ |
|
Введение ........................................................................................ |
6 |
|
Введение ........................................................................................ |
6 |
|
1 Организация вычислительных задач.................................... |
9 |
|
1 Организация вычислительных задач.................................... |
9 |
|
1.1 |
Процессы. Ресурсы. Режим мультипрограммирования ...... |
9 |
1.2 |
Потоки. Волокна.................................................................... |
21 |
1.3 |
Планирование процессов и диспетчеризация задач........... |
27 |
1.3.1 Основные функции управления задачами..................... |
27 |
|
1.3.2 Дисциплины диспетчеризации ...................................... |
31 |
|
1.3.3 Вытесняющаяся и не вытесняющаяся многозадачность |
||
|
........................................................................................... |
42 |
1.3.4 Качество диспетчеризации.............................................. |
45 |
|
1.4 |
Взаимодействие и синхронизация задач............................. |
48 |
1.4.1 Способы взаимодействия задач...................................... |
48 |
|
1.4.2 Реализация взаимоисключений...................................... |
50 |
|
1.4.3 Механизмы синхронизации процессов.......................... |
53 |
|
1.4.4 Взаимоблокировки (тупики)........................................... |
56 |
|
1.4.5 Синхронизация потоков, принадлежащих разным про- |
||
|
цессам............................................................................... |
58 |
1.5 |
Прерывания............................................................................ |
61 |
1.6 |
Управление задачами в ОС Windows................................... |
69 |
1.6.1 Информация об организации вычислительных задач... |
69 |
|
1.6.2 Исследование производительности................................ |
76 |
1.6.3 Средства командной строки Windows XP Professional. 82
Вопросы для самопроверки........................................................ |
83 |
2 Управление памятью.............................................................. |
86 |
2 Управление памятью.............................................................. |
86 |
2.1 Основные понятия................................................................. |
86 |
2.1.1 Архитектура вычислительных машин............................ |
86 |
2.1.2 Биты, байты, слова, параграфы ...................................... |
88 |
2.1.3 Иерархия памяти.............................................................. |
91 |
2.2 Программная модель микропроцессора Intel Pentium........ |
94 |
2.2.1 Состав программной модели.......................................... |
94 |
2.2.2 Регистры общего назначения.......................................... |
95 |
4 |
|
2.2.3 Сегментные регистры...................................................... |
98 |
2.2.4 Регистры состояния и управления.................................. |
99 |
2.2.5 Системные регистры микропроцессора....................... |
101 |
2.3 Режимы функционирования процессора Intel x86............ |
103 |
2.3.1 Перечень режимов функционирования процессо- |
|
ра Intel x86...................................................................... |
104 |
2.3.2 Реальный режим работы процессоров Intel x86.......... |
104 |
2.3.3 Защищенный режим работы процессоров Intel x86.... |
112 |
2.3.4 Режим системного управления (SMM)........................ |
121 |
2.3.5 Режим Virtual-86............................................................ |
122 |
2.4 Управление памятью в ОС Windows................................. |
125 |
2.4.1 Использование отладчиков........................................... |
125 |
2.4.2 Получение общей информации об использовании памя- |
|
ти..................................................................................... |
129 |
2.4.3 Архитектура памяти в ОС Microsoft Windows 9x ....... |
133 |
2.4.4 Архитектура памяти в ОС Microsoft Windows на плат- |
|
форме NT ....................................................................... |
136 |
2.4.5 Использование механизмов работы с памятью в ОС на |
|
платформе Microsoft Windows NT................................ |
140 |
2.4.6 Управление файлом подкачки на платформе Microsoft |
|
Windows NT................................................................... |
146 |
Вопросы для самопроверки...................................................... |
150 |
3 Управление устройствами ввода-вывода.......................... |
152 |
3 Управление устройствами ввода-вывода.......................... |
152 |
3.1 Описание устройств ввода-вывода.................................... |
153 |
3.1.1 Классификация устройств ввода-вывода..................... |
153 |
3.1.2 Основные характеристики устройств внешней памяти |
|
3.1.3 Характеристики.........................................................................................накопителей на жестких магнитных |
155 |
|
|
дисках............................................................................. |
158 |
3.2 Организация работы устройств ввода-вывода ................. |
163 |
3.2.1 Организация операций ввода-вывода........................... |
163 |
3.2.2 Драйверы........................................................................ |
165 |
3.2.3 Файловые системы......................................................... |
167 |
3.3 Организация дисковых устройств...................................... |
172 |
3.3.1 Физическая структура магнитного диска..................... |
172 |
3.3.2 Логическая структура магнитного диска..................... |
173 |
5 |
|
3.4 Обзор файловых систем...................................................... |
179 |
3.4.1 Файловая система FAT.................................................. |
179 |
3.4.2 Файловая система NTFS................................................ |
186 |
3.4.3 Файловая система HPFS................................................ |
195 |
3.4.4 Файловая система ОС UNIX......................................... |
203 |
3.4.5 Файловые системы для CD-ROM................................. |
208 |
3.5 Управление устройствами ввода-вывода и файловыми си-
стемами в ОС Windows........................................................ |
210 |
3.5.1 Диспетчер устройств и драйвера устройств................ |
210 |
3.5.2 Диски и файловая система............................................ |
213 |
3.5.3 Дисковые квоты............................................................. |
215 |
3.5.4 Обеспечение надежности хранения данных на дисковых
накопителях с файловой системой NTF 5.0................. |
218 |
Вопросы для самопроверки...................................................... |
222 |
Методические указания по выполнению контрольных |
|
работ.......................................................................................... |
223 |
Методические указания по выполнению контрольных |
|
работ.......................................................................................... |
223 |
Контрольная работа № 1........................................................... |
223 |
Контрольная работа № 2........................................................... |
223 |
Глоссарий................................................................................... |
232 |
Глоссарий................................................................................... |
232 |
Список литературы.................................................................. |
234 |
Список литературы.................................................................. |
234 |
6
ВВЕДЕНИЕ
Современное общество живет в век информации. Умение качественно управлять информационными ресурсами — одно из важнейших направлений деятельности человека. В настоящий момент идет бурное развитие автоматизированных систем управления. Развивается как аппаратное, так и программное обеспечение (ПО).
Программное обеспечение — неотъемлемая составляющая любой ЭВМ, без которой невозможно получить необходимые результаты всевозможных вычислительных операций. При всем многообразии и сложности современных программных систем при их разработке в качестве базовой основы используются уже существующие фундаментальные концепции, имеющие много общего в части принципов построения и отличающиеся некоторыми особенностями реализации.
В работах специалистов по рассматриваемой тематике предлагается множество неоднозначных классификаций программного обеспечения. Например, одна из классификаций предлагает все программы, созданные для ЭВМ, разделить на следующие основные классы:
− операционные системы и сервисные программы; − инструментальные языки и системы программирования; − прикладные системы.
В работах других авторов, например Дж. Бэкона и Т. Харриса, предлагается выделить класс системного программного обеспечения из всего множества ПО (другой класс — прикладное программное обеспечение), к которому и будут относиться операционные системы. В некоторых случаях программное обеспечение, в особенности системное, не может рассматривать-
7
ся отдельно от аппаратного обеспечения, которое поддерживает его работу и в большей мере определяет его структуру.
Изучение дисциплины «Операционные системы» представляет собой основу для изучения всего процесса управления информационными ресурсами.
В содержание дисциплины входит изучение как теоретического материала: структур, методов и алгоритмов построения современных операционных сред и систем (ОС); так и изучение возможностей функционирования современных популярных ОС. Базовыми категориями в освоении данного курса являются основные понятия и концепции: построения ОС (операционная среда, вычислительный процесс, ресурс, поток, прерывание), управление задачами (функции, стратегии планирования, дисциплины и алгоритмы диспетчеризации), управление внутренней и внешней памятью, архитектура ОС и интерфейс прикладного программирования.
Развитие принципов построения ОС тесно связано с развитием средств вычислительной техники. Современная архитектура IBM PC-совместимого компьютера представляет собой реализацию так называемой фон-неймановской архитектуры вычислительных машин. Эта архитектура была представлена Джоном фон Нейманом в 1945 году. Фон-неймановская архитектура — не единственный вариант построения ЭВМ, имеются и другие, которые не соответствуют указанным принципам (например, потоковые машины). Однако подавляющее большинство современных компьютеров основано именно на указанных принципах, включая и сложные многопроцессорные комплексы, которые можно рассматривать как объединение фон-неймановских машин. Теория фон Неймана явилась основой для построения первых ОС. Значительная часть теорий построения ОС была разработана в 70—80-х годах прошлого века. В настоящее время наблюдается возросший интерес со стороны ученных и коммерческих фирм к развитию теорий построения ОС.
Для изучения дисциплины «Операционные системы» необходимо иметь навыки программирования на языке высокого уровня Си или Паскаль.
Структура учебного пособия
8
Учебное пособие состоит из двух частей. Первая часть ориентирована на рассмотрение функциональных и архитектурных особенностей популярных операционных систем. Вторая же часть посвящена общей теории построения операционных систем.
Часть 2:
Впервой главе рассмотрены основные понятия организации вычислительных задач. К этим понятиям относятся: понятия процесса, потока, ресурса, режима мультипрограммирования, планирования и диспетчеризации задач. Здесь же раскрыты темы взаимодействия и синхронизации задач, организации прерываний и управление задачами в ОС Windows.
Вторая глава содержит описание процесса управления памятью, который включает в себя описание: иерархии памяти, программной модели микропроцессора Intel P6, режимов функционирования микропроцессора Inte l P6 и управления памятью
вОС Windows.
Втретьей главе изложен процесс управления устройствами ввода-вывода. В этой главе представлены классификация и основные характеристики устройств ввода-вывода; организация операций ввода-вывода; физическая и логическая структуры магнитного диска и описание процесса управления устройствами ввода-вывода и файловыми системами в ОС Windows.
Вконце учебного пособия приведены задания для выполнения контрольных работ по второй части данного курса.
9
1 ОРГАНИЗАЦИЯ ВЫЧИСЛИТЕЛЬНЫХ ЗАДАЧ
1.1Процессы. Ресурсы. Режим мультипрограммирования
Понятие «вычислительный процесс» (или просто — «процесс») является одним из основных при рассмотрении операционных систем. Под процессом понимают выполняемую программу, включающую текущие значения счетчика команд, регистров и переменных [1]. Впервые концепция процесса была реализована в операционных системах 1960-х годов (MULTICS, 1965; THE, 1968; RC4000, 1970).
По принципу выполнения различают последовательные процессы и параллельные. Последовательный процесс, иногда называемый «задачей», — это выполнение отдельной программы с ее данными на последовательном процессоре [2]. В концепции, которая получила наибольшее распространение в 70-е годы, под задачей (task) понимается совокупность связанных между собой и образующих единое целое программных модулей и данных, требующая ресурсов вычислительной системы для своей реализации. В последующие годы задачей стали называть единицу работы, для выполнения которой предоставляется центральный процессор. Вычислительный процесс может включать в себя несколько задач. Концептуально процессор рассматривается в двух аспектах: во-первых, он является носителем данных и, во-вторых, он (одновременно) выполняет операции, связанные с их обработкой.
В качестве примеров можно назвать следующие процессы (задачи): выполнение прикладных программ пользователей, утилит и других системных обрабатывающих программ. Процессами могут быть редактирование какого-либо текста, трансляция