Операционные системы
Определение
Функции
Требования к современным ОС
Классификация
Структура ядра типичной ОС
Компоненты операционной системы
Командный процессор
Процессы и потоки, диспетчер задач windows, синхронизация потоков
Процессы и потоки
Диспетчер задач WINDOWS
Дейкстра, Эдсгер Вибе
Алгоритм Дейкстры
Взаимоблокировка процессов
Виртуальная память, распределение памяти

Операционные системы. Определение

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

2. Определение

• Операционная система (ОС) – это комплекс (набор) программ,
который обеспечивает взаимодействие всех устройств ЭВМ и
позволяет пользователю осуществлять общее управление ЭВМ.
• Операционная система (ОС) — программный комплекс,
предоставляющий пользователю среду для выполнения прикладных
программ и управления ими, а прикладным программам средства
доступа и управления аппаратными ресурсами.
• Главное назначение ОС – управление ресурсами, а главные ресурсы,
которыми она управляет, – это аппаратура компьютера. ОС управляет
вычислительным процессом и информационным обменом между
процессором, памятью, внешними устройствами.

3. Функции

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

4. Требования к современным ОС

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

5. Классификация

• по базовой технологии (UNIX-подобные, пост-UNIX/потомки UΝΙΧ)
• типу лицензии (проприетарная или открытая)
• развивается ли в настоящее время (устаревшие или
современные)
• по назначению (универсальные, ОС встроенных систем, ОС PDA,
ОС реального времени, для рабочих станций или для серверов)
• по числу одновременно выполняемых задач (однозадачные и
многозадачные)

6. Структура ядра типичной ОС

7. Компоненты операционной системы

• Загрузчик
• Ядро
• Командный процессор (интерпретатор)
• Драйверы устройств
• Интерфейс

8. Командный процессор

• Командный процессор (command processor) – специальная
программа, которая запрашивает у пользователя команды и
выполняет их (интерпретатор программ).
• Интерпретатор команд отвечает за загрузку приложений и
управление информационным потоком между приложениями.
• Для упрощения работы пользователя в состав современных ОС
входят программные модули, обеспечивающие графический
пользовательский интерфейс.
Процесс работы компьютера в определенном смысле сводится к
обмену файлами между устройствами.

9.

• Модули ядра выполняют следующие базовые функции ОС:
Управление процессами, Управление системой прерываний,
Управление памятью, управление устройствами ввода-вывода,
Функции, решающие внутрисистемные задачи организации
вычислительного процесса: переключение контекстов, загрузка/выгрузка страниц, обработка прерываний. Эти функции недоступны
для приложений. Функции, служащие для поддержки приложений,
создавая для них так называемую прикладную программную
среду.
• Приложения могут обращаться к ядру с запросами – системными
вызовами – для выполнения тех или иных действий: для открытия
и чтения файла, вывода графической информации на дисплей,
получения системного времени и т.д. Функции ядра, которые могут
вызываться приложениями, образуют интерфейс прикладного
программирования – API (Application programming interface).

10.

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

11.

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

12. Процессы и потоки, диспетчер задач windows, синхронизация потоков

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

13.

В общем случае дескриптор содержит следующую информацию:
• Идентификатор процесса.
• Тип (или класс) процесса, который определяет для супервизора некоторые правила
предоставления ресурсов.
• Приоритет процесса.
• Переменную состояния, которая определяет, в каком состоянии находится процесс (готов к работе,
в состоянии выполнения, ожидание устройства ввода-вывода и т.д.)
• Защищенную область памяти (или адрес такой зоны), в которой хранятся текущие значения
регистров процессора, если процесс прерывается, не закончив работы. Эта информация
называется контекстом задачи.
• Информацию о ресурсах, которыми процесс владеет и/или имеет право пользоваться (указатели
на открытые файлы, информация о незавершенных операциях ввода/вывода и т.п.).
• Место (или его адрес) для организации общения с другими процессами.
• Параметры времени запуска (момент времени, когда процесс должен активизироваться, и
периодичность этой процедуры).
• В случае отсутствия системы управления файлами – адрес задачи на диске в ее исходном
состоянии и адрес на диске, куда она выгружается из оперативной памяти, если ее вытесняет
другая.

14. Процессы и потоки

• Процесс (более крупная единица работы). Процесс состоит из кода,
данных и других системных ресурсов, таких как открытые файлы,
каналы, синхронизирующие объекты. Однако процесс – статический
объект, который сам по себе действия не производит.
• Поток (нить или тред) – более мелкая единица работы, которую
требует для своего выполнения процесс.
• Когда говорят о процессах, то тем самым хотят отметить, что ОС
поддерживает их обособленность: у каждого процесса имеется свое
виртуальное адресное пространство, каждому процессу
назначаются свои ресурсы – файлы, окна и др. Такая
обособленность нужна для того, чтобы защитить один процесс от
другого, поскольку они, совместно используя все ресурсы
вычислительной системы, конкурируют друг с другом.

15. Диспетчер задач WINDOWS

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

16. Дейкстра, Эдсгер Вибе

• Родился в Роттердаме (Голландия) в 1930 году.
• Вследствие его успехов в изучении химии,
математики и физики, он поступил в университет
Лейдена, где решил заняться теоретической
физикой. В 1951 году он посещал летнюю школу
по программированию в Кембриджском
университете.
• Дейкстра официально стал «программистом» 1
марта 1952 года и был первым голландцем,
начавшим заниматься этим в своей стране. Он
начал работать в качестве совместителя в
Математическом центре в Амстердаме.

17. Алгоритм Дейкстры

• Многим программистам Дейкстра известен как создатель алгоритма
«кратчайшего пути», предложенного им еще в 1952 году, который появился в
результате его работы над задачей по оценке производительности
компьютера ARCMAC, установленного в Математическом Центре. Этот
алгоритм позволяет находить наилучший путь для перемещения между
двумя точками.
• Ученый также использовал этот алгоритм для решения задачи «О
нахождении оптимального пути передачи электрического тока всем
существенным элементам цепи, минимизируя при этом расход меди», с
которой столкнулись инженеры, разрабатывавшие ARCMAC. Он назвал этот
способ «алгоритмом дерева с кратчайшими ветвями».
• Относится к «жадным» алгоритмам, то есть достаточно эффективен для
поиска путей на относительно небольших графах.

18. Взаимоблокировка процессов

• При параллельном исполнении процессов могут возникать
ситуации, при которых два или более процесса все время
находятся в заблокированном состоянии. Самый простой случай –
когда каждый из двух процессов ожидает ресурс, занятый другим
процессом. Из-за такого ожидания ни один из процессов не
может продолжить исполнение и освободить в конечном итоге
ресурс, необходимый другому процессу. Эта тупиковая ситуация
называется дедлоком, тупиком, клинчем или
взаимоблокировкой.

19. Виртуальная память, распределение памяти

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