44
ITDays.1.0 Днепропетровск, март 2010

Антон Шумихин - Архитектура ОС

  • Upload
    gainesd

  • View
    206

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Антон Шумихин - Архитектура ОС

ITDays.1.0Днепропетровск, март 2010

Page 2: Антон Шумихин - Архитектура ОС

Операционная система как «душа» компьютера

Разновидности ОСЯдро ОСДрайвера и прикладные

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

Page 3: Антон Шумихин - Архитектура ОС

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

Page 4: Антон Шумихин - Архитектура ОС

Интерфейсы ОС

Page 5: Антон Шумихин - Архитектура ОС

Загрузка программ в память и их выполнение

Предоставление и управление доступом к памяти, дискам и периферийным устройствам

Обеспечение человеческого интерфейса

Взаимодействие компьютеров по сети

Page 6: Антон Шумихин - Архитектура ОС

Бытовые и промышленные приборы

АвтомобилиМобильные средства связиИгровые приставки

Page 7: Антон Шумихин - Архитектура ОС

1970 - год начала компьютерной эры Кен Томпсон и Брайан Ричи

формируют основные требования и концепции ОС

Они создают UNIX В конце 70х университет Berkeley

добавляет сетевую подсистему и выпускает BSD

В начале 80х Билл Гейтс основывает Microsoft и выпускает PC DOS

Page 8: Антон Шумихин - Архитектура ОС

В середине 80х Ричард Столмен организует фонд свободного ПО и проект GNU по разработке бесплатной и открытой ОС

Стив Джобс и Стив Возняк, основатели Apple, выпускают дистрибутив Macintosh

В начале 90х Линус Торвальдс начинает разработку ядра Linux по подобию Unix

Page 9: Антон Шумихин - Архитектура ОС

Microsoft выпускает Windows 3.11, 95, 98, ME

Параллельно развивает линию NT и выпускает Windows 2000 (NT 4), XP, 2003, Vista, 2008 и 7.0

В начале 2000х Apple выпускает Mac OS X

В середине 2000х появляется дистрибутив Gnu\Linux Ubuntu

Page 10: Антон Шумихин - Архитектура ОС

62% (XP), 17% (Vista), 7% (Win7)

9% (Mac OS X), 1% (iPhone OS)

3% (GNU\Linux)

Page 11: Антон Шумихин - Архитектура ОС

Плюсы: Легко использовать Обновления и поддержка

Минусы: Дорогая Нестабильная и незащищенная

Page 12: Антон Шумихин - Архитектура ОС

Плюсы: Легко использовать Защищенная и стабильная Красивый дизайн

Минусы: Дорогая

Page 13: Антон Шумихин - Архитектура ОС

Плюсы: Бесплатная с открытым кодом Защищенная и стабильная Скромные требования к оборудованию Легко программировать

Минусы: Трудна для освоения Нет официальной поддержки

Page 14: Антон Шумихин - Архитектура ОС

Программы, управляющие другими программами (микроядро)

Программы, управляющие оборудованием (макроядро)

Page 15: Антон Шумихин - Архитектура ОС
Page 16: Антон Шумихин - Архитектура ОС

Планировщик – занимается распределением процессорного времени между программами

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

Межпроцессный обмен – позволяет программам взаимодействовать друг с другом

Файловая система – обеспечивает долговременное хранилище данных

Page 17: Антон Шумихин - Архитектура ОС

Драйвер – это программное расширение для ядра ОС

Файловых систем (FAT, NTFS, EXT, HFS)

Периферийных устройствСетевые драйверыЛюбая программа, работающая в

режиме ядра

Page 18: Антон Шумихин - Архитектура ОС

Компоненты микроядра и драйверы устройств объединены монолитно

Page 19: Антон Шумихин - Архитектура ОС

Утилиты для конфигурирования ОС

Компиляторы, компоновщики, загрузчики, стандартные библиотеки, виртуальные машины

Оболочки (пользовательские интерфейсы): текстовые и графические

Page 20: Антон Шумихин - Архитектура ОС

Совокупность ядра ОС и системных программ

Page 21: Антон Шумихин - Архитектура ОС

Программа – набор инструкций Процесс – выполняющаяся программа Процесс – контейнер ресурсов ОС для

некоторой программы: память для инструкций, несколько нитей выполнения, описатели файлов и сокетов

Для процесса отводится 4 Гб (32-битная ОС) или 16 Тб (64-битная ОС) памяти

Page 22: Антон Шумихин - Архитектура ОС

Первые 3 Гб отводятся для кода программы

Последние 4Гб – для кода ОСИ так для каждого процессаСейчас редко на компьютере есть

хотя бы 4 Гб оперативной памяти, а раньше было еще меньше

Page 23: Антон Шумихин - Архитектура ОС

ОС для процесса создает иллюзию наличия нужного объема памяти

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

Остальные инструкции и данные во время простоя записываются в раздел подкачки на жесткий диск

Page 24: Антон Шумихин - Архитектура ОС

Таким образом, если процессу не хватает памяти, ОС начинает использовать дисковое пространство

Для Windows – pagefile.sys в корне системного раздела

Для Mac и Linux – отдельный раздел диска или несколько файлов

Page 25: Антон Шумихин - Архитектура ОС

Если какая-то инструкция обратится к чужой памяти, то ОС удалит весь процесс

Page 26: Антон Шумихин - Архитектура ОС

Память процесса разделена на две части

Первая – для инструкций обычной программы

Вторая – для инструкций ОС Только инструкции из второй области

памяти могут напрямую обращаться к аппаратуре компьютера

Они называются инструкциями, выполняемыми в режиме ядра

Page 27: Антон Шумихин - Архитектура ОС

Инструкции из первой области работают в режиме пользователя

Это обычные прикладные программы

Системный вызов – обращение пользовательского кода к функциям ОС

Page 28: Антон Шумихин - Архитектура ОС

Нить – последовательность инструкция

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

Планировщик по таймеру переключает нити внутри процессов, а не процессы

Создается иллюзия параллельного выполнения программ

Page 29: Антон Шумихин - Архитектура ОС

Каждая нить может быть в двух основных состояниях: сон и выполнение

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

Переключение между режимами происходит по программному или аппаратному прерыванию процессора

Page 30: Антон Шумихин - Архитектура ОС

Файл – это некогда именованная область памяти

Файловая система (абстрактно) – дерево файлов, не обязательно физически существующих

Файловая система (физически) – набор записей на диске определенного формата

Page 31: Антон Шумихин - Архитектура ОС

Каталог (директория, папка) – специальный файл с информацией о других файлах

Ссылка (ярлык) – специальный файл, указывающий на другой конкретный файл

Популярные файловые системы: FAT32 (флешки, дискеты), NTFS (Windows), HFS+ (Mac OS X), Ext (Linux)

Page 32: Антон Шумихин - Архитектура ОС

Сокет (гнездо) – абстракция ОС на подобии файла для работы с сетью

Выполняя системные вызовы, программа может создавать\удалять, читать\записывать файлы и сокеты.

Page 33: Антон Шумихин - Архитектура ОС

Программа, выводящая слово «Hello» на языке программирования С (файл hello.c):

int main(){ puts("Hello"); return 0;}

Page 34: Антон Шумихин - Архитектура ОС

Препроцессор

Компилятор

Ассемблер

Редактор

Откомпилированные файлы

hello.c

Программист

Статические

библиотеки

hello.i hello.s

hello.o

Динамические

библиотеки

hello.exe

.lib, .a.dll, .so, .dylib

.o, .obj

Программа

Компоновщик

Загрузчик

Page 35: Антон Шумихин - Архитектура ОС

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

Следование, ветвление и цикл

Page 36: Антон Шумихин - Архитектура ОС

Зацикливаются (при этом «висит» всё)

Некоторые нити засыпают в ожидании системного вызова

Page 37: Антон Шумихин - Архитектура ОС

Различают командный и графический интерфейсы пользователя (оболочка)

Page 38: Антон Шумихин - Архитектура ОС
Page 39: Антон Шумихин - Архитектура ОС
Page 40: Антон Шумихин - Архитектура ОС
Page 41: Антон Шумихин - Архитектура ОС
Page 42: Антон Шумихин - Архитектура ОС
Page 43: Антон Шумихин - Архитектура ОС
Page 44: Антон Шумихин - Архитектура ОС

ITDays.1.0Днепропетровск, март 2010