Файл: Оглавление Раздел I. Основные понятия.pdf

ВУЗ: Не указан

Категория: Не указан

Дисциплина: Не указана

Добавлен: 04.02.2024

Просмотров: 117

Скачиваний: 1

ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.

4
Оглавление
Раздел I. Основные понятия ............................................................................ 5
Лекция 1. Определение операционной системы.
Первые операционные системы ................................................................... 5
Лекция 2. Современные операционные системы ...................................... 11
Экзаменационные вопросы по разделу I ................................................... 22
Раздел II. Проектирование операционных систем ................................... 23
Лекция 3. Требования к операционным системам и обзор подходов их реализации ................................................................ 23
Лекция 4. Архитектуры операционных систем ........................................ 29
Экзаменационные вопросы по разделу II .................................................. 38
Раздел III. Управление процессами ............................................................. 39
Лекция 5. Понятие процесса, методы планирования ............................... 39
Лекция 6. Многозадачность в операционной системе Windows ............ 47
Лекция 7. Синхронизация с использованием разделяемых переменных .................................................................................................. 56
Лекция 8. Процедурные методы синхронизации в операционной системе Windows ......................................................................................... 65
Лекция 9. Тупики и защита от них ............................................................. 74
Экзаменационные вопросы по разделу III ................................................. 84
Раздел IV. Управление памятью .................................................................. 86
Лекция 10. Методы управления памятью .................................................. 86
Лекция 11. Средства аппаратной поддержки управления памятью в архитектуре x86_32 .................................................................................. 96
Лекция 12. Обзор алгоритмов замещения страниц................................. 105
Лекция 13. Управление виртуальной памятью в ОС Windows............. 113
Экзаменационные вопросы по разделу IV .............................................. 122
Раздел V. Организация ввода – вывода .................................................... 123
Лекция 14. Введение во взаимодействие с внешними устройствами .............................................................................................. 123
Экзаменационные вопросы по разделу V ................................................ 132
Библиографический список ........................................................................ 133

5
Раздел I. ОСНОВНЫЕ ПОНЯТИЯ
Лекция 1. Определение операционной системы.
Первые операционные системы
Определение операционной системы, операционная система как виртуальная машина и как система управления ресурсами. Поколе- ния компьютеров и операционных систем.
Операционная система – это комплекс программ, которые выступают как интерфейс между устройствами вычислительной си- стемы и прикладными программами, предназначены для управления устройствами и вычислительными процессами, а также для эффек- тивного распределения вычислительных ресурсов и организации надёжных вычислений.
Таким образом, операционная система – это программное обеспечение, выполняющее две функции: 1) предоставление пользо- вателю-программисту более удобной в использовании «виртуальной машины», скрывающей реальное оборудование; 2) обеспечение эф- фективного использования компьютера путем рационального управ- ления его ресурсами.
Рассмотрим для чего необходим программный интерфейс между оборудованием и программой пользователя на примере. Ис- пользование большинства компьютеров на уровне машинного языка затруднительно, особенно при организации ввода-вывода. Напри- мер, для чтения блока данных с гибкого диска программист может использовать 16 различных команд контроллера NEC PD765, каждая из которых требует 13 параметров: номера поверхности на диске, сектора на дорожке и других. Когда выполнение операции с диском завершается, контроллер возвращает 23 значения, отражающих, в том числе, наличие и типы ошибок, которые необходимо анализиро-


6 вать. Кроме этого, работа с диском требует специальной организа- ции кода программы, связанной с необходимостью обработки пре- рываний, отслеживания состояния двигателя привода для уменьше- ния износа диска с сохранением высокой скорости обращения, орга- низации хранения данных и учета других особенностей.
При работе с диском, используя функции операционной си- стемы, программисту достаточно представлять данные в виде неко- торого набора файлов, каждый из которых имеет имя. Работа с фай- лом заключается в открытии, выполнении чтения или записи, а за- тем в закрытии файла. Программа, которая скрывает от программи- ста все реалии аппаратуры и предоставляет возможность простого, удобного чтения или записи файлов – это операционная система.
Операционная система ограждает программистов от аппаратуры дискового накопителя и предоставляет ему простой файловый ин- терфейс, берет на себя обработку прерываний, управление таймера- ми и оперативной памятью, а также другие низкоуровневые пробле- мы. В каждом случае абстракция (например, файл), с которой, бла- годаря операционной системе, может иметь дело пользователь, го- раздо проще и удобнее в обращении, чем реальная аппаратура, ле- жащая в основе этой абстракции. С этой точки зрения функцией операционной системы является предоставление пользователю не- которой расширенной или «виртуальной машины», которую легче программировать и с которой легче работать, чем непосредственно с аппаратурой, составляющей реальную машину.
Программист-пользователь считает, что операционная система прежде всего обеспечивает удобный интерфейс. Разработчик аппа- ратуры имеет представление об операционной системе как о некото- ром механизме, управляющем всеми частями сложной системы. Со- временные вычислительные системы состоят из процессоров, памя- ти, таймеров, дисков, накопителей на магнитных лентах, сетевой коммуникационной аппаратуры, принтеров и других устройств.
Функцией операционной системы является распределение процес- соров, памяти, устройств и данных между процессами, конкуриру- ющими за эти ресурсы. Операционная система должна управлять всеми ресурсами вычислительной машины таким образом, чтобы обеспечить максимальную эффективность ее функционирования.

7
Критерием эффективности может быть, например, пропускная спо- собность или реактивность системы. Управление ресурсами включа- ет решение двух общих, не зависящих от типов ресурсов задач: пла- нирование ресурсов и мониторинг ресурсов.
Планирование ресурса – это определение кому, когда, а для делимых ресурсов и в каком количестве, необходимо выделить дан- ный ресурс.
Мониторинг (отслеживание состояния ресурса) – поддержание оперативной информации о том, занят или не занят ресурс, а для де- лимых ресурсов – какое количество ресурса уже распределено, а ка- кое свободно.
Для решения этих общих задач управления ресурсами разные операционные системы используют различные алгоритмы. Это, в конечном счете, определяет их облик в целом, включая характери- стики производительности, область применения и даже пользова- тельский интерфейс.
Рассмотренное функциональное определение операционной системы применимо к большинству современных операционных систем общего назначения.
Для понимания основных механизмов, используемых в совре- менных операционных системах, кратко рассмотрим историю их развития. Применимость той или иной архитектурной идеи в про- граммном обеспечении (software) во многом определяется наличием и доступностью аппаратного обеспечения (hardware).
Первое поколение компьютеров и операционных систем
(1945-1955 гг.), электронные лампы и коммутационные панели.
Изобретателем цифрового компьютера считается английский мате- матик Чарльз Беббидж. В 1833 году им был предложен проект меха- нической универсальной цифровой вычислительной машины – про- образа современной ЭВМ. Первыми действующими компьютерами являлись: компьютер Z3, созданный немецким инженером Конрадом
Цузе (1941); компьютер Марк I, созданный американским инжене- ром Говардом Эйкеном (1941); компьютер ЭНИАК, разработанный
Джоном Экертом и Джоном Мокли (1945). Первые компьютеры бы- ли электромеханическими (реле). В поздних моделях реле были за- менены электронными лампами.
Первые компьютеры программировались на абсолютном ма- шинном языке, управление основными функциями машины осу-


8 ществлялось путем соединения коммутационных панелей провода- ми. Такая панель являлась носителем программы и подключалась к компьютеру. Также для записи программ использовались перфори- рованные ленты. В начале 50-х панели и ленты были заменены пер- фокартами.
На компьютерах первого поколения занимались только пря- мыми числовыми вычислениями, например, расчетами таблиц сину- сов, косинусов, логарифмов. Компьютеры имели военные приложе- ния: расчет стреловидных крыльев и управляемых ракет, расчет баллистических таблиц для стрельбы. Компьютеры не имели опера- ционных систем. Программирование осуществлялось в интерактив- ном режиме: пользователь-программист получал полный контроль над машиной на время отладки программы и выполнения вычисле- ний. В некотором смысле первые компьютеры напоминали совре- менные персональные ЭВМ.
Рис. 1.1. Машинный зал с компьютером IBM 7094, НАСА.
На переднем плане внизу – считыватель перфокарт
Второе поколение компьютеров и операционных систем
(1955-1965 гг.), транзисторы и системы пакетной обработки за-
даний. С появлением в середине 50-х годов транзисторов компью-

9 теры стали достаточно надежными и могли без сбоев работать дли- тельное время. Такие компьютеры назывались мейнфреймами. Они располагались в специальных помещениях с кондиционированным воздухом, ими управлял целый штат профессиональных операторов.
Цена одного из известных мейнфреймов IBM 7090/94 (рис. 1.1) со- ставляла $2,900,000, а стоимость аренды $63,500 в месяц.
Рассмотрим организацию работы на IBM 7090/94 и подобных машинах. Для программирования использовался язык высокого уровня Фортран или Ассемблер. Программа для компьютера внача- ле писалась на бумаге, а затем переносилась на перфокарты при по- мощи перфораторов: электронно-механических устройств, похожих на печатающие машинки (рис. 1.2). Каждая перфокарта представля- ла одну строчку кода программы. Перфокарты выполняли функции современных текстовых редакторов. Программа – это колода перфо- карт, которая вставлялась в устройство для считывания. Результат работы очередной задачи отображался на принтере. Если в процессе расчетов был необходим компилятор языка Фортран, то оператору необходимо было брать его из карточного шкафа и загружать в ма- шину отдельно.
Рис. 1.2. Перфоратор IBM 026
С учетом высокой стоимости оборудования необходимо было повысить эффективность использования машинного времени, сокра- тить простои машины при загрузке программ в память. Данную


10 функцию реализовывали первые операционные системы – системы пакетной обработки.
Рассмотрим автоматизацию расчетов на мейнфрейме IBM
7094 с использованием пакетной системы IBSYS (рис. 1.3).
Рис.1.3. Схема работы пакетной системы
Рис. 1.4. Считыватель-перфоратор 1402, управляющий блок 1401 и принтер 1403 фирмы IBM
Для подготовки пакета заданий использовались относительно недорогие компьютеры IBM 1401 (рис.1.4). К такому компьютеру подключался считыватель перфокарт и устройство записывания магнитных лент. Примерно после часа сбора пакета заданий лента перематывалась и ее относили в машинную комнату. Там ее уста- навливали на лентопротяжное устройство, подключенное к мейн-
7094 1401 1401
Считыватель перфокарт, выходная лента
Мейнфрейм, вход- ная, системная, вы- ходная ленты
Принтер вход- ная лента

11 фрейму. Также к нему подключалась лента с программой операци- онной системы и выходная лента. По мере накопления выходные данные записывались на ленту вместо того, чтобы идти на печать.
После обработки всего пакета заданий входные и выходные ленты менялись на новые для следующего цикла обработки. Печать ре- зультатов на принтере также осуществлялась под управлением ма- ломощного и недорогого компьютера IBM 1401.
Большие компьютеры второго поколения использовались глав- ным образом для научных и технических вычислений, таких как ре- шение дифференциальных уравнений в частных производных, часто встречающихся в физике, и инженерных задачах. Поэтому режим ра- боты с непродолжительными этапами ввода-вывода с использованием магнитных лент значительно оптимизировал загрузку мейнфрейма.
Кроме этого, длительные операции, такие как считывание перфокарт и печать на медленных принтерах, происходили одновременно с рас- четами. Такой способ взаимодействия с внешними устройствами по- лучил название автономного (off-line) в отличие от интерактивного способа (on-line), используемого в системах третьего поколения.
Принципы пакетной обработки, несмотря на появление в 60-х годах, широко используются в современных системах для аналогич- ных целей: оптимизации загрузки дорогостоящей системы. Приме- ром современной пакетной системы является система TORQUE
(Terascale Open-Source Resource and QUEue Manager), Slurm (Simple
Linux Utility for Resource Management), служащие для управления суперкомпьютерами. Также пакетные режимы имеются во всех со- временных операционных системах разделения времени (Unix, macOS, Microsoft Windows).
Лекция 2. Современные операционные системы
Поколения компьютеров и операционных систем: интегральные схемы и многозадачность, персональные компьютеры. Классифика- ция и примеры операционных систем.
Третье поколение компьютеров и операционных систем
(1965-1980 гг.), интегральные схемы и многозадачность. Даль-


12 нейшее развитие компьютерная индустрия получила при появлении технологии мелкомасштабных интегральных схем, которая давала преимущество в цене и качестве по сравнению с машинами второго поколения, созданными из отдельных транзисторов.
Основные разработки в области архитектуры современных операционных систем появились именно на компьютерах третьего поколения. Операционные системы, состоящие из миллионов строк, написанных тысячами программистов, на два или три порядка пре- вышали по сложности первые системы типа IBSYS.
Основу к появлению сложного системного программного обеспечения заложила фирма IBM, которая выпустила серию про- граммно-совместимых машин семейства IBM /360. Эти компьютеры различались только ценой и производительностью. Так как все ма- шины семейства имели одинаковую структуру и набор команд, про- граммы, написанные для одного компьютера, могли работать на других. Компьютеры семейства IBM /360 могли использоваться как для сложных научных расчетов, так и для статистической обработ- ки, сортировки и печати. Предполагалось, что одну операционную систему можно будет использовать как с несколькими внешними устройствами, так и с большим их количеством. Одно семейство компьютеров было призвано удовлетворить потребности всех поку- пателей.
Первой операционной системой для компьютеров IBM /360 была OS /360 (IBM System /360 Operating System). Разработкой си- стемы руководил Фред Брукс, описавший ее в знаменитой книге
«Мифический человеко-месяц». В этом проекте впервые столкну- лись с проблемой сложности программного обеспечения, с него начала развиваться дисциплина программной инженерии, впервые были применены многие технические приемы, используемые в со- временных операционных системах.
Самым важным достижением OS /360 являлось использование многозадачности. На компьютере IBM 7094, когда текущая работа приостанавливалась в ожидании данных с магнитной ленты или других устройств, центральный процессор бездействовал до оконча- ния ввода-вывода. Данная ситуация была некритичной при обработ- ке задач численного моделирования. Однако для универсальной си- стемы, на которой обрабатывались задачи, связанные с сортировкой и другой обработкой информации на лентах, время простоя оказы-

13 валось существенным и составляло 80-90%. Необходимо было пред- ложить решение, предотвращающее длительный простой дорогосто- ящих процессоров.
Решение проблемы было найдено. Оно заключалось в разбие- нии памяти на несколько разделов, каждому из которых давалось отдельное задание (рис.2.1). Пока одно задание ожидало завершения операций ввода-вывода, другое могло использовать центральный процессор. Если в оперативной памяти размещалось достаточное количество заданий, центральный процессор мог быть загружен по- чти 100% времени. Для реализации многозадачности потребовалось разработать аппаратуру защиты памяти и средства обработки пре- рываний. Применение многозадачности позволило отказаться от процедуры предварительной подготовки данных на магнитных лен- тах и выгрузки на ленту для печати. Данные процедуры являлись обычными фоновыми операциями ввода-вывода. Технический при- ем получил название спулинг (spooling – simultaneous peripheral operation on line).
Рис. 2.1. Многозадачная система с тремя заданиями в памяти
Операционная система OS /360 и другие операционные си- стемы третьего поколения являлись, по сути, сложными системами пакетной обработки. Главный недостаток таких систем заключался в том, что, несмотря на оптимизацию работы вычислительной си- стемы, организация работы самих программистов являлась неэф- фективной. Промежуток времени между передачей задания и по- лучением результата составлял несколько часов. Сбой при компи- ляции, связанный с незначительной синтаксической ошибкой, при- водил к большой потере времени. Желание применить принципы
ОС
Задача 1
Задача 2
Задача 3
Очередь задач