Как процессорное время делят между задачами
Когда несколько программ работают одновременно, процессор обычно не исполняет их инструкции буквально в один и тот же момент на каждом ядре. Операционная система быстро переключает процессор между задачами: сохраняет состояние одной — например, место, где она остановилась, — и загружает состояние другой. За выбор отвечает планировщик ядра. Он учитывает, какие задачи готовы продолжать работу, и старается не дать одной программе надолго занять процессор.
Так возникает ощущение параллельной работы: музыка продолжает звучать, пока браузер загружает страницу, хотя при переключении каждая задача ненадолго уступает процессор другим. На многоядерном компьютере разные задачи могут исполняться одновременно на разных ядрах, но распределением всё равно управляет система.
Зачем программам виртуальная память
С памятью ядро работает иначе. Каждой программе оно предоставляет виртуальное адресное пространство — собственную область адресов, которая выглядит для программы как её личная память. Ядро вместе с аппаратным блоком управления памятью сопоставляет эти адреса с реальными участками оперативной памяти и проверяет доступ к ним.
Благодаря этому программы обычно не могут случайно перезаписать данные друг друга. Если памяти не хватает, система может временно переместить часть данных на накопитель; это медленнее оперативной памяти, поэтому при интенсивном обращении к таким данным компьютер начинает заметно тормозить.
Распределение ресурсов — не просто делёж: ядро ещё и ограничивает доступ программ к чужой памяти и устройствам. Поэтому сбой одного приложения чаще закрывает только его, а не рушит всю работу компьютера.






