Для чего предназначены системные программы хранящиеся в постоянной памяти
ОТЧЕТ ПО ПРАКТИЧЕСКОМУ ЗАНЯТИЮ №4
Тема: Устройство персонального компьютера.
Цель: Знакомство со структурой персонального компьютера и практическая работа на персональном компьютере.
Материальное оборудование: Папка для лабораторно-практических
работ, ПК, компьютерные сети, принтер.
Ход работы
Задание №1. Структура персонального компьютера
1.У меня имеются все основные устройства компьютера, кроме принтера и сканера.
2. ПЗУ относится к устройствам ввода-вывода
ОЗУ относится к устройствам ввода-вывода
3. За обработку информации отвечает Центральный Процессор (ЦП)
4.Из видов памяти в компьютере, которые являются энергозависимыми, это - динамическая (DRAM) и статическая (SRAM) память с произвольным доступом. ОЗУ, кэш-память, видеопамять.
Задание №2. Назначения устройств персонального компьютера
Определите, какие устройства компьютера предназначены для…
Таблица 1 – Назначение устройств
Назначение устройства |
Долговременного хранения данных, это жесткий магнитный диск (Винчестер), гибкий магнитный диск (дискета), оптические носители (CD – диски, DVD – диски), flash – диск, SSD, NVME. |
Обработки и передачи информации, это центральный процессор |
Ввода информации, это клавиатура, мышь, тачпа, планшет, джойстик, сканер, цифровые фото, видеокамеры, веб-камеры, микрофон |
Вывода информации, это монитор, принтер, графопостроитель, акустическая система |
Ввода-вывода информации, это интерактивная доска, стример, дисковод, сетевая плата, модем, гаптоклон |
Синхронизации работы процессора и ОЗУ, это материнская плата |
Кратковременного хранения данных, это ОЗУ |
Постоянного хранения данных, это жесткий диск, SSD, NVME |
Задание №3. Устройства ввода информации
1. На нашем персональном компьютере находятся устройства ввода информации, такие как: клавиатура, мышь, микрофон.
Задание №4. Монитор персонального компьютера
1. На нашем персональном компьютере установлен монитор типа PDP -мониторы.
2.Разница между плазменным и жидкокристаллическим монитором заключается в том, что между пластинами располагаются не жидкие кристаллы, а инертные газы, такие как аргон, ксенон, неон или же их смесь. ЖК-мониторы стоят дешевле и имеют более худшее качество изображения.
3. У типа ЭЛТ-монитора присутствует электромагнитное излучение.
Задание №5. Работа с внешней памятью
1.На схеме системного блока (Приложение 1), винчестер установлен выше дисковода, но ниже DVD - ROM
2.На нашем сетевом диске записано 232 ГБ.
3.В 5 раз – во столько раз больше можно записать информацию на flash -памяти.
4.Магнитный принцип записи присутствует на устройствах: жесткий диск ( HDD ), дисковод с дискетами.
Задание №6. Изучение принтера
1.Лазерный принтер – это печатающий аппарат, принцип работы которого основан на электростатическом переносе сухого порошкообразного тонера. С первых дней, как только этот вид оргтехники стал доступным для всех, и до сегодня, лазерный принтер является неотъемлемой частью любого офиса. Причинами этому послужили высокая скорость и отличное качество печати в черно-белом режиме. Средний такой аппарат за минуту способен отпечатать около 20 страниц материалов (вне зависимости от режима печати). Кроме того, лазерные принтеры характеризуются неплохим запасом красящего вещества в тонер-картридже, которого хватает на долгое время использования. Однако «лазерники» не лучшим способом зарекомендовали себя в цветной печати изображений и фотографий. Также стоит отметить, что проводить дозаправку расходников не очень удобно, дорого, а порой и вовсе невозможно.
2 .
Рисунок 1 – Схема расположения клавиш принтера
Задание №7. Изучение работы сканера
2. Работа рулонных сканеров чем-то напоминает работу обыкновенной факс-машины. Отдельные листы документов протягиваются через такое устройство, при этом и осуществляется их сканирование. Таким образом, в данном случае сканирующая головка остается на месте, а уже относительно нее перемещается бумага. Понятно, что в этом случае копирование страниц книг и журналов просто невозможно. Рассматриваемые сканеры достаточно широко используются в областях, связанных с оптическим распознаванием символов OCR (Optical Character Recognition). Для удобства работы рулонные сканеры обычно оснащаются устройствами для автоматической подачи страниц.
Принтер – устройство вывода
Сканер – устройство ввода
Клавиатура – устройство ввода
Монитор – устройство вывода
Манипулятор – устройство ввода
ВЗУ – устройство долговременного хранения данных
Ответы на контрольные вопросы
1) Что принято называть персональным компьютером?
Ответ: Персональный компьютер – это однопользовательская (предназначенная для использования одним пользователем) ЭВМ, имеющая эксплуатационные характеристики бытового прибора и универсальные функциональные возможности.
2) Перечислите основные части персонального компьютера.
Ответ: Центральный процессор, ОЗУ, ПЗУ, жесткий диск, CD и DVD дисководы, видеокарта, блок питания, звуковая карта, материнская плата, дисковод со сменными дискетами.
3) Какую роль в системном блоке играет процессор?
Ответ: Роль процессора: он предназначен для выполнения арифметических и логических операций, а также для управления работой всех периферийных устройств, имея для этого четкую систему ввода-вывода информации.
4) Для чего предназначены системные программы, хранящиеся в постоянной памяти?
Ответ: Системные программы, хранящиеся в постоянной памяти, предназначены для взаимодействия с устройствами (драйвера), для открытия папок (проводник), для управления безопасности компьютера (lssas).
5) Что такое оперативная память?
Ответ: Оперативная память – это в большинстве случаев энергозависимая часть системы компьютерной памяти, в которой во время работы компьютера хранится выполняемый машинный код, а также входные, выходные и промежуточные данные, обрабатываемые процессором.
6) Перечислите устройства вывода информации.
Ответ: Устройства вывода информации: это монитор, принтер, графопостроитель, акустическая система.
7) Какими устройствами представлено ВЗУ?
Ответ: Жесткий диск, оптический привод, флеш-память.
8) На какой объем записи информации рассчитана дискета на 3.5 дюйма?
Ответ: Дисковод на 3,5 дюйма предназначен для считывания информации дискет с емкостью 1,44 Мб.
9) Перечислите известные вами типы принтеров
Ответ: Матричный, лазерный, струйный.
10) Какая из кнопок ручного манипулятора “мышь” является основной? Для чего предназначена правая кнопка мыши?
Ответ: Основная кнопка – правая. Правая кнопка мыши предназначена для вызова контекстного меня объекта (файла, папки, рабочего стола, кнопок и т.д.)
11) Перечислите известные вам типы сканеров. Какие вы знаете характеристики сканеров?
Ответ: Типы сканеров: ручной, планшетный, барабанный. Основные характеристики сканеров: разрешение, чем оно выше, тем качества результата больше; глубина цвета для работы с цветными изображениями; диапазон оптических плоскостей, от которого зависит степень разброса яркости на скане.
Вывод: в ходе выполнения данной работы нам удалось повторить назначение основных устройств компьютера, их необходимость, а также мы познакомились со структурой персонального компьютера и выполнили практическую работу на персональном компьютере.
Системные программы выполняются вместе с прикладными и служат для управления ресурсами компьютера — центральным процессором, памятью, вводом-выводом. Это программы общего пользования, которые предназначены для всех пользователей компьютера. Системное программное обеспечение разрабатывается так, чтобы компьютер мог эффективно выполнять прикладные программы.
Cреди десятков тысяч системных программ особое место занимают операционные системы, которые обеспечивают управление ресурсами компьютера с целью их эффективного использования.
Важными классами системных программ являются также программы вспомогательного назначения — утилиты (лат. utilitas — польза). Они либо расширяют и дополняют соответствующие возможности операционной системы, либо решают самостоятельные важные задачи.Кратко опишем некоторые разновидности утилит:
· программы контроля,тестирования и диагностики, которые используются для проверки правильности функционирования устройств компьютера и для обнаружения неисправностей в процессе эксплуатации; указывают причину и место неисправности;
· программы-драйверы, которые расширяют возможности операционной системы по управлению устройствами ввода-вывода, оперативной памятью и т.д.; с помощью драйверов возможно подключение к компьютеру новых устройств или нестандартное использование имеющихся;
· программы-упаковщики (архиваторы), которы
Операционная система — это комплекс взаимосвязанных системных программ, назначение которого — организовать взаимодействие пользователя с компьютером и выполнение всех других программ.Операционная система выполняет роль связующего звена между аппаратурой компьютера, с одной стороны, и выполняемыми программами, а также пользователем, с другой стороны.
Операционная система обычно хранится во внешней памяти компьютера — на диске. При включении компьютера она считывается с дисковой памяти и размещается в ОЗУ.
Этот процесс называется загрузкой операционной системы.
В функции операционной системы входит:
· осуществление диалога с пользователем;
· ввод-вывод и управление данными;
· планирование и организация процесса обработки программ;
· распределение ресурсов (оперативной памяти и кэша, процессора, внешних устройств);
· запуск программ на выполнение;
· всевозможные вспомогательные операции обслуживания;
· передача информации между различными внутренними устройствами;
· программная поддержка работы периферийных устройств (дисплея, клавиатуры, дисковых накопителей, принтера и др.).
Операционную систему можно назвать программным продолжением устройства управления компьютера. Операционная система скрывает от пользователя сложные ненужные подробности взаимодействия с аппаратурой, образуя прослойку между ними. В результате этого люди освобождаются от очень трудоёмкой работы по организации взаимодействия с аппаратурой компьютера. В зависимости от количества одновременно обрабатываемых задач и числа пользователей, которых могут обслуживать ОС, различают следующие основные классы операционных систем:
1. однопользовательские однозадачные, которые поддерживают одну клавиатуру и могут работать только с одной (в данный момент) задачей;
2. однопользовательские многозадачные, которые обеспечивают одному пользователю параллельную обработку нескольких задач. Например, к одному компьютеру можно подключить несколько принтеров, каждый из которых будет работать на "свою" задачу;
3. многопользовательские многозадачные, позволяющие на одном компьютере запускать несколько задач нескольким пользователям. Эти ОС очень сложны и требуют значительных машинных ресурсов.
В различных моделях компьютеров используют операционные системы с разной архитектурой и возможностями. Для их работы требуются разные ресурсы. Они предоставляют разную степень сервиса для программирования и работы с готовыми программами.
Операционная система для персонального компьютера, ориентированного на профессиональное применение, должна содержать следующие основные компоненты:
· программы управления вводом/выводом;
· программы, управляющие файловой системой и планирующие задания для компьютера;
· процессор командного языка, который принимает, анализирует и выполняет команды, адресованные операционной системе.
Каждая операционная система имеет свой командный язык, который позволяет пользователю выполнять те или иные действия:
· обращаться к каталогу;
· выполнять разметку внешних носителей;
Анализ и исполнение команд пользователя, включая загрузку готовых программ из файлов в оперативную память и их запуск, осуществляет командный процессор операционной системы.
Для управления внешними устройствами компьютера используются специальные системные программы — драйверы. Драйверы стандартных устройств образуют в совокупности базовую систему ввода-вывода (BIOS), которая обычно заносится в постоянное ЗУ компьютера.
К файловой системе имеет доступ также и любая прикладная программа, для чего во всех языках программирования имеются специальные процедуры. Понятие файла может быть обращено на любой источник или потребитель информации в машине, например, в качестве файла для программы могут выступать принтер, дисплей, клавиатура и др.
Операционная система MS DOS (Microsoft Disk Operating System) — самая распространенная ОС на 16-разрядных персональных компьютерах. Она состоит из следующих основных модулей:
Базовая система ввода/вывода (BIOS) выполняет наиболее простые и универсальные услуги операционной системы, связанные с осуществлением ввода-вывода. В функции BIOS входит также автоматическое тестирование основных аппаратных компонентов (оперативной памяти и др.) при включении машины и вызов блока начальной загрузки DOS.
Блок начальной загрузки (или просто загрузчик) — это очень короткая программа, единственная функция которой заключается в считывании с диска в оперативную память двух других частей DOS — модуля расширения базовой системы ввода/вывода и модуля обработки прерываний.
Модуль расширения базовой системы ввода/вывода дает возможность использования дополнительных драйверов, обслуживающих новые внешние устройства, а также драйверов для нестандартного обслуживания внешних устройств.
Модуль обработки прерываний реализует основные высокоуровневые услуги DOS, поэтому его и называют основным.
Командный процессор DOS обрабатывает команды, вводимые пользователем.
Утилиты DOS — это программы, поставляемые вместе с операционной системой в виде отдельных файлов. Они выполняют действия обслуживающего характера, например, разметку дискет, проверку дисков и т.д.
Каждый из указанных модулей выполняет определенную часть функций, возложенных на ОС. Места постоянного размещения этих модулей различны. Так, базовая система ввода/вывода находится в постоянном запоминающем устройстве (ПЗУ), а не на дисках, как все остальные модули.
Оболочки —это программы, созданные для упрощения работы со сложными программными системами, такими, например, как DOS. Они преобразуют неудобный командный пользовательский интерфейс в дружественный графический интерфейс или интерфейс типа "меню". Оболочки предоставляют пользователю удобный доступ к файлам и обширные сервисные услуги. В начале 90-х годов во всем мире огромную популярность приобрела графическая оболочка Windows, преимущество которой состоит в том, что она облегчает использование компьютера, и её графический интерфейс вместо набора сложных команд с клавиатуры позволяет выбирать их мышью из меню практически мгновенно. Операционная среда Windows реализует все свойства, необходимые для производительной работы пользователя, в том числе — многозадачный режим. В настоящее время большинство компьютеров в мире работают под управлением той или иной версии операционной среды Windows фирмы Microsoft.
Windows представляет собой универсальную высокопроизводительную многозадачную и многопотоковую ОС с графическим интерфейсом и расширенными сетевыми возможностями. Windows — интегрированная среда, обеспечивающая эффективный обмен информацией между отдельными программами и предоставляющая пользователю широкие возможности работы с мультимедиа, обработки текстовой, графической. звуковой и видеоинформации. Интегрированность подразумевает также совместное использование ресурсов компьютера всеми программами. Эта операционная система обеспечивает работу пользователя в сети, предоставляя встроенные средства поддержки для обмена файлами и меры по их защите, возможность совместного использования принтеров, факсов и других общих ресурсов. Пользовательский интерфейс Windows прост и удобен.
Операционная система Unix была создана в Bell Telephone Laboratories. Unix — многозадачная операционная система, способная обеспечить одновременную работу очень большого количество пользователей. Ядро ОС Unix написано на языке высокого уровня C и имеет только около 10 процентов кода на ассемблере. Это позволяет за считанные месяцы переносить ОС Unix на другие аппаратные платформы и достаточно легко вносить в нее серьезные изменения и дополнения. UNIX является первой действительно переносимой операционной системой. В многочисленные существующие версии UNIX постоянно вносятся изменения. С одной стороны, это расширяет возможности системы, делает ее мощнее и надежнее, с другой — ведет к появлению различий между существующими версиями. В связи с этим возникает необходимость стандартизации различных свойств системы. Наличие стандартов облегчает переносимость приложений между различными версиями UNIX и защищает как пользователей, так и производителей программного обеспечения. Поэтому в 80-х годах разработан ряд стандартов, оказывающих влияние на развитие UNIX. Сейчас существуют десятки операционных систем, которые можно объединить под общим названием UNIX. В основном, это коммерческие версии, выпущенные производителями аппаратных платформ для компьютеров своего производства.
Начало созданию системы Linux положено в 1991 г. финским студентом Линусом Торвальдсом (Linus Torvalds). В сентябре 1991 года он распространил по e-mail первый прототип своей операционной системы, и призвал откликнуться на его работу всех, кому она нравится или нет. С этого момента многие программисты стали поддерживать Linux, добавляя драйверы устройств, разрабатывая разные продвинутые приложения и др. Атмосфера работы энтузиастов над полезным проектом, а также свободное распространение и использование исходных текстов стали основой феномена Linux. В настоящее время Linux — очень мощная система, но самое замечательное то, что она бесплатная (free).
Линус Торвальдс разработал не саму операционную систему, а только ее ядро, подключив уже имеющиеся компоненты. Сторонние компании, увидев хорошие перспективы для развития своего бизнеса, довольно скоро стали насыщать ОС утилитами и прикладным ПО. Недостаток такого подхода — отсутствие унифицированной и продуманной процедуры установки системы, и это до сих пор является одним из главных сдерживающих факторов для более широкого распространения Linux.
ПЗУ - быстрая, энергонезависимая память, которая, предназначенная только для чтения. Информация заносится в нее один раз (обычно в заводских условиях) и сохраняется постоянно (при включенном и выключенном компьютере). В ПЗУ хранится информация, присутствие которой постоянно необходимо в компьютере. Комплект программ, находящийся в ПЗУ образовывает базовую систему ввода/вывода BIOS (Basic Input Output System). BIOS (Basic Input Output System — базовая система ввода-вывода) — совокупность программ, предназначенных для автоматического тестирования устройств после включения питания компьютера и загрузки операционной системы в оперативную память.
В ПЗУ находятся:
- тестовые программы, проверяющие при каждом включении компьютера правильность работы его блоков;
- информация о том, где на диске расположена операционная система.
Типы ПЗУ:
ПЗУ с масочным программированием это память, в которую информация записана раз и навсегда в процессе изготовления полупроводниковых интегральных схем. Постоянные запоминающие устройства применяются только в тех случаях, когда речь идет о массовом производстве, т.к. изготовление масок для интегральных схем частного применения обходится весьма недешево.
Программирование ПЗУ – это однократно выполняемая операция, т.е. информация, когда-то записанная в ППЗУ, впоследствии изменена быть не может.
СППЗУ (стираемое программируемое постоянное запоминающее устройство). При работе с ним, пользователь может запрограммировать его, а затем стереть записанную информацию.
ЭИПЗУ (электрически изменяемое постоянное запоминающее устройство). Его программирование и изменение осуществляются с помощью электрических средств. В отличии от СППЗУ для стирания информации, хранимой в ЭИПЗУ, не требуется специальных внешних устройств.
Наглядно ОЗУ и ПЗУ можно представить себе в виде массива ячеек, в которые записаны отдельные байты информации. Каждая ячейка имеет свой номер, причем нумерация начинается с нуля. Номер ячейки является адресом байта.
Центральный процессор при работе с ОЗУ должен указать адрес байта, который он желает прочитать из памяти или записать в память. Разумеется, из ПЗУ можно только читать данные. Прочитанные из ОЗУ или ПЗУ данные процессор записывает в свою внутреннюю память, устроенную аналогично ОЗУ, но работающую значительно быстрее и имеющую емкость не более десятков байт.
Процессор может обрабатывать только те данные, которые находятся в его внутренней памяти, в ОЗУ или в ПЗУ. Все эти виды устройства памяти называются устройствами внутренней памяти, они обычно располагаются непосредственно на материнской плате компьютера (внутренняя память процессора находится в самом процессоре).
Кэш-память. Обмен данными внутри процессора происходит намного быстрее, чем обмен данными между процессором и оперативной памятью. Поэтому, для того чтобы уменьшить количество обращений к оперативной памяти, внутри процессора создают так называемую сверхоперативную или кэш-память. Когда процессору нужны данные, он сначала обращается к кэш-памяти, и только тогда, когда там отсутствуют нужные данные, происходит обращение к оперативной памяти. Чем больше размер кэш-памяти, тем большая вероятность, что необходимые данные находятся там. Поэтому высокопроизводительные процессоры имеют повышенные объемы кэш-памяти.
Различают кэш-память первого уровня (выполняется на одном кристалле с процессором и имеет объем порядка несколько десятков Кбайт), второго уровня (выполняется на отдельном кристалле, но в границах процессора, с объемом в сто и более Кбайт) и третьего уровня (выполняется на отдельных быстродействующих микросхемах с расположением на материнской плате и имеет объем один и больше Мбайт).
В процессе работы процессор обрабатывает данные, находящиеся в его регистрах, оперативной памяти и внешних портах процессора. Часть данных интерпретируется как собственно данные, часть данных - как адресные данные, а часть - как команды. Совокупность разнообразных команд, которые может выполнить процессор над данными, образовывает систему команд процессора. Чем больше набор команд процессора, тем сложнее его архитектура, тем длиннее запись команд в байтах и тем дольше средняя продолжительность выполнения команд.
Управление памятью – одна из главных задач ОС. Она критична как для программирования, так и для системного администрирования. Я постараюсь объяснить, как ОС работает с памятью. Концепции будут общего характера, а примеры я возьму из Linux и Windows на 32-bit x86. Сначала я опишу, как программы располагаются в памяти.
Каждый процесс в многозадачной ОС работает в своей «песочнице» в памяти. Это виртуальное адресное пространство, которое в 32-битном режиме представляет собою 4Гб блок адресов. Эти виртуальные адреса ставятся в соответствие (mapping) физической памяти таблицами страниц, которые поддерживает ядро ОС. У каждого процесса есть свой набор таблиц. Но если мы начинаем использовать виртуальную адресацию, приходится использовать её для всех программ, работающих на компьютере – включая и само ядро. Поэтому часть пространства виртуальных адресов необходимо резервировать под ядро.
Это не значит, что ядро использует так много физической памяти – просто у него в распоряжении находится часть адресного пространства, которое можно поставить в соответствие необходимому количеству физической памяти. Пространство памяти для ядра отмечено в таблицах страниц как эксклюзивно используемое привилегированным кодом, поэтому если какая-то программа пытается получить в него доступ, случается page fault. В Linux пространство памяти для ядра присутствует постоянно, и ставит в соответствие одну и ту же часть физической памяти у всех процессов. Код ядра и данные всегда имеют адреса, и готовы обрабатывать прерывания и системные вызовы в любой момент. Для пользовательских программ, напротив, соответствие виртуальных адресов реальной памяти меняется, когда происходит переключение процессов:
Голубым отмечены виртуальные адреса, соответствующие физической памяти. Белым – пространство, которому не назначены адреса. В нашем примере Firefox использует гораздо больше места в виртуальной памяти из-за своей легендарной прожорливости. Полоски в адресном пространстве соответствуют сегментам памяти таким, как куча, стек и проч. Эти сегменты – всего лишь интервалы адресов памяти, и не имеют ничего общего с сегментами от Intel. Вот стандартная схема сегментов у процесса под Linux:
Когда программирование было белым и пушистым, начальные виртуальные адреса сегментов были одинаковыми для всех процессов. Это позволяло легко удалённо эксплуатировать уязвимости в безопасности. Зловредной программе часто необходимо обращаться к памяти по абсолютным адресам – адресу стека, адресу библиотечной функции, и т.п. Удаленные атаки приходилось делать вслепую, рассчитывая на то, что все адресные пространства остаются на постоянных адресах. В связи с этим получила популярность система выбора случайных адресов. Linux делает случайными стек, сегмент отображения в память и кучу, добавляя смещения к их начальным адресам. К сожалению, в 32-битном адресном пространстве особо не развернёшься, и для назначения случайных адресов остаётся мало места, что делает эту систему не слишком эффективной.
Самый верхний сегмент в адресном пространстве процесса – это стек, в большинстве языков хранящий локальные переменные и аргументы функций. Вызов метода или функции добавляет новый кадр стека (stack frame) к существующему стеку. После возврата из функции кадр уничтожается. Эта простая схема приводит к тому, что для отслеживания содержимого стека не требуется никакой сложной структуры – достаточно всего лишь указателя на начало стека. Добавление и удаление данных становится простым и однозначным процессом. Постоянное повторное использование районов памяти для стека приводит к кэшированию этих частей в CPU, что добавляет скорости. Каждый поток выполнения (thread) в процессе получает свой собственный стек.
Можно прийти к такой ситуации, в которой память, отведённая под стек, заканчивается. Это приводит к ошибке page fault, которая в Linux обрабатывается функцией expand_stack(), которая, в свою очередь, вызывает acct_stack_growth(), чтобы проверить, можно ли ещё нарастить стек. Если его размер не превышает RLIMIT_STACK (обычно это 8 Мб), то стек увеличивается и программа продолжает исполнение, как ни в чём не бывало. Но если максимальный размер стека достигнут, мы получаем переполнение стека (stack overflow) и программе приходит ошибка Segmentation Fault (ошибка сегментации). При этом стек умеет только увеличиваться – подобно государственному бюджету, он не уменьшается обратно.
Динамический рост стека – единственная ситуация, в которой может осуществляться доступ к свободной памяти, которая показана белым на схеме. Все другие попытки доступа к этой памяти вызывают ошибку page fault, приводящую к Segmentation Fault. А некоторые занятые области памяти служат только для чтения, поэтому попытки записи в эти области также приводят к Segmentation Fault.
После стека идёт сегмент отображения в память. Тут ядро размещает содержимое файлов напрямую в памяти. Любое приложение может запросить сделать это через системный вызов mmap() в Linux или CreateFileMapping() / MapViewOfFile() в Windows. Это удобный и быстрый способ организации операций ввода и вывода в файлы, поэтому он используется для подгрузки динамических библиотек. Также возможно создать анонимное место в памяти, не связанное с файлами, которое будет использоваться для данных программы. Если вы сделаете в Linux запрос на большой объём памяти через malloc(), библиотека C создаст такую анонимное отображение вместо использования памяти из кучи. Под «большим» подразумевается объём больший, чем MMAP_THRESHOLD (128 kB по умолчанию, он настраивается через mallopt().)
Если в куче оказывается недостаточно места для выполнения запроса, эту проблему может обработать сама программа без вмешательства ядра. В ином случае куча увеличивается системным вызовом brk(). Управление кучей – дело сложное, оно требует хитроумных алгоритмов, которые стремятся работать быстро и эффективно, чтобы угодить хаотичному методу размещению данных, которым пользуется программа. Время на обработку запроса к куче может варьироваться в широких пределах. В системах реального времени есть специальные инструменты для работы с ней. Кучи тоже бывают фрагментированными:
И вот мы добрались до самой нижней части схемы – BSS, данные и текст программы. BSS и данные хранят статичные (глобальные) переменные в С. Разница в том, что BSS хранит содержимое непроинициализированных статичных переменных, чьи значения не были заданы программистом. Кроме этого, область BSS анонимна, она не соответствует никакому файлу. Если вы пишете static int cntActiveUsers , то содержимое cntActiveUsers живёт в BSS.
Сегмент данных, наоборот, содержит те переменные, которые были проинициализированы в коде. Эта часть памяти соответствует бинарному образу программы, содержащему начальные статические значения, заданные в коде. Если вы пишете static int cntWorkerBees = 10 , то содержимое cntWorkerBees живёт в сегменте данных, и начинает свою жизнь как 10. Но, хотя сегмент данных соответствует файлу программы, это приватное отображение в память (private memory mapping) – а это значит, что обновления памяти не отражаются в соответствующем файле. Иначе изменения значения переменных отражались бы в файле, хранящемся на диске.
Пример данных на диаграмме будет немного сложнее, поскольку он использует указатель. В этом случае содержимое указателя, 4-байтный адрес памяти, живёт в сегменте данных. А строка, на которую он показывает, живёт в сегменте текста, который предназначен только для чтения. Там хранится весь код и разные другие детали, включая строковые литералы. Также он хранит ваш бинарник в памяти. Попытки записи в этот сегмент оканчиваются ошибкой Segmentation Fault. Это предотвращает ошибки, связанные с указателями (хотя не так эффективно, как если бы вы вообще не использовали язык С). На диаграмме показаны эти сегменты и примеры переменных:
Изучить области памяти Linux-процесса можно, прочитав файл /proc/pid_of_process/maps. Учтите, что один сегмент может содержать много областей. К примеру, у каждого файла, сдублированного в память, есть своя область в сегменте mmap, а у динамических библиотек – дополнительные области, напоминающие BSS и данные. Кстати, иногда, когда люди говорят «сегмент данных», они имеют в виду данные + bss + кучу.
Бинарные образы можно изучать при помощи команд nm и objdump – вы увидите символы, их адреса, сегменты, и т.п. Схема виртуальных адресов, описанная в этой статье – это т.н. «гибкая» схема, которая по умолчанию используется уже несколько лет. Она подразумевает, что переменной RLIMIT_STACK присвоено какое-то значение. В противном случае Linux использует «классическую» схему:
Заполняем пробелы — расширяем горизонты!
Стационарные компьютеры и мобильные устройства (ноутбуки, планшеты, мобильные телефоны) могут быть в двух состояниях:
- когда устройство включено и работает,
- либо когда устройство выключено и не работает.
Непрерывно работать, вообще никогда не отключаясь, компьютеры и смартфоны не могут. Поэтому при каждом включении компьютер или мобильный телефон должен каким-то образом «вспомнить» свое состояние до выключения. И восстановить это состояние.
Иначе компьютеры и мобильные устройства были бы «одноразовыми». Они работали бы только до момента их первого выключения. А затем они навсегда бы «забывали» все то, что умели делать до выключения.
Зачем нужна память компьютерам и мобильным телефонам
Чтобы компьютеры и гаджеты «помнили», что они умеют делать, и что они должны делать во включенном состоянии, для этого в их составе есть память.
Именно в памяти устройства хранятся все необходимые сведения о том, что должен делать компьютер или мобильный телефон. В памяти находятся следующие данные:
- операционная система для управления компьютером или мобильным устройством;
- приложения (прикладные программы) для активного пользования компьютером или гаджетом;
- различные файлы с данными (фотографии, тексты, видео, контакты, заметки и прочее).
Постоянная и оперативная память на компьютерах и в мобильных устройствах
Память устройства, которая не зависит от того, включено это устройство или нет, называют энергонезависимой памятью. Только в такой памяти могут храниться данные, когда устройство выключено.
Энергонезависимая память называется также постоянной (или иногда внутренней) памятью устройства.
– Если память «постоянная», то в ней никогда ничего не меняется?
– Нет. Постоянная память потому, что в ней все «постоянно» сохраняется при выключении компьютера или смартфона.
Как только мы включаем компьютер или гаджет, устройство из постоянной памяти «извлекает» программу своего запуска, и с ее помощью загружает операционную систему:
- В компьютерах – это операционная система Windows (но может быть и другая система).
- Для смартфонов и планшетов – чаще всего операционная система Андроид (хотя и тут могут быть иные варианты).
- В «яблочных» компьютерах MAC, айфонах iPhone и планшетах iPAD – это операционная система iOS (здесь тоже бывают исключения).
Итак, загружается операционная система из постоянной памяти. Но куда она загружается? Так вот, для загрузки операционной системы служит так называемая оперативная память.
Почему «оперативная»? Да потому, что в отличие от постоянной памяти, в оперативной памяти «оперативная обстановка» меняется с калейдоскопической скоростью.
Про объёмы памяти компьютеров и гаджетов
От объёма оперативной памяти зависит количество запущенных программ и задач, которые может одновременно выполнить компьютер или гаджет.
Объем оперативной памяти компьютеров и гаджетов когда-то измеряли в килобайтах, затем перешли на мегабайты. А в настоящее время не редкость, когда размер оперативной памяти исчисляется десятками гигабайт. На очереди объёмы памяти в сотни гигабайт и даже единицы, а то и десятки терабайт (например, для серьезных серверов).
От объёма постоянной памяти зависит, сколько разных приложений и прикладных программ можно установить на компьютер или мобильный телефон, а также количество сохраненных фотографий, видео, фильмов, документов и других полезных файлов пользователя. Объёмы постоянной памяти современных устройств измеряются гигабайтами и терабайтами.
В компьютерах и ноутбуках могут применяться жесткие диски в качестве носителей постоянной памяти. В мобильных гаджетах, в основном, применяются специальные микросхемы памяти, надежно сохраняющие все данные при отключении электроэнергии. Технологии производства микросхем памяти постоянно совершенствуются. Поэтому в компьютерах и даже в серверах происходит активный переход с традиционных жестких дисков на микросхемы.
Почему оперативная память постоянно должна быть подключена к источнику электричества
В постоянную память однажды записывают операционную систему, приложения (программы), различные файлы данных. Затем в них могут, конечно, вноситься какие-то изменения и дополнения. Например, происходят обновления операционной системы. Но это бывает не часто и не постоянно. Поэтому от постоянной памяти не требуется высокая скорость работы – это не главная характеристика постоянной памяти.
Главное требование для постоянной памяти – это безупречное хранение данных даже при отключении от электропитания.
А вот в оперативной памяти работающая операционная система что-то меняет без преувеличения десятки и сотни миллионов (точнее, миллиардов!) раз в размещенных там данных.
Оперативная память должна обладать очень высокой скоростью записи и чтения данных, чтобы «не тормозить» работу компьютера или смартфона (планшета).
Высокая скорость работы оперативной памяти обеспечивается совершенно другими технологиями, чем технологии хранения данных в постоянной памяти. Такие скоростные технологии требуют постоянного подключения к источнику электропитания (220В или аккумуляторная батарея). Оперативная память должна быть энергозависимой, то есть она должна быть постоянно «под напряжением» и бесперебойно снабжаться электроэнергией.
По объемам (по мощности) потребления электрической энергии на первом месте, как правило, стоит процессор – основной элемент любого компьютера или мобильного гаджета. А на втором месте стоит оперативная память, которая тоже «с большим аппетитом» потребляет электроэнергию.
Благодаря энергетической «подпитке» оперативная память по своим техническим характеристикам несравнимо быстрее, чем энергонезависимая постоянная память устройства. Тем самым оперативная память задает тон в работе компьютера и телефона, обеспечивает их быструю работу «без тормозов» и зависаний.
Рис. 1. Примерно так выглядят микросхемы оперативной памяти компьютера. В мобильных гаджетах микросхемы будут значительно меньшего размера даже при сопоставимом с компьютером объеме памяти.
Оперативная память предназначена для хранения данных во время работы компьютера, ноутбука, планшета, смартфона, айфона, телефона. Все данные из оперативной памяти бесследно стираются при выключении устройства. Причем, данные стираются как при нормальном, так и при аварийном отключении компьютера или гаджета. Аварийно компьютер может отключиться, например, из-за отключения электроэнергии, питающей его, а мобильное устройство либо ноутбук – из-за полного разряда аккумуляторной батареи.
Как в оперативной памяти размещаются одновременно несколько работающих программ и приложений
Оперативная память современных устройств является достаточно объемной. Это необходимо, чтобы там можно было разместить несколько программ или приложений, работающих одновременно. Важный аспект работы оперативной памяти – это деление всей оперативной памяти на множество разделов. Такую работу проводят операционные системы компьютеров и гаджетов.
Процессор благодаря своей архитектуре и быстродействию может одновременно обслуживать несколько задач. По этой причине в оперативной памяти используется динамическое распределение памяти. При таком делении под каждую обрабатываемую процессором программу, приложение, задачу отводятся динамические разделы оперативной памяти.
Динамический характер работы оперативной памяти рассчитан на то, чтобы распоряжаться имеющейся памятью более эффективно и экономно. Операционная система может своевременно «изымать» «лишние» участки памяти у одних программ и «добавлять» дополнительные участки памяти другим программам в зависимости от их важности, объема обрабатываемой информации, срочности выполнения и т.п.
Приложение (прикладная программа) работает в пределах отведенного ей участка оперативной памяти. Оно не «видит» других приложений (программ), «не знает» об их наличии, и не представляет себе, что происходит в остальных разделах оперативной памяти. Такая автономность приложений в оперативной памяти позволяет сразу нескольким приложениям (программам) одновременно работать в компьютере или в мобильном телефоне, не мешая друг другу.
Почему могут зависать программы и приложения в оперативной памяти?
Причины могут быть самые разные. От банальной нехватки оперативной памяти, если ее мало, и она уже занята другими программами и приложениями. До сложных и непредсказуемых ошибок в программном коде приложений.
Зависания также могут быть из-за аппаратных сбоев, когда начинает отказывать оборудование, «железо». Например, из-за перегрева комплектующих компьютера или мобильного телефона, из-за технического брака. Не все компьютеры и гаджеты одинаковые и постоянно работоспособные. Попадаются среди них неисправные, у которых может что-то отказать, к сожалению.
Как бороться с частыми зависаниями программ и приложений на компьютере или смартфоне, планшете?
Первое, что желательно сделать, если зависания стали часто повторяться, это снизить нагрузку на компьютер или гаджет. Удалить из него «лишние» программы и файлы. Надо постараться сделать так, чтобы на компьютере или на мобильном устройстве одновременно работало как можно меньше программ и приложений.
Действия компьютера или мобильного гаджета при нехватке оперативной памяти и что делать пользователю
Оперативная память стоит относительно дорого. Поэтому в бюджетных моделях компьютеров и мобильных телефонов производители часто экономят на объеме оперативной памяти. Это значительно удешевляет стоимость устройства.
В дорогих гаджетах, компьютерах, ноутбуках, планшетах оперативной памяти значительно больше. Но даже если оперативной памяти много, то, как ни странно это звучит, ее может быть мало. Ведь память быстро израсходуется, если на компьютере или на мобильном телефоне
- запустить одновременно много разных приложений,
- открыть множество окон в браузерах,
- запустить одновременно несколько мессенджеров
- и т.п.
Все это расходует оперативную память.
Как только оперативная память подходит к концу, операционная система компьютера или гаджета «задумывается» о том, как бы ее расчистить. Автоматически запускаются всяческие процедуры по поиску «залежавшейся» в оперативной памяти информации и по ее сбросу, например, в специальную область постоянной памяти. На выполнение подобных процедур тратится драгоценное время работы процессора, задействуется оперативная и постоянная память. И всё это для того, чтобы лишь продолжить выполнение запущенных приложений.
В итоге – приложения «висят» в ожидании, пока операционная система решит проблему с дефицитом оперативной памяти. А пользователь вынужден ждать, когда то или иное приложение станет доступно.
Совсем плохо, когда программа или приложение изначально требует оперативной памяти больше, чем она есть в наличии на устройстве. Попытка установить и запустить, скажем, мощную игру, требующую оперативной памяти больше, чем есть на компьютере или на ноутбуке – это путь в никуда. Будут одни зависания и тормоза.
– А как операционная система может выделить приложению оперативной памяти больше, чем у нее есть в наличии?
– Да, никак!
В подобных приложениях (играх, программах) всегда есть описание требований к конфигурации компьютера (ноутбука). И их нужно смотреть перед установкой программы на компьютер, а также сравнивать с конфигурацией компьютера (ноутбука).
Достаточный объем оперативной памяти
Оперативной памяти должно быть достаточно для работы одновременно всех приложений (программ), которые требуются пользователю. В противном случае компьютеру или смартфону не хватит оперативной памяти, и он сильно замедлит свою работу. При этом не исключены подвисания и даже полные зависания вплоть до перезагрузки.
Если же оперативной памяти в устройстве мало, что называется, по определению, то не стоит запускать одновременно несколько приложений (программ). Все равно это не ускорит работу, а наоборот, только замедлит. Лучше работать в однозадачном режиме, по очереди запуская программы и приложения. В итоге получится все равно быстрее, чем бесконечно долго ждать, пока операционная система высвободит хоть небольшой кусочек оперативной памяти для одновременной работы сразу нескольких программ и приложений.
Можно ли увеличить размер оперативной памяти в компьютере или в мобильном телефоне
Рис. 2. Модуль оперативной памяти на материнской плате в компьютере
Размер оперативной памяти определяют микросхемы памяти, установленные в компьютере или в мобильном аппарате.
В стационарном (не переносном) компьютере есть возможность заменить микросхемы памяти с одних на другие. Например, можно попытаться вместо микросхем одного объема памяти поставить микросхемы другого, бОльшего объема памяти. Или можно увеличить число микросхем оперативной памяти, если это технически возможно. Тогда оперативная память может заметно вырасти.
В ноутбуках возможностей замены микросхем значительно меньше. Очень часто конструкция ноутбука не позволяет менять микросхемы памяти. Тогда увеличить объем оперативной памяти, увы, не получится.
Что же касается мобильных устройств: планшеты, смартфоны, айфоны и другие, то в них пока нет возможностей для увеличения (изменения) объема оперативной памяти. Мы покупаем эти устройства сразу с тем, что заложено в них внутри. Поменять на другой объем будет невозможно.
Как быть, если со временем перестает удовлетворять размер оперативной памяти мобильного телефона? Увы, выход пока один: приобретение нового устройства взамен теперь уже «технически» устаревшего телефона с маленьким объемом оперативной памяти.
Об увеличении объема постоянной памяти компьютера или мобильного телефона
В стационарных компьютерах, практически, всегда есть возможность подключить дополнительные внутренние или внешние жесткие диски, что значительно увеличивает размер постоянной памяти. Можно наращивать постоянную память в разы и даже на порядки.
В ноутбуках возможностей для установки внутренних жестких дисков очень мало, редко где это возможно. Чаще всего для ноутбуков подходит вариант подключения внешних жестких дисков, флешек, карт памяти. Подобное подключение дает прирост размера постоянной памяти в разы.
В смартфонах, работающих под операционной системой Андроид, весьма часто предусматривают места для установки карт памяти. И, начиная с операционной системы Андроид версии 6.0 и выше, именно на карты памяти можно устанавливать приложения. В более ранних версиях Андроида карты памяти использовались лишь для размещения данных, фотографий, текстов, видео и других файлов пользователя.
Применение карт памяти в Андроиде позволяет в несколько раз увеличивать объем постоянной памяти устройства.
А вот «яблочные» гаджеты такой возможности, как установка дополнительных карт памяти, не предоставляют. Там предлагается использовать облачные сервисы для расширения постоянной памяти. Правда, для этого нужно иметь хороший и стабильный скоростной интернет.
Все дополнительные устройства памяти, включая облачные сервисы от Apple, разумеется, стоят денег. Чем больше объем дополнительной памяти, тем она дороже.
Кстати, далеко не в любой компьютер, не в любой мобильный гаджет можно установить дополнительную память большого размера. Нужно предварительно ознакомиться с ограничениями, которые обычно публикуют на сайтах производителей. Иначе можно «выбросить деньги на ветер». А приобретенная дополнительная память может быть не распознана в компьютере или в мобильном телефоне. Либо будет распознана не вся новая память, а лишь ее мЕньшая часть.
Почему увеличение размера постоянной памяти не ускоряет компьютер или мобильный телефон
Увеличить оперативную память не всегда возможно. Однако производители компьютеров и мобильных устройств предусмотрели значительно больше возможностей для увеличения размера постоянной памяти устройств.
Увеличение размера постоянной памяти никак не отражается на производительности устройства.
Дополнительная постоянная память не приводит к ускорению работы операционной системы, программ и приложений. Скорее даже наоборот: чем больше постоянная память, тем больше приложений (программ) пользователь может установить в компьютер или в смартфон. А значит, тем больше будет соблазн все эти программы (приложения) запустить одновременно. Что в конечном итоге может привести к «тормозам» и «зависаниям».
Увеличение размера постоянной памяти дает возможность хранить на устройстве (в компьютере, в смартфоне, на планшете) больше фотографий, видео, текстов, других файлов данных. Дополнительная постоянная память позволяет устанавливать больше новых приложений и программ.
Но, к сожалению, рост постоянной памяти не влияет на увеличение скорости работы компьютера или мобильного гаджета. На скорость работы влияет в первую очередь мощность процессора устройства. И во вторую очередь – объем оперативной памяти.
Статья впервые опубликована 27.06.2011.
Последнее обновление 23.01.2020.
Читайте также: