Потёртая система с торчащими нитями
Thursday, 24 April 2008 09:14Одноядерные процессоры в персональных компьютерах морально устарели. Они останутся живы-здоровы в специальных устройствах, они ещё послужат лет двадцать в старых машинах, пока те не вымрут своей смертью, но впредь производительность настольных и карманных систем будет расти в основном за счёт параллелизма.
Сейчас мы пожинаем плоды переходного процесса.
Операционные системы освоили многозадачность ещё на древних одноядерных процессорах (даже без приставки микро-). Для пользователя процессы шли параллельно, но глубоко внутри царило жульничество: потоки просто делились на крошечные кусочки, которые смешивались в общую очередь и исполнялись по порядку. Это почти как настоящий параллелизм, но не совсем: в каждый момент времени исполняется только один поток.
Некоторых программистов это расслабляло, и они программировали многозадачность небрежно. Когда в массовое производство пошли многоядерные системы, это аукнулось. Так, я видел одну экзотическую Java-машину, которая на процессоре с гипертридингом изредка роняла весь компьютер в перезагрузку.
Теперь большинство разработчиков (у кого работодатели не жадные) работают минимум на двухъядерных рабочих станциях. Тут уже всякая небрежность синхронизации быстро вылазит на глаза глюками и зависаниями. Поэтому все нормальные программисты теперь учитывают реальный параллелизм.
Зато их программы начали блокироваться и глючить на одноядерных системах.
З-заразы.
Сейчас мы пожинаем плоды переходного процесса.
Операционные системы освоили многозадачность ещё на древних одноядерных процессорах (даже без приставки микро-). Для пользователя процессы шли параллельно, но глубоко внутри царило жульничество: потоки просто делились на крошечные кусочки, которые смешивались в общую очередь и исполнялись по порядку. Это почти как настоящий параллелизм, но не совсем: в каждый момент времени исполняется только один поток.
Некоторых программистов это расслабляло, и они программировали многозадачность небрежно. Когда в массовое производство пошли многоядерные системы, это аукнулось. Так, я видел одну экзотическую Java-машину, которая на процессоре с гипертридингом изредка роняла весь компьютер в перезагрузку.
Теперь большинство разработчиков (у кого работодатели не жадные) работают минимум на двухъядерных рабочих станциях. Тут уже всякая небрежность синхронизации быстро вылазит на глаза глюками и зависаниями. Поэтому все нормальные программисты теперь учитывают реальный параллелизм.
Зато их программы начали блокироваться и глючить на одноядерных системах.
З-заразы.