Что делает система: такты, режимы и полвека истории
Посмотрите, как процессор достаётся процессам по тактам, разберитесь, что программе можно и чего нельзя, и пройдите путь систем от перфокарт до смартфона.
Одно ядро, четыре процесса, двенадцать тактов
У каждого процесса своя дорожка, у каждого такта своя клетка. Жёлтая клетка значит «этот процесс сейчас на ядре», синяя - «готов работать, но ядро занято другим», розовая - «ждёт диск или сеть, и процессор ему пока не нужен». Жмите «такт» и следите за жёлтыми клетками: их всегда ровно одна на столбец.
Эту схему на телефоне показать невозможно: она широкая, и в мелком виде по ней ничего не разобрать. Откройте страницу с компьютера или планшета - там схема доступна целиком.
- Браузер Отрисовывает страницу, потом уходит ждать ответ от сети - и на четыре такта процессор ему не нужен вовсе.
- Музыка Ему нужно понемногу, но регулярно: пропустит свой такт - и звук прервётся. Поэтому у плеера приоритет выше обычного.
- Обновление Работает в фоне и на всё соглашается: ему всё равно, когда именно достанется процессор.
- Резервное копирование Почти всё время ждёт диск. Такой процесс почти не отбирает процессор, хотя в диспетчере задач висит и выглядит занятым.
такт 1: Ядро занял браузер. Музыка и обновление готовы работать, но ждут своей очереди; копирование запросило данные с диска и ждёт устройство.
такт 3: Квант браузера кончился, и планировщик отдал ядро музыке - не потому, что браузер закончил, а потому что его время вышло. Это и называется вытесняющей многозадачностью.
такт 5: Браузер ушёл ждать ответ от сети. Обратите внимание: ядро не простаивает ни один такт - его сразу забирает обновление. Именно на этом и держится вся эффективность многозадачности.
такт 9: Ответ пришёл, браузер снова на ядре. Для человека это выглядело как мгновенная реакция, хотя четыре такта он вообще не выполнялся.
такт 12: Двенадцать тактов кончились. Посмотрите на столбцы: жёлтая клетка ровно одна в каждом - ядро одно и делит его планировщик, а не сами программы.
Все четыре процесса продвинулись, и человеку кажется, что они работали одновременно. На самом деле они работали по очереди, а иллюзию создаёт скорость: настоящий квант времени - несколько миллисекунд, и таких переключений в секунду сотни.
Сценарий здесь заданный, чтобы одна и та же ссылка показывала одно и то же. В жизни планировщик решает на ходу и учитывает приоритеты, а ядер обычно несколько - тогда жёлтых клеток в столбце столько же, сколько ядер.
Почему одна программа падает, а другая роняет всю машину
Процессор умеет работать в двух режимах, и от режима зависит, что коду разрешено. Выберите, кто выполняет код и что он пытается сделать - и увидите ответ системы. Обратите внимание на последнюю строку: именно там и живёт синий экран.
Браузер, редактор, игра. Работает в пользовательском режиме: своя память, никакого прямого доступа к железу. Всё, что ей нужно снаружи, она просит у ядра.
Обычная работа: складывает числа, готовит страницу к отрисовке, разбирает файл, который уже прочитан.
В своей памяти программе разрешено всё. Так проходит большая часть её жизни, и система в это время вообще не участвует - только следит за тем, чтобы вовремя отобрать процессор и отдать его соседям.
Программа не открывает файл сама - она просит ядро через строго определённый интерфейс. Ядро проверяет право на такую просьбу и выполняет работу. Именно поэтому файл, к которому у вас нет доступа, программа не откроет, как бы ни хотела.
Обращение к железу или в чужую память из пользовательского режима запрещено на уровне процессора: он сам сообщает ядру о нарушении, а ядро закрывает программу. Это не сбой, а защита - и ровно она отличает нынешние системы от MS-DOS, где программа могла записать что угодно куда угодно.
Система снимает её и освобождает всю занятую память. Соседи ничего не замечают, потому что чужая память ей была недоступна изначально. Отсюда и правило: зависла программа - снимайте задачу, а не перезагружайте машину.
Ядро тоже большую часть времени просто считает: ведёт списки процессов, готовит структуры, разбирает то, что пришло от устройств.
Ядру не нужен системный вызов: оно и есть тот, у кого просят. Файл открывает драйвер файловой системы, и обращается он к диску напрямую.
Прямой доступ к железу - смысл существования режима ядра. Драйвер пишет в порты устройства, потому что больше это сделать некому. За это ему и выданы привилегии.
Вот единственный случай, когда останавливается всё. В режиме ядра изолировать ошибку некому: код, который ошибся, сам был последней инстанцией. Система останавливает машину, чтобы не портить данные дальше, и показывает синий экран. Поэтому больше половины таких падений приходится на драйверы сторонних устройств, а не на саму систему - и поэтому первое, что делают при повторяющемся синем экране, это обновляют или откатывают драйвер.
Режимов у процессора на самом деле больше двух - есть промежуточные уровни, а под системой может лежать ещё и гипервизор. Но правило, которое здесь показано, работает именно так: чем больше прав у кода, тем дороже его ошибка.
// полвека систем
Операционная система появилась не сразу и не целиком: каждое десятилетие добавляло к ней одну идею. Идите по шагам - и станет видно, из чего сложилось то, что сегодня загружается за полминуты.
-
01
1956: GM-NAA I/O, автоматическая очередь
Первые программы-мониторы появились в IBM в середине пятидесятых. GM-NAA I/O считается одной из первых операционных систем: она сама загружала следующее задание, когда предыдущее заканчивалось.
! Чего ещё не было Ни графики, ни многозадачности, ни пользователей - только лента заданий.
Что появилось Очередь заданий без участия оператора.
-
02
1960-е: разделение времени
Несколько человек сидят за терминалами - клавиатура и экран без своего процессора - и работают на одной машине. Система переключается между ними так быстро, что каждый уверен: компьютер занят только им.
! Чего ещё не было Машина по-прежнему одна на институт, и стоит она как здание.
Что появилось Иллюзия одновременности, на которой стоит вся сегодняшняя многозадачность.
-
03
1969: MULTICS, слишком амбициозная
Совместный проект MIT, Bell Labs и General Electric оказался слишком сложным. Но из разочарования в нём выросло главное: Кен Томпсон и Деннис Ритчи написали свою систему - лёгкую и удобную.
! Чего ещё не было Сама MULTICS так и не стала массовой.
Что появилось Понимание, что простое побеждает всеобъемлющее.
-
04
1969-1971: Unix и язык C
Unix написан на C - языке высокого уровня, но близком к железу. Систему впервые стало можно перенести на другую машину, не переписывая заново. Оттуда же пришла идея «всё есть файл».
! Чего ещё не было Персональных компьютеров ещё нет, и Unix живёт в университетах.
Что появилось Переносимость: одна система на разном железе.
-
05
1981: MS-DOS и персональный компьютер
Компьютер приходит на стол к обычному человеку. Система простая: одна программа за раз, командная строка, никакой защиты памяти - программа могла записать что угодно куда угодно.
! Чего ещё не было Ни многозадачности, ни защиты: одна ошибка роняла всё.
Что появилось Своя машина у каждого, а не одна на всех.
-
06
1984-1990: графический интерфейс приходит к людям
Macintosh в 1984 году, затем Windows: окна, мышь, значки. Компьютером стало можно пользоваться, не зная ни одной команды - и именно это открыло его всем остальным.
! Чего ещё не было Многозадачность ещё кооперативная: зависла одна программа - встали все.
Что появилось Мышь, окна и понятная метафора рабочего стола.
-
07
1991: Linux и открытый код
Студент Линус Торвальдс выкладывает ядро, которое может дорабатывать кто угодно. Сегодня на нём работает большая часть серверов интернета и, в виде Android, большинство телефонов.
! Чего ещё не было На домашних столах она так и осталась редкостью.
Что появилось Система, которую развивает не одна компания, а весь мир.
-
08
2007: смартфон меняет всё
iPhone и следом Android переносят операционную систему в карман. Появляются сенсорный ввод, магазины приложений и жёсткие права: программа спрашивает разрешение на камеру и на местоположение.
! Чего ещё не было Свободы у программ стало меньше - и это оказалось к лучшему.
Что появилось Права приложений и экономия батареи как обязанность системы.
Каждая эпоха добавила ровно одну идею: автоматическую очередь, разделение времени, переносимость, персональный компьютер, графический интерфейс, открытый код и, наконец, экран в кармане. Ни одна из них не отменила предыдущую - все они лежат внутри системы, которая сейчас у вас на столе.
Даты и системы - из статьи. Хронология здесь спрямлена: в жизни эпохи наезжали друг на друга, а Unix, DOS и Linux долго существовали одновременно.
Интерактив разработан ANY.BY - ремонт компьютеров и ноутбуков в Барановичах. © 2008-2026. Источник: any.by/demo/zachem-os