Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

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

1,793 views

Published on

Слайды к первой лекции курса операционные системы в МГТУ им. Н.Э.Баумана.
Видео можно посмотреть на канале http://www.youtube.com/playlist?list=PLjSDyY6BQPVe2Zhxew5rJy2S-2_9t1vvn

Published in: Education
  • Login to see the comments

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

  1. 1. Операционные Системы 1. Введение Брагин Алексей Владимирович aleksey@reactos.org ИУ9, МГТУ им. Н.Э. Баумана
  2. 2. В этой лекции… • Организационная часть • Обзор курса • Об авторе • Общая структура курса • Правила • Операционные системы • Что это? © 2015 Брагин А.В. aleksey@reactos.org 2
  3. 3. Информационные Ресурсы • Вся актуальная информация по курсу: http://www.reactos.org/wiki/Study • Информация по ReactOS • Список рассылки. Только для технических вопросов, англоязычный! ros-dev@reactos.org • Техническое вики проекта ReactOS http://www.reactos.org/wiki • А.С.Танненбаум «Современные ОС» - основа • в помощь! © 2015 Брагин А.В. aleksey@reactos.org 3
  4. 4. Обзор курса • Один семестр • Два модуля • Общая теория построения ОС • Практика реализации ОС • Лабораторные работы • Практические задачи, связанные с внутренним устройством ОС • Вы научитесь • Компилировать ОС собственными силами • Модифицировать ядро и компоненты ОС © 2015 Брагин А.В. aleksey@reactos.org 4
  5. 5. Обзор курса. Результаты • Что вы узнаете из этого курса? • Основные компоненты большинства ОС • Архитектура ОС • Наиболее важные интерфейсы и алгоритмы • Как сделаны популярные, современные ОС • Как сделаны малоизвестные, исследовательские ОС • Зачем? • Большинство из вас не будет разрабатывать ОС • Но любой учёный или инженер должен понимать основы, или «как оно работает» • Знания из этого курса помогут понять, как сделать лучшее ПО, и найти лучший компромисс при разработке ПО. • Это интересно © 2015 Брагин А.В. aleksey@reactos.org 5
  6. 6. Что такое Операционная Система? • Современный «компьютер» состоит из: • Одного или нескольких процессоров • Основной памяти • Дополнительной памяти • Периферийного оборудования • Ввод, вывод • Хранение • Для управления всем этим нужно особое ПО – операционная система © 2015 Брагин А.В. aleksey@reactos.org 6
  7. 7. Что такое ОС? (2) © 2015 Брагин А.В. aleksey@reactos.org 7 Прикладное ПО (браузер, мессенджер, и т.п.) Интерфейс пользователя Операционная система «Железо» • ОС – это всё то, что не нужно писать программисту при разработке прикладного ПО
  8. 8. Что такое ОС? (3) • ОС – это библиотека, и • с одной стороны это так: • все операции ввода/вывода требуют вызовов ОС (системные вызовы) • с другой стороны это не так: • Процессор и память используются без системных вызовов • ОС может сама вмешиваться в процесс выполнения • ОС – это расширенная машина • Абстрагирует плохой интерфейс железа • ОС – это менеджер ресурсов • Позволяет программам работать одновременно • Управляет памятью, вводом/выводом, и пр. © 2015 Брагин А.В. aleksey@reactos.org 8
  9. 9. История операционных систем • Почему ОС существуют в том виде, в котором они есть сейчас • Определить функции современных ОС • Развитие смартфонов повторяет историю развития ПК © 2013 Брагин А.В. 9
  10. 10. Эволюция ОС • Последовательное выполнение заданий • Простая пакетная обработка (batch systems) • Мультипрограммирование в пакетных системах • Разделение времени (time sharing) • Современные операционные системы © 2015 Брагин А.В. aleksey@reactos.org 10
  11. 11. Последовательное выполнение • Самый ранний этап • Операционная система отсутствует • Программист работает напрямую с аппаратурой • Проблемы • Много времени тратится на то, чтобы подготовить программу к запуску • Прямой доступ ко всему оборудованию • Сложно программировать • Отсутствие понятий автоматизированного планирования заданий • Пользователи резервировали своё вычислительное время в специальном расписании © 2015 Брагин А.В. aleksey@reactos.org 11
  12. 12. Простая пакетная обработка • Пакетная обработка (batch processing) • Уменьшение времени подготовки программ за счёт группировки подобных заданий • Это и были первые мейнфреймы • Автоматическое последовательное выполнение заданий, автоматическая передача управления от одной задачи к другой. Возник язык управления заданиями Job Control Language (JCL) • Резидентный монитор • Предшественник операционной системы • Управление процессором переключалось между монитором и пользовательской программой © 2015 Брагин А.В. aleksey@reactos.org 12
  13. 13. Простая пакетная обработка (2) • Резидентный монитор • Постоянно находится в памяти • Управляет последовательностью событий • Включает интерпретатор языка JCL • Работа монитора • Загрузка заданий • Пользовательская программа • Дополнительная программа (напр. компилятор) • Данные для обработки • Загрузка дополнительных нерезидентных частей монитора и общих функций, необходимых для программ (т.н. «загрузка по требованию») © 2015 Брагин А.В. aleksey@reactos.org 13
  14. 14. Простая пакетная обработка (3) • Монитор • Управляет последовательностью действий • Цикл выполнения • Монитор загружает задачу и передаёт управление загруженной программе • Программа выполняется • Когда программа завершила выполнение, управление возвращается монитору • Процессор • Вначале выполняет инструкции из памяти, в которой находится монитор • Во время выполнения может быть загружена задача и процессор будет выполнять пользовательскую программу • Передача управления заданию: процессор выполняет инструкции из области памяти, где находится пользовательская программа • Передача управления обратно монитору: процессор выполняет инструкции из области памяти, где находится монитор © 2015 Брагин А.В. aleksey@reactos.org 14
  15. 15. Простая пакетная обработка (4) • Общие наблюдения • Пользовательская программа может содержать ошибки • Опасно для всей вычислительной системы • Может перезаписать ту область памяти, в которой находится монитор (или операционная система) • Задача может не передать управление обратно в монитор (зациклилась) • «Не изобретать велосипед» • Многие пользовательские программы выполняет похожие действия • Нужна библиотека подпрограмм, которые реализуют функции, требуемые всеми программами, напр. операции ввода/вывода • Эти проблемы и определяли дальнейшее развитие и архитектуру операционных систем © 2015 Брагин А.В. aleksey@reactos.org 15
  16. 16. Поддержка в аппаратуре • Защита памяти для ОС • Разделение памяти на область ОС и область пользователя • Процессор обнаруживает недопустимое обращение к памяти и прерывает выполнение задания • Привилегированные инструкции • Могут выполняться только операционной системой • Процессор обнаруживает недопустимую инструкцию и прерывает выполнение задания • Таймер • Устанавливать временные ограничения на задачи • Прерывания • Дают ОС больше гибкости в управлении пользовательскими программами © 2015 Брагин А.В. aleksey@reactos.org 16
  17. 17. Режимы работы в современных ОС • режим пользователя (user mode) • некоторые области памяти защищены • некоторые инструкции запрещены • режим ядра (kernel mode) • функции операционной системы • разрешён доступ к защищённым областям памяти • разрешено исполнение привилегированных инструкций © 2015 Брагин А.В. aleksey@reactos.org 17
  18. 18. Системы разделения времени • Интерактивность • Несколько пользователей могут одновременно работать с системой через терминалы • Пользователи взаимодействуют через терминальную сессию или оболочку, которая понимает команды, необходимые для запуска программ • ОС распределяет процессорное время между пользовательскими программами • Каждой программе пользователя выделяется короткий период или квант процессорного времени • Когда с системой работают N пользователей, каждому пользователю будет выделено 1/N эффективной вычислительной мощности (а также ещё есть накладные расходы на саму ОС) • Т.к. человек «медленнее» в сравнении со скоростью процессора, то время ответа такого разделённого компьютера может быть близко ко времени ответа выделенного компьютера • Цели • Быстрое время ответа • Пользователю нужен ответ от компьютера как можно быстрее • Разделение времени создаёт иллюзию, что ему доступен весь компьютер целиком • Максимизация использования процессора: больше программ – больше время ответа © 2015 Брагин А.В. aleksey@reactos.org 18
  19. 19. Современные ОС • UNIX • Apple Macintosh • Microsoft Windows • Свободное ПО – GNU • Minix – AST • Linux • ReactOS • Встраиваемые ОС © 2015 Брагин А.В. aleksey@reactos.org 19
  20. 20. 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 Брагин А.В. aleksey@reactos.org 20
  21. 21. 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 Брагин А.В. aleksey@reactos.org 21
  22. 22. 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 Брагин А.В. aleksey@reactos.org 22
  23. 23. Свободное ПО - GNU • Проект GNU начат в 1984 • GNU is Not Unix • Цель – свободный UNIX • 1ый шаг: свободные UNIX утилиты • Компилятор • Библиотеки • Emacs • Bash • 2ой шаг: … © 2015 Брагин А.В. aleksey@reactos.org 23
  24. 24. Minix – Andrew Tannenbaum • 1987 – Mini Unix от Andrew Tannenbaum • Minix 3 – маленькая микроядерная ОС • Совместимая с NetBSD • Главным образом для учебных целей © 2015 Брагин А.В. aleksey@reactos.org 24
  25. 25. Linux – Linus Torvalds • 1 версия вышла в 1991 • UNIX Linus’а = Linux • Linux – ядро для GNU • GNU/Linux - ОС • Вместе со всем тем, что сделал Richard Stallman в рамках проекта GNU • Дистрибутивы: RedHat, Debian, Ubuntu и ещё 999 © 2015 Брагин А.В. aleksey@reactos.org 25
  26. 26. ReactOS • С 1997 появились первые сборки • Свободная реализация Windows NT 5.1 • Совместима с драйверами и ПО для Windows • Схожие с GNU и Linux принципы: • GNU: сделаем свободный UNIX • Linux: сделаем свободное UNIX-ядро • ReactOS: сделаем свободный Windows (ядро+утилиты) © 2015 Брагин А.В. aleksey@reactos.org 26
  27. 27. Встраиваемые ОС • ОС для мобильных устройств • Android от Google • Tizen от Samsung • Sailfish от Jolla • ... © 2015 Брагин А.В. aleksey@reactos.org 27

×