Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Ответы к экзамену (Операционные системы).docx
Скачиваний:
30
Добавлен:
13.02.2021
Размер:
314.83 Кб
Скачать

Оглавление

2. Операционные системы: определение, классификация, задачи, основные функции. 4

5. Многозадачность: определения; механизмы переключения задач. 14

6. Кооперативная многозадачность. 16

7. Вытесняющая многозадачность. 16

8. Алгоритмы переключения задач. 17

9. Очереди задач и система приоритетов. 18

10. Организация памяти: сегментная, страничная. 19

11. Память приложения: память команд, память данных, стек. 20

12. Загрузка приложения в память, статическая память. 22

13. Динамическая память, алгоритмы управления. 23

14. Виртуальная память, файл подкачки. 23

15. Многопоточные программы, стандарт POSIX. 25

16. Синхронизация потоков. 26

17. Семафоры, алгоритм Дейкстры. 27

18. Взаимодействие между потоками. 28

19. Файловые системы: определение, виды и функции. 30

20. Архитектура файловых систем на примере FAT16. 31

21. Особенности файловых систем для различных носителей данных. 32

22. Журналирование и квоты в файловых системах. 33

23. Параллельные вычисления; закон Амдала. 34

24. Структуры параллельных вычислительных систем. 37

25. Семейство операционных систем UNIX. 39

26. Основные концепции UNIX. 40

  1. Этапы развития вычислительной техники, предпосылки появления современных операционных систем.

Операционные системы появились и развивались в процессе конструирования компьютеров, эти события исторически тесно связаны.

Первое поколение (1945 – 1955): электронные лампы

Первые машины были цифровыми, некоторые – с использованием электронных ламп. Работу части из них можно было запрограммировать. Но это были очень неэффективные машины, так как много времени уходило на выполнение простейших команд. Примеры - «Колоссус» А.Тьюринга, «Эниак» В. Мочли, Z3 К.Цузе и т.д.

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

Режим работы программиста заключался в том, чтобы записаться на определенное машинное время на специальном стенде, затем спуститься в машинный зал, вставить свою коммутационную панель (или перфокарту после 1950 г.) в компьютер и провести следующие несколько часов в надежде, что в процессе работы не выйдет из строя ни одна из примерно 20 тысяч электронных ламп.

Решаемые задачи: простые математические и числовые расчёты (уточнение таблиц тригонометрических функций, логарифмов, вычисление траекторий полёта артиллерийских снарядов).

Второе поколение (1955 – 1965): транзисторы и системы пакетной обработки

  • Повышение надёжности, более долгая работа машин.

  • Разделение персонала (проектировщики, сборщики, программисты, оператора).

  • Появление мейнфреймов (очень дорогие).

  • Прообраз ОС (программа для считывания и запуска команд из магнитных лент).

  • Управляющие перфокарты – прообраз оболочек и интерпретаторов командной строки.

  • Процесс реализации программы:

    • запись программы на языке Фортран или ассемблер;

    • перенос записи на перфокарты;

    • считывание данных из перфокарт;

    • запись на магнитную ленту;

    • запуск специальной программы (прообраз ОС), которая считывала первое задание с ленты и запускала его;

    • запись выходных данных на вторую магнитную ленту;

    • печать данных после обработки с помощью IBM 1401 в автономном режиме (без связи с главным компьютером).

Большие компьютеры второго поколения использовались главным образом для научных и технических вычислений, таких как решение дифференциальных уравнений в частных производных, часто встречающихся в физике и инженерных задачах. Типичными операционными системами были FMS (Fortran Monitor System) и IBSYS (операционная система, созданная корпорацией IBM для компьютера IBM 7094).

Третье поколение (1965 – 1980): интегральные схемы и многозадачность

  • 2 типа машин: с пословной обработкой данных (IBM7094 – большие научные компьютеры), с посимвольной обработкой (IBM 1401 – коммерческое использование в банках и т.д.).

  • Серия машин IBM System / 360 – программно-совместимые машины, различающиеся производительностью и ценой. Имели одинаковую структуру, набор команд.

  • Использование малых интегральных схем (преимущество в цене и качестве по сравнению с транзисторами).

  • Операционная система OS/360 (сложная и большая).

  • Появление многозадачности (разбиение памяти на участки (разделы). В каждом из которых выполнялось одно задание).

  • Способность считывания задания с перфокарт на диск для последующего выполнения (подкачка данных).

  • Разделение времени (появление терминалов). Первая универсальная система с режимом разделения времени – CTSS разработана M.I.T. для IBM 7094.

  • MULTICS - представляли себе одну огромную вычислительную машину, воспользоваться услугами которой мог любой проживающий в окрестностях Бостона человек. Прообраз облачных вычислений. Оказала влияние на ОС UNIX (FreeBSD, Linux, IOS, Android)

  • Распространение мини-компьютеров (PDP-1) – малая цена.

Четвёртое поколение (1980 – н.в.): персональные компьютеры

  • Появление БИС - возможность купить персональный компьютер получил каждый человек.

  • 1974 г. – появление профессора Intel 8080 и на его базе – микрокомпьютера с диском.

  • Создание Г.Килдэллом дисковой ОС – CP/M.

  • Начало 1980-х – появление персональных компьютеров IBM PC.

  • MS-DOS – ОС для IBM PC.

  • CP/M и MS-DOS основывались на командах с клавиатуры.

  • Д. Энгельбарт изобрёл GUI с окнами, значками и мышью.

  • Появление ОС Windows NT (переименована в Windows 2000), 32-битная система, которая была написана заново. Затем – Windows Me, Windows XP.

  • В середине 1980-х – рост сетей ПК, работающих под управлением сетевых операционных систем и распределенных операционных систем.

  • В сетевых ОС пользователи знают о существовании множества компьютеров могут войти в систему удаленной машины и скопировать файлы с одной машины на другую. На каждой машине работает своя локальная операционная система и имеется собственный локальный пользователь (или пользователи). Сетевой ОС нужен контроллер сетевого интерфейса и определённое низкоуровневое ПО для управления контроллером, программы для входа на удалённую машину.

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

Пятое поколение (1990 – н.в.): мобильные компьютеры

  • Первый смартфон появился в середине 1990-х годов (Nokia N9000 – комбинация телефона и КПК).

  • Сначала ОС была Symbian OS для Samsung, Sony Ericsson, Motorola и Nokia.

  • Затем в начале 2000-х появились RIM Blackberry OS и Apple iOS.

  • 2011 – для Nokia – ОС Windows Phone.

  • 2008 – первое место – Android (открытый исходный код и доступ по разрешительной лицензии, приложения на Java).

  1. Операционные системы: определение, классификация, задачи, основные функции.

Определение

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

С одной стороны, она опирается на базовое программное обеспечение ПК, входящее в его систему BIOS, с другой стороны, она сама является опорой для программного обеспечения более высоких уровней – прикладных и большинства служебных приложений.

Для того чтобы компьютер мог работать, на его жестком диске должна быть установлена (записана) операционная система. При включении компьютера она считывается с дисковой памяти и размещается в ОЗУ. Этот процесс называется загрузкой операционной системы.

Операционные системы различаются особенностями реализации алгоритмов управления ресурсами компьютера, областями использования.

Сегодня наиболее известными операционными системами являются ОС семейства Microsoft Windows и UNIX-подобные системы.

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

Операционная система состоит из четырех основных частей:

  1. Первая часть — ядро, низкоуровневая основа любой ОС, выполняемая аппаратурой в особом привилегированном режиме. Ядро загружается в память один раз и находится в памяти резидентно – постоянно, по одним и тем же адресам. Ядро — командный интерпретатор, «переводчик» с программного языка на «железный», язык машинных кодов.

  2. Вторая часть — Подсистема управления ресурсами (resource allocator) — управляет вычислительными ресурсами компьютера — оперативной и внешней памятью, процессором

  3. Третья часть — Управляющая программа (control program, supervisor) – управляет исполнением других программ и функционированием устройств ввода-вывода.(используются специализированные программы для управления различными устройствами, входящими в состав компьютера. Драйвера «системные библиотеки»)

  4. Четвертая часть — удобная оболочка, с которой общается пользователь — интерфейс. Своего рода красивая обертка, в которую упаковано скучное и не интересное для пользователя ядро.

Классификация операционных систем

Так, в зависимости от алгоритма управления процессором:

  • Однозадачные и многозадачные;

  • Однопользовательские и многопользовательские;

  • Однопроцессорные и многопроцессорные системы;

  • Локальные и сетевые.

По числу одновременно выполняемых задач:

  • Однозадачные (MS DOS);

  • Многозадачные (OS/2, Unix, Windows).

В однозадачных системах используются средства управления периферийными устройствами, средства управления файлами, средства общения с пользователями. Многозадачные ОС используют все средства, которые характерны для однозадачных, и, кроме того, управляют разделением совместно используемых ресурсов: процессор, ОЗУ, файлы и внешние устройства.

В зависимости от областей использования многозадачные ОС подразделяются на три типа:

  • Системы пакетной обработки (ОС ЕС);

  • Системы с разделением времени (Unix, Linux, Windows);

  • Системы реального времени (RT11).

Системы пакетной обработки предназначены для решения задач, которые не требуют быстрого получения результатов. Главной целью ОС пакетной обработки является максимальная пропускная способность или решение максимального числа задач в единицу времени.

Эти системы обеспечивают высокую производительность при обработке больших объемов информации, но снижают эффективность работы пользователя в интерактивном режиме.

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

Системы реального времени применяются для управления технологическим процессом или техническим объектом, например, летательным объектом, станком и т.д.

По числу одновременно работающих пользователей на ЭВМ ОС:

  • однопользовательские (MS DOS);

  • многопользовательские (Unix, Linux, Windows 95 - XP).

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

В многопользовательских ОС существуют средства защиты информации каждого пользователя от несанкционированного доступа других пользователей.

По числу процессоров:

  • однопроцессорные;

  • многопроцессорные (OS/2, Net Ware, Widows NT);

По способу организации вычислительного процесса:

    • ассиметричные;

    • симметричные.

По сетевому признаку:

  • сетевые (предназначены для управления ресурсами ПК включенных в сеть с целью совместного использования ресурсов);

  • локальные (применяются на автономных ПК или ПК, которые используются в компьютерных сетях в качестве клиента).

Функции

Интерфейсные функции:

  • Управление аппаратными средствами, устройствами ввода-вывода

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

  • Поддержка многозадачности

  • Ограничение доступа, многопользовательский режим

  • Сеть

Внутренние функции:

  • Обработка прерываний

  • Виртуальная память

  • «Планировщик» задач

  • Буферы ввода-вывода

  • Обслуживание драйверов устройств

  1. Архитектура операционных систем; монолитные ОС, микроядерные ОС.

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

Операционная система состоит из четырех основных частей:

Первая часть — ядро, низкоуровневая основа любой ОС, выполняемая аппаратурой в особом привилегированном режиме. Ядро загружается в память один раз и находится в памяти резидентно – постоянно, по одним и тем же адресам. Ядро — командный интерпретатор, «переводчик» с программного языка на «железный», язык машинных кодов.

Вторая часть — Подсистема управления ресурсами (resource allocator) — управляет вычислительными ресурсами компьютера — оперативной и внешней памятью, процессором

Третья часть — Управляющая программа (control program, supervisor) – управляет исполнением других программ и функционированием устройств ввода-вывода.(используются специализированные программы для управления различными устройствами, входящими в состав компьютера. Драйвера «системные библиотеки»)

Четвертая часть — удобная оболочка, с которой общается пользователь — интерфейс. Своего рода красивая обертка, в которую упаковано скучное и не интересное для пользователя ядро.

Монолитное ядро (все вместе)

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

  • Планирование процессов

  • Управление файловой системой

  • Сетевое взаимодействие

  • Драйверы устройств

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

Преимущества:

Производительность — в виду того, что количество переключений из контекста режима пользователя в режим ядра сведено к минимуму;

Недостатки: 

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

Монолитный подход — простейший Первые ОС были монолитными, в них:

  • Нет определенной структуры

  • Нет уровней

  • Нет разделения на модули

Определенной структуры данные операционной системы не имеют. Это большой набор сервисных функций. Нет деления на слои и модули. ОС были простыми и большими, так как все время дописывались, засчет этого сильно росли. Пример – классический MS-DOS

  • Больше функциональности, меньше места (в то время было очень маленькое адресное пространство)

  • Разделение на уровни не было, программы могли работать с оборудованием напрямую, могли сами вызывать нужные драйверы

МИКРОЯДРО

Микроядро – ядро, содержащее только самые необходимые функции.

Идея: минимизировать само ядро, вынести как можно функциональности в режим пользователя (т.е. исполнять эту функциональность в виде обычных процессов).

Многие сервисы становятся пользовательскими процессами:

  • Драйверы устройств,

  • Файловые системы,

  • Менеджер виртуальной памяти,

  • Оконные системы графического интерфейса пользователя,

  • Службы безопасности

Данный подход популяризован ядром MACH («МАК»)

На основе MACH сделаны, среди прочих, Mac OSX (комп.Apple), GNUHurd.

Структура микроядра

Компоненты ОС, являющиеся внешними к микроядру реализуются в виде серверных процессов. Взаимодействие с ними осуществляется через обмен сообщениями, а не путем системных вызовов.

Микроядро основывается на механизме обмена сообщениями:

  • проверяет корректность сообщений

  • передает их между компонентами

  • проверяет, разрешен ли обмен сообщениями

Предоставляет доступ к оборудованию

Фактически реализует клиент-серверную архитектуру на одном компьютере.

Преимущества микроядра

  • Унифицированные интерфейсы – процессы могут обмениваться сообщениями, нет разницы между режимом пользователя и режимом ядра, все сервисы предоставляются через обмен сообщениями в клиент-серверной архитектуре. Например, запросы могут обрабатываться на удаленные машины.

  • Расширяемость – легче расширить, новые сервисы добавляются как расширяется функциональность программы

  • Портируемость (переносимость) – на новое оборудование нужно перенести микроядро.

  • Надежность, безопасность – меньше кода выполняется в режиме ядра, ошибки программ в режиме пользователя не влияют на остальную часть системы.

Недостатки микроядра

  • Больше расходов на взаимодействие между системными сервисами.

  • Каждое взаимодействие требует переключения режимов. Переходы из режима пользователя в режим ядра и обратно. Механизм передачи сообщений требует очень частого переключения контекста. Режим ядра – режим пользователя, они “съедают” значительную часть мощности ЦП.

  • Системные сервисы, работающие в режиме пользователя – это процессы, ОС нужно их планировать ( Диспетчеризация).

Минимальная функциональность в микроядре

1) Низкоуровневое управление памятью    -Отображение страниц на физическую память

— Все остальные механизмы предоставляются сервисами, работающими в режиме пользователя

  • Защита адресного пространства

  • Механизмы замещения страниц

  • Управление виртуальной памятью