Структура организации вычислительной системы.
Аппаратный уровень. Пользователь вычислительной системы — программист. Доступные средства программирования: система команд компьютера, аппаратные интерфейсы программного управления внешними устройствами. Таким образом, пользователь ВС, находясь на уровне аппаратуры, работает с конкретным компьютером.
Уровень управления физическими ресурсами. На данном уровне пользователем системы также является программист. Средства программирования, которые предоставляются пользователю на данном уровне, претерпели изменения, т.к. кроме возможности работы с системой команд компьютера, с аппаратными интерфейсами программного управления внешними устройствами пользователю предоставляются интерфейсы драйверов физических устройств (ресурсов) компьютера. С позиций программиста, он работает с компьютером, имеющим расширенные, по сравнению с предыдущим уровнем, возможности. Кроме стандартных аппаратных средств программирования компьютера (система команд, аппаратные интерфейсы взаимодействия с физическими внешними устройствами) появились интерфейсы драйверов физических устройств (ресурсов) компьютера.
Уровень управления логическими или виртуальными ресурсами. На данном уровне структурной организации вычислительной системы спектр средств программирования расширяется за счет интерфейсов драйверов виртуальных/логических устройств (или ресурсов). В общем случае, для программиста, работающего с системой на данном уровне, средства программирования компьютера представляются:
-
системой команд компьютера;
-
аппаратными интерфейсами программного управления физическими устройствами;
-
интерфейсами драйверов физических устройств;
-
интерфейсами драйверов виртуальных устройств.
Операционная система может ограничить доступ пользователей к аппаратным средствам управления внешними устройствами, к драйверам физических устройств, к некоторым драйверам виртуальных устройств. Однако, "условный" пользователь уровня управления виртуальными устройствами вычислительной системы работает с компьютером, имеющим расширенные возможности. При этом пользователь может не знать о том, какие устройства, используемые в его программе, являются физическими, реально существующими, а какие — виртуальными. А даже если он и знает, что какое-то устройство является, к примеру, физическим, то, скорее всего, он не имеет никакого представления о деталях организации управления этого устройства на уровне аппаратных интерфейсов.
Уровень систем программирования. Для иллюстрации проблемы упростим структуру системы программирования, рассмотрим практически вырожденный случай. Пусть система программирования, с которой работает пользователь ВС, состоит только из транслятора языка высокого уровня и стандартной библиотеки программ, — например, языка Си. В этом случае представление пользователя о компьютере, на котором он работает, может свестись к языковым конструкциям языка Си и возможностям, предоставляемым стандартной библиотекой языка Си. Происходит очередное "расширение" возможностей компьютера за счет конструкций языка Си и его стандартной библиотеки. Более того, пользователь может работать на данном "расширенном" компьютере, не подозревая о реальной архитектуре аппаратного уровня ВС, о физических и виртуальных устройствах, поддерживаемых операционной системой, о системе команд и внутренней организации данных реального компьютера.
Уровень прикладных систем. Тенденция "расширения" возможностей компьютера продолжается и на прикладном уровне. При этом для каждой категории пользователей прикладного уровня вычислительной системы существует свое расширение компьютера. Так, например, для оператора прикладной системы компьютер представляется набором функциональных средств прикладной системы, доступной через пользовательский интерфейс. Рассмотрим работу кассира в современном супермаркете, кассовый аппарат которого может являться специализированным персональным компьютером, работающим в составе системы автоматизации деятельности всего магазина. Для кассира работа с этим компьютером и, соответственно, возможности этого компьютера представляются в виде возможностей прикладной подсистемы, автоматизирующей его рабочее место. Заведомо кассир магазина может не иметь никаких представлений о внутренней организации специализированной вычислительной системы, на которой он работает (тип компьютера, тип операционной системы, состав драйверов ОС и т.п.).
Не будет преувеличением утверждение, что не менее 90% современных пользователей персональных компьютеров не имеют представления о системе команд компьютера, о структуре компьютерных данных, об аппаратных интерфейсах управления физическими устройствами — все это скрывают расширения компьютера, которые образуются за счет соответствующих уровней вычислительной системы. Мы будем говорить, что каждый пользователь, работая в соответствующем расширении компьютера, работает в виртуальной машине или виртуальном компьютере. Реальный компьютер используется непосредственно исключительно на аппаратном уровне. Во всех остальных случаях пользователь работает с программным расширением возможностей реального компьютера — с виртуальным компьютером. Причем "виртуальность" этого компьютера (или этих компьютеров) возрастает от уровня управления физическими ресурсами ВС до уровня прикладных систем.
Вернемся к замечаниям, с которых начали данный раздел, касающихся неоднозначности определений многих компонентов вычислительных систем и, в частности, неоднозначности определения термина «операционная система».
В некоторых изданиях ошибочно ассоциируют понятие виртуального компьютера исключительно с операционной системой. Это не так. Только что мы показали, что "виртуальность компьютера", с которым работает пользователь вычислительной системы, начинается с уровня управления физическими устройствами и завершается на уровне прикладных систем.
Также не совсем правильным является утверждение, что операционная система предоставляет пользователю удобства работы с вычислительной системой или простоту ее программирования. На самом деле эти свойства в большей степени принадлежат прикладным системам или системам программирования. Одной из возможных причин подобной неоднозначности является то, что на ранних периодах развития вычислительной техники системы программирования рассматривались в качестве компонента операционных систем. Вычислительная система является продуктом глубокой интеграции ее компонентов, и, безусловно, на удобства работы с ВС и на простоту программирования оказывают влияние и аппаратура компьютера, и операционная система, но эти свойства в существенно большей степени характеризуют системы программирования и прикладные системы.
В настоящем разделе были рассмотрены следующие базовые определения, понятия.
Вычислительная система — совокупность аппаратных и программных средств, функционирующих в единой системе и предназначенных для решения задач определенного класса. Рассмотрена пятиуровневая модель организации вычислительной системы: аппаратный уровень, уровень управления физическими ресурсами ВС, уровень управления логическими/виртуальными ресурсами, уровень систем программирования и уровень прикладных систем. Круг задач, на решение которых ориентирована вычислительная система, определяется наполнением уровня прикладных систем, однако возможность реализации тех или иных прикладных систем определяется всеми остальными уровнями, составляющими структурную организацию ВС.
Физические ресурсы (устройства) — компоненты аппаратуры компьютера, используемые на программных уровнях ВС или оказывающие влияние на функционирование всей ВС. Совокупность физических ресурсов составляет аппаратный уровень вычислительной системы.
Драйвер физического устройства — программа, основанная на использовании команд управления конкретного физического устройства и предназначенная для организации работы с данным устройством. Драйвер физического устройства скрывает от пользователя детальные элементы управления конкретным физическим устройством и предоставляет пользователю упрощенный программный интерфейс работы с устройством.
Логические, или виртуальные, ресурсы (устройства) ВС — устройство/ресурс, некоторые эксплутационные характеристики которого (возможно все) реализованы программным образом.
Драйвер логического/виртуального ресурса — это программа, обеспечивающая существование и использование соответствующего ресурса, для этих целей при его реализации возможно использование существующих драйверов физических и виртуальных устройств.
Ресурсы вычислительной системы — это совокупность всех физических и виртуальных ресурсов данной вычислительной системы.
Операционная система — это комплекс программ, обеспечивающий управление ресурсами вычислительной системы. В структурной организации вычислительной системы операционная система представляется уровнями управления физическими и виртуальными ресурсами.
Жизненный цикл программы в вычислительной системе — проектирование, кодирование (программная реализация или реализация), тестирование и отладка, ввод программной системы в эксплуатацию (внедрение) и сопровождение.
Система программирования — комплекс программ, обеспечивающий поддержание этапов жизненного цикла программы в вычислительной системе.
Прикладная система — программная система, ориентированная на решение или автоматизацию решения задач из конкретной предметной области.
- Содержание
- 1 Введение 5
- 2 Управление процессами 87
- 3 Реализация межпроцессного взаимодействия в ос Unix 114
- 4 Файловые системы 152
- 4.1 Основные концепции 152
- 5 Управление оперативной памятью 181
- 6 Управление внешними устройствами 196
- Введение
- Пакетная обработка заданий.
- Развитие языков и систем программирования.
- Этапы эволюции.
- Основы архитектуры вычислительной системы
- Структура вс
- Структура вычислительной системы.
- Аппаратный уровень вс
- Управление физическими ресурсами вс
- Пример зависимости от драйвера.
- Управление логическими/виртуальными ресурсами
- Системы программирования
- Этапы проектирования.
- Кодирование.
- Тестирование.
- Каскадная модель.
- Каскадная итерационная модель.
- Спиральная модель.
- Прикладные системы
- Первый этап развития прикладных систем.
- Второй этап развития прикладных систем.
- Третий этап развития прикладных систем.
- Пакет программ Microsoft Office.
- Пакет MathCad.
- Система BaaN.
- Выводы, литература
- Структура организации вычислительной системы.
- Основы компьютерной архитектуры
- Структура, основные компоненты
- Структура компьютера фон Неймана.
- Базовая архитектура современных компьютеров.
- Оперативное запоминающее устройство
- Ячейка памяти.
- Контроль четности.
- Озу без расслоения памяти — один контроллер на все банки.
- Озу с расслоением памяти — каждый банк обслуживает отдельный контроллер.
- Центральный процессор
- Структура организации центрального процессора.
- Регистровая память
- Устройство управления. Арифметико-логическое устройство
- Общая схема работы кэШа.
- Аппарат прерываний
- Использование иерархической модели регистров прерывания.
- Использование вектора прерываний.
- Этап программной обработки прерываний.
- Внешние устройства
- Внешние устройства.
- Внешние запоминающие устройства
- Магнитная лента.
- Принцип устройства магнитного диска.
- Принцип устройства магнитного барабана.
- Принцип устройства памяти на магнитных доменах.
- Модели синхронизации при обмене с внешними устройствами
- Синхронная и асинхронная работа с ву.
- Потоки данных. Организация управления внешними устройствами
- Непосредственное управление центральным процессором внешнего устройства.
- Синхронное/асинхронное управление внешними устройствами с использованием контроллеров внешних устройств.
- Использование контроллера прямого доступа к памяти (dma) или процессора (канала) ввода-вывода при обмене.
- Иерархия памяти
- Иерархия памяти.
- Аппаратная поддержка операционной системы и систем программирования
- Требования к аппаратуре для поддержки мультипрограммного режима
- Мультипрограммный режим.
- Проблемы, возникающие при исполнении программ
- Вложенные обращения к подпрограммам.
- Перемещаемость программы по озу.
- Фрагментация памяти.
- Регистровые окна
- Регистровые окна.
- Регистровые окна. Вход и выход из подпрограммы.
- Системный стек
- Системный стек.
- Виртуальная память
- Страничная организация памяти.
- Страничная организация памяти. Преобразование виртуального адреса в физический.
- Страничная организация памяти. Схема преобразования адресов.
- Многомашинные, многопроцессорные ассоциации
- Классификация мкмд.
- Numa-система.
- Терминальные комплексы (тк)
- Терминальные комплексы.
- Компьютерные сети
- Компьютерные сети.
- Организация сетевого взаимодействия. Эталонная модель iso/osi
- Модель организации взаимодействия в сети iso/osi.
- Логическое взаимодействие сетевых устройств по I-ому протоколу.
- Семейство протоколов tcp/ip. Соответствие модели iso/osi
- Семейство протоколов tcp/ip.
- Взаимодействие между уровнями протоколов tcp/ip.
- Система адресации протокола ip.
- Маршрутизация дейтаграмм.
- Основы архитектуры операционных систем
- Структура ос
- Структурная организация ос.
- Структура ос с монолитным ядром.
- Структура ос с микроядерной архитектурой.
- Логические функции ос
- Типы операционных систем
- Структура сетевой ос.
- Структура распределенной ос.
- Управление процессами
- Основные концепции
- Модели операционных систем
- Типы процессов
- Типы процессов: однонитевая (а) и многонитевая (б) организации.
- Контекст процесса
- Реализация процессов в ос Unix
- Процесс ос Unix
- Разделение сегмента кода.
- Базовые средства управления процессами в ос Unix
- Пример использования системного вызова fork().
- Пример использования системного вызова execl().
- Пример использования схемы fork-exec.
- Жизненный цикл процесса. Состояния процесса
- Жизненный цикл процессов.
- Формирование процессов 0 и 1
- Формирование нулевого и первого процессов.
- Инициализация системы.
- Планирование
- Взаимодействие процессов
- Разделяемые ресурсы и синхронизация доступа к ним
- Гонка процессов.
- Пример тупиковой ситуации (deadlock).
- Способы организации взаимного исключения
- Пример двоичного семафора.
- Классические задачи синхронизации процессов
- Обещающие философы.
- Реализация межпроцессного взаимодействия в ос Unix
- Базовые средства реализации взаимодействия процессов в ос Unix
- Способы организации взаимодействия процессов.
- Сигналы
- Неименованные каналы
- Именованные каналы
- Модель межпроцессного взаимодействия «главный–подчиненный»
- Общая схема трассировки процессов.
- Система межпроцессного взаимодействия ipc (Inter-Process Communication)
- Очередь сообщений ipc
- Очередь сообщений ipc.
- 0666 Определяет права доступа */
- Разделяемая память ipc
- Массив семафоров ipc
- Int val; /* значение одного семафора */
- Сокеты — унифицированный интерфейс программирования распределенных систем
- Файловые системы
- Основные концепции
- Структурная организация файлов
- Атрибуты файлов
- Основные правила работы с файлами. Типовые программные интерфейсы
- Модель одноуровневой файловой системы.
- Модель двухуровневой файловой системы.
- Модель иерархической файловой системы.
- Подходы в практической реализации файловой системы
- Структура «системного» диска.
- Модели реализации файлов
- Модель непрерывных файлов.
- Модель файлов, имеющих организацию связанного списка.
- Модели реализации каталогов
- Модели организации каталогов.
- Соответствие имени файла и его содержимого
- Пример жесткой связи.
- Пример символической связи.
- Координация использования пространства внешней памяти
- Квотирование пространства файловой системы
- Квотирование пространства файловой системы.
- Надежность файловой системы
- Проверка целостности файловой системы
- Проверка целостности файловой системы. Непротиворечивость файловой системы соблюдена.
- Проверка целостности файловой системы. Зафиксирована пропажа блока.
- Проверка целостности файловой системы. Зафиксировано дублирование свободного блока.
- Проверка целостности файловой системы. Зафиксировано дублирование занятого блока.
- Проверка целостности файловой системы. Контроль жестких связей.
- Примеры реализаций файловых систем
- Организация файловой системы ос Unix. Виды файлов. Права доступа
- Логическая структура каталогов
- Логическая структура каталогов.
- Внутренняя организация файловой системы: модель версии System V
- Структура файловой системы версии System V.
- Работа с массивами номеров свободных блоков
- Работа с массивами номеров свободных блоков.
- Работа с массивом свободных индексных дескрипторов
- Индексные дескрипторы. Адресация блоков файла
- Индексные дескрипторы.
- Адресация блоков файла.
- Файл-каталог
- Файл-каталог.
- Установление связей.
- Достоинства и недостатки файловой системы модели System V
- Внутренняя организация файловой системы: модель версии Fast File System (ffs) bsd
- Структура файловой системы версии ffs bsd.
- Стратегии размещения
- Стратегия размещения последовательных блоков файлов.
- Внутренняя организация блоков
- Внутренняя организация блоков (блоки выровнены по кратности).
- Выделение пространства для файла
- Выделение пространства для файла.
- Структура каталога ffs
- Структура каталога ffs bsd.
- Блокировка доступа к содержимому файла
- Управление оперативной памятью
- Одиночное непрерывное распределение
- Одиночное непрерывное распределение.
- Распределение неперемещаемыми разделами
- Распределение неперемещаемыми разделами.
- Распределение перемещаемыми разделами
- Распределение перемещаемыми разделами.
- Страничное распределение
- Страничное распределение.
- Иерархическая организация таблицы страниц.
- Использование хеш-таблиц.
- Инвертированные таблицы страниц.
- Замещение страниц. Алгоритм «Часы».
- Сегментное распределение
- Сегментное распределение.
- Сегментно-страничное распределение
- Сегментно-страничное распределение. Упрощенная модель Intel.
- Управление внешними устройствами
- Общие концепции
- Архитектура организации управления внешними устройствами
- Модели управления внешними устройствами: непосредственное (а), синхронное/асинхронное (б), с использованием контроллера прямого доступа или процессора (канала) ввода-вывода.
- Программное управление внешними устройствами
- Иерархия архитектуры программного управления внешними устройствами.
- Планирование дисковых обменов
- Планирование дисковых обменов. Модель fifo.
- Планирование дисковых обменов. Модель lifo.
- Планирование дисковых обменов. Модель sstf.
- Raid 2. Избыточность с кодами Хэмминга (Hamming, исправляет одинарные и выявляет двойные ошибки).
- Raid 3. Четность с чередующимися битами.
- Raid 5. Распределенная четность (циклическое распределение четности).
- Работа с внешними устройствами в ос Unix
- Файлы устройств, драйверы
- Системные таблицы драйверов устройств
- Ситуации, вызывающие обращение к функциям драйвера
- Включение, удаление драйверов из системы
- Организация обмена данными с файлами
- Организация обмена данными с файлами.
- Буферизация при блок-ориентированном обмене
- Борьба со сбоями