инициализация что значит слово
Инициализация
Инициализация (от англ. initialization, инициирование) — создание, активация, подготовка к работе, определение параметров. Приведение программы или устройства в состояние готовности к использованию. [1]
Термин употребляется как для программных, так и для аппаратных средств.
Действие инициализации направлено извне по отношению к инициализируемому объекту (программе, устройству) и необходимо для определения параметров и правил работы с ним.
Примеры
См. также
Примечания
Полезное
Смотреть что такое «Инициализация» в других словарях:
инициализация — инициирование Словарь русских синонимов. инициализация сущ., кол во синонимов: 2 • инициирование (4) • … Словарь синонимов
инициализация — Приведение областей памяти в состояние, исходное для последующей обработки или размещения данных. [ГОСТ 19781 90] инициализация Присваивание начальных значений переменным программы [ГОСТ 28397 89] Тематики обеспеч. систем обраб. информ.… … Справочник технического переводчика
Инициализация — 37. Инициализация Initialize Присваивание начальных значений переменным программы Источник: ГОСТ 28397 89: Языки программирования. Термины и определения оригинал документа 3. Инициализация Приведен … Словарь-справочник терминов нормативно-технической документации
инициализация — iniciacija statusas T sritis automatika atitikmenys: angl. initialization; initializing; initiating; initiation vok. Initialisieren, n; Initialisierung, f rus. инициализация, f; инициирование, n; присваивание начального значения, n pranc.… … Automatikos terminų žodynas
инициализация — инициализ ация, и … Русский орфографический словарь
инициализация — (1 ж), Р., Д., Пр. инициализа/ции … Орфографический словарь русского языка
инициализация — Элктроникада: программага башлангыч параметрлар бирү … Татар теленең аңлатмалы сүзлеге
инициализация — инициал/из/аци/я [й/а] … Морфемно-орфографический словарь
инициализация (периферийного устройства) — Операция, необходимая для установки периферийного устройства в исходное положение и выполняемая до начала использования носителя данных или начала реализации процесса. [Е.С.Алексеев, А.А.Мячев. Англо русский толковый словарь по системотехнике ЭВМ … Справочник технического переводчика
инициализация (спутникового приемника) — Процедура измерений для предварительного разрешения неоднозначности перед началом спутниковых определений в кинематическом режиме. [РТМ 68 14 01] Тематики спутниковая технология геодезических работ Обобщающие термины методы спутниковых… … Справочник технического переводчика
Многие пользователи компьютерной и мобильной техники достаточно часто сталкиваются с термином «инициализация». Что такое инициализация, в основном мало кто себе представляет. Поэтому стоит попытаться восполнить этот пробел в знаниях, приведя конкретные примеры.
Инициализация – что такое в общем понимании
Под инициализацией, исходя из трактовок, предлагаемых множеством уважаемых интернет-ресурсов, подразумевается определение параметров или конфигурации, подготовка к работе, процессы активации и т. д. Иногда этот термин обозначается еще как инициация, но его толкование больше соответствует созданию, запуску или старту чего-то.
Инициализация, как некий процесс определения заданных параметров или их значений, в равной степени может применяться и к программным, и к аппаратным компонентам компьютерной системы.
Для чего нужна инициализация, что такое инициализация в каждом конкретном случае, можно понять на простейших ситациях. Например, пользователь решил поменять себе винчестер, купил новый, установил в компьютер, а он не работает. Почему? Да только потому, что система автоматически не может определить его рабочие параметры, то есть, грубо говоря, не понимает, как с ним работать. Вот тут и требуется инициализация диска, чтобы ОС, так сказать, восприняла его характеристики и могла определить методику обращения к нему. Об этом будет рассказано подробно.
Основные направления инициализации
Среди основных или даже приоритетных направлений, которые подразумеваются инициализацией, в большинстве случаев выделяют следующие:
Конечно, это только основные типы, ведь, если хорошенько покопаться в дебрях компьютерных процессов, таких направлений можно выделить намного больше. Например, сюда же можно отнести определение начальных характеристик процессоров или оперативной памяти в первичной системе ввода/вывода BIOS, или даже подготовку операционной системы к запуску. Но ввиду сложности технического описания, которое, по большому счету, обычному пользователю не нужно, данный вопрос затрагиваться не будет.
Поэтому, особо не вдаваясь в технические особенности процессов, остановимся на каждом конкретном случае отдельно.
Каким образом происходит инициализация программы
Считается, что в вопросе инициализации приложений приоритетными процессами являются задание корректных начальных переменных или установка их значений равными нулю. Сюда относятся всевозможные переключатели, счетчики, адреса и т. д.
Например, для ассемблерных программ, представленных в большинстве случаев исполняемыми файлами форматов COM и EXE, процесс инициализации состоит из четырех основных этапов:
При обработке соответствующих массивов данных процесс имеет циклический характер, когда значения в массив, начинающийся с переменной со значением 0 или 1, попадают только после прохождения полного цикла и по мере выполнения приложения. И циклов может быть ровно столько, сколько переменных содержит весь массив.
Вопросы инициализации жестких дисков
С инициализацией винчестеров дело обстоит несколько проще. Некоторые источники утверждают, что суть процесса сводится к форматированию. Это не так.
Инициализация диска на начальной стадии, если использовать средства Windows-систем, производит определение нового раздела путем сопоставления атрибутов загрузочных записей (MBR или GPT).
Далее применяется процесс создания простого тома, указание действительного размера, присвоение литеры (чтобы система «увидела» диск), а только потом начинается форматирование с выбором соответствующей файловой системы (в большинстве случаев NTFS).
На этом этапе и завершается инициализация. Что такое инициализация в данном случае? Это комплекс мер по установке параметров винчестера, а не единичный процесс, как утверждают некоторые.
Подсистема печати
Для подсистемы печати процесс инициализации состоит в том, чтобы изначально определить, какое именно устройство будет использовано, а после подачи на него сигнала просканировать его возможности, включая установку возможного размера бумаги, применения определенного количества цветов, поддерживаемые форматы печати, максимальное разрешение и т. д.
Эти параметры и используются для установок подсистемы печати. Таким образом, приведенный в начальное состояние принтер будет работать корректно и без сбоев.
Инициализация на мобильных устройствах
Что касается мобильной техники, здесь зачастую используется так называемая строка инициализации, в которой прописываются значения параметров модемов при настройке подключения к интернету через мобильного оператора.
Как правило, вводимое значение всегда имеет один и тот же вид – AT+CGDCONT=1,»IP»,»Название оператора или его интернет-ресурс». Но это касается только тех случаев, когда предполагается производить выход в интернет на компьютере через модем подключаемого мобильного устройства.
Ошибки инициализации и методы их устранения
Наконец, стоит отметить, что во всех приведенных примерах может возникнуть ошибка инициализации. Что делать в такой ситуации? В случае с жесткими дисками или устройствами для съемных носителей самым простым выходом станет проверка подключений к материнской плате.
Инициализация – это что такое? Для чего она проводится? Какие следствия её осуществления? Что делать при возникновении ошибок? Эти и множество иных вопросов мы рассмотрим в рамках данной статьи.
Общая информация
Для начала давайте разберёмся, что же собой представляет инициализация. Это обозначение используется для создания, активации, подготовке к работе и определению параметров программного обеспечения или аппаратной составляющей. Иными словами, они приводятся в состояние готовности к использованию. Процесс инициализации всегда направлен извне по отношению к объекту управления (программе или устройству). Он необходим для того, чтобы определить параметры и правила работы.
Примеры инициализации
Давайте представим несколько реальных ситуаций и разберёмся с ними. Итак, как, к примеру, выглядит процесс инициализации подсистемы печати, которая выводит данные на бумагу? Первоначально определяется, какое устройство будет работать. Учитываются все особенности, вроде формата печати, использования цветов, максимального разрешения и прочее. Чтобы получить такую информацию, устройство следует активировать, подав на него питание и управляющий сигнал. С помощью последнего и будут запрошены доступные параметры работы или запущен процесс сканирования возможностей. И полученные данные будут переданы в системный блок, где, после обработки, они будут представлены пользователю в виде вариантов печати, что доступны для оборудования. А что собой представляет инициализация программы? Так называется процесс, во время которого переменные устанавливаются в начальные значения или в ноль перед тем, как программа будет выполнена. Если же говорить, допустим, о магнитном диске, то в его случае это подразумевает запись управляющей информации и последующее форматирование.
Поговорим о программах
Как видите, инициализация – это важный аспект взаимодействия с информационными технологиями. Давайте рассмотрим, как же происходит этот процесс на примере загрузочной программы EXE. Итак, первоначально необходимо передать «Ассемблеру» указания, в которых будет иметься и соответствовать действительности информация про сегментные регистры. Затем сохраняется адрес в стеке, что находится в регистре DS. После этого он обнуляется. И в завершение – в регистр загружается адрес нужного сегмента данных. Когда работает «Ассемблер», то он может определять наличие смещений в отдельных областях. При этом перед загрузочным модулем включается 256-байтная область, которая известна ещё как префикс программного сегмента PSP. Чтобы установить адрес её начальной точки используется регистр DS. Пользовательская программа сохраняет адрес, помещая его в стек с последующим возвратом в DOS. И здесь часто возникает ошибка инициализации. Почему? Дело в том, что системе требуется, чтобы следующее значение было нулевым адресом стека. Для этого необходимо, чтобы с помощью специальной команды был очищен регистр AX. Если этого не сделать, то возникают проблемы. Когда же может возникнуть ошибка инициализации? При использовании нелицензионного программного обеспечения, когда не был произведён качественный взлом, или же, когда она запускается просто на разных операционных системах, и были перемещены адреса системных регистров.
Когда могут возникать проблемы?
Это весьма интересный вопрос, на который всё же нужно дать ответ, раскрыть его полностью. Рассмотрим, что собой представляет инициализация Windows. Первоначально подгружается базовая система ввода/вывода. И уже БСВВ инициализирует операционную систему. Если нет конфликтов с системными регистрами, то всё подгружается без проблем и так же функционирует. Но, допустим, была установлена пиратская операционная система. И пришло заводское обновление. Если согласиться на предложение его установить, то будет заменена часть информации, которая позволяет работать. И из-за внутренних механизмов безопасности функционирование будет блокировано. Иными словами, повреждение конфигурации любой программы – это самая частая причина того, что инициализация не возможна. Но, к счастью, это относится разве что к более старым версиям, нежели Windows 10, которая была сделана бесплатной. А сейчас давайте обратим внимание к аппаратной составляющей.
Как работает жесткий диск?
Поговорим о месте, где хранятся все наработанные нами данные. Инициализация жесткого диска включает в себя стартовую подготовку механики, определение в базовой системе ввода/вывода и активацию главной загрузочной записи. Последняя выступает в качестве главного управляющего звена, от которого зависит очередность обработки файлов, что составляют операционную систему. Если возникнет сбой в области главной загрузочной записи, то будет прекращено функционирование ОС и, соответственно, жесткий диск будет считаться не инициализированным. Следует отметить, что ошибка в данном случае может быть полной или же частичной. В первом случае запуск программного обеспечения будет прерываться текстовым сообщением, что уведомит о наличии проблем. И, соответственно, инициализация жесткого диска не будет проведена. Во втором случае операционная система может работать довольно корректно. Но всё же, часть данных будет недоступна для просмотра. Оба варианта требуют квалифицированной диагностики проблем.
Тестирование
Итак, мы знаем, что собой представляет инициализация. Это постепенно подводит к такому вопросу – а что делать в случае проблем? Первоначально необходимо протестировать проблему. Это можно сделать и вручную, разбираясь с теми ошибками, что выводит компьютер, или же воспользоваться любым некоммерческим продуктом соответствующего профиля. Многие считают, что они не удобны в плане использования и информативности и предпочитают использовать базовую систему ввода/вывода. В пользу последней следует отметить систематичность и методичность перебора информации, и высокую результативность подобного тестирования. К тому же, проверка в таких случаях проводится внимательно и небольшими «порциями» загрузочной области, причем – по битах. Если всё было перепробовано, а система не работает, то появляется сообщение о критическом сбое. В случае работы с программой выводится информация о проблеме.
Восстановление
С обычными программами всё просто. Можно попробовать переустановить её или же сделать восстановление системы. Если же говорить о проблемах аппаратуры, то тут немного сложней. Рассмотрим ситуацию на примере всё того же жесткого диска. Первоначально следует убедиться, что он вообще работает. Для этого его необходимо послушать. В случае неисправности, его, пожалуй, лучше выбросить и купить новый, ибо помочь тут можно только с помощью специализированной аппаратуры. Если он издаёт стандартные звуки, то следует:
Заключение
Вот и было рассмотрено, что же собой представляет инициализация. Частные примеры и случаи можно рассматривать ещё долго и упорно, но, увы, размеры статьи ограничены. Главное – что был рассмотрен сам механизм этого процесса.
Инициализаторы
Инициализатор определяет начальное значение переменной. Можно инициализировать переменные в этих контекстах:
В определении переменной:
В качестве одного из параметров функции:
В качестве возвращаемого типа функции:
Инициализаторы могут принимать эти формы:
Выражение (или разделенный запятыми список выражений) в скобках:
Знак равенства с последующим выражением:
Список инициализации в фигурных скобках. Список может быть пустым или может состоять из набора списков как в приведенном ниже примере.
Типы инициализации
Существует несколько типов инициализации, которые могут встречаться на различных этапах выполнения программы. Различные типы инициализации не является взаимоисключающими, например, инициализация списка может активировать инициализацию значений, а в других условиях она может активировать агрегатную инициализацию.
Нулевая инициализация
Нулевая инициализация — задание для переменной нулевого значения, неявно преобразованного в тип:
Числовые переменные инициализируются значением 0 (или 0,0; 0,0000000000 и т.п.).
Нулевая инициализация выполняется в разное время:
При запуске программы — для всех именованных переменных, имеющих статическую длительность. Далее эти переменные могут быть инициализированы повторно.
Во время инициализации значений — для скалярных типов и типов класса POD, которые инициализируются с помощью пустых фигурных скобок.
Для массивов, у которых инициализировано только подмножество членов.
Ниже приведены некоторые примеры нулевой инициализации:
Инициализация по умолчанию
Инициализация по умолчанию для классов, структур и объединений — это инициализация с помощью конструктора по умолчанию. Конструктор по умолчанию можно вызвать без выражения инициализации или с помощью new ключевого слова:
Если класс, структура или объединение не имеет конструктор по умолчанию, компилятор выдает ошибку.
Скалярные переменные инициализируются по умолчанию, если при их определении не указываются выражения инициализации. Они имеют неопределенные значения.
Массивы инициализируются по умолчанию, если при их определении не указываются выражения инициализации. Если массив инициализируется по умолчанию, его члены инициализируются по умолчанию и приобретают неопределенные значения как в приведенном ниже примере.
Если члены массива не имеют конструктор по умолчанию, компилятор выдает ошибку.
Инициализация по умолчанию константных переменных
Константные переменные необходимо объявлять вместе с инициализатором. Если они относятся к скалярным типам, они вызывают ошибку компилятора, а если они относятся к типам классов, имеющим конструктор по умолчанию, они вызывают предупреждение:
Инициализация по умолчанию статических переменных
Статические переменные, объявленные без инициализатора, инициализируются значением 0 (с неявным преобразованием к соответствующему типу).
Дополнительные сведения об инициализации глобальных статических объектов см. в разделе функция Main и аргументы командной строки.
Инициализация значения
Инициализация значения происходит в следующих случаях:
Именованное значение инициализируется с использованием пустых фигурных скобок.
Анонимный временный объект инициализируется с помощью пустых круглых или фигурных скобок.
Объект инициализируется с помощью new ключевого слова, а также пустых круглых скобок или фигурных скобок
При инициализации значения выполняются следующие действия:
Для классов, имеющих хотя бы один открытый конструктор, вызывается конструктор по умолчанию.
В случае классов, не относящихся к объединениям, у которых нет объявленных конструкторов, объект инициализируется нулевым значением, и вызывается конструктор по умолчанию.
В случае массивов каждый элемент инициализируется значением.
Во всех остальных случаях переменная инициализируется нулевым значением.
Инициализация копированием
Инициализация копированием — это инициализация одного объекта с использованием другого объекта. Она выполняется в следующих случаях:
Переменная инициализируется с помощью знака равенства.
Аргумент передается в функцию.
Объект возвращается функцией.
Возникает или перехватывается исключение.
Нестатический элемент данных инициализируется с помощью знака равенства.
Следующий код демонстрирует несколько примеров инициализации копированием.
Инициализация копированием не может вызывать явные конструкторы.
В некоторых случаях, если конструктор копии класса удален или недоступен, копируемая инициализация вызывает ошибку компилятора.
Прямая инициализация
Прямая инициализация — это инициализация с использованием (непустых) круглых или фигурных скобок. В отличие от копируемой инициализации она может вызывать явные конструкторы. Она выполняется в следующих случаях:
Переменная инициализируется с помощью непустых круглых или фигурных скобок.
переменная инициализируется с помощью new ключевого слова, а также непустых фигурных скобок или круглых скобок
В конструкторе базовые классы и нестатические члены инициализируются с помощью списка инициализации.
В копии захваченной переменной в лямбда-выражении.
Приведенный ниже код демонстрирует несколько примеров прямой инициализации.
Инициализация списка
Инициализация списком выполняется, когда переменная инициализируется с помощью списка инициализации в фигурных скобках. Списки инициализации в фигурных скобках можно использовать в следующих случаях:
класс инициализируется с помощью new ключевого слова
Объект возвращается функцией.
Аргумент передается функции.
Один из аргументов при прямой инициализации.
В инициализаторе нестатических элементов данных.
В списке инициализации конструктора.
Приведенный ниже код демонстрирует несколько примеров инициализации списком.
Агрегатная инициализация
Агрегатная инициализация — форма инициализации списка для массивов и типов классов (часто структур и объединений), со следующими характеристиками:
Отсутствие закрытых или защищенных членов.
Отсутствие заданных пользователем конструкторов кроме явно заданных по умолчанию или удаленных конструкторов.
Отсутствие базовых классов.
Отсутствие виртуальных функций-членов.
в Visual Studio 2015 и более ранних версиях статистическое выражение не может содержать инициализаторы с фигурными или равными скобками для нестатических членов. это ограничение было удалено в стандарте c++ 14 и реализовано в Visual Studio 2017.
Агрегатные инициализаторы состоят из списка инициализации в фигурных скобках со знаком равенства или без него как в приведенном ниже примере:
Вы должны увидеть следующий результат:
Элементы массива, объявляемые, но не инициализированные во время инициализации агрегата, инициализируются нулем, как показано myArr3 выше.
Инициализация объединений и структур
Если объединение не имеет конструктора, его можно инициализировать одним значением (или другим экземпляром объединения). Значение используется для инициализации первого нестатического поля. Это отличается от инициализации структур, где первое значение в инициализаторе используется для инициализации первого поля, второе — для инициализации второго поля и т. д. Сравните инициализацию объединений и структур в следующем примере:
Инициализация статистических выражений, содержащих статистические выражения
Агрегатные типы могут содержать другие агрегатные типы, например массивы массивов, массивы структур и т. п. Эти типы инициализируются с помощью вложенных наборов фигурных скобок, как показано в следующем примере:
Инициализация ссылок
Переменные ссылочного типа должны инициализироваться объектом типа, на котором основан ссылочный тип, или объектом типа, который можно преобразовать в такой тип. Например:
Единственный способ инициализировать ссылку с помощью временного объекта является инициализация постоянного временного объекта. После инициализации переменная ссылочного типа всегда указывает на один и тот же объект; ее невозможно изменить, чтобы она указывала на другой объект.
Поскольку передача аргумента ссылочного типа в функцию и возврат значения ссылочного типа из функции являются инициализацией, формальные аргументы функции, а также возвращаемые ссылки инициализируются правильно.
Переменные ссылочного типа можно объявлять без инициализаторов только в указанных ниже случаях.
Объявления функций (прототипы). Например:
Объявления типов значений, возвращаемых функцией. Например:
Объявления члена класса ссылочного типа. Например:
При инициализации переменной ссылочного типа компилятор с помощью графа принятия решений, показанного на следующем рисунке, выбирает между созданием ссылки на объект и созданием временного объекта, на который указывает ссылка.
Граф принятия решений для инициализации ссылочных типов