Главная страница
Навигация по странице:

  • Федеральное государственное бюджетное образовательное

  • Система менеджмента качества в области образования, воспитания, науки и инноваций сертифицирована DQS по международному стандарту ISO 9001:2015

  • «Операционные системы и среды»

  • 1.3 Микроядро

  • Многослойный подход

  • Реферат: «Анализ архитектур ядер операционных систем». ОСИС. Реферат по дисциплине Операционные системы и среды на тему Анализ архитектур ядер операционных систем


    Скачать 133.47 Kb.
    НазваниеРеферат по дисциплине Операционные системы и среды на тему Анализ архитектур ядер операционных систем
    АнкорРеферат: «Анализ архитектур ядер операционных систем
    Дата16.12.2022
    Размер133.47 Kb.
    Формат файлаdocx
    Имя файлаОСИС.docx
    ТипРеферат
    #847865

    Федеральное агентство по рыболовству

    Федеральное государственное бюджетное образовательное

    учреждение высшего образования

    «Астраханский государственный технический университет»

    Система менеджмента качества в области образования, воспитания, науки и инноваций сертифицирована DQS

    по международному стандарту ISO 9001:2015


    Факультет среднего профессионального образования

    Специальность: 09.02.07 Информационные системы и программирование

    РЕФЕРАТ

    по дисциплине «Операционные системы и среды»

    на тему: «Анализ архитектур ядер операционных систем»

    Работу выполнила:

    Студентка группы ДКМО-21

    Белова В.П.

    Руководитель работы:

    Преподаватель

    Провоторова Е.А.

    Астрахань 2022

    Оглавление


    Введение 3

    1 Глава. Основные функции ядра 4

    1.1 Монолитное ядро 4

    1.2 Модульное ядро 6

    1.3 Микроядро 7

    1.4 Экзоядро 9

    1.5 Наноядро 10

    2 Глава. Архитектура ОС 10

    2.1 Ядро и вспомогательные модули ОС 10

    2.2 Ядро в привилегированном режиме 11

    2.3 Многослойная структура ОС 13

    2.3 Микроядерная архитектура 15

    2.4 Преимущества и недостатки микроядерной архитектуры 16

    Заключение 17

    Список литературы 19


    Введение


    Операционная система - это комплекс взаимосвязанных системных программ, назначение которого, организовать взаимодействие пользователя с компьютером и выполнение всех других программ.

    Операционная система - играет роль, связующего звена между аппаратурой компьютера, с одной стороны, и выполняемыми программами, а также пользователем, с другой стороны.

    В различных моделях компьютеров используют операционные системы с разной архитектурой и возможностями. Для их работы необходимы разные ресурсы. Каждая ОС имеет свой командный язык, который позволяет пользователю выполнять различные действия, такие как обращаться к каталогу; запускать программы;

    Анализ и исполнение команд пользователя, включая загрузку готовых программ из файлов в оперативную память и их запуск, осуществляется командный процессор операционной системы. Для управления внешними устройствами компьютера используются специальные системные программы – драйвера. Драйвера стандартных устройств образуют в совокупности базовую систему ввода-вывода (BIOS), которая обычно заносится в постоянное ЗУ компьютера.

    Ядро́ — центральная часть операционной системы (ОС), которая обеспечивает приложениям координированный доступ к ресурсам компьютера, таким как процессорное время, память и внешнее аппаратное обеспечение. Также обычно ядро предоставляет сервисы файловой системы и сетевых протоколов.

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

    1 Глава. Основные функции ядра


    Ядро ОС содержит программы для реализации следующих функций:

    • обработка прерываний;

    • создание и уничтожение процессов;

    • переключение процессов в различные состояния;

    • диспетчирование;

    • приостановка и активизация процессов;

    • синхронизация процессов;

    • организация взаимодействия между процессами;

    • манипулирование блоками управления процессами;

    • поддержка операций ввода-вывода;

    • поддержка распределения и перераспределения памяти;

    • поддержка работы файловой системы;

    • поддержка механизма вызова-возврата при обращении к процедурам;

    • поддержка определенных функций по ведению учета работы машины.


    1.1 Монолитное ядро


    Монолитное ядро - один из первых способов организации ОС. Примером систем с монолитным ядром является большинство Unix-систем. Все части монолитного ядра работают в одном адресном пространстве. Старые монолитные ядра требовали перекомпиляции при любом изменении состава оборудования. Большинство современных ядер позволяют во время работы подгружать модули, выполняющие части функции ядра.

    Достоинства такого подхода - скорость работы и упрощённая разработка модулей. Недостатки: поскольку всё ядро работает в одном адресном пространстве, сбой в одном из компонентов может нарушить работоспособность всей системы. В этом случае компоненты ОС являются не самостоятельными модулями, а составными частями одной большой программы. Такая структура ОС называется монолитным ядром (monolithic kernel). Монолитное ядро ОС представляет собой набор процедур, каждая из которых может вызвать каждую. Все процедуры работают в привилегированном режиме.

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

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

    Монолитным ядром является еще и Linux. Оно оптимизировано для более высокой производительности с минимальными контекстными переключениями. Такая архитектура упрощает поддержку кода ядра для разработчиков, но требует перекомпиляции ядра при добавлении новых устройств. Следует отметить, что описанные здесь различия являются «классическими», на практике монолитные ядра могут поддерживать модульность (что зачастую и происходит), а микроядра могут требовать перекомпиляции.

    Примеры ОС, использующих ядро данного типа:

    · Традиционные ядра UNIX(сетевые операционные системы), такие как BSD и Linux;

    · MS DOS.

    1.2 Модульное ядро


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

    Достоинство такого подхода: устойчивость к сбоям оборудования, к ошибкам в компонентах системы. Недостаток - передача данных между процессами требует дополнительных расходов процессорного времени.

    Остальные компоненты системы взаимодействуют друг с другом путем передачи сообщений через микроядро.

    1.3 Микроядро

    Микроядро предоставляет только элементарные функции управления процессами и минимальный набор абстракций для работы с оборудованием. Большая часть работы осуществляется с помощью специальных пользовательских процессов, называемых сервисами.

    Достоинства и недостатки такие же, как у модульных ядер.

    Классические микроядра предоставляют лишь очень небольшой набор низкоуровневых примитивов, или системных вызовов, реализующих базовые сервисы ОС.

    Сюда относятся:

    • управление адресным пространством оперативной памяти.

    • управление адресным пространством виртуальной памяти.

    • управление процессами и тредами (нитями, потоками).

    • средства межпроцессной коммуникации.

    Все остальные сервисы ОС, в классических монолитных ядрах предоставляемые непосредственно ядром, в микроядерных архитектурах реализуются в адресном пространстве пользователя (Ring3) и называются сервисами. Примерами таких сервисов, выносимых в пространство пользователя в микроядерных архитектурах, являются сетевые сервисы, файловая система, драйверы. Такая конструкция позволяет улучшить общее быстродействие системы.

    Современная тенденция в разработке ОС состоит в перенесении значительной части системного кода на уровень пользователя и одновременной минимизации ядра. Речь идет о подходе к построению ядра, называемом микроядерной архитектурой (microkernel architecture) ОС, когда большинство ее составляющих являются самостоятельными программами. В этом случае взаимодействие между ними обеспечивает специальный модуль ядра, называемый микроядром. Микроядро работает в привилегированном режиме и обеспечивает взаимодействие между программами, планирование использования процессора, первичную обработку прерываний, операции ввода-вывода и базовое управление памятью. Остальные компоненты системы взаимодействуют друг с другом путем передачи сообщений через микроядро.

    Основное достоинство микроядерной архитектуры - высокая степень модульности ядра ОС. Это существенно упрощает добавление в него новых компонентов. В микроядерной операционной системе можно, не прерывая ее работы, загружать и выгружать новые драйверы, файловые системы и т. д. Существенно упрощается процесс отладки компонентов ядра, так как новая версия драйвера может загружаться без перезапуска всей ОС. Компоненты ядра ОС ничем принципиально не отличаются от пользовательских программ, поэтому для их отладки можно применять обычные средства. Микроядерная архитектура повышает надежность системы, поскольку ошибка на уровне непривилегированной программы менее опасна, чем отказ на уровне режима ядра. Чтобы добавить в ОС с микроядром драйвер того или иного устройства, не надо перекомпилировать всё ядро, а надо лишь отдельно откомпилировать этот драйвер и запустить его в пользовательском пространстве.

    Примеры ОС, использующих данный тип ядра:

    • Symbian OS;

    • Mach, используемый в GNU/Hurd и Mac OS X;

    • Windows CE;

    • QNX;

    • AIX;

    • Minix ;

    • ChorusOS ;

    • AmigaOS;

    • MorphOS


    1.4 Экзоядро


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

    Возможность доступа к устройствам на уровне контроллеров позволит эффективней решать некоторые задачи, которые плохо вписываются в рамки универсальной ОС, например, реализация СУБД будет иметь доступ к диску на уровне секторов диска, а не файлов и кластеров, что положительно скажется на быстродействии.

    1.5 Наноядро


    Наноядро - архитектура ядра ОС компьютеров, в рамках которой крайне упрощённое и минимизированное ядро выполняет лишь одну задачу, - обработку аппаратных прерываний, генерируемых устройствами компьютера. После обработки прерываний от аппаратуры наноядро, в свою очередь, посылает информацию о результатах обработки (например, полученные с клавиатуры символы) вышестоящему программному обеспечению при помощи того же механизма прерываний. Примером является KeyKOS - самая первая ОС на наноядре. Первая версия вышла ещё в 1983 году.

    2 Глава. Архитектура ОС

    2.1 Ядро и вспомогательные модули ОС


    Ядро включает модули, выполняющие основные функции ОС:

    • управление процессами;

    • управление памятью;

    • управление вводом-выводом и файловая система;

    интерфейс прикладного программирования API (Application Program Interface) для поддержки обращений к ядру из приложений.

    Для обеспечения высокой скорости работы ОС модули ядра (все или большая часть), являются резидентными, т.е. постоянно находятся в оперативной памяти.

    • Вспомогательные модули по выполняемым функциям обычно подразделяются на следующие группы:

    утилиты – программы, решающие отдельные задачи управления и сопровождения компьютерной системы (сжатие дисков, их проверка, дефрагментация; архивирование, сбор статистики и т.д.);

    системные обрабатывающие программы (компиляторы, редакторы связей, загрузчики, отладчики, текстовые или графические редакторы);

    библиотеки процедур различного назначения для разработки приложений (математические функции, функции ввода-вывода и т.д.);

    программы, предоставляющие дополнительные услуги (калькулятор, некоторые игры).

    По способу оформления эти модули представляют собой либо приложения, т.е. самостоятельные программы (утилиты, системные программы и программы дополнительных услуг), либо процедуры библиотек, вызываемые из приложений.

    Вспомогательные модули ОС загружаются в оперативную память только на время выполнения (транзитные модули).

    • Решение о том, является ли какая-либо программа частью ОС или нет, принимает производитель ОС. Так, самостоятельное приложение, имеющее спрос, может быть включено в состав ОС (например, Веб-браузер Internet Explorer), или, наоборот, модуль ОС может превратиться в отдельное приложение.

    2.2 Ядро в привилегированном режиме


    Операционная система для осуществления своих управляющих функций должна иметь по отношению к приложениям определенные привилегии. Поэтому аппаратура компьютера поддерживает как минимум два режима:

    пользовательский режим (user mode) – для работы приложений;

    привилегированный режим, он же – режим ядра (kernel mode), или режим супервизора (supervisor mode) – для работы ОС или ее частей.

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

    Привилегии обеспечиваются за счет запрета выполнения в пользовательском режиме некоторых критичных команд, связанных со следующими операциями:

    переключением процессора с задачи на задачу;

    управлением устройствами ввода-вывода;

    доступом к механизмам распределения и защиты памяти.

    В пользовательском режиме безусловно запрещено выполнение инструкции перехода в привилегированный режим. Другие инструкции запрещается выполнять при определенных условиях, полностью контролируемых ОС. Например, ввод-вывод данных или доступ к памяти разрешены приложению, если соответствующие ресурсы выделены только этому приложению, и запрещены, если данные (соответственно память) являются общими для ОС и других приложений.

    Если аппаратура (процессор) поддерживает хотя бы два уровня привилегий, то ОС может на этой основе создать программным способом сколь угодно развитую систему защиты и соответствующих прав доступа. Прямого соответствия между числом аппаратно реализуемых и программно реализуемых уровней привилегий нет. Так, на базе четырех уровней процессоров архитектуры х86 OS/2 строит трехуровневую, а Windows NT и Unix – двухуровневую систему привилегий.

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

    2.3 Многослойная структура ОС


    Многослойный подход – универсальный и эффективный способ декомпозиции сложных систем, базирующийся на следующих положениях.

    • Система представляется как иерархия слоев.

    • Функции нижележащего слоя являются примитивами для построения более сложных функций вышележащего слоя.

    • Взаимодействие слоев осуществляется через посредство функций межслойного интерфейса.

    Отдельный модуль может либо выполнить свою работу самостоятельно, либо обратиться к другому модулю своего слоя, либо обратиться к нижележащему слою через межслойный интерфейс.

    При таком подходе разработка системы осуществляется сверху вниз, от целей системы к их реализации. Сначала определяются функции слоев и межслойные интерфейсы, задающие общую структуру системы, а затем разрабатываются модули внутри слоев. Этот подход годится и для анализа сложных систем.

    • Многослойная структура ОС

    Вычислительную систему, работающую под управлением ОС на базе ядра, можно рассматривать как систему из трех иерархически упорядоченных слоев.

    При такой организации ОС приложения могут взаимодействовать с аппаратурой только через слой ядра.

    • Многослойная структура ядра

    Многослойный подход применим и к структуре ядра как сложного многофункционального комплекса. 

    • Средства аппаратной поддержки ОС – аппаратные средства, прямо участвующие в организации вычислительных процессов: средства поддержки привилегированного режима, система прерываний, переключение контекстов процессов, трансляция адресов, защита памяти и т.п.

    • Машино-зависимые модули – программные модули, в которых отображается специфика аппаратной платформы компьютера. В идеале этот слой полностью экранирует вышележащие слои от особенностей аппаратуры, т.е. позволяет делать модули вышележащих слоев машинно-независимыми (пригодными для всех типов платформ, поддерживаемых данной ОС). Примером может служить слой HAL (Hardware Abstraction Layer) в Windows NT/2000. На уровне HAL работа с устройством определенного типа (накопитель, видеоплата, мышь и т.п.) всегда описывается при помощи одного и того же заранее определенного набора функций. В случае, если устройство имеет иной набор функций (например, устаревший 3d-ускоритель может не поддерживать многих современных функций), драйвер обязан эмулировать стандартные функции с тем, чтобы ОС могла не заботиться о том, какое конкретно устройство установлено.

    • Базовые механизмы ядра. Модули этого слоя не принимают решений о распределении ресурсов, а только отрабатывают принятые на более высоком уровне решения. Выполняются наиболее примитивные операции ядра: программное переключение контекстов процессов, перемещение страниц между памятью и диском, диспетчеризация прерываний и т.п.

    • Менеджеры ресурсов. Модули этого уровня реализуют управление основными ресурсами системы. Группировка модулей в менеджеры обычно осуществляется по функциям основных подсистем ОС: выделяются менеджеры процессов, ввода-вывода и файловой системы (могут быть объединены), оперативной памяти.

    • Интерфейс системных вызовов. Взаимодействует непосредственно с приложениями и систем-ными утилитами, образуя прикладной программный интерфейс ОС (API).

    2.3 Микроядерная архитектура


    Привилегированном режиме работает только небольшая часть ОС – микроядро, защищенное от остальных частей ОС приложений.

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

    Однозначного решения о переносе в пользовательский режим тех или иных системных функций не существует. В общем случае как пользовательские приложения оформляются многие менеджеры ресурсов.

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

    Клиент (прикладная программа либо другой компонент ОС) посылает соответствующему серверу сообщение-запрос на выполнение некоторой функции. Непосредственная передача этого сообщения серверу невозможна, так как каждое приложение работает в своем адресном пространстве. В качестве посредника выступает микроядро, выполняющееся в привилегированном режиме и имеющее доступ к адресным пространствам всех приложений. Микроядро передает сообщение нужному серверу, сервер выполняет запрошенную операцию и результат, снова через посредство микроядра, возвращается клиенту с помощью другого сообщения.

    Такая схема обработки запроса соответствует модели клиент-сервер, где микроядро выполняет роль транспортных средств.

    Микроядерная архитектура используется, в частности, в некоторых вариантах ОС Unix и частично – в ОС Windows NT.

    2.4 Преимущества и недостатки микроядерной архитектуры


    ОС, основанные на концепции микроядра, в высокой степени удовлетворяют большинству требований, предъявляемых к современным ОС: обладают переносимостью, расширяемостью, надежностью, подходят для поддержки распределенных вычислений.

    Основным недостатком микроядерной архитектуры является снижение производительности по сравнению с классическим вариантом. Так, при классической организации выполнение системного вызова требует двух переключений режимов «привилегированный – пользовательский», а при микроядерной – четырех При обращении к часто используемым функциям работа приложений существенно замедляется. По этой причине микроядерный подход не получил широкого распространения.

    Основная проблема при использовании микроядерного подхода – что включать в микроядро, а что – выносить в пользовательское пространство. В результате ОС с такой архитектурой образуют некоторый спектр, на одном краю которого находятся системы с минимально возможным микроядром, состоящим только из средств передачи сообщений, а на другом – системы, в которых микроядро выполняет достаточно большой объем функций. Примером ОС второго типа является Windows NT, где с целью повышения производительности разработчики отклонились от микроядерной архитектуры и часто используемые функции графического интерфейса перенесли в ядро (начиная с версии 4.0) .

    Заключение


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

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

    Ядро, являясь структурным элементом ОС, в свою очередь, может быть логически разложено на следующие слои (начиная с самого нижнего):

    · машинно-зависимые компоненты ОС;

    · базовые механизмы ядра;

    · менеджеры ресурсов;

    · интерфейс системных вызовов.

    В многослойной системе каждый слой обслуживает вышележащий слой, выполняя для него некоторый набор функций, которые образуют межслойный интерфейс. На основе функций нижележащего слоя следующий вверх по иерархии слой строит свои функции -- более сложные и более мощные, которые, в свою очередь, оказываются примитивами для создания еще более мощных функций вышележащего слоя. Многослойная организация ОС существенно упрощает разработку и модернизацию системы.

    Переносимость ОС может быть достигнута при соблюдении следующих правил. Во-первых, большая часть кода должна быть написана на языке, трансляторы которого имеются на всех компьютерах, куда предполагается переносить систему. Во-вторых, объем машинно-зависимых частей кода, которые непосредственно взаимодействуют с аппаратными средствами, должен быть по возможности минимизирован. В-третьих, аппаратно-зависимый код должен быть надежно локализован в нескольких модулях.

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

    Микроядерные ОС удовлетворяют большинству требований, предъявляемых к современным ОС, обладая переносимостью, расширяемостью, надежностью и создавая хорошие предпосылки для поддержки распределенных приложений. За эти достоинства приходится платить снижением производительности, что является основным недостатком микроядерной архитектуры.

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


    Список литературы


    1. Г. Дейтл "Введение в операционные системы" - литературный источник информации-- 2-е изд. -- Москва, 2003. -- С. 553.

    2. Н. Олифер «Сетевые операционные системы»

    3. Р. Лав «Разработка ядра Linux» Linux Kernel Development. -- 2-е изд. -- М.: «Вильямс», 2006. -- С. 448.

    4. Википедия (свободная энциклопедия знаний) www.Wikipedia.com

    5. https://spravochnick.ru/

    6. https://ichip.ru/tekhnologii/chto-takoe-yadro-134562


    написать администратору сайта