Проблемы из-за отсутствия синхронизации

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

Для тех, кому это интересно знать, один временной интервал для гонок возникает между записью сигнатуры и записью маркера или данных в блок. Другой интервал существует между освобождением tfpblk->string и созданием новой строки с установкой правильной длины. Правильным решением было бы запретить чтение блока, выполнить изменение данных и разрешить чтение блока после завершения изменений. Но и в этом случае мы имеем интервал неопределенности между моментом, когда TFP видит блок разрешенным на чтение и моментом, когда мы запрещаем его чтение.

Эта проблема не была исправлена просто потому, что вероятность такого случая очень мала и это восстановимая ошибка. Она могла бы быть полностью исправлена включением в структуру серийных номеров начала и завершения обновления данных. Перед началом изменения данных поток повышает «начальный» номер. После завершения работы с данными поток повышает «конечный» номер. Читать далее «Проблемы из-за отсутствия синхронизации»

Какая ключевая система используется в Ваших программах?

В ключевой системе используются ключи как симметричные, так и асимметричные. Симметричные ключи связи (на этих ключах осуществляется шифрование информации) централизовано создаются в Ключевом Центре (КЦ) и передаются абоненту. Читать далее «Какая ключевая система используется в Ваших программах?»

Разработка структур программного обеспечения

Ваша первая задача — рассмотреть систему в общем, и разработать структуру программного обеспечения. С точки зрения поставленных задач, требования к вашей системе таковы: должна присутствовать поддержка большого числа устройств, расположенных в различных помещениях, а также возможность, по мере необходимости, добавления новых, не только по количеству, но и по качеству (например, считыватели отпечатков пальцев, или сетчатки глаза), устройств. Читать далее «Разработка структур программного обеспечения»

Задачи вопросов безопасности

Вы — разработчик программного обеспечения в компании, занимающейся вопросами безопасности, и перед вами поставлена задача создать программное обеспечение для новой системы безопасности. Читать далее «Задачи вопросов безопасности»

Где и как хранятся симметричные и асимметричные ключи?

Симметричные ключи шифрования хранятся на АП в соответствующем каталоге, к которому имеют доступ все абоненты данного АП. Они зашифрованы на ключе связи данного АП с КС, который, в свою очередь, находится на ключевой дискете абонента и зашифрован на его персональном ключе. Читать далее «Где и как хранятся симметричные и асимметричные ключи?»

Проблема блокировки считывателя карт

Другая проблема, проблема блокировки, может возникнуть если управляющая программа отправила сообщение драйверу считывателя карт который в этот момент ждет поступления данных от аппаратуры. Читать далее «Проблема блокировки считывателя карт»

Разработка структуры системы для среды Print E-mail

Знать то, что QNX Neutrino основано на обмене сообщениями — это одно, понимать же преимущества этого при разработке своих программ — это совершенно другое. Для таких стандартных UNIX- приложений, как HTTP веб-сервер, или протоколирование событий, это знать совершенно не обязательно. Читать далее «Разработка структуры системы для среды Print E-mail»