Иллюстрированный самоучитель по теории операционных систем

Параллелизм с точки зрения программиста

  • Параллелизм с точки зрения программиста

    Ты выбежал за угол купить вина | Ты вернулся, а вместо дома стена. | Б. Гребенщиков | На палубу вышел, и палубы нет | В глазах у него помутилось. | В.
  • Формулировка задачи

    Я что-то не вижу пивного ларька. | Должно быть, его | Успели снести за ночь. | Б. Гребенщиков | Чтобы понять, какие же методики применимы для взаимодействия параллельно исполняющихся нитей, давайте более четко сформулируем задачу. Для этого нам также надо ввести некоторое количество терминов.
  • Примитивы взаимоисключения

    В классической работе Г. М. Дейтела [Дейтел 1987] предлагается несколько последовательных усовершенствований механизма взаимоисключений, основанного на флаговых переменных, и как завершающий этап этого анализа приводится алгоритм взаимоисключений Деккера (пример 7.2). | Пример 7.2.
  • Мертвые и живые блокировки

    Потом ударили морозы. | Замерзло все, лиса ушла в кредит. | Медведь же вмерз в дупло | И до сих пор глядит. | Б. Гребенщиков | Решив проблему взаимоисключения для одиночных разделяемых ресурсов, мы еще не можем расслабляться.
  • Примитивы синхронизации

    Я слышу крик в темноте | Наверное, это сигнал. | В. Бутусов | Посмотрев на примеры 7.2 и 7.4, внимательный читатель должен отметить, что используемая конструкция подозрительно похожа на работу с внешними устройствами в режиме опроса.
  • Семафор Дейкстры. Семафоры и прерывания.

    Но когда ты проспишься, скрой свой испуг, | Это был не призрак, эти был только звук. | Это тронулся поезд, на который ты не попадешь. | Б. Гребенщиков | Семафор Дейкстры представляет собой целочисленную переменную, с которой ассоциирована очередь ожидающих нитей.
  • Захват участков файлов

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

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

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

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

    В начале 70-х годов появилась новая архитектура многозадачных систем довольно резко отличающаяся от вышеописанной модели последовательных процессов. Речь идет о так называемых системах, управляемых событиями (event-driven systems).
Если Вы заметили ошибку, выделите, пожалуйста, необходимый текст и нажмите CTRL + Enter, чтобы сообщить об этом редактору.