можно ли читать/писать в один файл в несколько потоков fstream (то есть создать несколько объектов с одним файлом) И если да, как синхронизация устроена, будет ли ОС как то синхронизировать?
Можно. Смотри в сторону memory mapped file. Синхронизацию делаешь сам.
Извините за новичковый вопрос: как обеспечивается возможность конкурентной модификации std::vector<char> из разных потоков с условием доступа к разным элементам на уровне компьютера?
Там что тотальный порядок между инвалидейт-пробами? Просто иначе надо было бы синкать эту кашлинию в случае попадания на соседние элементы
немного непонятен вопрос, но можно почитать про протокол MESI. Там после записи процессор распространяет на другие кэши ядер пометки Invalidated, отсюда деградация производительности может быть сильнее, чем в один поток, потому что приходится ходить в память, чтобы поддерживать консистентность кэшей