Описание тега vdpau
@Сторми вы правы, большой завод, но не часто видел в торговле. Выделить для этого растения, кажется, были в Викторианскую эпоху. Он, вероятно, нуждается в новом имени и рекламную кампанию, чтобы снова стать популярной. Я мог видеть содержимого пакета с помощью правой кнопкой мыши->показать содержимое пакета. Одна дополнительная информация, что я получил, было, что место установки было`/`, который я предполагаю по умолчанию, и разработчик не хочет его менять. Я не знаю, если я что-то пропустил в информации об использовании, но я не мог найти любой вариант для проверки скриптов. Также, пожалуйста, см. обновление, это было `.приложение`, не `.ПКГ`
Мас OS X позволяет выделить "много", хотя система может цеп отчаянно или быть просто штраф, в зависимости от того, как , что выделенная память используется любой последующий код. Я, наверное, должен был вводиться
следующий код после того, как он выделил "много" чисел (по -М
флаг), хотя это было время, так как я протестировал на Mac ОС Х.
/*
# (АБ)использует память через выделение блока памяти, с учетом
# количество рабочих потоков, а затем читать и писать значения в случайном порядке
# в этом пространстве. Этот код был мотивирован тем, что во время
# `на Perl -е '1 а 1' &` может работать до процессора, более вероятно, будет работать
# в пределах вилки, чем узких мест процессора на современных многопроцессорных
систем#. Этот код лучше упражнения системы. В основном, он предлагает
# значит в болоте системы, предположительно для целей тестирования, гонки
# разведочное состояние, или насолить местным сисадмином.
#
# Лимиты системных ресурсов, возможно, должны быть скорректированы; см. логин.конф(5) на
# В OpenBSD, например. Там также может быть в процессе ограничения. А
# хороший способ болотники систему, чтобы запустить что-то вроде:
#
# я В ...; делать ./usemem -М -Т ... & сделано
#
# Где количество процессов для запуска и отсчета резьбы
# подходит для числа процессоров или желаемого уровня маразма. Приурочен
# команду killall(1) или удобный доступ к сбросу испытания системы должны быть организованы
# для, учитывая, что слишком много экземпляров этой программы может вынести
система # совсем неработоспособен--настольные системы Linux `vmstat с 1` записали
# 12 миллионов переключений контекста в запись, предположительно через какое-то время
# период дольше, чем второй, учитывая, как плохо, что система была
# выполнении. Вскоре после этого, на экране замер, и система
# должен быть выключен и снова (я все еще мог пинг поле).
#
# Первоначальный замысел этот код, чтобы попытаться спровоцировать гонку
# состояние на:
#
# сигнализация(...);
# somethingthatblocksforever();
# сигнализация(0);
# // -- записано со слов Стивенса, APUE (1-е издание), стр. 286.
#
# когда система занята настолько, что произойдет истечении отправляет
# перед somethingthatblocks() вызов может быть запущен, но после
# сигнализация(...) установлено, что процесс блокирует навсегда.
# Это, пожалуй, гораздо более вероятно, что система будет оказана
# непригодным (и мониторинг заметили этого), чем ударить это маловероятно край
дело№. Если система была чрезмерно занята или медленно, перезагрузка может
# хорошо быть в порядке, как только практично. Это позволит устранить
# possiblilty, что любой процесс застрял на какой-то редкий крайний случай
# такие, как выше.
#
Переносимость#: - М делает разумные вещи на OpenBSD; в Linux и Mac ОС
# Х это идет вразрез с различным количеством глупость или маразм, что может
# требуется-м -м верхняя граница`, чтобы установить максимально допустимое выделение.
# Это поможет предотвратить убийца ООМ от палить или
# ядра оптимистично пытается выделить 17,592,186,044,416 чисел
# а потом как-то погрязнуть.
#
# Используемые, чтобы попытаться realloc() массив вверх, если это возможно код,
# хотя, что на Linux убегала убийца ООМ. С мертвых процессов
# не намного налоговую систему, только сворачивает. Запуск больше
# экземпляров этого скрипта использовать оставшуюся память.
#
Подкачка # может быть вызвано запуска экземпляра, а затем отправить его
# в прод сигнал, запуская несколько экземпляров? Нужно проверить это.
*/
#включить <заблуждаться.ч>
код #include <errno значение.ч>
#включить <флагов.ч>
#Включить <ограничения.ч>
код #include <pthread в.ч>
#включить <сигнал.ч>
код #include <stdbool.ч>
#включить заголовочный файл <stdio.ч>
#включить <stdlib.ч>
#включить <строка.ч>
#включить <sysexits.ч>
#включить <запустите.ч>
// https://github.com/thrig/goptfoo
#включить <goptfoo.ч>
// https://github.com/thrig/libjkiss
#включить <jkiss.ч>
#определить MOSTMEMPOSSIBLE ( (ULONG_MAX < SIZE_MAX) ? ULONG_MAX : SIZE_MAX )
Flag_Auto_Mem типа bool; // -м
беззнаковый Long Flag_Memory; // -м (сумма, хотя внутренне # о Интс)
беззнаковый Long Flag_Threads; // -Т
инт *память;
pthread_mutex_t замок = PTHREAD_MUTEX_INITIALIZER;
pthread_cond_t Done_Malloc = PTHREAD_COND_INITIALIZER;
pthread_cond_t Never_Happens = PTHREAD_COND_INITIALIZER;
emit_help недействительным(ничтожным);
пустота *работник(недействительными *неиспользованный);
тап_п(АГДС, типа char *переменной argv[])
{
инт ч;
pthread_t *БТИ;
jkiss64_init(нулем);
пока ((ч = использования getopt(argc, необходимо агду, "ч?Мм:Т:")) != -1) {
переключатель (ч) {
корпус "м":
Flag_Auto_Mem = истина;
перерыв;
корпус "м":
Flag_Memory = flagtoul(ч, optarg, 1UL, MOSTMEMPOSSIBLE);
перерыв;
случае 'Т':
Flag_Threads = flagtoul(ч, optarg, 1UL, ULONG_MAX);
перерыв;
случае 'ч':
дело '?':
по умолчанию:
emit_help();
/* NOTREACHED */
}
}
АГДС -= optind;
агду += optind;
если ((Flag_Memory == 0 && !Flag_Auto_Mem) || Flag_Threads == 0)
emit_help();
/* Аааа Джи Эм. Сложно. Смотрите, если вы malloc() в самой памяти
* возможно, тогда нет места для резьбы. Так должен вращаться
* потоки, в первую очередь, а потом бинарным поиском realloc (), чтобы найти
* наиболее возможные памяти. Предположительно другие экземпляры этого
* программа или другие процессы будут запущены доедать все оставшиеся
* память в системе.
*/
если ((пив = памятью(размером sizeof(pthread_t), Flag_Threads)) == нуль)
подстраховаться(EX_OSERR, "не могли с памятью() список потоков");
для (беззнаковый long I = 0; я < Flag_Threads; я++) {
если (pthread_create(&пив[я], нулем, работник, значение null) != 0)
подстраховаться(EX_OSERR, "не может pthread_create() нить %Лу", я);
}
если (Flag_Auto_Mem) {
если (!Flag_Memory)
Flag_Memory = MOSTMEMPOSSIBLE;
Flag_Memory /= оператор sizeof(тип int);
пока (Flag_Memory) {
если ((память = функция malloc(Flag_Memory * оператор sizeof(тип int))) == нуль) {
Flag_Memory >>= 1;
} еще {
перерыв;
}
}
если (память) {
fprintf(stderr, "указанное информация: авто-запас берет %Лу ИНЦ\п", Flag_Memory);
} еще {
подстраховаться(EX_OSERR, "не может Авто-функции malloc() %Лу Интс", Flag_Memory);
}
} еще {
Flag_Memory /= оператор sizeof(тип int);
если ((память = функция malloc(Flag_Memory * оператор sizeof(тип int))) == нуль)
подстраховаться(EX_OSERR, "не может malloc () в %ЛУ Интс", Flag_Memory);
}
функцию memset(память, 1, Flag_Memory * оператор sizeof(тип int));
pthread_cond_broadcast(&Done_Malloc);
pthread_mutex_lock(&замок);
pthread_cond_wait(&Never_Happens, и блокировки);
pthread_mutex_unlock(&замок);
/* NOTREACHED */
выход(1);
}
emit_help недействительным(ничтожным)
{
fprintf(stderr, "использование: usemem [-г|-г памяти|-м -м "мэм"] - нити т\п");
выход(EX_USAGE);
}
пустота *работник(недействительными *неиспользованный)
{
беззнаковый Long в IDx;
pthread_mutex_lock(&замок);
pthread_cond_wait(&Done_Malloc, и блокировки);
pthread_mutex_unlock(&замок);
для (;;) {
// не (много) заботиться о предвзятости по модулю, так как наибольший объем памяти
// значительно меньше, чем UINT64_MAX
в IDx = jkiss64_rand() % Flag_Memory;
Память[индекс] = (индекс % 2 == 1)
? Память[jkiss64_rand() % Flag_Memory]
: слчис();
}
/* NOTREACHED */
}
В OpenBSD же, напротив, проваливает Танос, если вы просите больше, чем доступно.