Перейти к содержанию
Learning Platform
Глоссарий Troubleshooting
Урок 02.03 · 14 мин
Начальный
MemoryRAMIntuitionBeginner

Что такое оперативная память — на пальцах

Мы уже знаем: ОС — администратор, который раздаёт ресурсы процессам. В прошлом уроке разобрали один ресурс — процессор (тот, кто выполняет работу). Теперь второй важнейший ресурс: оперативная память, она же RAM. Это место, где процессы держат свои данные, пока работают.

Как и в предыдущих двух уроках — никакого кода, только интуиция и наблюдение.


Аналогия: рабочий стол ограниченного размера

Представьте, что вы работаете за письменным столом. На столе вы раскладываете то, с чем работаете прямо сейчас: открытую книгу, листы, калькулятор, чашку кофе. До всего на столе вы дотягиваетесь мгновенно — протянул руку и взял.

А есть ещё шкаф в другом конце комнаты. Туда вы убираете то, что сейчас не нужно. В шкафу помещается гораздо больше, чем на столе, но чтобы достать что-то оттуда, нужно встать, дойти и вернуться — это медленно.

Вот это и есть разница между памятью и диском:

  • Оперативная память (RAM) — это рабочий стол. Быстрый доступ, но места мало. Сюда процессы кладут данные, с которыми работают прямо сейчас.
  • Диск — это шкаф. Места много, и содержимое не пропадает, когда компьютер выключают. Но доступ к нему гораздо медленнее.
Память -- это рабочий стол, диск -- это шкаф
Память (RAM)Рабочий стол: маленький, но всё под рукой и мгновенно доступно. Здесь данные процессов, пока они работают. При выключении компьютера стол очищается
ДискШкаф: места много, содержимое сохраняется при выключении, но добираться медленно. Здесь хранятся файлы и сами программы

Важное следствие: память очищается при выключении компьютера. Поэтому если вы не сохранили документ на диск и выключили устройство — работа пропадёт. «Сохранить» как раз и означает «переложить со стола в шкаф», чтобы не потерялось.

[!note] Не путайте оперативную память (RAM) с местом на диске. Когда говорят «у меня 16 гигабайт памяти» — обычно имеют в виду RAM, рабочий стол. А «512 гигабайт» — это уже диск, шкаф. Числа диска почти всегда сильно больше.


Почему память приходится делить — и зачем тут ОС

Стол один, а «работников» — процессов — десятки. И стол ограниченного размера: на него физически не помещается всё сразу. Возникают ровно те же проблемы, что и с процессором, и решает их тот же администратор — ОС.

Проблема первая: места на всех не хватает. Каждый процесс хочет разложить свои данные на столе, а стол не резиновый. ОС следит, кому сколько места выделить, и не даёт одному процессу занять весь стол так, что остальным негде работать.

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

Каждому процессу -- свой огороженный участок памяти
БраузерБраузеру кажется, что весь рабочий стол -- его. Он не видит и не может тронуть данные других процессов
МузыкаМузыкальному плееру кажется то же самое -- что стол целиком его. ОС держит границы между участками
МессенджерИ мессенджеру тоже. Каждый изолирован: ошибка или сбой одного не портит данные остальных

Эта изоляция — одна из главных причин, почему сбой в одной программе обычно не роняет весь компьютер. Если процесс попытается залезть на чужой участок, ОС остановит именно его, не трогая остальные. Вы наверняка видели, как «вылетает» одна программа, а система продолжает работать — это работа той самой защиты.

Проблема третья: что делать, когда стол всё-таки переполнен. Иногда процессов и данных так много, что на стол уже не помещается. Тогда ОС временно перекладывает то, что прямо сейчас не нужно, обратно в шкаф (на диск), освобождая место на столе. Когда данные снова понадобятся — достаёт их назад. Платой за это становится замедление: возня со шкафом медленная. Именно поэтому компьютер с малым объёмом памяти начинает заметно тормозить, когда открыто слишком много тяжёлых программ — ОС постоянно бегает между столом и шкафом.


Попробуй сам

Наблюдательное задание, без кода:

  1. Откройте тот же инструмент, что в прошлом уроке: диспетчер задач (Windows), Мониторинг системы (macOS) или Системный монитор (Linux). Найдите колонку или вкладку, связанную с памятью (Memory / Память).

  2. Посмотрите, сколько всего оперативной памяти у вашего устройства и сколько занято прямо сейчас. Запишите оба числа.

  3. Найдите, какой процесс потребляет больше всего памяти. Часто это браузер с множеством вкладок. Прикиньте, какую долю стола он занял.

  4. Откройте ещё несколько тяжёлых программ или вкладок и понаблюдайте, как занятая память растёт. Если памяти мало, вы можете заметить, что система начинает подтормаживать, — это ОС вынуждена перекладывать данные между столом и шкафом.

  5. Сравните в настройках устройства объём оперативной памяти и объём диска. Убедитесь, что диск (шкаф) обычно во много раз больше памяти (стола).

Запишите наблюдения.


Куда мы пойдём дальше

Поздравляем — у вас уже есть рабочая картина мира. ОС — администратор, который распределяет два главных ресурса: процессор (кто работает) и память (где лежат данные), и защищает процессы друг от друга. Этого образа достаточно, чтобы двигаться дальше.

А дальше — интереснее. В следующих модулях те же идеи разберём по-настоящему, уже с конкретикой и примерами кода:

  • Системные вызовы (syscalls) — те самые «универсальные кнопки», через которые программа просит у ОС что-нибудь сделать (сохранить файл, выделить память). Мы увидим, как это выглядит на деле.
  • Виртуальная память — точный механизм, как ОС создаёт каждому процессу иллюзию собственного отдельного «стола» и держит границы.
  • Планировщик (scheduler) — как именно ОС решает, какому процессу дать процессор следующим, и по каким правилам строит очередь.
  • Примеры на C и других языках — мы начнём смотреть на реальный код, который обращается к ОС.

[!tip] Если слова «syscall», «виртуальная память», «планировщик», «код на C» сейчас кажутся непонятными — это абсолютно нормально и так и задумано. Этот модуль был концептуальным, нарочно без кода. Дальше каждое из этих понятий мы разложим по полочкам и подкрепим практикой. Сейчас главное — что у вас в голове есть верная общая картина, к которой можно всё привязывать.


Проверка знанийKnowledge check
Знакомый жалуется: 'Купил ноутбук с маленьким объёмом памяти. Когда открываю много вкладок и программ сразу, всё начинает жутко тормозить, хотя на диске места полно. Почему так и при чём тут вообще операционная система?'
ОтветAnswer
Главная мысль: тормоза от нехватки оперативной памяти (стола), а не места на диске (шкафа) -- это разные вещи, и за переключение между ними отвечает ОС. Сначала разделим два понятия через аналогию: оперативная память (RAM) -- это рабочий стол, маленький, но всё на нём доступно мгновенно; диск -- это шкаф, места много, но добираться медленно. 'Места на диске полно' и 'мало оперативной памяти' -- про разные хранилища. Тормоза вызваны именно нехваткой стола, диск тут не помогает количеством. Что происходит при многих открытых программах: каждый процесс хочет разложить данные на столе, а стол ограниченного размера. Когда всё перестаёт помещаться, ОС начинает выкручиваться -- временно перекладывает данные, которые прямо сейчас не нужны, в шкаф (на диск), чтобы освободить место. Как только эти данные снова понадобятся, ОС достаёт их обратно. Почему это тормозит: возня со шкафом (диском) гораздо медленнее работы за столом. Если программ много, ОС вынуждена постоянно бегать туда-сюда, перекладывая данные между памятью и диском, и на это уходит масса времени -- отсюда заметные тормоза. При чём тут ОС: именно она следит за столом, выделяет каждому процессу место, держит границы между ними и решает, что переложить в шкаф, когда стол переполнен. Это часть её работы администратора ресурсов. Итог: помочь может либо меньше открытых тяжёлых программ одновременно (меньше нагрузка на стол), либо больше оперативной памяти. Дополнительное место на диске эту конкретную проблему не решает.

Закончили урок?

Отметьте его как пройденный, чтобы отслеживать свой прогресс

Войдите чтобы оценить урок

Прогресс модуля
0 из 3