Операционные системы ЭВМ
Покупка
Автор:
Пахмурин Денис Олегович
Год издания: 2013
Кол-во страниц: 254
Дополнительно
Рассмотрены основные понятия операционных систем, изложены история развития, принципы построения и функционирования UNIX и Windows. В учебном пособии уделено внимание таким аспектам, как межпроцессное взаимодействие, взаимоблокировки, управление памятью, ввод-вывод, файловые системы и информационная безопасность.
Скопировать запись
Фрагмент текстового слоя документа размещен для индексирующих роботов
МИНИСТЕРСТВО ОБРАЗОВАНИЯ И НАУКИ РОССИЙСКОЙ ФЕДЕРАЦИИ ТОМСКИЙ ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ СИСТЕМ УПРАВЛЕНИЯ И РАДИОЭЛЕКТРОНИКИ (ТУСУР) Кафедра промышленной электроники Д.О. Пахмурин ОПЕРАЦИОННЫЕ СИСТЕМЫ ЭВМ Учебное пособие для студентов очной формы обучения по направлению 210100.62 – Электроника и наноэлектроника (профиль "Промышленная электроника") 2013
Пахмурин Д.О. Операционные системы ЭВМ: Учебное пособие. – Томск: Томский государственный университет систем управления и радиоэлектроники, 2013. – 254 с.: ил. Рассмотрены основные понятия операционных систем, изложены история развития, принципы построения и функционирования UNIX и Windows. В учебном пособии уделено внимание таким аспектам, как межпроцессное взаимодействие, взаимоблокировки, управление памятью, ввод-вывод, файловые системы и информационная безопасность. © Пахмурин Д.О., 2013 © ТУСУР, 2013
ОГЛАВЛЕНИЕ ВВЕДЕНИЕ ..................................................................................................................................... 6 1. ОСНОВНЫЕ ПОНЯТИЯ .......................................................................................................... 7 1.1. Понятие "операционная система" ........................................................................................... 7 1.2. История операционных систем ................................................................................................. 9 1.3. Классификация операционных систем .............................................................................. 13 1.4. Обзор аппаратного обеспечения компьютера ............................................................... 20 1.5. Основные понятия операционных систем ....................................................................... 24 1.6. Структура операционной системы ....................................................................................... 25 2. ПРОЦЕССЫ И ПОТОКИ ....................................................................................................... 27 2.1. Подсистема управления процессами и потоками ........................................................ 27 2.2. Модель процесса ............................................................................................................................ 30 2.3. Создание, завершение и состояние процессов. .............................................................. 32 2.4. Использование и реализация потоков ............................................................................... 36 3. МЕЖПРОЦЕССНОЕ ВЗАИМОДЕЙСТВИЕ ......................................................................... 42 3.1. Основные понятия ........................................................................................................................ 42 3.2. Классические проблемы межпроцессного взаимодействия .................................. 51 3.3. Введение в планирование ......................................................................................................... 54 4. ВЗАИМОБЛОКИРОВКИ ...................................................................................................... 59 4.1. Основные понятия ........................................................................................................................ 59 4.2. Выгружаемые и невыгружаемые ресурсы ....................................................................... 60 4.3. Обнаружение и устранение взаимоблокировок ........................................................... 62 4.4. Предотвращение взаимоблокировок ................................................................................. 70 5. УПРАВЛЕНИЕ ПАМЯТЬЮ .................................................................................................. 74 5.1. Модели организации памяти .................................................................................................. 74 5.2. Подкачка ............................................................................................................................................. 75 5.3. Виртуальная память .................................................................................................................... 79 5.4. Алгоритмы замещения страниц ............................................................................................ 82 5.5. Вопросы разработки систем со страничной организацией памяти ................... 83 5.6. Вопросы реализации .................................................................................................................... 85 5.7. Сегментация ..................................................................................................................................... 87 6. ВВОД И ВЫВОД В ОПЕРАЦИОННЫХ СИСТЕМАХ ........................................................... 89 6.1. Принципы аппаратуры ввода-вывода ................................................................................ 89 6.2. Принципы программного обеспечения ввода-вывода .............................................. 92 6.3. Программные уровни ввода-вывода ................................................................................... 93 6.4. Диски .................................................................................................................................................... 96 6.5. Таймеры .............................................................................................................................................. 97 6.6. Автономные терминалы ............................................................................................................ 98
6.7. Графические интерфейсы пользователя .......................................................................... 99 6.8. Сетевые терминалы ................................................................................................................... 100 6.9. Управление режимом энергопотребления .................................................................... 100 7. ФАЙЛОВАЯ СИСТЕМА ...................................................................................................... 104 7.1. Основные понятия ...................................................................................................................... 104 7.2. Файлы и каталоги........................................................................................................................ 105 7.3. Реализация файловой системы ............................................................................................ 118 7.4. Примеры файловых систем .................................................................................................... 123 8. МУЛЬТИМЕДИЙНЫЕ ОПЕРАЦИОННЫЕ СИСТЕМЫ .................................................... 130 8.1. Введение в мультимедиа ......................................................................................................... 130 8.2. Мультимедийные файлы ........................................................................................................ 130 8.3. Сжатие видеоинформации...................................................................................................... 132 8.4. Планирование процессов в мультимедийных системах ......................................... 135 8.5. Размещение файлов ................................................................................................................... 140 9. МНОГОПРОЦЕССОРНЫЕ СИСТЕМЫ ............................................................................... 142 9.1. Мультипроцессоры ..................................................................................................................... 142 9.2. Мультикомпьютеры ................................................................................................................... 149 9.3. Распределенные системы ....................................................................................................... 151 10. БЕЗОПАСНОСТЬ ............................................................................................................. 154 10.1. Понятие безопасности .............................................................................................................. 154 10.2. Основы криптографии .............................................................................................................. 156 10.3. Аутентификация пользователей ......................................................................................... 160 11. ОПЕРАЦИОННАЯ СИСТЕМА UNIX ............................................................................... 169 11.1. История ............................................................................................................................................. 169 11.2. Обзор системы ............................................................................................................................... 171 11.3. Процессы в системе UNIX ......................................................................................................... 179 11.4. Управление памятью в UNIX .................................................................................................. 184 11.5. Управление памятью в Linux ................................................................................................. 189 11.6. Ввод и вывод в системе UNIX................................................................................................. 195 11.7. Файловая система в UNIX ........................................................................................................ 198 11.8. Безопасность в UNIX ................................................................................................................... 204 12. ОПЕРАЦИОННАЯ СИСТЕМА WINDOWS ..................................................................... 209 12.1. История Windows ......................................................................................................................... 209 12.2. Структура системы ..................................................................................................................... 216 12.3. Процессы и потоки в Windows .............................................................................................. 226 12.4. Межпроцессное взаимодействие в Windows................................................................. 229 12.5. Планирование................................................................................................................................ 230 12.6. Управление памятью в Windows ......................................................................................... 233
12.7. Ввод-вывод в Windows.............................................................................................................. 239 12.8. Файловая система Windows ................................................................................................... 244 12.9. Безопасность в Windows .......................................................................................................... 250 ЗАКЛЮЧЕНИЕ ........................................................................................................................... 253 ЛИТЕРАТУРА ............................................................................................................................. 254
ВВЕДЕНИЕ Подготовка современного инженера не мыслима без получения им соответствующих знаний в сфере компьютерных технологий. В современном мире без достаточно полноценного обучения работе с информацией, с принципами функционирования компьютерного оборудования не возможна качественная разработка каких-либо серьезных технических проектов. Освоение курса "Операционные системы ЭВМ" позволяет иметь более структурированный подход, в частности, к программированию микропроцессоров, что является очень востребованным направлением в настоящее время. Целью изучения курса "Операционные системы ЭВМ" является формирование знаний по основным принципам организации операционных систем персональных ЭВМ и подготовка к эффективному практическому применению вычислительных систем. Данный курс базируется на курсах "Информатика", "Математическое моделирование и программирование", "Цифровая и микропроцессорная техника" и "Компьютерные сети". Курс имеет следующую структуру: 1. Основные понятия. 2. Процессы и потоки. 3. Межпроцессное взаимодействие. 4. Взаимоблокировки. 5. Управление памятью. 6. Ввод и вывод. 7. Файловые системы. 8. Мультимедийные операционные системы. 9. Многопроцессорные системы. 10. Безопасность. 11. Операционные системы семейства UNIX. 12. Операционные системы Windows семейства NT.
1. ОСНОВНЫЕ ПОНЯТИЯ 1.1. Понятие "операционная система" Современный компьютер состоит из одного или нескольких процессоров, оперативной памяти, дисков, клавиатуры, монитора, принтеров, сетевых интерфейсов и других устройств ввода-вывода, то есть является сложной системой. Написание программ, которые отслеживают все компоненты, корректно используют их и при этом оптимально работают, представляет собой крайне трудную задачу. Еще много лет назад стало очевидно, что нужно как-то оградить программистов от тонкостей, связанных с аппаратным обеспечением. Постепенно был выработан следующий путь: поверх аппаратуры работает дополнительная программная прослойка, которая управляет всем оборудованием и предоставляет пользователю интерфейс, или виртуальную машину, более простую для понимания и программирования, чем аппаратура. Операционная система (ОС) и является этой программной прослойкой. Место операционной системы в общей структуре компьютера показано на рисунке 1.1. Внизу находится аппаратное обеспечение, которое во многих случаях само состоит из двух или более уровней (или слоев). Самый нижний уровень содержит физические устройства, состоящие из интегральных микросхем, проводников, источников питания и т. п. Офисные программы Веб-браузер Мультимедийное ПО Компиляторы Редакторы Интерпретаторы команд Операционная система Машинный язык Микроархитектура Физические устройства Рисунок 1.1 – Место операционной системы в структуре компьютера Далее следует микроархитектурный уровень, на котором физические устройства группируются в функциональные блоки. Как правило, на микроархитектурном уровне находятся внутренние регистры центрального процессора (ЦП) и тракт данных, включающий арифметико-логическое устройство. На каждом такте процессора данные извлекаются из регистров и обрабатываются Прикладное ПО Системное ПО Аппаратура
арифметико-логическим устройством (к примеру, участвуют в операции арифметического или логического суммирования). Результат сохраняется в одном или нескольких регистрах. В некоторых компьютерах функционирование тракта данных находится под управлением особой программы, называемой микропрограммой. В остальных случаях управление обеспечивают аппаратные схемы. Тракт данных предназначен для выполнения наборов команд. Некоторые наборы могут быть выполнены в одном цикле такта данных, другие же требуют нескольких тактов. В распоряжении команд находятся различные аппаратные средства, в том числе регистры. Аппаратное обеспечение и команды, доступные программисту на языке ассемблера, образуют архитектуру набора команд (Instruction Set Architecture, ISA). Зачастую данный уровень называют машинным языком. Обычно машинный язык содержит от 50 до 300 команд, служащих преимущественно для перемещения данных в пределах компьютера, выполнения арифметических операций и сравнения величин. Управление устройствами на этом уровне осуществляется путем загрузки определенных величин в специальные регистры устройств. Например, диску можно дать команду чтения, записав в его регистры адрес места на диске, адрес в основной памяти, число байтов для чтения и направление действия (чтение или запись). На практике нужно передавать больше параметров, а информация о статусе операции, возвращаемая диском, достаточно сложна. Кроме того, при программировании многих устройств ввода-вывода (Input/Output, I/O) очень важную роль играют временные соотношения. Основное предназначение операционной системы – скрыть все эти сложности и предоставить программисту более удобную систему команд. Чтение блока из файла в этом случае представляется намного более простым действием, чем в случае, когда программисту приходится думать о перемещении головок диска, о задержках, связанных с их установкой в нужное место и т. д. Поверх операционной системы на рисунке расположены остальные системные программы. Здесь находятся интерпретатор команд (оболочка), компиляторы, редакторы и т. д. Подобные программы не являются частью операционной системы. Под операционной системой обычно понимается то программное обеспечение, которое запускается в режиме ядра или, как его еще называют, режиме супервизора, привилегированном режиме. Операционная система
защищена от вмешательства пользователя с помощью аппаратных средств. Компиляторы и редакторы запускаются в пользовательском режиме. Подобная классификация имеет весьма размытые границы во встраиваемых системах, допускающих отсутствие ядра, и в интерпретируемых системах. Тем не менее, в традиционных компьютерах операционная система является элементом, исполняемым в режиме ядра. Поверх системных программ выполняются прикладные программы. Граница между системным и прикладным программным обеспечением размыта. Очевидно, что компоненты, исполняемые в режиме ядра, относятся к операционной системе, однако многие "пользовательские" программы также осуществляют системные функции либо, как минимум, тесно связаны с ними. Таким образом, операционная система компьютера представляет собой комплекс взаимосвязанных программ, который действует как интерфейс между приложениями и пользователями с одной стороны, и аппаратурой компьютера с другой стороны. 1.2. История операционных систем Понимание того, что представляет собой операционная система и каковы ее функции, пришло не сразу. В эволюции операционных систем можно выделить несколько периодов. Первый период (1945-1955). В середине 40-х годов XX века были созданы первые ламповые вычислительные устройства. В то время одна и та же группа людей участвовала и в проектировании, и в эксплуатации, и в программировании вычислительной машины. Это была скорее научно-исследовательская работа в области вычислительной техники, а не использование компьютеров в качестве инструмента решения практических задач из других прикладных областей. Программирование осуществлялось исключительно на машинном языке. Об операционных системах не было и речи, все задачи организации вычислительного процесса решались вручную каждым программистом с пульта управления. Не было никакого другого системного программного обеспечения, кроме библиотек математических и служебных подпрограмм. Второй период (1955-1965). С середины 50-х годов начался новый период в развитии вычислительной техники, связанный с появлением новой технической базы – полупроводниковых элементов. В эти годы появились первые
алгоритмические языки, а, следовательно, и первые системные программы – компиляторы. Высокая стоимость процессорного времени требовала уменьшения затрат времени между запусками программы. Появились первые системы пакетной обработки, которые просто автоматизировали запуск одной программы за другой и, тем самым, увеличивали коэффициент загрузки процессора. Системы пакетной обработки явились прообразом современных операционных систем, они стали первыми системными программами, предназначенными для управления вычислительным процессом. Третий период (1965-1980). В это время в технической базе произошел переход от отдельных полупроводниковых элементов типа транзисторов к интегральным микросхемам. Для этого периода также характерно создание семейства программно-совместимых машин. Программная совместимость требовала и совместимости операционных систем. Такие операционные системы должны были бы работать и на больших, и на малых вычислительных системах, с большим и с малым количеством разнообразной периферии, в коммерческих областях и в области научных исследований. Важнейшим достижением ОС данного поколения явилась реализация мультипрограммирования. Мультипрограммирование – это способ организации вычислительного процесса, в соответствии с которым на одном процессоре попеременно выполняются несколько программ. Другое нововведение – спулинг (spooling), который определялся в то время как способ организации вычислительного процесса, в соответствии с которым задания считывались с перфокарт на диск в том темпе, в котором они появлялись в помещении вычислительного центра, а затем, когда очередное задание завершалось, новое задание с диска загружалось в освободившийся раздел. Наряду с мультипрограммной реализацией систем пакетной обработки появился новый вариант ОС – системы разделения времени. Этот вариант рассчитан на многотерминальные системы, когда каждый пользователь работает за своим терминалом. В мультипрограммных системах пакетной обработки пользователь был лишен возможности интерактивно взаимодействовать со своими программами. Вариант мультипрограммирования, применяемый в системах разделения времени, нацелен на создание для каждого отдельного пользователя иллюзии единоличного использования вычислительной машины за счет периодического выделения каждой программе своей доли процессорного времени. В системах разделения времени