LINUX.ORG.RU
ФорумTalks

Необъяснимые веши прямо под носом: недетерминированность операционных систем и программ

 


0

0

Раз 20 в жизни встречался с ситуациями, когда я не мог объяснить поведение программ/ОС/компьютерного железа вокруг себя.

Реальный простой пример, который был у меня как минимум пару десяток раз: меня зовут «починить» какую-нибудь проблему, а когда я дохожу до человека проблема проходит сама по себе.

Второй достаточно редкий пример: два компьютера с одинаковым железом. Ставишь offtopic OS с одного и того же оригинального носителя, скачиваешь одинаковые до SHA256 обновления и такие же драйвера, а компьютеры ведут себя по-разному: например, грузятся с разницей в 10 секунд. Или один из них слегка поглючивает, например, скроллинг веб страниц иногда тормозит.

Как вообще может подобное происходить? Ведь это в чистом виде недетерминированность того, что должно работать как алгоритм.

Я законченный анти-религиизный/анти-чушь-собачая человек, а вещи происходят просто хоть челюсть отпадывает.

Расскажите про подобные случаи в вашей жизни.

Топай на ithappens, там таких полно.

З.Ы. С первым случаем сталкивался и сталкиваюсь до сих пор.

Zhbert ★★★★★ ()

Да постоянно такое случается. На одинаковом железе одинаковый софт может работать по-разному. ЭВМ сейчас настолько комплексная вещь, что мы, абстрагировавшись от нижних уровней, воспринимаем что-то происходящее на верхних уровнях, как необъяснимую магию. А на самом деле объяснение есть, но оно глубоко, а копать не хочется.

CYB3R ★★★★★ ()

Компьютеров с одинаковым железом не существует. Разный уровень пыли и перегрева, плохие контакты, разные серийные номера деталей, в результате программы с привязкой к серийникам (некотороый проприетарный софт) начинают вычислять там ли они запущены, где и в прошлый раз, а в этих функциях также могут быть ошибки, вот и всё. Ну и разная изношенность HDD.

peregrine ★★★★★ ()

меня зовут «починить» какую-нибудь проблему, а когда я дохожу до человека проблема проходит сама по себе.

  • 1/3 задержки (сетевые и прочие), принятые за неправильное поведение;
  • 1/3 - человек сообразил, что делал глупость, но не хочет признаваться;
  • 1/3 - человек не сообразил, что делал глупость и,случайно натыкав, так и не понял, как делать правильно.

Из-за последних я всегда пытаю что и как было сделано.

ziemin ★★ ()

просто комплексность систем и разных уровней абстракции зашкаливает, поэтому проблему ты не всегда сможешь найти и объяснить в разумные сроки

umren ★★★★★ ()
Ответ на: комментарий от ziemin

человек не сообразил, что делал глупость и,случайно натыкав, так и не понял, как делать правильно.

Тут скорее человек стал делать по инструкции, и заработало правильно. А до этого пытался пропустить шаги, или заменить их на эквивалентные по его мнению.

i-rinat ★★★★★ ()

Не бывает ничего строго детерминированного. Любая сложная система постоянно немного подглючивает. Задача в том, чтобы ошибки на низких уровнях (перепад напряжения как самый примитивный пример) не приводили к существенным проблемам на высоких.

Касательно саморешающихся проблем: действительно существует класс проблем, которые решаются со временем. Например, в Windows можно решать проблемы перезагрузкой, перезапуском служб и т.п. Иногда события, исправляющие проблемы, запускаются автоматически, в результате происходит «магия».

Sadler ★★★ ()
Последнее исправление: Sadler (всего исправлений: 1)

грузятся с разницей в 10 секунд

«— Да ты же возвращаешь из функции указатель на локальную переменную! Как это вообще работает?!
— А я просто приоритет у потока ставлю повыше, он успевает скопировать...»

i-rinat ★★★★★ ()

Как вообще может подобное происходить? Ведь это в чистом виде недетерминированность того, что должно работать как алгоритм.

man Эффект_бабочки

redgremlin ★★★★★ ()

когда я дохожу до человека проблема проходит сама по себе

Эмпирический закон - «эффект телемастера». Телевизор работает под присмотром телемастера, и глючит когда тот уходит от клиента. Классика.

outtaspace ★★★ ()

Такой же пример: две одинаковые женщины из одинаковых продуктов по одинаковым рецептам делают разные по вкусу пирожки.

CYB3R ★★★★★ ()
Ответ на: комментарий от outtaspace

Эмпирический закон - «эффект телемастера». Телевизор работает под присмотром телемастера, и глючит когда тот уходит от клиента. Классика.

А как он объясняется?

Xenius ★★★★★ ()
Ответ на: комментарий от Xenius

Все женщины одинаковые. Это двух одинаковых компьютеров не бывает.

CYB3R ★★★★★ ()
Ответ на: комментарий от i-rinat

Это почти равнозначно, я о вопиющих случаях.

Лет десять (или даже больше) назад я работал тыжпрограммистом на одном госзаводе. Как обычно звонят «не работает мышь». Для порядку заскакиваю к админам - мышей нет, но есть ящик «не работающих», из которого теоретически можно собрать рабочую.

В общем, иду без запаски. Как обычно всё работает. Я даже шарик вытащил, протёр валики пальцем, а то бывало налипнет комок и периодические глюки. Но не в этот раз.

Спрашиваю, как не работает? Тётенька, сильно в теле, демонстрирует, как «он не печатает» рывком прогоняя мышь над вордовской кнопкой отправки на печать и не успевая клацнуть.

Показываю, что мышь надо водить помедленнее и как наклацать в меню Файл=>Печать. На всякий случай (но без особой надежды) показываю комбинацию клавиш (ни то ни то не устраивает, ибо дополнительный диалог).

По прежнему виновата мышь. К счастью встревают соседки, которые начинают переубеждать тётеньку. Ухожу в худших предчувствиях, но вроде тогда обошлось.

ziemin ★★ ()

Не вижу в приведённых примерах вообще ничего странного.

vsemnazlo ()

Реальный простой пример, который был у меня как минимум пару десяток раз: меня зовут «починить» какую-нибудь проблему, а когда я дохожу до человека проблема проходит сама по себе.

Я тоже такое наблюдаю. У меня это тяночки и админ-холостяк... :) :) :)

xwicked ★★ ()

Алгоритмы детерминированны, недетерминированны системы.

puding ()
Ответ на: комментарий от ziemin

пытаю что и как было сделано

«Оно само! Я только включила, а оно такое!»

Xellos ★★★★★ ()

Недетерминированность в сложном железе вполне присутствует, как конструктивно обусловленная, так и вследствие износа. К примеру, в цифровой технике ты даешь некую команду в сторону периферии и ждешь ответа. Периферия работает асинхронно, поэтому отвечает с неопределенной задержкой, 3 или 4 такта будешь ждать - неизвестно. Вот и неопределенность.

Считается, что в исправно работающем ПО существует сколько-то там багов на 1000 строк. В железе тоже есть баги и они бывают вполне случайными. При этом железо работающее, но как-то с особенностями. Например в выходном каскаде цифровой микросхемы заводской дефект, верхнее плечо неисправно (в обрыве). При этом переход от 1 к 0 работает с нормальной задержкой, а переход от 0 к 1 - с увеличенной задержкой. Вот и неопределенность.

Я уж не говорю про дребезг, иголки, гонки, или сопли, отпечатки пальцев на печатной плате.

anto215 ★★ ()

первый случай - просто классика. Причем не только с компами.

saibogo ★★★ ()

Ну, начнём с того, что два, казалось-бы, одинаковых компа, во-первых, ты не можешь проверить на идентичность на уровне «микроэлементной» базы. Максимум - на уровне рассыпухи.

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

Имхо, это больше граничит с квантовыми эффектами и теорией вероятностей, чем с религией. Хотя для кого-то между ними нет разницы.

blexey ★★★★★ ()

У техники есть "душа".

Правда, она достаточно примитивная по сравнению с душой животного и тем более человека. Душа заставляет хотеть жить любой искусственно созданный организм и сопротивляться разрушению. Потенциал к «жизни» в материалах проявляется по-всякому, но в окружающей действительности обычно наблюдается полезный для человека синергетический эффект потенциалов материалов — иначе люди их бы не стали совмещать, что называется, «в одном флаконе» и добиваться определённых качеств и характеристик работы-взаимодействия. Обратный синергетическому эффект объективно ведёт к отказам и последующему быстрому разрушению компонентов.

iZEN ★★★★★ ()
Последнее исправление: iZEN (всего исправлений: 1)
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.