big.LITTLE — это гетерогенная архитектура для смартфонов или планшетов, сочетающая в себе относительно небольшие и энергосберегающие ядра (LITTLE) с другими, гораздо более крупными и мощными, но с более высоким потреблением (big).
Зачем это нужно?
Идея состоит в том, чтобы создать многоядерный процессор, который сможет лучше удовлетворить современные потребности в динамических вычислениях и потреблять при этом меньше энергии.
Таким образом, когда вы просто используете камеру или ваш телефон находится в фоновом режиме, будут использоваться маленькие ядра, которые экономят заряд батареи, но обеспечивают достаточную производительность. А когда вы запускаете игру, то начинает работать большой пакет ядер, чтобы дать лучшую производительность.
Зачем это нужно?
Идея состоит в том, чтобы создать многоядерный процессор, который сможет лучше удовлетворить современные потребности в динамических вычислениях и потреблять при этом меньше энергии.
Таким образом, когда вы просто используете камеру или ваш телефон находится в фоновом режиме, будут использоваться маленькие ядра, которые экономят заряд батареи, но обеспечивают достаточную производительность. А когда вы запускаете игру, то начинает работать большой пакет ядер, чтобы дать лучшую производительность.
Мейнфрейм
Вычислительная система, ориентированная на бесперебойную работу при исключительно больших нагрузках при высоком уровне коэффициента использования, ну а понятней будет просто сказать специфичный сервер или же большой компьютер.
На самом деле, большинство компаний, использующих мейнфреймы используют их потому что так было ещё лет 30-40 назад и у них есть и инфраструктура, и кадры которые это всё поддерживают. Плюс миграция с платформы на платформу удовольствие не из дешёвых, а самое главное что это все еще работает.
Конечно с каждым годом некоторые компании отказываются от мейнфреймов, но также есть и те, кто покупает. Спросите зачем? На это есть всего одна причина: они надёжны. А так в целом за последние лет 20 число компаний, использующих мейнфреймы, почти не изменилось.
Вычислительная система, ориентированная на бесперебойную работу при исключительно больших нагрузках при высоком уровне коэффициента использования, ну а понятней будет просто сказать специфичный сервер или же большой компьютер.
На самом деле, большинство компаний, использующих мейнфреймы используют их потому что так было ещё лет 30-40 назад и у них есть и инфраструктура, и кадры которые это всё поддерживают. Плюс миграция с платформы на платформу удовольствие не из дешёвых, а самое главное что это все еще работает.
Конечно с каждым годом некоторые компании отказываются от мейнфреймов, но также есть и те, кто покупает. Спросите зачем? На это есть всего одна причина: они надёжны. А так в целом за последние лет 20 число компаний, использующих мейнфреймы, почти не изменилось.
Dataset
Датасет — это набор связанных, дискретных элементов связанных данных, к которым можно обращаться по отдельности или в комбинации или управлять ими как единым целым.
Датасет организован в некоторый тип структуры данных. В базе данных, например, датасет может содержать набор бизнес-данных (имена, зарплаты, контакты и тд). Сама база даных может рассматриваться, как датасет, так и содержащие в ней массивы данных, относящиеся к определенному типу информации, например данные о продажах для определенного корпоративного отдела.
Термин датасет возник в IBM, где он означал почти тоже самое, что и файл, так как в операционной системе для мэйнфреймов IBM датасет является единственным способом хранения информации. Сейчас датасеты используются для анализа и машинного обучения
Датасет — это набор связанных, дискретных элементов связанных данных, к которым можно обращаться по отдельности или в комбинации или управлять ими как единым целым.
Датасет организован в некоторый тип структуры данных. В базе данных, например, датасет может содержать набор бизнес-данных (имена, зарплаты, контакты и тд). Сама база даных может рассматриваться, как датасет, так и содержащие в ней массивы данных, относящиеся к определенному типу информации, например данные о продажах для определенного корпоративного отдела.
Термин датасет возник в IBM, где он означал почти тоже самое, что и файл, так как в операционной системе для мэйнфреймов IBM датасет является единственным способом хранения информации. Сейчас датасеты используются для анализа и машинного обучения
Датасеты в мейнфреймах
В мире мейнфреймов нет файлов и директорий, есть только датасеты.
Датасеты – есть всё. Т.е. единственный способ сохранить информацию. Датасеты бывают разные и для разных целей.
Если вы хотите сохранить какой-то текст, то сначала вы выделяете память для датасета, например, с фиксированой длиной в строке 80 и просто, редактируя датасет, пишете в него всё что вам нужно.
Но ведь фиксированая длинна в строке – не удобно, иногда может что-то не помещаться! Тогда можно использовать датасет с переменной длиной строки.
Хотите одновременно читать и писать данные? – всё можно, нужно использовать VSAM датасет и обращаться к нему через RLS (Record Level Sharing) – тогда вы сможете писать данные в одни блоки, а читать из других.
В мире мейнфреймов нет файлов и директорий, есть только датасеты.
Датасеты – есть всё. Т.е. единственный способ сохранить информацию. Датасеты бывают разные и для разных целей.
Если вы хотите сохранить какой-то текст, то сначала вы выделяете память для датасета, например, с фиксированой длиной в строке 80 и просто, редактируя датасет, пишете в него всё что вам нужно.
Но ведь фиксированая длинна в строке – не удобно, иногда может что-то не помещаться! Тогда можно использовать датасет с переменной длиной строки.
Хотите одновременно читать и писать данные? – всё можно, нужно использовать VSAM датасет и обращаться к нему через RLS (Record Level Sharing) – тогда вы сможете писать данные в одни блоки, а читать из других.
Time Sharing Option
TSO или буквально с английского «опция разделения времени» — интерактивное окружение распределения вычислительных ресурсов между многими пользователями, используемое в операционных системах для мэйнфреймов, разработанных IBM
TSO напрямую обычно используют программисты и системные администраторы мейнфрейма, позволяя им:
⁃ запускать задания в пакетном режиме
⁃ писать, компилировать и отлаживать программы
⁃ просматривать и редактировать наборы данных
⁃ заниматься поддержкой приложений для конечных пользователей.
Пользователь может взаимодействовать с TSO в двух режимах: с помощью командной строки, либо с помощью ISPF-интерфейса.
TSO или буквально с английского «опция разделения времени» — интерактивное окружение распределения вычислительных ресурсов между многими пользователями, используемое в операционных системах для мэйнфреймов, разработанных IBM
TSO напрямую обычно используют программисты и системные администраторы мейнфрейма, позволяя им:
⁃ запускать задания в пакетном режиме
⁃ писать, компилировать и отлаживать программы
⁃ просматривать и редактировать наборы данных
⁃ заниматься поддержкой приложений для конечных пользователей.
Пользователь может взаимодействовать с TSO в двух режимах: с помощью командной строки, либо с помощью ISPF-интерфейса.
Операционная система z/OS
64-битная серверная операционная система, разработанная компанией IBM для мейнфреймов собственного производства.
Содержит большинство функций, реализованных в 70-х годах, а в некоторых случаях даже в 60-х, z/OS также предлагает многие отличительные черты и элементы, идентичные таковым в ныне доступных открытых системах.
На данный момент z/OS поддерживает Java, Unix API и приложения, и легко взаимодействует с TCP/IP и Веб. Поддержка действующих стандартов функциональности в z/OS и поддержка Linux и OpenSolaris позволяет наращивать возможности для будущего использования.
z/OS является передовой ОС, разрабатываемой IBM, предназначенной для продолжительной работы с большим количеством операций с высоким уровнем безопасности и устойчивости.
64-битная серверная операционная система, разработанная компанией IBM для мейнфреймов собственного производства.
Содержит большинство функций, реализованных в 70-х годах, а в некоторых случаях даже в 60-х, z/OS также предлагает многие отличительные черты и элементы, идентичные таковым в ныне доступных открытых системах.
На данный момент z/OS поддерживает Java, Unix API и приложения, и легко взаимодействует с TCP/IP и Веб. Поддержка действующих стандартов функциональности в z/OS и поддержка Linux и OpenSolaris позволяет наращивать возможности для будущего использования.
z/OS является передовой ОС, разрабатываемой IBM, предназначенной для продолжительной работы с большим количеством операций с высоким уровнем безопасности и устойчивости.
Арифметические операции и логические процедуры
Арифметические операции включают в себя деление, умножение, вычитание модулей, обычное вычитание и сложение.
К группе логических преобразований причисляют логическое «и» и «или», то есть конъюнкцию и дизъюнкцию, а также сравнение данных на равенство. Такие процедуры, как правило, проводят над двоичными словами, состоящими из множества разрядов.
К специальным арифметическим операциям относятся нормализация, логический и арифметический сдвиги. Между этими преобразованиями есть существенная разница. Если при арифметическом сдвиге в местоположении меняют лишь цифровые разряды, то при логическом знаковый разряд присоединяется к движению.
Все эти операции выполняются в компьютере с помощь арифметико-логического устройства.
Арифметические операции включают в себя деление, умножение, вычитание модулей, обычное вычитание и сложение.
К группе логических преобразований причисляют логическое «и» и «или», то есть конъюнкцию и дизъюнкцию, а также сравнение данных на равенство. Такие процедуры, как правило, проводят над двоичными словами, состоящими из множества разрядов.
К специальным арифметическим операциям относятся нормализация, логический и арифметический сдвиги. Между этими преобразованиями есть существенная разница. Если при арифметическом сдвиге в местоположении меняют лишь цифровые разряды, то при логическом знаковый разряд присоединяется к движению.
Все эти операции выполняются в компьютере с помощь арифметико-логического устройства.
Арифметические операции и логические процедуры
Арифметические операции включают в себя деление, умножение, вычитание модулей, обычное вычитание и сложение.
К группе логических преобразований причисляют логическое «и» и «или», то есть конъюнкцию и дизъюнкцию, а также сравнение данных на равенство. Такие процедуры, как правило, проводят над двоичными словами, состоящими из множества разрядов.
К специальным арифметическим операциям относятся нормализация, логический и арифметический сдвиги. Между этими преобразованиями есть существенная разница. Если при арифметическом сдвиге в местоположении меняют лишь цифровые разряды, то при логическом знаковый разряд присоединяется к движению.
Все эти операции выполняются в компьютере с помощь арифметико-логического устройства.
Арифметические операции включают в себя деление, умножение, вычитание модулей, обычное вычитание и сложение.
К группе логических преобразований причисляют логическое «и» и «или», то есть конъюнкцию и дизъюнкцию, а также сравнение данных на равенство. Такие процедуры, как правило, проводят над двоичными словами, состоящими из множества разрядов.
К специальным арифметическим операциям относятся нормализация, логический и арифметический сдвиги. Между этими преобразованиями есть существенная разница. Если при арифметическом сдвиге в местоположении меняют лишь цифровые разряды, то при логическом знаковый разряд присоединяется к движению.
Все эти операции выполняются в компьютере с помощь арифметико-логического устройства.
Содержимое системного блока
⁃ Центральный процессор. Физически представлен довольно крупной микросхемой, включающей в себя множество транзисторов. Выполняет все математические расчеты.
⁃ Главная (материнская) плата. Является основой, объединяющей все компоненты в единую систему. На ней размещаются разъемы для подключения комплектующих, внутренние шины, преобразователи напряжения и пр.
⁃ Импульсный блок электропитания. Ответственен за преобразование сетевого переменного напряжения
⁃ Модули оперативной памяти. Представляют собой ряд микросхем, подключающейся к соответствующему разъему материнской платы.
Отметим, что вышеуказанные компоненты являются необходимыми для функционирования компьютера. Так, если без монитора включить системный блок можно, то без процессора это невозможно.
⁃ Центральный процессор. Физически представлен довольно крупной микросхемой, включающей в себя множество транзисторов. Выполняет все математические расчеты.
⁃ Главная (материнская) плата. Является основой, объединяющей все компоненты в единую систему. На ней размещаются разъемы для подключения комплектующих, внутренние шины, преобразователи напряжения и пр.
⁃ Импульсный блок электропитания. Ответственен за преобразование сетевого переменного напряжения
⁃ Модули оперативной памяти. Представляют собой ряд микросхем, подключающейся к соответствующему разъему материнской платы.
Отметим, что вышеуказанные компоненты являются необходимыми для функционирования компьютера. Так, если без монитора включить системный блок можно, то без процессора это невозможно.
Что такое SSD?
SSD, Solid State Drive – современный твердотельный накопитель. Для хранения информации используется флеш-память.
Есть 4 типа флеши-памяти:
⁃ SLC (Single Level Cell), где в каждой ячейке хранится по одному биту;
⁃ MLC (Multi Level Cells) – несмотря на нелогичное название, здесь всего два бита;
⁃ TLC (Triple Level Cells) с тремя битами на ячейку;
⁃ QLC (Quadruple Level Cells) – четыре бита на ячейку.
Кроме типа флеш-памяти есть еще один важный момент — контроллер. Он управляет операциями чтения/записи данных в ячейки памяти, следит за их состоянием, выполняет коррекцию ошибок, выравнивание износа ячеек, а также другие вспомогательные функции.
SSD, Solid State Drive – современный твердотельный накопитель. Для хранения информации используется флеш-память.
Есть 4 типа флеши-памяти:
⁃ SLC (Single Level Cell), где в каждой ячейке хранится по одному биту;
⁃ MLC (Multi Level Cells) – несмотря на нелогичное название, здесь всего два бита;
⁃ TLC (Triple Level Cells) с тремя битами на ячейку;
⁃ QLC (Quadruple Level Cells) – четыре бита на ячейку.
Кроме типа флеш-памяти есть еще один важный момент — контроллер. Он управляет операциями чтения/записи данных в ячейки памяти, следит за их состоянием, выполняет коррекцию ошибок, выравнивание износа ячеек, а также другие вспомогательные функции.
Жесткий диск (HDD)
HDD — устройство хранения данных, принцип записи информации в котором заключается в намагничивании областей на поверхности магнитных дисков(пластин).
Для организации хранения данных магнитный диск разбивается на дорожки и сектора, а совокупность дорожек, расположенных одна над другой
В зависимости от объема памяти, внутри корпуса HDD могут находиться до восьми пластин. Запись и чтение информации с пластины осуществляется при помощи магнитной головки.
За управление работой HDD отвечает электронная плата управления. На ней размещены центральный процессор с интегрированной ПЗУ, сервоконтроллер, кэш-память. Объем кэш-буфера в современных HDD достигает 512 МБ.
В зависимости от типоразмера жесткие диски можно разделить на две группы: 2.5-дюймовые HDD (нашли массовое применение в ноутбуках) и 3.5-дюймовые (применяются в персональных компьютерах, сетевых хранилищах и системах видеонаблюдения).
HDD — устройство хранения данных, принцип записи информации в котором заключается в намагничивании областей на поверхности магнитных дисков(пластин).
Для организации хранения данных магнитный диск разбивается на дорожки и сектора, а совокупность дорожек, расположенных одна над другой
В зависимости от объема памяти, внутри корпуса HDD могут находиться до восьми пластин. Запись и чтение информации с пластины осуществляется при помощи магнитной головки.
За управление работой HDD отвечает электронная плата управления. На ней размещены центральный процессор с интегрированной ПЗУ, сервоконтроллер, кэш-память. Объем кэш-буфера в современных HDD достигает 512 МБ.
В зависимости от типоразмера жесткие диски можно разделить на две группы: 2.5-дюймовые HDD (нашли массовое применение в ноутбуках) и 3.5-дюймовые (применяются в персональных компьютерах, сетевых хранилищах и системах видеонаблюдения).
3 уровня детализации в ER-моделях и моделях данных
Концептуальная модель данных — схема наивысшего уровня с минимальным количеством подробностей. Достоинство: возможность отобразить общую структуру модели и всю архитектуру системы. Менее масштабные системы могут обойтись и без этой модели. В этом случае можно сразу переходить к логической модели.
Логическая модель данных содержит более подробную информацию, нежели концептуальная модель. На этом уровне определяются более подробные операционные и транзакционные сущности. Логическая модель не зависит от технологии, в которой она будет применяться.
Физическая модель данных: на основе каждой логической модели данных можно составить одну или две физических модели. В последних должно присутствовать достаточно технических подробностей для составления и внедрения самой базы данных.
Концептуальная модель данных — схема наивысшего уровня с минимальным количеством подробностей. Достоинство: возможность отобразить общую структуру модели и всю архитектуру системы. Менее масштабные системы могут обойтись и без этой модели. В этом случае можно сразу переходить к логической модели.
Логическая модель данных содержит более подробную информацию, нежели концептуальная модель. На этом уровне определяются более подробные операционные и транзакционные сущности. Логическая модель не зависит от технологии, в которой она будет применяться.
Физическая модель данных: на основе каждой логической модели данных можно составить одну или две физических модели. В последних должно присутствовать достаточно технических подробностей для составления и внедрения самой базы данных.
Что такое избыточность данных?
Избыточность данных относится к практике хранения данных в двух или более местах в базе данных или системе хранения данных. Потому что если каким то образом данные будут повреждены, их можно будет легко восстановить, не останавливая при этом рабочий процесс.
Избыточность данных может возникать намеренно или случайно. Если это делается преднамеренно, то чаще всего эти данные используются для резервного копирования или аварийного восстановления. Если же это делается случайно, дублирование данных может привести к их несоответствию.
Также существуют другие альтернативы для защиты и восстановления данных. Например, есть бэкапы непрерывная защита данных (CDP), shapShot и образы.
Избыточность данных относится к практике хранения данных в двух или более местах в базе данных или системе хранения данных. Потому что если каким то образом данные будут повреждены, их можно будет легко восстановить, не останавливая при этом рабочий процесс.
Избыточность данных может возникать намеренно или случайно. Если это делается преднамеренно, то чаще всего эти данные используются для резервного копирования или аварийного восстановления. Если же это делается случайно, дублирование данных может привести к их несоответствию.
Также существуют другие альтернативы для защиты и восстановления данных. Например, есть бэкапы непрерывная защита данных (CDP), shapShot и образы.
Процедурное программирование
программирование, при котором последовательно выполняемые операторы можно собрать в подпрограммы, чтобы сообщить компьютеру, что он должен делать шаг за шагом, чтобы завершить задачу под рукой.
Процедурное программирование является отражением архитектуры традиционных ЭВМ, которая была предложена Фон Нейманом в 1940-х годах. Теоретической моделью процедурного программирования служит машина Тьюринга.
Эта парадигма использует линейный нисходящий подход и рассматривает данные и процедуры как два разных объекта. Основываясь на концепции вызова процедуры, процедурное программирование делит программу на процедуры, которые также известны как процедуры или функции, просто содержащие последовательность шагов, которые необходимо выполнить.
программирование, при котором последовательно выполняемые операторы можно собрать в подпрограммы, чтобы сообщить компьютеру, что он должен делать шаг за шагом, чтобы завершить задачу под рукой.
Процедурное программирование является отражением архитектуры традиционных ЭВМ, которая была предложена Фон Нейманом в 1940-х годах. Теоретической моделью процедурного программирования служит машина Тьюринга.
Эта парадигма использует линейный нисходящий подход и рассматривает данные и процедуры как два разных объекта. Основываясь на концепции вызова процедуры, процедурное программирование делит программу на процедуры, которые также известны как процедуры или функции, просто содержащие последовательность шагов, которые необходимо выполнить.
ООП или объектно-ориентированное программирование
ООП — это подход, при котором программа рассматривается как набор объектов, взаимодействующих друг с другом.
ООП обычно определяют через четыре принципа. (иногда количество сокращают до трех — опускают понятие абстракции)
1. Абстракция — способ выделить набор наиболее важных атрибутов и методов и исключить незначимые.
2. Инкапсуляция — свойство системы, позволяющее объединить данные и методы, работающие с ними в классе и скрыть детали реализации от пользователя.
3. Наследование — описание нового класса на основе уже существующего с частично или полностью заимствующейся функциональностью.
4. Полиморфизм — когда методы разных объектов могут выполнять задачи разными способами. Например, у «человека» есть метод «работать». У «программиста» — это будет означать написание кода, а у «директора» — рассмотрение управленческих вопросов. Но глобально и то, и то есть работа.
ООП — это подход, при котором программа рассматривается как набор объектов, взаимодействующих друг с другом.
ООП обычно определяют через четыре принципа. (иногда количество сокращают до трех — опускают понятие абстракции)
1. Абстракция — способ выделить набор наиболее важных атрибутов и методов и исключить незначимые.
2. Инкапсуляция — свойство системы, позволяющее объединить данные и методы, работающие с ними в классе и скрыть детали реализации от пользователя.
3. Наследование — описание нового класса на основе уже существующего с частично или полностью заимствующейся функциональностью.
4. Полиморфизм — когда методы разных объектов могут выполнять задачи разными способами. Например, у «человека» есть метод «работать». У «программиста» — это будет означать написание кода, а у «директора» — рассмотрение управленческих вопросов. Но глобально и то, и то есть работа.
Структура ООП
Объекты и классы
Чтобы сделать код проще, программу разбивают на независимые блоки — объекты. В реальной жизни это может быть стол, чашка, человек и многое другое. В программировании объекты — это структуры данных, у них, как и у реальных предметов, могут быть свойства: цвет, содержание или имя пользователя. А чтобы объединить между собой объекты с похожими свойствами, существуют классы.
Класс — это «шаблон» для объекта, который описывает его свойства. Объект — это экземпляр какого-нибудь класса.
Атрибуты и методы
Атрибуты — это переменные, конкретные характеристики объекта, такие как цвет поля или имя пользователя.
Методы — это функции, которые описаны внутри объекта или класса. Они относятся к определенному объекту и позволяют взаимодействовать с ними или другими частями кода.
Объекты и классы
Чтобы сделать код проще, программу разбивают на независимые блоки — объекты. В реальной жизни это может быть стол, чашка, человек и многое другое. В программировании объекты — это структуры данных, у них, как и у реальных предметов, могут быть свойства: цвет, содержание или имя пользователя. А чтобы объединить между собой объекты с похожими свойствами, существуют классы.
Класс — это «шаблон» для объекта, который описывает его свойства. Объект — это экземпляр какого-нибудь класса.
Атрибуты и методы
Атрибуты — это переменные, конкретные характеристики объекта, такие как цвет поля или имя пользователя.
Методы — это функции, которые описаны внутри объекта или класса. Они относятся к определенному объекту и позволяют взаимодействовать с ними или другими частями кода.
Плюсы и минусы объектно-ориентированного программирования
Начнем с преимуществ:
⁃ модульность — подход позволяет сделать код более структурированным, в нем легко разобраться стороннему человеку.
⁃ гибкость — ООП-код легко развивать, дополнять и изменять.
⁃ экономия времени — благодаря абстракции, полиморфизму и наследованию можно не писать один и тот же код много раз. Это ускоряет разработку нового ПО.
⁃ безопасность — программу сложно сломать, так как инкапсулированный код недоступен извне.
Недостатки:
⁃ снижение производительности — ООП подход снижает производительность кода в целом. Программы работают медленнее из-за особенностей доступа к данным и большого количества сущностей.
⁃ большой размер программы — занимает больше места на диске, чем «процедурный», тк в программе хранится больше конструкций.
Начнем с преимуществ:
⁃ модульность — подход позволяет сделать код более структурированным, в нем легко разобраться стороннему человеку.
⁃ гибкость — ООП-код легко развивать, дополнять и изменять.
⁃ экономия времени — благодаря абстракции, полиморфизму и наследованию можно не писать один и тот же код много раз. Это ускоряет разработку нового ПО.
⁃ безопасность — программу сложно сломать, так как инкапсулированный код недоступен извне.
Недостатки:
⁃ снижение производительности — ООП подход снижает производительность кода в целом. Программы работают медленнее из-за особенностей доступа к данным и большого количества сущностей.
⁃ большой размер программы — занимает больше места на диске, чем «процедурный», тк в программе хранится больше конструкций.
Функциональное программирование
Функциональное программирование сильно отличается как от процедурного программирования, так и от ООП, поскольку в нем используются математические функции. Благодаря этому операции выполняются только на основе введенных входных данных, и они не зависят от временных или скрытых переменных.
Смысл функционального программирования в том, чтобы описать не сами чёткие шаги к цели, а правила, по которым компилятор сам должен дойти до нужного результата.
Последовательность выполнения подпрограмм определяет сам код и компилятор, а не программист. Каждая команда — это какое-то правило, поэтому нет разницы, когда мы запишем это правило, в начале или в конце кода. Главное, чтобы у нас это правило было, а компилятор сам разберётся, в какой момент его применять.
Функциональное программирование сильно отличается как от процедурного программирования, так и от ООП, поскольку в нем используются математические функции. Благодаря этому операции выполняются только на основе введенных входных данных, и они не зависят от временных или скрытых переменных.
Смысл функционального программирования в том, чтобы описать не сами чёткие шаги к цели, а правила, по которым компилятор сам должен дойти до нужного результата.
Последовательность выполнения подпрограмм определяет сам код и компилятор, а не программист. Каждая команда — это какое-то правило, поэтому нет разницы, когда мы запишем это правило, в начале или в конце кода. Главное, чтобы у нас это правило было, а компилятор сам разберётся, в какой момент его применять.
Непрерывная защита данных (CDP)
Из соображений производительности резервные копии обычно создаются через регулярные, но достаточно долгие промежутки времени. Если система временно повреждена, изменения данных, внесенные в период между последним созданием резервной копии и сбоем системы, будут утрачены.
Функциональность CDP позволяет создавать резервные копии выбранных данных в промежутки времени между запланированными сеансами резервного копирования на постоянной основе:
⁃ Путем отслеживания изменений в указанных файлах/папках
⁃ Путем отслеживания изменений файлов, внесенных конкретными приложениями
Из данных, выбранных для резервного копирования, можно выбрать определенные файлы для непрерывной защиты данных. Система будет создавать копию каждого изменения, внесенного в эти файлы. Их можно будет восстановить в состояние на время последнего изменения.
Из соображений производительности резервные копии обычно создаются через регулярные, но достаточно долгие промежутки времени. Если система временно повреждена, изменения данных, внесенные в период между последним созданием резервной копии и сбоем системы, будут утрачены.
Функциональность CDP позволяет создавать резервные копии выбранных данных в промежутки времени между запланированными сеансами резервного копирования на постоянной основе:
⁃ Путем отслеживания изменений в указанных файлах/папках
⁃ Путем отслеживания изменений файлов, внесенных конкретными приложениями
Из данных, выбранных для резервного копирования, можно выбрать определенные файлы для непрерывной защиты данных. Система будет создавать копию каждого изменения, внесенного в эти файлы. Их можно будет восстановить в состояние на время последнего изменения.
Граф как структура данных
Структура данных графа представляет собой набор узлов, которые имеют данные и связаны с другими узлами.
Точнее, граф - это структура данных (V, E), которая состоит из:
⁃ Коллекции вершин V.
⁃ Набора ребер E, представленный в виде упорядоченных пар вершин (u, v).
Терминология графа:
⁃ смежность
Вершина смежна с другой вершиной, если есть ребро, соединяющее их.
⁃ путь
Последовательность ребер, которая позволяет вам перейти от вершины A к вершине B
⁃ ориентированный граф
Граф, в котором есть ребро (u, v) не обязательно означает, что также имеется ребро (v, u). Ребра в таком графике представлены стрелками, чтобы показать направление ребра.
Структура данных графа представляет собой набор узлов, которые имеют данные и связаны с другими узлами.
Точнее, граф - это структура данных (V, E), которая состоит из:
⁃ Коллекции вершин V.
⁃ Набора ребер E, представленный в виде упорядоченных пар вершин (u, v).
Терминология графа:
⁃ смежность
Вершина смежна с другой вершиной, если есть ребро, соединяющее их.
⁃ путь
Последовательность ребер, которая позволяет вам перейти от вершины A к вершине B
⁃ ориентированный граф
Граф, в котором есть ребро (u, v) не обязательно означает, что также имеется ребро (v, u). Ребра в таком графике представлены стрелками, чтобы показать направление ребра.
Способы представления графа
матрица смежности
двумерная матрица, в которой и число строк, и число столбцов равно числу вершин графа. В ячейки матрицы смежности записываются числа 0 или 1 в зависимости от того, соединены соответствующие вершины рёбрами или нет.
матрица инцидентности
матрица размера n x m, где n - число вершин графа, m - число рёбер графа. Обычно в матрице инцидентности строки соответствуют вершинам графа, а столбцы - рёбрам графа.
списки инцидентности
Представляют собой граф в виде массива связанного списка. Индекс массива представляет вершину, и каждый элемент в его связанном списке представляет другие вершины, которые образуют ребро с вершиной.
матрица смежности
двумерная матрица, в которой и число строк, и число столбцов равно числу вершин графа. В ячейки матрицы смежности записываются числа 0 или 1 в зависимости от того, соединены соответствующие вершины рёбрами или нет.
матрица инцидентности
матрица размера n x m, где n - число вершин графа, m - число рёбер графа. Обычно в матрице инцидентности строки соответствуют вершинам графа, а столбцы - рёбрам графа.
списки инцидентности
Представляют собой граф в виде массива связанного списка. Индекс массива представляет вершину, и каждый элемент в его связанном списке представляет другие вершины, которые образуют ребро с вершиной.