Операционные системы 2015, лекция № 1

27
Операционные Системы 1. Введение Брагин Алексей Владимирович [email protected] ИУ9, МГТУ им. Н.Э. Баумана

Transcript of Операционные системы 2015, лекция № 1

Page 1: Операционные системы 2015, лекция № 1

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

1. Введение

Брагин Алексей Владимирович[email protected]

ИУ9, МГТУ им. Н.Э. Баумана

Page 2: Операционные системы 2015, лекция № 1

В этой лекции…

• Организационная часть• Обзор курса

• Об авторе

• Общая структура курса

• Правила

• Операционные системы• Что это?

© 2015 Брагин А.В. [email protected] 2

Page 3: Операционные системы 2015, лекция № 1

Информационные Ресурсы

• Вся актуальная информация по курсу:http://www.reactos.org/wiki/Study

• Информация по ReactOS• Список рассылки. Только для технических вопросов,

англоязычный[email protected]

• Техническое вики проекта ReactOShttp://www.reactos.org/wiki

• А.С.Танненбаум «Современные ОС» - основа

• в помощь!

© 2015 Брагин А.В. [email protected] 3

Page 4: Операционные системы 2015, лекция № 1

Обзор курса

• Один семестр

• Два модуля• Общая теория построения ОС

• Практика реализации ОС

• Лабораторные работы• Практические задачи, связанные с внутренним

устройством ОС

• Вы научитесь• Компилировать ОС собственными силами

• Модифицировать ядро и компоненты ОС

© 2015 Брагин А.В. [email protected] 4

Page 5: Операционные системы 2015, лекция № 1

Обзор курса. Результаты

• Что вы узнаете из этого курса?• Основные компоненты большинства ОС• Архитектура ОС• Наиболее важные интерфейсы и алгоритмы• Как сделаны популярные, современные ОС• Как сделаны малоизвестные, исследовательские ОС

• Зачем?• Большинство из вас не будет разрабатывать ОС• Но любой учёный или инженер должен понимать основы,

или «как оно работает»• Знания из этого курса помогут понять, как сделать лучшее

ПО, и найти лучший компромисс при разработке ПО.• Это интересно

© 2015 Брагин А.В. [email protected] 5

Page 6: Операционные системы 2015, лекция № 1

Что такое Операционная Система?

• Современный «компьютер» состоит из:• Одного или нескольких процессоров

• Основной памяти

• Дополнительной памяти

• Периферийного оборудования• Ввод, вывод

• Хранение

• Для управления всем этим нужно особое ПО –операционная система

© 2015 Брагин А.В. [email protected] 6

Page 7: Операционные системы 2015, лекция № 1

Что такое ОС? (2)

© 2015 Брагин А.В. [email protected] 7

Прикладное ПО (браузер, мессенджер, и т.п.)

Интерфейс пользователя

Операционная система

«Железо»

• ОС – это всё то, что не нужно писать программисту при разработке прикладного ПО

Page 8: Операционные системы 2015, лекция № 1

Что такое ОС? (3)• ОС – это библиотека, и

• с одной стороны это так:• все операции ввода/вывода требуют вызовов ОС

(системные вызовы)

• с другой стороны это не так:• Процессор и память используются без системных вызовов

• ОС может сама вмешиваться в процесс выполнения

• ОС – это расширенная машина• Абстрагирует плохой интерфейс железа

• ОС – это менеджер ресурсов• Позволяет программам работать одновременно

• Управляет памятью, вводом/выводом, и пр.

© 2015 Брагин А.В. [email protected] 8

Page 9: Операционные системы 2015, лекция № 1

История операционных систем

• Почему ОС существуют в том виде, в котором они есть сейчас

• Определить функции современных ОС

• Развитие смартфонов повторяет историю развития ПК

© 2013 Брагин А.В. 9

Page 10: Операционные системы 2015, лекция № 1

Эволюция ОС

• Последовательное выполнение заданий

• Простая пакетная обработка (batch systems)

• Мультипрограммирование в пакетных системах

• Разделение времени (time sharing)

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

© 2015 Брагин А.В. [email protected] 10

Page 11: Операционные системы 2015, лекция № 1

Последовательное выполнение

• Самый ранний этап

• Операционная система отсутствует

• Программист работает напрямую с аппаратурой

• Проблемы• Много времени тратится на то, чтобы подготовить

программу к запуску• Прямой доступ ко всему оборудованию• Сложно программировать

• Отсутствие понятий автоматизированного планирования заданий• Пользователи резервировали своё вычислительное время в

специальном расписании

© 2015 Брагин А.В. [email protected] 11

Page 12: Операционные системы 2015, лекция № 1

Простая пакетная обработка

• Пакетная обработка (batch processing)• Уменьшение времени подготовки программ за счёт

группировки подобных заданий

• Это и были первые мейнфреймы

• Автоматическое последовательное выполнение заданий, автоматическая передача управления от одной задачи к другой. Возник язык управления заданиями Job Control Language (JCL)

• Резидентный монитор• Предшественник операционной системы• Управление процессором переключалось между

монитором и пользовательской программой

© 2015 Брагин А.В. [email protected] 12

Page 13: Операционные системы 2015, лекция № 1

Простая пакетная обработка (2)

• Резидентный монитор• Постоянно находится в памяти• Управляет последовательностью событий• Включает интерпретатор языка JCL

• Работа монитора• Загрузка заданий

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

• Загрузка дополнительных нерезидентных частей монитора и общих функций, необходимых для программ (т.н. «загрузка по требованию»)

© 2015 Брагин А.В. [email protected] 13

Page 14: Операционные системы 2015, лекция № 1

Простая пакетная обработка (3)

• Монитор• Управляет последовательностью действий• Цикл выполнения

• Монитор загружает задачу и передаёт управление загруженной программе

• Программа выполняется• Когда программа завершила выполнение, управление возвращается

монитору

• Процессор• Вначале выполняет инструкции из памяти, в которой находится

монитор• Во время выполнения может быть загружена задача и

процессор будет выполнять пользовательскую программу• Передача управления заданию: процессор выполняет инструкции из

области памяти, где находится пользовательская программа• Передача управления обратно монитору: процессор выполняет

инструкции из области памяти, где находится монитор

© 2015 Брагин А.В. [email protected] 14

Page 15: Операционные системы 2015, лекция № 1

Простая пакетная обработка (4)

• Общие наблюдения• Пользовательская программа может содержать ошибки

• Опасно для всей вычислительной системы• Может перезаписать ту область памяти, в которой находится

монитор (или операционная система)• Задача может не передать управление обратно в монитор

(зациклилась)• «Не изобретать велосипед»

• Многие пользовательские программы выполняет похожие действия

• Нужна библиотека подпрограмм, которые реализуют функции, требуемые всеми программами, напр. операции ввода/вывода

• Эти проблемы и определяли дальнейшее развитие и архитектуру операционных систем

© 2015 Брагин А.В. [email protected] 15

Page 16: Операционные системы 2015, лекция № 1

Поддержка в аппаратуре• Защита памяти для ОС

• Разделение памяти на область ОС и область пользователя• Процессор обнаруживает недопустимое обращение к

памяти и прерывает выполнение задания

• Привилегированные инструкции• Могут выполняться только операционной системой• Процессор обнаруживает недопустимую инструкцию и

прерывает выполнение задания

• Таймер• Устанавливать временные ограничения на задачи

• Прерывания• Дают ОС больше гибкости в управлении

пользовательскими программами

© 2015 Брагин А.В. [email protected] 16

Page 17: Операционные системы 2015, лекция № 1

Режимы работы в современных ОС

• режим пользователя (user mode)• некоторые области памяти защищены

• некоторые инструкции запрещены

• режим ядра (kernel mode)• функции операционной системы

• разрешён доступ к защищённым областям памяти

• разрешено исполнение привилегированных инструкций

© 2015 Брагин А.В. [email protected] 17

Page 18: Операционные системы 2015, лекция № 1

Системы разделения времени• Интерактивность

• Несколько пользователей могут одновременно работать с системой через терминалы

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

• ОС распределяет процессорное время между пользовательскими программами

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

будет выделено 1/N эффективной вычислительной мощности (а также ещё есть накладные расходы на саму ОС)

• Т.к. человек «медленнее» в сравнении со скоростью процессора, то время ответа такого разделённого компьютера может быть близко ко времени ответа выделенного компьютера

• Цели• Быстрое время ответа

• Пользователю нужен ответ от компьютера как можно быстрее• Разделение времени создаёт иллюзию, что ему доступен весь компьютер

целиком

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

© 2015 Брагин А.В. [email protected] 18

Page 19: Операционные системы 2015, лекция № 1

Современные ОС

• UNIX

• Apple Macintosh

• Microsoft Windows

• Свободное ПО – GNU

• Minix – AST

• Linux

• ReactOS

• Встраиваемые ОС

© 2015 Брагин А.В. [email protected] 19

Page 20: Операционные системы 2015, лекция № 1

UNIX

• Философия – Ken Thompson и Dennis Ritchie• Короткий, простой, модульный код

• UNiplexed Information and Computing Service

• Разработана в 1969 в Bell Systems для PDP-7

• В 1973 переписана на новом языке С• BCPL -> B -> C

• Возникли многие производные системы• BSD, AIX (IBM), HP-UX (HP), IRIX (SGI), Solaris (Sun)

• Linux, FreeBSD

© 2015 Брагин А.В. [email protected] 20

Page 21: Операционные системы 2015, лекция № 1

Apple Macintosh

• MacOS• 1984 – Motorola 68000

• 1998 – PowerPC

• MacOS X• 1998 – PowerPC

• 2006 – Intel x86, x64, ARM

• XNU – X is Not Unix

• Гибридное ядро (Mach + BSD)

© 2015 Брагин А.В. [email protected] 21

Page 22: Операционные системы 2015, лекция № 1

IBM / Microsoft Windows

• 1981 Персональный Компьютер IBM (MS/DOS)

• 1993 – Windows NT 3.1

• 1996 – Windows NT 4.0

• 2000 – Windows NT 5.0 (2000)

• 2001 – Windows NT 5.1 (XP)

• 2009 – Windows NT 6.1 (7)

• 2013 – Windows NT 6.2 (8)

• 2015 – Windows NT ?.? (10)

© 2015 Брагин А.В. [email protected] 22

Page 23: Операционные системы 2015, лекция № 1

Свободное ПО - GNU

• Проект GNU начат в 1984

• GNU is Not Unix

• Цель – свободный UNIX

• 1ый шаг: свободные UNIX утилиты• Компилятор

• Библиотеки

• Emacs

• Bash

• 2ой шаг: …

© 2015 Брагин А.В. [email protected] 23

Page 24: Операционные системы 2015, лекция № 1

Minix – Andrew Tannenbaum

• 1987 – Mini Unix от Andrew Tannenbaum

• Minix 3 – маленькая микроядерная ОС

• Совместимая с NetBSD

• Главным образом для учебных целей

© 2015 Брагин А.В. [email protected] 24

Page 25: Операционные системы 2015, лекция № 1

Linux – Linus Torvalds

• 1 версия вышла в 1991

• UNIX Linus’а = Linux

• Linux – ядро для GNU

• GNU/Linux - ОС• Вместе со всем тем, что сделал Richard Stallman в

рамках проекта GNU

• Дистрибутивы: RedHat, Debian, Ubuntu и ещё 999

© 2015 Брагин А.В. [email protected] 25

Page 26: Операционные системы 2015, лекция № 1

ReactOS

• С 1997 появились первые сборки

• Свободная реализация Windows NT 5.1

• Совместима с драйверами и ПО для Windows

• Схожие с GNU и Linux принципы:• GNU: сделаем свободный UNIX

• Linux: сделаем свободное UNIX-ядро

• ReactOS: сделаем свободный Windows (ядро+утилиты)

© 2015 Брагин А.В. [email protected] 26

Page 27: Операционные системы 2015, лекция № 1

Встраиваемые ОС

• ОС для мобильных устройств

• Android от Google

• Tizen от Samsung

• Sailfish от Jolla

• ...

© 2015 Брагин А.В. [email protected] 27