Главная страница
Навигация по странице:

  • УДК 004.451(075) ББК 32.973.26-018.2я7 В 780

  • Оглавление Раздел I. Основные понятия

  • Раздел II. Проектирование операционных систем

  • Раздел III. Управление процессами

  • Раздел IV. Управление памятью

  • Раздел V. Организация ввода – вывода

  • Библиографический список

  • Первое поколение компьютеров и операционных систем (1945-1955 гг.), электронные лампы и коммутационные панели.

  • Второе поколение компьютеров и операционных систем (1955-1965 гг.), транзисторы и системы пакетной обработки за- даний.

  • Лекция 2. Современные операционные системы

  • Третье поколение компьютеров и операционных систем (1965-1980 гг.), интегральные схемы и многозадачность.

  • Четвертое поколение компьютеров и операционных си- стем (с 1980 года), персональные вычисления.

  • Современные компьютеры и операционные системы.

  • Экзаменационные вопросы по разделу I

  • Востокин С.В.. Операционные системы. Экзаменационные вопросы по разделам дисциплины. Учебник предназначен для студентов специальности Фундамен тальная информатика и информационные технологии


    Скачать 2.09 Mb.
    НазваниеЭкзаменационные вопросы по разделам дисциплины. Учебник предназначен для студентов специальности Фундамен тальная информатика и информационные технологии
    Дата24.03.2022
    Размер2.09 Mb.
    Формат файлаpdf
    Имя файлаВостокин С.В.. Операционные системы.pdf
    ТипЭкзаменационные вопросы
    #412378
    страница1 из 8
      1   2   3   4   5   6   7   8

    МИНИСТЕРСТВО ОБРАЗОВАНИЯ И НАУКИ РОССИЙСКОЙ ФЕДЕРАЦИИ
    ФЕДЕРАЛЬНОЕ ГОСУДАРСТВЕННОЕ АВТОНОМНОЕ
    ОБРАЗОВАТЕЛЬНОЕ УЧРЕЖДЕНИЕ ВЫСШЕГО ОБРАЗОВАНИЯ
    «САМАРСКИЙ НАЦИОНАЛЬНЫЙ ИССЛЕДОВАТЕЛЬСКИЙ
    УНИВЕРСИТЕТ ИМЕНИ АКАДЕМИКА С. П. КОРОЛЕВА»
    С.В. ВОСТОКИН
    ОПЕРАЦИОННЫЕ СИСТЕМЫ
    2-е издание, исправленное и дополненное
    Рекомендовано редакционно-издательским советом федерального государственного автономного образовательного учреждения выс- шего образования «Самарский национальный исследовательский университет имени академика С.П. Королева» в качестве учебника для студентов, обучающихся по основной образовательной програм- ме высшего образования по направлению подготовки 09.03.01 Ин- форматика и вычислительная техника
    © Самарский университет, 2018
    ISBN 978-5-7883-1242-2
    С А М А Р А
    Издательство Самарского университета
    2018

    2
    УДК 004.451(075)
    ББК 32.973.26-018.2я7
    В 780
    Рецензенты: д-р техн. наук, проф. С.П. О р л о в ; д-р физ.-мат. наук, проф. Д.Л. Г о л о в а ш к и н
    Востокин, Сергей Владимирович
    В780 Операционные системы: учеб. / С.В. Востокин. – 2-е изд., испр. и доп. – Электрон. текст. и граф. дан. (2,15 Мб). –
    Самара: Изд-во Самарского университета, 2018. – 1 опт. ком- пакт-диск (CD-ROM). – Систем. требования: ПК Pentium;
    Adobe Acrobat Reader. – Загл. с титул. экрана.
    ISBN 978-5-7883-1242-2
    Рассмотрены основные вопросы дисциплины «Операционные систе- мы»: обзор операционных систем, проектирование и архитектуры операци- онных систем, управление процессами и потоками, мультипроцессорная обработка, методы синхронизации процессов, проблема тупиков, методы управления памятью, основы организации ввода-вывода и файловых си- стем. Рассмотрены практические вопросы программирования на примере операционной системы Windows. Приведены экзаменационные вопросы по разделам дисциплины.
    Учебник предназначен для студентов специальности «Фундамен- тальная информатика и информационные технологии» и направления под- готовки «Информатика и вычислительная техника».
    УДК 004.451(075)
    ББК 32.973.26-018.2я7
    © Самарский университет, 2018

    3
    ОПЕРАЦИОННЫЕ СИСТЕМЫ
    Редактор Н . С . К у п р и я н о в а
    Компьютерная верстка Л . Р . Д м и т р и е н к о
    Подписано для тиражирования 16.04.2018.
    Объем издания 2,15 Mб.
    Количество носителей 1 экз.
    Тираж 10 экз.
    ФЕДЕРАЛЬНОЕ ГОСУДАРСТВЕННОЕ АВТОНОМНОЕ
    ОБРАЗОВАТЕЛЬНОЕ УЧРЕЖДЕНИЕ ВЫСШЕГО ОБРАЗОВАНИЯ
    «САМАРСКИЙ НАЦИОНАЛЬНЫЙ ИССЛЕДОВАТЕЛЬСКИЙ УНИВЕРСИТЕТ
    ИМЕНИ АКАДЕМИКА С.П. КОРОЛЕВА»
    443086, Самара, Московское шоссе, 34.
    Изд-во Самарского университета.
    443086, Самара, Московское шоссе, 34.

    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
    Очередь задач

    14 интерактивной разработки, известные по компьютерам первого поколения на новых системах, привело к появлению режима разде- ления времени.
    Режим разделения времени – вариант многозадачности, при котором у каждого пользователя есть свой диалоговый терминал.
    Так как пользователи чаще выдают короткие команды компиляции при отладке программ, компьютер может обеспечить быстрое ин- терактивное обслуживание нескольких пользователей.
    Первая система разделения времени CTSS (Compatible Time-
    Sharing System) была разработана Фернандо Корбато и его командой в Массачусетском технологическом институте (M.I.T.) на специаль- но переделанном компьютере IBM 7094. Впоследствии в 1962 году решения, использовавшиеся в демонстрационной системе CTSS, легли в основу проекта первой полноценной системы с разделением времени, названной Multiplexed Information and Computer System
    (Multics) на компьютере GE-645, позднее Honeywell 6180.
    Работа над системой Multics продолжалась вплоть до 1969 го- да, но коммерческого успеха она не имела. Однако этот проект имел определяющее значение для дальнейшего развития компьютерных технологий. В системе Multics впервые реализованы: сегментно- страничная виртуальная память; отображение файлов на адресное пространство процессов; динамическое связывание исполняемой программы с библиотеками. В ней применялись даже более сложные и гибкие механизмы взаимодействия процессов через разделяемые сегменты, чем в современных системах. Использовалось «горячее» реконфигурирование системы с заменой процессоров, блоков памя- ти, жестких дисков без остановки обслуживания пользователей.
    Multics – одна из первых мультипроцессорных систем. Multics была также одной из первых систем, в которой большое внимание уделя- лось безопасности взаимодействия между программами и пользова- телями. Более того, она была самой первой операционной системой, задуманной изначально и реализованной как безопасная. Дополни- тельно к этому в Multics одной из первых была реализована иерар- хическая файловая система, имена файлов могли быть практически произвольной длины и содержать любые символы. Файл или ди- ректория могли иметь несколько имён (короткое и длинное), были доступны для использования символьные ссылки (symlink) между директориями. В Multics был впервые реализован (теперь уже

    15 стандартный) подход использования стеков для каждого вычисли- тельного процесса в ядре системы: с отдельным стеком для каждо- го уровня безопасности вокруг ядра. Multics явилась одной из пер- вых операционных систем, написанных на языке высокого уровня
    PL/I. Можно сказать, что идея «облачных» вычислений, популяр- ная в настоящее время, также берет начало от системы Multics – компьютерного предприятия общественного пользования 60-70 годов прошлого века.
    Важным моментом развития компьютерной индустрии во времена третьего поколения был феноменальных рост миникомпью- теров, начиная с выпуска корпорацией DEC в 1961 году компьютера
    PDP-1 и наиболее коммерчески успешной модели PDP-11. Особен- ностью этого семейства являлась низкая цена ($120,000, что состав- ляло 5% цены мейнфрейма IBM) и сопоставимая с мейнфреймами производительность на нечисловых задачах. Кроме этого, PDP-11 отличалась удачной «ортогональной» системой команд: можно было отдельно запоминать команды, и отдельно – методы доступа к опе- рандам. Все регистры, в том числе служебные (указатель стека, счетчик команд), одинаково использовались со всеми командами.
    Все эти факторы способствовали очень широкому распростра- нению компьютеров этого семейства, а вместе с ними и операцион- ной системы Unix. Операционная система UNIX была разработана сотрудниками Bell Labs, в первую очередь Кеном Томпсоном, Ден- нисом Ритчи и Дугласом Макилроем. В 1969 году Кен Томпсон, стремясь реализовать идеи, которые были положены в основу Mul- tics, но на более скромном аппаратном обеспечении (DEC PDP-7), написал первую версию новой операционной системы. Брайан Кер- ниган придумал для неё название – UNICS (UN-multiplexed Infor- mation and Computing System – примитивная информационная и вычислительная служба) – в противовес Multics. Позже это назва- ние сократилось до UNIX. В ноябре 1971 года вышла версия для
    PDP-11. Эта версия получила название «первая редакция» (Edition 1) и была первой официальной версией. Системное время все реализа- ции UNIX отсчитывают с 1 января 1970 года.
    UNIX-системы имеют большую историческую важность.
    UNIX популяризовала предложенную в Multics идею иерархической файловой системы с произвольной глубиной вложенности. Еще од- ной инновацией Multics, популяризированной UNIX, являлся интер-

    16 претатор команд. Так как интерпретатор и команды операционной системы – обычные программы, пользователь мог выбирать их в со- ответствии со своими предпочтениями или даже написать собствен- ную оболочку. Наконец, новые команды можно добавлять к системе без перекомпиляции ядра. Предложенный в командной строке UNIX способ создания цепочек программ, последовательно обрабатываю- щих данные (конвейер, pipeline), способствовал использованию па- раллельной обработки данных.
    Существенными особенностями UNIX были полная ориента- ция на текстовый ввод-вывод и предположение, что размер машин- ного слова кратен восьми битам. Первоначально в UNIX не было даже редакторов двоичных файлов – система полностью конфигу- рировалась с помощью текстовых команд. Наибольшей и наимень- шей единицей ввода-вывода служил текстовый байт, что полностью отличало ввод-вывод UNIX от ввода-вывода других операционных систем. Ориентация на текстовый восьмибитный байт сделала UNIX более масштабируемой и переносимой, чем другие операционные системы. UNIX способствовала широкому распространению регу- лярных выражений, которые были впервые реализованы в текстовом редакторе ed для UNIX. Возможности, предоставляемые UNIX- программами, стали основой стандартных интерфейсов операцион- ных систем (POSIX).
    Среди примеров известных UNIX подобных операционных систем: BSD, Solaris, Linux, Minix, Android, MeeGo, NeXTSTEP, macOS.
    Отметим, что в нашей стране также были распространены компьютеры, аналогичные семействам IBM /360 и DECPDP. В конце
    70-х начале 80-х годов в СССР и ряде соцстран разрабатывалось се- мейство управляющих ЭВМ (СМ ЭВМ). Наиболее развитой линией в семействе СМ ЭВМ был ряд машин, совместимых по системе ко- манд и архитектуре с машинами PDP-11фирмы DEC. На них, например, использовались операционные системы РАФОС (аналог
    RT-11, системы реального времени для компьютера PDP-11), ДЕ-
    МОС (советско-российский клон Unix, созданный на основе BSD).
    Аналогом серии мейнфреймов IBM /360 и /370 в СССР яв- лялась «Единая система электронных вычислительных машин»
    (ЕС ЭВМ). Операционная система ОС ЕС разрабатывалась как клон OS /360 путем дизассемблирования и адаптации исходных ко-

    17 дов. Версия ОС ЕС 7 использовала концепцию гипервизора (вир- туальной машины). Эта версия – аналог операционной системы
    VM, еще одного типа операционных систем компьютеров серии
    /360 /370.
    В целом можно отметить, что третье поколение компьютеров являлось источником основных архитектурных инноваций, исполь- зуемых в современных операционных системах. Роль четвертого поколения заключается в широком внедрении этих инноваций.
    Четвертое поколение компьютеров и операционных си-
    стем (с 1980 года), персональные вычисления. Следующий этап эволюции операционных систем связан с появлением больших инте- гральных схем (БИС), по-английски large scale integration (LSI). С точки зрения аппаратной архитектуры персональные компьютеры
    (микрокомпьютеры) были похожи на PDP-11, но значительно усту- пали по цене. Теперь каждый желающий получил возможность ку- пить собственный компьютер.
    Первой операционной системой для микрокомпьютеров была
    CP/M (Control Program for Microcomputers), разработчик Гари
    Килдэлл, Digital Research. Она работала на первых 8-разрядных си- стемах с процессором Intel 8080, Zilog Z80. С появлением в 1981 го- ду новой серии IBM PC – совместимых компьютеров, на базе 16 разрядного процессора Intel 8088, на рынке программного обеспече- ния микрокомпьютеров операционную систему CP/M сменила си- стема MS- DOS компании Microsoft.
    Операционные системы для первых микрокомпьютеров пол- ностью основывались на вводе команд с клавиатуры. Однако еще в
    60-е годы в научно-исследовательском институте Стэнфорда (Stan- ford ResearchInstitute) Дугласом Энгельбартом был изобретен графи- ческий интерфейс пользователя (GUI, Graphical User Interface), в ко- тором элементы интерфейса (меню, кнопки, значки, списки и т. п.), представленные пользователю на дисплее, исполнены в виде графи- ческих изображений. Графический интерфейс был реализован в про- тотипе современных персональных компьютеров Xerox Alto, разра- ботанном в исследовательском центре Xerox PARC в 1973 году.
    На Xerox Alto использовались программы с графическими ме- ню, пиктограммами и другими элементами, ставшие привычными лишь с появлением операционных систем Mac OS и Microsoft
    Windows. Для Xerox Alto были разработаны текстовые процессоры

    18
    Bravo и Gypsy, работавшие по принципу WYSIWYG (предшествен- ники Microsoft Word), редакторы графической информации (растро- вых изображений, печатных плат, интегральных схем и др.), среда
    Smalltalk (объектно-ориентированное программирование).
    Первой успешной коммерческой реализацией GUI для пер- сональных компьютеров была система Apple Macintosh, изготов- ленная под руководством Стива Джобса в 1984 году. Под влиянием успехов Apple фирма Microsoft в 1985 году выпускает свою реали- зацию GUI – систему Windows. На протяжении 10 лет система Win- dows исполняла роль графической оболочки поверх MS-DOS. Были разработаны еще две линейки настольных операционных систем.
    Семейство Windows 9x включает в себя Windows 95, Windows 98 и
    Windows ME. Оно являлось промежуточным семейством 32-разрядных систем. Семейство Windows NT – современные версии операцион- ной системы Windows, берущие начало от системы Windows NT 3.1, выпущенной в 1993 году. Наиболее популярные версии операцион- ных систем этого семейства: Windows NT 4.0; Windows 2000 (NT
    5.0); Windows XP (NT 5.1); Windows Vista (NT 6.0); Windows 7 (NT
    6.1); Windows 8 (NT 6.2)
    ); Windows 10 (NT 10.0).
    Главными конкурентами систем Windows в персональных вы- числениях становятся различные производные системы Unix: семей- ство операционных систем Apple macOS (BSD), Google Android
    (Linux), Ubuntu (Linux). Для серверных приложений и высокопроиз- водительных вычислений операционная система Unix (в частности,
    Linux) является доминирующей операционной системой.
    Современные компьютеры и операционные системы. Раз- витие аппаратных технологий приводит к уменьшению размеров, повышению быстродействия, увеличению коммуникационных воз- можностей, снижению стоимости и распространению вычислитель- ной техники. В распоряжении крупнейших компаний, таких как
    Google, Amazon, Facebook, Microsoft и др. находится огромная вы- числительная инфраструктура, включающая центры обработки и хранения данных, сети передачи данных, спутники связи и перифе- рийное оборудование. Важнейшим видом периферийного оборудо- вания являются мобильные устройства, включая смартфоны, план- шетные компьютеры, автомобильные компьютеры, встраиваемые системы. По некоторым оценкам с данной инфраструктурой непо- средственно взаимодействует примерно 90% всего населения Земли.

    19
    Новые технологии в области операционных систем, по-видимому, будут связаны с развитием методов управления и внедрением вы- числений во все сферы человеческой жизни. Для такой формы вы- числений используется термин ubiquitous computing – «вездесущие вычисления». «Вездесущие вычисления» охватывают широкий набор направлений, связанных с операционными системами, вклю- чая распределённые вычисления, мобильные вычисления, мобиль- ные сети, сенсорные сети, человеко-машинное взаимодействие и искусственный интеллект.
    Рассмотрим некоторые классификационные признаки и при- меры операционных систем.
    По признаку поддержки многозадачности различают одноза- дачные и многозадачные операционные системы. Однозадачные си- стемы в основном выполняют функцию предоставления расширен- ной машины. Из рассмотренных операционных систем однозадач- ными являются MS-DOS, CP/M, RT-11 (версии SJ, SL), ранние вер- сии Unix. Примеры многозадачных систем – Unix, Windows, опера- ционная система персональных компьютеров с графическим интер- фейсом IBM OS/2.
    По числу пользователей операционные системы делятся на однопользовательские и многопользовательские. Главное отличие многопользовательских систем – это наличие средств защиты ин- формации одного пользователя от несанкционированного доступа со стороны других пользователей. Многозадачные системы могут быть однопользовательскими, например, Windows 3.1. Теоретически воз- можны однозадачные многопользовательские системы. Одной из первых многопользовательских систем с развитыми механизмами защиты была система Multics. Пример другой однопользовательской системы Microsoft – MS-DOS. В системах на базе ядра NT реализо- ваны полноценные механизмы защиты многопользовательского ре- жима.
    По аппаратным средствам, на которых функционируют опе- рационные системы, их можно разделить на системы для мейн- фреймов, миникомпьютеров, микрокомпьютеров. Примеры этих операционных систем были рассмотрены в историческом обзоре.
    Существуют также встраиваемые системы. Они работают непосред- ственно в устройствах, которыми управляют: средствах управления техническими процессами; станках с ЧПУ; банкоматах, платежных

    20 терминалах; телекоммуникационном оборудовании (Windows IoT,
    QNX). В отдельную группу можно выделить операционные системы мобильных устройств: смартфонов, планшетных компьютеров, ум- ных часов и др. (iOS, Android, Windows 10 Mobile). Самые произво- дительные компьютеры нашего времени (суперкомпьютеры и кла- стерные системы) в основном работают под управлением Linux. В классификации, основанной на аппаратных средствах, разделение идет по возможности работы с устройствами ввода-вывода и пери- ферийным оборудованием. Наименьшие возможности у встраивае- мых систем интеллектуальных смарт-карт (Java Card, MULTOS).
    Наибольшие возможности – у суперкомпьютеров.
    По особенностям работы в сети операционные системы де- лятся на сетевые и распределенные. Сетевая операционная система – это обычная система, расширенная поддержкой сетевого взаимодей- ствия. По методам реализации сетевых функций системы различа- ются по способам реализации справочной информации о сетевых ресурсах и адресации; механизмам обеспечения прозрачности до- ступа. В линейке Windows первой сетевой системой была Windows for Workgroups 3.1. Распределённая операционная система, динами- чески и автоматически распределяя работы по различным машинам системы для обработки, заставляет набор сетевых машин обрабаты- вать информацию параллельно. Пользователь распределённой опе- рационной системы не имеет сведений, на какой машине выполня- ется его работа. Примеры распределенных систем – Plan 9, Amoeba.
    Существует несколько вариантов реализации многозадачных операционных систем. В зависимости от способа переключения с
    задачи на задачу различают системы с не вытесняющей многозадач- ностью и вытесняющей многозадачностью. Вытесняющая многоза- дачность предполагает использование прерываний от таймера как основной способ переключения задач. Операционные системы се- мейств Windows 1.0-3.11 использовали не вытесняющую многоза- дачность, а Windows 9x, WindowsNT – вытесняющую.
    Еще одним аспектом реализации многозадачности является
    использование концепции нитей (потоков) исполнения – многоза- дачности внутри одного процесса. Нити использовались в Windows, начиная с Windows 95.
    Многозадачные системы можно разделить на три большие группы по критерию эффективности алгоритма планирования и, что

    21 эквивалентно, по областям применения многозадачных операцион- ных систем.
    Критерии эффективности системы пакетной обработки ори- ентированы на обеспечение максимальной пропускной способности, максимально полной загрузки вычислительной системы. Критерий характеризуется процентом загрузки центрального процессора; ко- личеством заданий, выполняемых в единицу времени; оборотным временем (среднее время вычисления задачи). В таких системах вы- бор нового задания для выполнения определяется от текущей внут- ренней ситуации, складывающейся в системе. Время выполнения задачи зависит от того, какие задачи загружены одновременно с ней и как в них происходит ввод-вывод. Поэтому невозможно гаранти- ровать выполнение некоторого задания в течение определенного интервала времени, что является недостатком.
    Система разделения времени устраняет данный недостаток пакетных систем. В таких системах распределение времени процес- сора организовано на основе квантования: периодического пере- ключения управления между всеми одновременно запущенными задачами. С точки зрения задачи это создает иллюзию монопольного использования процессора (концепция терминала). Эффективность систем разделения времени определяется эргономическими показа- телями, связанными с субъективными ощущениями пользователя, как быстро система обрабатывает команды терминала. Системы раз- деления времени обладают меньшей пропускной способностью из-за того, что ресурсы процессора тратятся на постоянное переключение между задачами.
    Реальное время в операционных системах – это способность операционной системы обеспечить требуемый уровень сервиса в определённый промежуток времени. Системы реального времени применяют для управления техническими объектами. В них суще- ствует предельно допустимое время, в течение которого должна быть выполнена программа управления объектом. Это время назы- вается временем реакции, а свойство операционных систем опера- тивно реагировать на события – реактивностью. Различают системы жёсткого реального времени – с режимом работы системы, при ко- тором нарушение временных ограничений равнозначно отказу си- стемы (RTLinux); системы мягкого реального времени – с режимом

    22 работы системы, при котором нарушения временных ограничений приводят к снижению качества работы (QNX, RT-11, Windows IoT).
    Другими важными классификационными признаками являют- ся: возможность исполнения операционной системы на разном типе компьютеров; особенности архитектур и типов ядра; используемые методы управления памятью; организация файловых систем. Они рассматриваются в следующих разделах лекционного курса.
    Экзаменационные вопросы по разделу I
    1. Определение операционной системы и ее функции. Понятие виртуальной машины. Управление ресурсами.
    2. История разработки операционных систем, поколения ЭВМ и операционных систем. Влияние аппаратуры на развитие опера- ционных систем. Лампы – коммутационные панели. Транзисто- ры – пакетные системы. Интегральные схемы – многозадач- ность. СБИС – персональные компьютеры.
    3. Классификация и примеры операционных систем. Многозадач- ность. Вид многозадачности. Многопоточная обработка. Крите- рии эффективности многозадачных операционных систем.

    23
      1   2   3   4   5   6   7   8


    написать администратору сайта