Определение Операционная система, ОС — это набор программ, которые обеспечивают возможность использования аппаратуры компьютера. При этом аппаратура компьютера предоставляет лишь вычислительные мощности, задача же ОС заключается в том, чтобы сделать аппаратуру доступной и по возможности удобной для пользователя.
All posts by admin
Понятие вычислительного процесса и ресурса
Последовательный процесс (задача) – это выполнение отдельной программы с ее данными на последовательном процессоре. Процессор рассматривается с двух сторон: во-первых, он является носителем данных, во-вторых, он одновременно выполняет операции, связанные с их обработкой.
Основные виды ресурсов вычислительной системы и способы их разделения
Рассмотрим основные виды ресурсов вычислительной системы и способы их разделения. Одним из важнейших ресурсов является процессор (для мультипроцессорных систем) или процессорное время (для однопроцессорных). Процессорное время делится попеременно (параллельно).
Аппаратные средства и программное обеспечение
1. Аппаратные средства. Центральный процессор и его режимы работы. Мультипроцессорная обработка. Расслоение памяти. Регистр перемещения. Прерывания и опрос состояний. Буферизация. Защита памяти. Периферийные устройства и их режимы. Каналы ввода-вывода. Захват цикла памяти. Относительная адресация. Виртуальная память. Прямой доступ к памяти. Иерархия памяти.
Защита памяти. Память.
Защита памяти (storage protection) — важное условие работы для систем коллективного пользования. Защита памяти ограничивает диапазон адресов, которые доступны программе. Защиту памяти для программы, занимающей непрерывный блок ячеек памяти, можно реализовать с помощью граничных регистров, где указываются старший и младший адреса этого блока памяти.
Программное обеспечение
Программное обеспечение — это комплекс программных средств, включающий системные программы, пакеты прикладных и пользовательских программ. Раздел для самостоятельной проработки
Процессы
Понятие процесс(process) введено разработчиками ОС с 60-х годов, как программа во время выполнения. Заметим, что программа — это всего лишь файл в формате загрузки, сохраняемый на диске, а процесс расположен в памяти на этапе выполнения.
Операции над процессами
Системы, управляющие процессами, должны иметь возможность выполнять над ними ряд операций. Создание процесса. Создание процесса включает присвоение имени процессу; включение его имени в список имен процессов; определение начального приоритета процесса; формирование блока управления процессом РСВ; выделение процессу начальных ресурсов.
Блок управление процессом
Блок управления процессом (РСВ — process control block) — это объект, который определяет процесс для операционной системы и является структурой данных, сосредотачивающей всю ключевую информацию о процессе: • текущее состояние процесса;
Обработка прерываний
Прерывание(interrupt) — это событие, при котором меняется нормальная последовательность команд, выполняемых процессором. Если произошло прерывание, то • управление передается ОС;
Переключение контекста
Процедуру обработки прерываний, в зависимости от их типа, выполняют входящие в состав ОС соответствующие программы — обработчики прерываний (IH — interrupt handler). При возникновении прерывания, ОС должна обеспечивать запоминание состояния прерванного процесса и передачу управления соответствующему обработчику прерывания.
Ядро операционной системы
Все операции, связанные с процессами, выполняются под управлением той части ОС, которая называется ядро. Ядро обычно размещается в оперативной памяти, в то время как другие части ОС перемещаются во внешнюю память и обратно по мере необходимости.
Архитектура ОС Linux
Достаточно широкое распространение в настоящее время получила система Linux (автор базовой версии Линус Торвальдс). Усиление влияния Linux подтвердилось в очередной раз на выставке LinuxWorldExpo в начале февраля 2000 года в Нью-Йорке. В IBM активно разрабатываются приложения для Linux, что подтверждает высокую оценку этой ОС.
Ядро системы
Ядро обеспечивает базовую функциональность ОС: создает процессы и управляет ими, распределяет память и обеспечивает доступ к файлам и периферийным устройствам. Структура ядра представлена на рис. Б?.
Файловая подсистема
Файловая подсистема обеспечивает унифицированный интерфейс доступа к данным, расположенным на дисковых накопителях, и к периферийным устройствам. Одни и те же функции open(2), read(2), write(2) могут использоваться как при чтении или записи данных на диск, так и при выводе текста на принтер или терминал.
Планирование и диспетчеризация процессов
1. Уровни планирования. Цели планирования. Факторы, учитываемые при планировании. Планирование с переключением и без переключения. Приоритеты. 2. Алгоритмы планирования. Планирование по принципу FIFO (first-in-first-out). Циклическое планирование RR (round robin). Многоуровневые очереди с обратными связями.
Алгоритмы планирования. Планирование по принципу FIFO (first-in-first-out).
Планирование по принципу FIFO (first-in-first-out) Принцип FIFO, “ первый пришедший обслуживается первым”, является наиболее простой дисциплиной планирования. ЦП предоставляется процессам в порядке их прихода в очередь готовности.
Циклическое планирование RR (round robin)
Планирование по принципу RR предполагает диспетчирование процессов по принципу FIFO, но каждый процесс получает временной квант, в течение которого он может использовать ресурсы ЦП.
Многоуровневые очереди с обратными связями
Механизм планирования должен оказывать предпочтение коротким заданиям и заданиям, лимитируемым вводом-выводом, чтобы обеспечить хороший коэффициент использования устройств ввода-вывода; как можно быстрее определять характер задания, чтобы соответствующим образом планировать его выполнение. Многоуровневые очереди с обратными связями позволяют достичь этих целей.
Синхронизация параллельных процессов на низком уровне
1. Параллельная обработка. Проблемы критических участков. Взаимоисключения. 2. Синхронизация параллельных процессов на низком уровне. • Блокировка памяти. Алгоритм Деккера. Аппаратная реализация взаимоисключения: команда “проверка и установка” (testandset).
Проблемы критических участков. Взаимоисключения
При выполнении параллельных процессов может возникать проблема, когда каждый процесс, обращающийся к разделяемым данным, исключает для всех других процессов возможность одновременного с ним обращения к этим данным — это называется взаимоисключением (mutual exclusion).
Синхронизация параллельных процессов на низком уровне
Большинство приемов, применяемых для синхронизации процессов, тесно связаны с аппаратными средствами. Это блокировка памяти, операция “проверка и установка” и семафоры.
Алгоритм Деккера
Аппаратная реализация взаимоисключения: команда “проверка и установка” (testandset) Алгоритм Деккера представляет собой программное решение проблемы взаимоисключения. Рассмотрим вариант аппаратного решения данной проблемы.
Семафоры
Концепция использования семафоров для реализации взаимоисключений предложена Дейкстрой3. Семафор или общий семафор (semaphore) — это целая переменная, значение которой можно опрашивать и менять только при помощи специальных неделимых (как команда testandset) операций P и V. Эти операции являются примитивами относительно семафора, который указывается в качестве параметра операций.
Мьютексы
Одним из вариантов семафорных механизмов для организации взаимного исключения являются мьютексы. Термин mutex произошел от англ. mutual exclusion semaphore, что переводится как семафор взаимного исключения. Мьютексы реализованы во многих ОС, их основное назначение – организация взаимного исключения для задач из одного и того же или разных процессов.
Синхронизация параллельных процессов на высоком уровне
1. Мониторы Хоара. Команды Wait() и Signal(). Монитор, реализующий двоичный семафор 2. Почтовые ящики 3. Конвейеры (программные каналы) 4. Очереди сообщений
Wait(переменная-условие) Signal(переменная-условие)
Переменная-условие (condition variable) вводится для каждой причины, по которой процесс может быть переведен в состояние ожидания. Заметим, что эти переменные совершенно не похожи на обычные переменные, с которыми мы привыкли иметь дело. Когда определяется переменная-условие, заводится очередь.
Почтовые ящики
Тесное взаимодействие между процессами предполагает не только синхронизацию – обмен временными сигналами, но и передачу, и получение произвольных данных – обмен сообщениями. В системе с одним процессором посылающий и получающий процессы не могут работать одновременно.
Конвейеры (программные каналы)
Конвейер является средством, с помощью которого можно производить обмен данными между процессами. Принцип работы конвейера основан на следующем механизме. Задача, передающая информацию, действует так, как будто она записывает данные в файл, в то время как задача, для которой предназначается эта информация, читает ее из файла.
Очереди сообщений
Очереди сообщений являются более сложным методом связи между взаимодействующими процессами по сравнению с каналами. С помощью очередей можно из одной или нескольких задач независимым образом посылать сообщения некоторой задаче-приемнику.
