LINUX.ORG.RU

Сообщения nerdogeek

 

O(1) kernel sheduler - по сути не O(1)?

Там 2 очереди: 1 активная, 1 истекшая.
Так вот, когда квант времени процесса истекает, то для него пересчитывается значения кванта (и приоритета). Затем он помещается в очередь истекших.
В итоге, шедулер просто переставляет указатели массивов местами: для истекших и активных.
Но ведь число пересчетов равно числу всех процессов в худшем случае, т.е. за линейное время. Где тут O(1)?

 , ,

nerdogeek
()

Lock-free containers

Кто-нибудь использовал неблокирующиеся контейнеры? Как оно, есть профит или это только в теории все так хорошо?
Какие либы использовали?

 , ,

nerdogeek
()

Как ядро восстанавливает обработку прерванного прерывания?

В момент обработки прерывания irq, это прерывание может быть прервано другим прерыванием от той же или другой железки. А как затем возвращается/восстанавливается выполнение предыдущего обработчика?
Ведь обработка прерываний ведется в контексте прерываний, а не процесса.

 

nerdogeek
()

Почему в C++ не запилят интроспекцию / рефлексию?

1. Успех Qt во многом благодаря его Meta Object Compiler.
2. 2013 год. В C++ нет зачатков рефлексии. Сериализация выполняется вручную...
3, 4... Приведите сами
А теперь вопрос знатокам: почему, [censored], это так трудно сделать?

 ,

nerdogeek
()

А как дела с вакансиями для системного программиста в Минске?

Посмотрел на сабжевые вакансии Linux программиста в этой стране и впал в легкое негодование.
Все-таки через 3-5 лет сишники под линукс станут мифом, как воспоминание о ъ-хакерах из бородатых 70-х/80-х которые создали Unix.
Приветствуются истории успеха.
P.S. Привет, javaEpam! Аутсорс - наше все!

 , , ,

nerdogeek
()

Багофича эксепшенов с++ ?

Такой код:

#include <iostream>
#include <stdexcept>
using namespace std;

void g() try
{
    throw std::out_of_range( "range exception" );
}
catch( std::exception &e )
{
    cout << "g() catch " << e.what() << endl;
}

// bool or int exception can be thrown
void (*pf)() throw(bool, int) = g;

int main() {
    (*pf)(); // Должен возникать UNEXPECTED EXCEPTION
    cout << "wtf?" << endl;
    return 0;
}
prompt> g() catch range exception
prompt> wtf?
GCC 4.7.2 - ошибок компиляции нет, работает без unexpected exception (т.е. неправильно).
Что за фигня?

 , ,

nerdogeek
()

real-time posix framework

Существуют ли какие-нибудь фреймворки облегчающие жизнь разработчикам систем с мягким реальным временем?
Чтобы там были shed_setsheduler(FIFO), запрет свопа для heap, ввод/вывод через mmap и/или aio, epoll и прочие трюки.

 , ,

nerdogeek
()

Выпиливание GIL в CPython

Почему еще не выпилили?
Я вот занялся бы этим, если там реально задача не из серии переписать все заново.

 ,

nerdogeek
()

Как удалить файл "-rf" из директории /

Скажите, как можно удалить сабжевый файлик из под рута в корневой директории?
Не спрашивайте, как он туда попал, там у мну много уже чего после ночных красноглазых опытов.
P.S. ССЗБ такой ССЗБ

Перемещено post-factum из talks

 , ,

nerdogeek
()

Зависание в boost asio на операции чтения из сокета

Клиент делает приблизительно следующее:

tcp::resolver resolver( io_service );
tcp::resolver::query query( tcp::v4(), "localhost", "5556" );
socket_.connect( *resolver.resolve( query ), ec );

socket_.send( boost::asio::buffer( ss2.str() ) );
socket_.receive( boost::asio::buffer( buffer_ ) );
Сервер асинхронно принимает соединения от клиента, асинхронно читает из сокета socket_.async_read_some(...), затем записывает ответ асинхронно boost::asio::async_write( socket_, ... ).
Так вот, периодически (очень редко) происходит зависание в socket_.receive() на клиенте. ЧЯДНТ?
Количество соединений на локалхосте где-то порядка пары сотен в секунду.

 , ,

nerdogeek
()

Выполнение скрипта на Python из C/C++

Вызов скрипта на питоне:

PyCompilerFlags cf;
cf.cf_flags = 0; // ignore os._exit() ?
errCode = PyRun_SimpleStringFlags( scriptString, &cf );
1. Какие значения может принимать флаг cf_flags?
2. Как игнорировать os._exit() в питоне?

 , ,

nerdogeek
()

Использование типа параметра шаблона, еще не определенного

Есть такой код:

namespace ns {

template< typename T >
struct Buffer { T data; };

struct A {
void m( Buffer< B::ForwardType > arg ) {}
};

struct B {
typename char ForwardType;
};

} // end of ns

Как правильно объявить шаблонный аргумент arg метода A::m ?

 

nerdogeek
()

Impersonate из-под рута без форка

Есть демон, который работает под рутом.
Нужно сделать чтобы часть кода он выполнял под юзером с известным uid и gid, а затем опять продолжал работать под рутом.
seteuid и setegid не изменяют реальный uid, поэтому привилегии остаются рутовые. Что делать?

 , ,

nerdogeek
()

Заставить перейти юзеров венды на Linux

Есть гениальный план.
Создать дистриб максимально похожий на венду: с использованием wine для запуска вендовых экзешников, обоями и структурой файловой системы как в шиндоус и т.д, и т.п.
После того как все перейдут на него, шаг за шагом превращать его в нормальный UNИX-like диструбутив Linux...

 ,

nerdogeek
()

abrtd не может создать дамп упавшего процесса

В чем может быть проблема?
Вот что показывает /var/log/messages :
Jan 14 21:24:54 localhost kernel: [ 1991.806250] f[4480]: segfault at deadbeef ip 0804843b sp bff34630 error 7 in f[8048000+1000]
Jan 14 21:24:54 localhost abrtd: Directory 'ccpp-2013-01-14-21:24:54-4480' creation detected
Jan 14 21:24:54 localhost abrt[4481]: Saved core dump of pid 4480 (/home/user/f) to /var/spool/abrt/ccpp-2013-01-14-21:24:54-4480 (208896 bytes)
Jan 14 21:24:54 localhost abrt[4481]: Lock file '/var/spool/abrt/ccpp-2012-05-28-10:29:12-1751/.lock' is locked by process 648
Jan 14 21:24:55 localhost abrtd: Executable '/home/user/f' doesn't belong to any package
Jan 14 21:24:55 localhost abrtd: 'post-create' on '/var/spool/abrt/ccpp-2013-01-14-21:24:54-4480' exited with 1
Jan 14 21:24:55 localhost abrtd: Corrupted or bad directory '/var/spool/abrt/ccpp-2013-01-14-21:46:59-5194', deleting

 , ,

nerdogeek
()

Выполнение Haskell кода из программы на c/c++

Питоновский код можно интерпретировать на лету вызывая PyRun_SimpleString(const char*cmd).
Есть ли что-то подобное для Haskell?
Мне нужно именно для Haskell, но для каких еще функциональных ЯП такое тоже возможно?

 ,

nerdogeek
()

Зачем браузерам JavaScript, если есть Python как альтернатива ?

Может уже настал тот самый момент когда пора отвернуться от этого javascript...
Всем же очевидно, что js это историческая ошибка.
Стоит ли клепать бесконечные костыли для js, если можно сконцентрироваться на более годном ЯП ?

 , ,

nerdogeek
()

Пути к статическим либам boost

Какие пути использовать для буста, установленного в системе?
И есть вероятность что в каком-нить дистрибутиве boost будет отсутствовать?

Собираю boost в home директории. Пути для хедеров, либ статической линковки использую такие:
INCLUDE_PATH := -I/home/user/dev/boost_1_51_0
LIB_PATH := /home/user/dev/boost_1_51_0/stage/lib

 ,

nerdogeek
()

Подскажите http файловый менеджер на c/c++

Чтобы выглядело как ftp-ресурс в веб-браузере, но представляло собой html-файл передаваемый по протоколу http.
Без веб-сервера, т.е. никаких апач-модулей и т.п.
Буду в образовательных целях велосипед писать и меряться с тем, что посоветуете.

 , ,

nerdogeek
()

Чего вы бы хотели от Искусственного Интеллекта?

Какие задачи вам хотелось чтобы решала вместо вас интеллектуальная компьютерная система?

 ,

nerdogeek
()

RSS подписка на новые темы