10.68M
Category: softwaresoftware

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

1.

Симонов Сергей
Евгеньевич
[email protected]

2.

Современные
операционные
системы
Лекция №1

3.

4.

5.

6.

7.

8.

9.

10.

Программное
обеспечение
Прикладное ПО
Системное ПО
Служебные
программы
(утилиты)
Операционная
система
Интерфейс
пользователя
Ядро
операционной
системы

11.

Говард Эйкин

12.

13.

14.

15.

16.

17.

18.

Архитектура компьютера
Центральный
процессор
Устройства
ввода
Интерфейс
Шина данных
Интерфейс
Память
Устройства
вывода

19.

Считывание
Выполнение
Запись
Считывание
Выполнение
АЛУ
ПРОЦЕССОР
Запись
Регистры
ФЛАГИ
ТГ
Контроллер шины
Контроллер
прерываний
СИСТЕМНАЯ ШИНА
Регистр шины
I/O
ПАМЯТЬ ОЗУ
I/O
I/O

20.

21.

Основные группы команд
Команды
пересылки данных
Арифметические
команды
Логические
команды
• Загрузка (запись)
содержимого памяти во
внутренние регистры
процессора
• Сохранение в памяти
содержимого внутренних
регистров
• Копирование данных из
одной области в другую
• Запись в устройство
ввода/вывода и чтение из
устройства ввода/вывода
• Арифметика с константой
• Команды операций с
фиксированной точкой
• Команды операций с
плавающей точкой
• Команды очистки
• Команды инкремента и
декремента
• Команды сравнения
• Логическое И, ИЛИ, НЕ
• Искл. ИЛИ (сложение
по модулю 2)
• Логические,
арифметические,
циклические сдвиги
• Установка и очистка
флагов регистров
состояния процессора
Команды
переходов

22.

Что такое операционная система?
Операционная система (operating system) – комплекс программ, предоставляющий пользователю удобную
среду для работы с компьютерным оборудованием.
Операционная система - программная система, которая управляет ресурсами компьютера, а следовательно
осуществляет доступ к этим ресурсам, управляет процессами, вводит и реализует различные абстракции,
выполняет другие системные функции.

23.

Основные понятия операционной системы
•Процессы и потоки - программы, что находятся в оперативной памяти и обрабатываются
процессором. Другими словами - исполнение программы.
•Файлы и файловые системы - некоторая структура данных и связи между этими структурами,
универсальный системный интерфейс.
•Адресное пространство и память - распределение и управление памятью.
•Сокеты, протоколы, устройства - интерфейсы взаимодействия.
*Интерфейс — набор правил и средств взаимодействия двух систем. Иными словами способ
взаимодействия.

24.

Функции операционной системы
Управление
процессами
Управление
памятью
Управление
устройствами
Реализация
многозадачности
Пользовательская
оболочка
1. Управление ресурсами и процессами, а также совместное использование вычислительных
ресурсов группой приложений (многозадачность) — центральная функция ОС, которая
является базой для разных системных архитектур
• Scheduler — планировщик. Механизм управляющий процессами и реализующий многозадачность.
• Memory manager — менеджер памяти. Механизм выделяющий память и управляющий ею.
2. Абстракция оборудования для удобства и переносимости
(то есть реализация единого интерфейса для разного, но схожего по функциям оборудования)
3. Изоляция ошибок приложений друг от друга (и от ядра ОС)
4. Переносимость данных между приложениями (процессами)
• Inter Process Communication (IPC) — Механизм межпроцессного взаимодействия
• файлы и файловая система

25.

App - пользователь ресурсов;
Hardware - оборудование;
Proc - Процессор;
Memory - Оперативная память;
I/O - Устройства ввода/вывода;
Kernel space — адресное пространство ядра ОС,
в котором процессы имеют
привилегированный доступ к ресурсам
компьютера и другим процессам.
User space — адресное пространство,
отведённое для пользовательских процессов
(приложений), то есть не имеющих
привилегированный доступ к ресурсам.

26.

Ядро ОС (Kernel space)
1) Обрабатывает запросы приложений
системные вызовы (программные прерывания)
2) Обрабатывает запросы оборудования
Прерывания
3) Обрабатывает исключительные ситуации
Разного рода ошибки
4) Обеспечивает диспетчеризацию процессов
реализация многопользовательского
режима доступа к ресурсам

27.

28.

29.

Запуск
Ожидание
Ожидание
Запуск
Ожидание
Запуск
Запуск
Запуск
Ожидание
Запуск
Запуск
Ожидание
Запуск
Ожидание
Запуск
Ожидание
Запуск
Запуск
Запуск
Ожидание
Ожидание

30.

Прерывания
Аппаратные
Программные
Таймерные
Исключения

31.

Как операционная система загружается в
компьютер?

32.

Как приложения взаимодействуют с ОС?
Системный вызов – программное
прерывание, обращение пользовательского
процесса к ядру операционной системы для
выполнения какой-либо операции.
Механизм системных вызовов — это
интерфейс, который предоставляет ядро ОС
(kernel space) пользовательским процессам
(user space).
Системные библиотеки (system DLL –
Dynamic Link Library, динамически
подключаемая библиотека), преобразующие
системные вызовы приложений в системные
вызовы ядра

33.

Как оборудование взаимодействует с ОС?

34.

Сервисы операционной системы
• Управление процессами (Process scheduler планировщик)
• Межпроцессное взаимодействие (IPC - Inter
Process Communication)
• Управление памятью (Memory manager)
• Файловая система (File system)
• Пользовательские оболочки

35.

Основные абстракции
Процесс — совокупность инструкций и данных, что находятся в оперативной памяти и обрабатываются
процессором. Другими словами - исполнение программы в целом (не путать с потоком исполнения).
Состояние (контекст) процесса
С внешней стороны, процесс можно описать следующим:
• Состояние
- Состояние памяти
- Содержимое регистров процессора
• Адресное пространство — у каждого процесса своё.
• Состояние исполнения — то, исполняется ли этот процесс на процессоре в данный момент или
ожидает чего-либо.
• CPU - величина использования процессорного времени.

36.

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

37.

Состояния исполнения

38.

Информация о процессе
Вся информация о процессе содержится в специальной структуре данных, поддерживаемой
операционной системой для каждого процесса – PCB (Process Control Block) - Блок управления
процессов.
•Process ID: идентификатор каждого из процессов в ОС.
•State: текущее состояние процесса.
•Privileges: разрешения доступа к системным ресурсам.
•Pointer: указатель на родительский процесс.
•Priority: приоритет процесса и другая информация, которая требуется
для планирования процесса.
•Program Counter: указатель на адрес следующей команды, которая
должна быть выполнена.
•CPU registers: регистры процессора, необходимые для состояния
исполнения.
•Accounting Information: уровень нагрузки на процессор, статистика и
другие данные.
•I/O Information: список ресурсов, использующих чтение и запись.

39.

Поток

40.

Файл

41.

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

42.

43.

44.

45.

Шаг
Поток 1
Поток 2
0
Хочет захватить A и B,
начинает с A
Хочет захватить A и B,
начинает с B
1
lock(A) — Захват А
lock(B) — Захват B
2
lock(B) — Ожидает
освобождения ресурса B
lock(A) — Ожидает
освобождения ресурса A

DEADLOCK –> Далее код не выполнится, так как произошел
Deadlock в коде выше
n
unlock(A) — освобждение A
unlock(B) — освобждение B
n+1
unlock(B) — освобждение B
unlock(A) — освобждение A

46.

Адреса и управление памятью
Существует два вида адресов:
Физический адрес – непосредственно адрес внутри микросхемы памяти, который передаётся по шине памяти.
Логический адрес – тот адрес, которым оперирует процесс.
Чтобы отобразить логический адрес в физический, существует специальный аппаратный механизм.
В соответствии с этим, процессор может работать в двух режимах:
Реальный режим
Защищенный режим
English     Русский Rules