Главная страница
Навигация по странице:

  • 1.5. Управление ресурсами

  • 1.5.1 Управление процессами

  • 1.5.2 Управление памятью

  • 1.5.3 Управление файловой системой

  • 1.5.4 Управление запоминающими устройствами

  • 1.5.5 Управление кэшем

  • Уровень 1 2 3 4

  • Рисунок 1.14

  • Глава 1. Введение. Концепция операционных систем


    Скачать 0.54 Mb.
    НазваниеКонцепция операционных систем
    Анкорdmaster
    Дата13.10.2022
    Размер0.54 Mb.
    Формат файлаdocx
    Имя файлаГлава 1. Введение.docx
    ТипДокументы
    #731212
    страница5 из 7
    1   2   3   4   5   6   7

    1.4.3 Таймер. Мы должны убедиться, что операционная система сохраняет контроль над процессором. Мы не можем допустить, чтобы пользовательская программа застряла в бесконечном цикле или не вызывала системные службы и никогда не возвращала управление операционной системе. Для достижения этой цели мы можем использовать таймер. Таймер может быть установлен для прерывания компьютера после определенного периода. Период может быть фиксированным (например, 1/60 секунды) или переменным (например, от 1 миллисекунды до 1 секунды). Переменный таймер обычно реализуется с помощью часов с фиксированной частотой и счетчика. Операционная система устанавливает счетчик. Каждый раз, когда тикают часы, счетчик декремментируется. Когда счетчик достигает 0, происходит прерывание. Например, 10-битный счетчик с тактовой частотой 1 миллисекунда позволяет прерывать с интервалами от 1 миллисекунды до 1024 миллисекунд с шагом в 1 миллисекунду. Перед передачей управления пользователю операционная система гарантирует, что таймер настроен на прерывание. Если таймер прерывается, управление автоматически передается операционной системе, что может рассматривать прерывание как фатальную ошибку или может дать программе время. Понятно, что инструкции по изменению содержания таймера являются привилегированными.

    1.5. Управление ресурсами

    Как мы уже видели, управляющий системный ресурс управляет процессором. ЦПУ системы, пространство памяти, пространство хранения файлов и устройства ввода-вывода располагают ресурсами, которыми должна управлять операционная система.

    1.5.1 Управление процессами Программа не может делать ничего, если ее инструкции не выполняются ЦПУ. Выполняемая программа, как упоминалось выше, является процессом. Программа, такая как компилятор - это процесс, а программа обработки текстов, запускаемая отдельным пользователем на ПК, - это тоже процесс. Точно так же приложение для социальных сетей на мобильном устройстве - это процесс. Далее, вы можете рассмотреть процесс запуска приложения, но в конце концов вы поймете, что это концепция в целом. Для выполнения своей задачи процессу необходимы определенные ресурсы, включая время ЦП, память, файлы и устройства ввода-вывода. Эти ресурсы обычно выделяются процессу во время его работы. В дополнение к различным физическим и логическим ресурсам, которые процесс получает при его создании, могут передаваться различные данные инициализации (входные данные). Например, рассмотрим процесс, выполняющий веб-браузером, функция которого заключается в отображении содержимого веб-страницы на экране. Процесс выдаст URL-адрес и выполнит соответствующие инструкции и вызовет систему и отобразит нужную информацию на экране. При этом операционная система найдет многоразовые ресурсы. Мы подчеркиваем, что программа сама по себе не является процессом. Программа представляет собой пассивную деятельность, такую ​​как содержимое файлов, а также является активной организацией. Однопоточный процесс имеет один программный счетчик, определяющий следующую команду для выполнения. (Потоки описаны в главе 4.) Выполнение такого процесса должно быть последовательным. Процессор выполняет одну инструкцию процесса за другой, пока процесс не завершится. Кроме того, в любое время от имени процесса выполняется не более одной инструкции. Таким образом, хотя два процесса могут быть связаны с одной и той же программой, они, тем не менее, рассматривают две отдельные последовательности выполнения. Многопоточный процесс имеет несколько программных счетчиков, каждый из которых указывает на следующую инструкцию, выполняемую для данного объекта. Процесс - это единица работы в системе. Система состоит из набора процессов, некоторые из которых являются процессами операционной системы (те, которые выполняют системный код), а остальные являются пользовательскими процессами (те, которые выполняют пользовательский код). Все эти процессы могут потенциально выполняться одновременно - путем мультиплексирования на одном ядре ЦП - или параллельно несколькими ядрами ЦП. Операционная система отвечает за следующие действия, связанные с управлением процессами:

    • Создание и удаление как пользовательских, так и системных процессов.

    • Планирование процессов и потоков на процессорах.

    • Приостановка и возобновление процессов.

    • Обеспечение механизмов синхронизации процессов.

    • Обеспечение механизмов взаимодействия процессов.

    Мы обсудим методы управления процессами в главах 3 - 7.

    1.5.2 Управление памятью Как было рассмотрено в разделе 1.2.2, основная память является центральной для работы современной компьютерной системы. Основная память представляет собой большой массив байтов размером от сотен тысяч до миллиардов. Каждый байт имеет свой адрес. Основная память - это хранилище быстро доступных данных, которые совместно используются процессором и устройствами ввода-вывода. Процессор читает инструкции из основной памяти в течение цикла выборки инструкций, а также читает и записывает данные из основной памяти в течение цикла выборки данных (по архитектуре фон Неймана). Как правило, основная память только увеличивает целевое устройство, которое можно использовать для прямого доступа и доступа к нему. Например, чтобы процессор обрабатывал данные с диска, эти данные должны быть сначала переданы в основную память с помощью вызовов ввода-вывода, сгенерированных процессором. Точно так же инструкции должны находиться в памяти, чтобы процессор мог их выполнить. Для того, чтобы программа была выполнена, она должна быть отображена в постоянных адресах и загружена в память. Программа выполняет доступ к программным конструкциям и данным из памяти, генерируя эти абсолютные адреса. В конце концов, программа завершается, ее область памяти объявляется доступной, и следующая программа может быть загружена и выполнена. Чтобы улучшить использование ЦПУ и скорость реакции компьютера для своих пользователей, универсальные компьютеры должны запоминать в памяти несколько программ, создавая для себя удобное управление памятью. Многие из них используют различные методы, позволяющие использовать различные средства, в том числе и для того, чтобы избавиться от неприятных ощущений. Каждый алгоритм требует собственной аппаратной поддержки.

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

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

    • Выделение и освобождение пространства памяти по мере необходимости.

    • Решение, какие процессы (или части процессов) и данные перемещаются в память и из нее.

    Методы управления памятью обсуждаются в главе 9 и главе 10.

    1.5.3 Управление файловой системой Чтобы сделать компьютерную систему удобной для пользователей, операционная система обеспечивает единообразное логическое представление информационного хранилища. Операционная система абстрагируется от физических свойств своих устройств хранения данных, чтобы определить логический блок хранения файла. Операционная система отображает файлы на физических носителях и обращается к этим файлам через устройства хранения. Управление файлами является одним из наиболее заметных компонентов операционной системы. Компьютеры могут хранить информацию на нескольких различных типах физических носителей. Вторичное хранилище является наиболее распространенным, но также возможно и третичное хранение. Каждый из этих носителей имеет свои особенности и физическую организацию. Большинство из них управляются устройством, таким как дисковод, который также имеет свои уникальные характеристики. Эти свойства включают скорость доступа, емкость, скорость передачи данных и метод доступа (последовательный или случайный). Файл представляет собой совокупность связанной информации, определенной его создателем. Обычно файлы представляют программы (как исходные, так и объектные формы) и данные. Файлы данных могут быть числовыми, буквенными, буквенно-цифровыми или двоичными. Файлы могут быть произвольной формы (например, текстовые файлы) или могут быть жестко отформатированы (например, фиксированные поля, такие как музыкальный файл mp3). Понятно, что концепция файла является чрезвычайно общей. Операционная система реализует абстрактную концепцию файла, управляя массовой памятью и устройствами, которые их контролируют. Кроме того, файлы обычно организованы в каталоги, чтобы их было проще использовать. Наконец, когда несколько пользователей имеют доступ к файлам, может быть желательно контролировать, какой пользователь может получить доступ к файлу и как этот пользователь может получить к нему доступ (например, чтение, запись, добавление). Операционная система отвечает за следующие действия, связанные с управлением файлами:

    • Создание и удаление файлов

    • Создание и удаление каталогов для организации файлов

    • Поддержка примитивов для работы с файлами и каталогами

    • Отображение файлов на большое хранилище

    • Резервное копирование файлов на стабильные (энергонезависимые) носители

    Методы управления файлами обсуждаются в главе 13, главе 14 и главе 15.

    1.5.4 Управление запоминающими устройствами Как мы уже видели, компьютер должен предоставить вторую память для резервного копирования основной памяти. Самые современные компьютерные системы используют устройства HDD и NVM в качестве основного онлайнового носителя данных для программ и данных. Большинство программ, включая компиляторы, веб-браузеры, текстовые процессоры и игры, хранятся на этих устройствах до загрузки в память. Программы затем используют устройства как источник и назначение их обработки. Следовательно, правильное управление вторичным хранилищем имеет центральное значение для компьютерной системы. Операционная система отвечает за следующие действия в связи с управлением вторичным хранилищем:

    • Монтирование и размонтирование

    • Управление свободным пространством

    • Распределение памяти

    • Планирование диска

    • Разбиение

    • Защита

    Поскольку вторичное хранилище используется часто и широко, оно должно использоваться эффективно. Скорость работы компьютера зависит от скорости работы подсистемы вторичного хранения и алгоритмов, которые управляют этой подсистемой. В то же время, существует много способов хранения, которые медленнее и дешевле (а иногда и больше по объему), чем вторичное хранилище. Резервные копии дисковых данных, хранилище редко используемых данных и долговременное архивное хранение - вот некоторые примеры. Магнитные ленты, дисковые накопители, дисководы для DVD и Blu-ray и жесткие диски являются типичными устройствами хранения данных. Третичное хранилище не имеет решающего значения для производительности системы, но все же им нужно управлять. Некоторые операционные системы выполняют эту задачу, в то время как другие оставляют управление третичным хранилищем прикладным программам. Некоторые функции, которые работают в системах, могут включать в себя установку и отключение мультимедиа в устройствах, выделение и освобождение устройств для исключительного использования процессами, а также миграцию данных из вторичного в третичное хранилище. Методы вторичного хранения и управления третичным хранением обсуждаются в главе 11.

    1.5.5 Управление кэшем Кэширование является важным принципом компьютерных систем. Вот как это работает. Информация обычно хранится в некоторой системе хранения (например, в основной памяти). При использовании он временно копируется в более быструю систему хранения - кэш-память. Когда нам нужна конкретная часть информации, мы сначала проверяем, находится ли она в кэше. Если это так, мы используем информацию непосредственно из кэша. Если это не так, мы используем информацию из источника, помещая копию в кеш, предполагая, что она нам скоро понадобится. Кроме того, внутренние программируемые регистры обеспечивают высокоскоростной кэш для основной памяти. Программист (или компилятор) реализует алгоритмы распределения регистров и замены регистров, чтобы определить, какую информацию хранить в регистрах и хранить в основной памяти. Другие кэши полностью реализованы аппаратно. Например, большинство систем имеют кэш инструкций для хранения инструкций, ожидающих следующим к выполнению. Без этого кэша ЦП пришлось бы ждать несколько циклов, пока инструкция извлекается из основной памяти. По аналогичным причинам большинство систем имеют более высокую скорость передачи данных в иерархии памяти. Мы не имеем отношения к этим аппаратным кэшам в этом тексте, поскольку они находятся вне контроля операционной системы. Поскольку кэши имеют ограниченный размер, управление кэш-памятью является важной проблемой проектирования. Тщательный выбор размера кэша и политики размещения может привести к значительному повышению производительности, так как вы можете исследовать анализ на рисунке 1.14.

    Уровень

    1

    2

    3

    4

    5

    Имя

    регистр

    кэш-памяти

    основной памяти

    твердотельный диск

    магнитный диск

    Типичный размер

    <1 КБ

    <16 МБ

    <64 ГБ

    <1 ТБ

    <10 ТБ

    Технология внедрения

    пользовательской памяти с несколькими портами CMOS

    встроенной или внешней памяти CMOS SRAM

    CMOS SRAM

    флеш-память


    магнитный диск

    Время доступа (нс)

    0.25-0.5

    0,5-25

    80-250

    25 000-50 000

    5 000 000

    Пропускная способность (МБ / с)

    20 000-100 000

    5 000–10 000

    1,000-5,000

    500

    20-150

    Управляется

    компилятором

    аппаратной

    операционной системой

    операционной системой

    операционной системой

    При поддержке

    кеша

    основной памяти

    диска

    диск

    дисков или ленты


    Рисунок 1.14 Характеристики различных типов хранилищ.

    Алгоритмы замены для программно-управляемых кэшей обсуждаются в главе 10. Движение информации между уровнями иерархии хранилищ может быть, как явным, так и неявным, в зависимости от конструкции аппаратного обеспечения и управляющего программного обеспечения операционной системы. Например, передача данных из кэша в ЦП и регистры обычно является аппаратной функцией без вмешательства операционной системы. В отличие от этого, передача данных с диска на память обычно контролируется операционной системой. В иерархической структуре хранения одни и те же данные могут появляться на разных уровнях системы хранения. Например, предположим, что целое число A, которое должно быть увеличено на 1, находится в файле B, а файл B находится на жестком диске. Начальная операция начинается с первой операции ввода / вывода, чтобы скопировать блок диска, на котором находится основная память. За этой операцией следует копирование в кэш и во внутренний регистр. Таким образом, копия A появляется в нескольких местах: на жестком диске, в основной памяти, в кэше и во внутреннем реестре (см. Рисунок 1.15). После того, как во входном регистре происходит вставка, значение A отличается в различных системах хранения. Значение A становится таким же только после записи нового значения A из внутреннего регистра обратно на жесткий диск. В вычислительной среде, где одновременно выполняется только один процесс, такое расположение не представляет трудностей, поскольку доступ к целому числу всегда будет возможен с копией на самом высоком уровне иерархии. Однако в среде многозадачности, в которой ЦПУ переключается между различными процессами, необходимо соблюдать крайнюю осторожность: предпринимать меры, чтобы гарантировать, что, если несколько процессов желают получить доступ к A, каждый из этих процессов получит самое последнее обновленное значение A. Ситуация становится более сложной в многопроцессорном окружении, где, помимо поддержки внутренних регистров, каждый из процессоров также содержит локальный кэш (см. рисунок 1.8). В таком окружении копия A может существовать одновременно в нескольких запасниках. Поскольку все различные процессоры могут выполняться параллельно, мы должны убедиться, что обновление значения A в одном кэше немедленно отражается во всех других кэшах, где находится A. Эта ситуация называется кэш-когерентностью и обычно является программным обеспечением (обрабатывается ниже уровня операционной системы). В распределенной среде ситуация становится еще более сложной. В этой среде несколько копий (или реплик) одного и того же файла могут быть получены на разных компьютерах. Поскольку различные реплики могут быть доступны и обновлены одновременно, некоторые распределенные системы утверждают, что, когда реплика обновляется в одном месте, все возможные реплики могут быть выполнены как можно скорее. Есть разные способы достижения этой гарантии, как мы обсудим в главе 19.
    1   2   3   4   5   6   7


    написать администратору сайта