Большая часть легкого веса Compiz совместимая среда?

Спин-блокировка является способом защитить совместно используемый ресурс от того, чтобы быть измененным двумя или больше процессами одновременно. Первый процесс, который пытается изменить ресурс, "получает" блокировку и продолжается продвигающийся, делая то, что это должно было с ресурсом. Останавливаются любые другие процессы, которые впоследствии пытаются получить блокировку; они, как говорят, "вращают на месте" ожидание на блокировке, которая будет выпущена первым процессом, таким образом спин-блокировка имени.

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

Спин-блокировки являются проблемой потому что, вращая блоки что ядро процессора потока от выполнения любой другой работы. В то время как ядро Linux действительно предоставляет многозадачные услуги программам пространства пользователя, работающим под ним, который многозадачное средство общего назначения не расширяет до кода ядра.

Эта ситуация изменяется и была для большей части существования Linux. Через Linux 2.0, ядро было почти просто однозадачной программой: каждый раз, когда ЦП выполнял код ядра, только одно ядро процессора использовалось, потому что была единственная спин-блокировка, защищающая все совместно используемые ресурсы, названные Большой блокировкой ядра (BKL). Начинаясь с Linux 2.2, BKL медленно разбивается во многие независимые блокировки, что каждый защищает более сфокусированный класс ресурса. Сегодня, с ядром 2.6, BKL все еще существует, но это только используется действительно старым кодом, который не может быть с готовностью перемещен еще в некоторую детализированную блокировку. Для многоядерного поля теперь довольно возможно иметь каждый ЦП, выполняющий полезный код ядра.

Существует предел утилите разбивания BKL, потому что ядро Linux испытывает недостаток в общей многозадачности. Если ядро процессора получает заблокированное вращение на спин-блокировке ядра, для этого нельзя повторно определить задачу, для движения делают что-то еще, пока блокировка не выпущена. Это просто находится и вращается, пока блокировка не выпущена.

Спин-блокировки могут эффективно оказаться монстром поле с 16 ядрами в одножильное поле, если рабочая нагрузка такова, что каждое ядро всегда ожидает единственной спин-блокировки. Это - основной предел масштабируемости ядра Linux: удвоение ядер процессора от 2 до 4, вероятно, почти удвоит скорость поля Linux, но удвоение его от 16 до 32, вероятно, не будет с большинством рабочих нагрузок.

9
24.08.2010, 23:15
2 ответа

Я выполняю Compiz, автономный прямо сейчас. Работает просто великолепно. Я следовал инструкциям на Дуге Linux Compiz страница Wiki; посмотрите особенно раздел As a Standalone Window Manager.

6
27.01.2020, 20:07

Вы на самом деле требуете DE вообще? Я выполнил Compiz без одного прежде, нет никакой настоящей причины, которой он потребовал бы один, и это почти так легко, как можно добраться

4
27.01.2020, 20:07
  • 1
    Хм... Я никогда не думал об этом. Просто compiz и прикрепление были бы отлично достаточны для меня!править: хорошо, пока у меня может быть функционирующий лоток на моем прикреплении для беспроводного управления и этажерки. –  Garrett 24.08.2010, 23:29

Теги

Похожие вопросы