Что входит в ядро компьютера
Процессор — самая главная микросхема в компьютере, смартфоне и в самых различных цифровых устройствах. Часто процессор сравнивают с мозгом — да, отчасти это так. Внутри CPU происходят все арифметические вычисления для получения конечного результата.
Первые процессоры не имели ядер и выполняли все операции строго последовательно. Чем выше частота, тем быстрее будет выполняться та или иная операция.
Роль количества ядер, их влияние на производительность
Первоначально ЦП имели только одно ядро. Однако на рубеже XX и XXI веков инженеры пришли к выводу, что стоит увеличить их количество. Это должно было позволить получить более высокую вычислительную мощность, а также позволить обрабатывать несколько задач одновременно.
Но для начала стоит разобраться с главным мифом. Принято считать, что чем больше ядер у процессора, тем больше мощности он будет предлагать. Но на практике все не так просто. Реальное влияние на производительность оказывают и другие факторы – например, тактовая частота, объем кэша, архитектура, количество потоков.
Дополнительные ядра означают, что процессор способен одновременно справляться с большим количеством задач. Однако здесь нельзя забывать об одном: несмотря на популяризацию четырех-, шести- или восьмиядерных процессоров, приложения используют один или два потока. Поэтому количество потоков ядра также важно учитывать.
Микроядро
Микроядро – предоставляет только элементарные функции управления процессами и минимальный набор абстракций для работы с оборудованием. Бо́льшая часть работы осуществляется с помощью специальных пользовательских процессов, называемых сервисами. Решающим критерием «микроядерности» является размещение всех или почти всех драйверов и модулей в сервисных процессах, иногда с явной невозможностью загрузки любых модулей расширения в собственно микроядро, а также разработки таких расширений.
Достоинства: Устойчивость к сбоям оборудования, ошибкам в компонентах системы. Основное достоинство микроядерной архитектуры — высокая степень модульности ядра операционной системы. Это существенно упрощает добавление в него новых компонентов. В микроядерной операционной системе можно, не прерывая её работы, загружать и выгружать новые драйверы, файловые системы и т. д. Существенно упрощается процесс отладки компонентов ядра, так как новая версия драйвера может загружаться без перезапуска всей операционной системы. Компоненты ядра операционной системы ничем принципиально не отличаются от пользовательских программ, поэтому для их отладки можно применять обычные средства. Микроядерная архитектура повышает надежность системы, поскольку ошибка на уровне непривилегированной программы менее опасна, чем отказ на уровне режима ядра.
Недостатки: Передача данных между процессами требует накладных расходов. Классические микроядра предоставляют лишь очень небольшой набор низкоуровневых примитивов, или системных вызовов, реализующих базовые сервисы операционной системы.
Сервисные процессы (в принятой в семействе UNIX терминологии — «демоны») активно используются в самых различных ОС для задач типа запуска программ по расписанию (UNIX и Windows NT), ведения журналов событий (UNIX и Windows NT), централизованной проверки паролей и хранения пароля текущего интерактивного пользователя в специально ограниченной области памяти (Windows NT). Тем не менее, не следует считать ОС микроядерными только из-за использований такой архитектуры. Примеры: Symbian OS; Windows CE; OpenVMS; Mach, используемый в GNU/Hurd и Mac OS X; QNX; AIX; Minix; ChorusOS; AmigaOS; MorphOS.
Для игрового ПК
Потребности геймеров специфичны, когда дело доходит до вычислительной мощности компьютера.
Первое, что нужно учитывать – это количество ядер. В дополнение к числу ядер, геймерам также важно учитывать тактовую частоту. Для современных игр потребуется частота 3,8 ГГц или выше.
Еще стоит обратить внимание на тепловыделение. Нынешние игры довольно требовательные, поэтому процессор быстро нагревается. У системного блока должна быть качественная система охлаждения, которая поможет адекватно удовлетворить потребности устройства, чтобы компоненты не перегревались.
Для инженерных задач
Как правило, компьютеры для инженерных задач обязаны обрабатывать много информации за короткий промежуток времени.
При покупке ЦП для такого компьютера важен многоядерный процессор. В идеале нужно искать такой чип, который предлагает гиперпоточность. Это обеспечит большую вычислительную мощность.
Историческая справка
Краткая история Unix
Хронология разработки ядра Linux очень обширна, однако точно прослеживаются истоки его создания, которые ведут к UNIX. В 1969 году Кен Томпсон из исследовательской группы Bell Laboratories совместно с Деннисом Ритчи на передовом микро-компьютере PDP-7 разработал ядро многозадачной, многопользовательской операционной системы UNICS ( позже переименованной в UNIX-TP). В момент создания ядра UNIX-TP Ритчи находился под влиянием своего прошлого проекта - ОС MULTICS, несмотря на наличие достаточно инновационных и передовых идей, таких как: строго сегментированная модель данных, сегментно-страничная виртуальная память, динамическое связывание, переконфигурация всей системы «на ходу», иерархическая файловая система, впервые реализованный подход с использованием стеков для каждого вычислительного процесса внутри системы ядра и др; проект был закрыт ввиду сложной архитектуры ОС, а также из-за недостатков, связанных с распределением памяти файлов, больших по размеру чем установленный системный лимит. Стоит также заметить, что вся операционная система, включая сложный компилятор языка PL/I, пользовательские команды и дополнительные библиотеки, состояла из примерно полутора тысяч исходных файлов, каждый из которых содержал примерно по 200 строк кода. В скомпилированном виде весь этот код занимал около 4,5 Мегабайт, что было огромным размером по тем временам. Компиляторы Multics в основном оптимизировали код по размеру, а не по эффективности использования центрального процессора, что было обосновано стремлением к экономии памяти в многопользовательской системе.
Несмотря на неудачу своего предшественника, UNIX вобрал в себя концепцию MULTICS и был детально проработан. Первые две версии ОС были написаны на ассемблере, однако третья и четвертая версии использовали язык, разработанный Ритчи - С [4] , архитектура третьей версии использовала встроенный компилятор языка, а четвертая представляла собой полностью переписанное на СИ системное ядро. С приходом пятой версии UNIX был полностью переписан на язык СИ. Изначально создателем он был задуман как язык необходимый в написании операционных систем. Это переписывание разрешено команде UNIX TM с целью перехода на более мощную аппаратную часть - PDP-11/45 и 11/70 компьютеры. С 1974 года UNIX стал распространяться среди университетов и академических учреждений. С 1975 года началось появление новых версий, разработанных за пределами Bell Labs, и рост популярности системы.
В 1980 году компанией AT&T был разработан пакет коммерческих лицензий на все дистрибутивы UNIX, и сведение всех версий в одну: UNIX System V. Университет Калифорнии, Беркли продолжал разрабатывать свою собственную версию Unix под названием BSD. Многие из важнейших разработок в UNIX изначально пришли из BSD, к примеру, включение TCP/IP в основную версию UNIX. Поскольку основная часть системы поставлялась в исходных текстах, написанных на языке С, опытным программистам не требовалось документации, чтобы разобраться в архитектуре UNIX. C ростом популярности микропроцессоров другие компании переносили эту операционную систему на другие платформы, но простота и ясность операционной системы искушали многих на ее расширение и последующую модификацию, в результате чего появилось много разновидностей базовой системы.
Не желая терять инициативу, AT&T в 1982 году объединила несколько существовавших версий UNIX и создала версию под названием SYSTEM |||. В отличие от редакций, предназначавшихся, в первую очередь, для внутреннего использования и не получивших дальнейшего развития, SYSTEM ||| была создана для распространения за пределами Bell Labs и AT&T и положила начало новой ветви UNIX , которая и сегодня жива и развивается.
Особенности архитектуры
Ядро Linux поддерживает многие унаследованные от UNIX особенности, такие как:
- многозадачность
- виртуальную память
- динамические библиотеки
- отложенную загрузку
- производительную систему управления памятью
- современные сетевые протоколы
На сегодняшний день Linux — монолитное ядро с поддержкой загружаемых модулей. Драйверы устройств и расширения ядра обычно запускаются в 0-м кольце защиты, с полным доступом к оборудованию. В отличие от обычных монолитных ядер, драйверы устройств легко собираются в виде модулей и загружаются или выгружаются во время работы системы, эта особенность также является унаследованной от первого предшественника - ОС Multics. То, что архитектура Linux не является микроядерной, вызвало обширнейшие споры между Линусом Торвальдсом и Эндрю Таненбаумом в конференции.
Комбинация разных подходов
Все подходы к построению операционных систем имеют свои достоинства и недостатки. В большинстве случаев современные операционные системы используют различные комбинации этих подходов. Так, например, сейчас ядро «Linux» представляет собой монолитную систему с отдельными элементами модульного ядра. При компиляции ядра можно разрешить динамическую загрузку и выгрузку очень многих компонентов ядра — так называемых модулей. В момент загрузки модуля его код загружается на уровне системы и связывается с остальной частью ядра. Внутри модуля могут использоваться любые экспортируемые ядром функции.
Существуют варианты ОС GNU, в которых вместо монолитного ядра применяется ядро Mach (такое же, как в Hurd), а поверх него крутятся в пользовательском пространстве те же самые процессы, которые при использовании Linux были бы частью ядра. Другим примером смешанного подхода может служить возможность запуска операционной системы с монолитным ядром под управлением микроядра. Микроядро обеспечивает управление виртуальной памятью и работу низкоуровневых драйверов. Все остальные функции, в том числе взаимодействие с прикладными программами, осуществляются монолитным ядром. Данный подход сформировался в результате попыток использовать преимущества микроядерной архитектуры, сохраняя по возможности хорошо отлаженный код монолитного ядра.
Смешанное ядро, в принципе, должно объединять преимущества монолитного ядра и микроядра: казалось бы, микроядро и монолитное ядро — крайности, а смешанное — золотая середина. В них возможно добавлять драйверы устройств двумя способами: и внутрь ядра, и в пользовательское пространство. Но на практике концепция смешанного ядра часто подчёркивает не только достоинства, но и недостатки обоих типов ядер. Примеры: Windows NT, DragonFlyBSD.
Наноядро
Наноядро — архитектура ядра операционной системы, в рамках которой крайне упрощённое и минималистичное ядро выполняет лишь одну задачу — обработку аппаратных прерываний, генерируемых устройствами компьютера. После обработки прерываний от аппаратуры наноядро, в свою очередь, посылает информацию о результатах обработки (например, полученные с клавиатуры символы) вышележащему программному обеспечению при помощи того же механизма прерываний. Примером является KeyKOS — самая первая ОС на наноядре. Первая версия вышла ещё в 1983-м году.
Для офиса
Для большинства офисных компьютеров подойдут двух- или четырехъядерные процессоры. Однако если вычислительные потребности более интенсивны, например, при программировании и графическом дизайне, для начала стоит выяснить, сколько ядер потребуется для используемого программного обеспечения.
Частота является еще одним фактором, который следует принимать во внимание. Хотя частота – это не единственное, что определяет скорость, она оказывает существенное влияние. Используемое программное обеспечение будет влиять на скорость. Например, при регулярном использовании Adobe CS 6, лучше всего подойдет процессор со скоростью не менее 2 ГГц.
Типы архитектур ядер операционных систем
Модульное ядро
Модульное ядро — современная, усовершенствованная модификация архитектуры монолитных ядер операционных систем. В отличие от «классических» монолитных ядер, модульные ядра, как правило, не требуют полной перекомпиляции ядра при изменении состава аппаратного обеспечения компьютера. Вместо этого модульные ядра предоставляют тот или иной механизм подгрузки модулей ядра, поддерживающих то или иное аппаратное обеспечение (например, драйверов). При этом подгрузка модулей может быть как динамической (выполняемой «на лету», без перезагрузки ОС, в работающей системе), так и статической (выполняемой при перезагрузке ОС после переконфигурирования системы на загрузку тех или иных модулей).
Все модули ядра работают в адресном пространстве ядра и могут пользоваться всеми функциями, предоставляемыми ядром. Поэтому модульные ядра продолжают оставаться монолитными. Модульность ядра осуществляется на уровне бинарного образа, а не на архитектурном уровне ядра, так как динамически подгружаемые модули загружаются в адресное пространство ядра и в дальнейшем работают как интегральная часть ядра. Модульные монолитные ядра не следует путать с архитектурным уровнем модульности, присущий микроядрам и гибридным ядрам. Практически, динамичная загрузка модулей, это просто более гибкий способ изменения образа ядра во время выполнения — в отличие от перезагрузки с другим ядром. Модули позволяют легко расширить возможности ядра по мере необходимости.
Модульные ядра удобнее для разработки, чем традиционные монолитные ядра, не поддерживающие динамическую загрузку модулей, так как от разработчика не требуется многократная полная перекомпиляция ядра при работе над какой-либо его подсистемой или драйвером. Выявление, локализация, отладка и устранение ошибок при тестировании также облегчаются. Примером может служить VFS — «виртуальная файловая система», совместно используемая многими модулями файловых систем в ядре Linux.
Файловая подсистема
Файловая подсистема обеспечивает унифицированный интерфейс доступа к данным, расположенным на дисковых накопителях, а также к периферийным устройствам. Одни и те же функции open(), read(), write() могут использоваться как при чтении или записи данных на диск, так и при выводе текста на принтер или в терминал. Файловая подсистема контролирует права доступа к файлу, выполняет операции размещения и удаления файла. Поскольку большинство прикладных функций выполняется через интерфейс файловой системы, права доступа к файлам определяют привилегии пользователя в системе. Файловая подсистема обеспечивает маршрутизацию запросов периферийным устройствам, соответствующим модулям подсистемы ввода/вывода.
Содержание
Примечания
Монолитное ядро
Монолитное ядро предоставляет богатый набор абстракций оборудования. Все части монолитного ядра работают в одном адресном пространстве. Это такая схема операционной системы, при которой все компоненты её ядра являются составными частями одной программы, используют общие структуры данных и взаимодействуют друг с другом путём непосредственного вызова процедур. Монолитное ядро — старейший способ организации операционных систем. Примером систем с монолитным ядром является большинство UNIX-систем.
Достоинства: Скорость работы, упрощённая разработка модулей. Недостатки: Поскольку всё ядро работает в одном адресном пространстве, сбой в одном из компонентов может нарушить работоспособность всей системы. Примеры: Традиционные ядра UNIX (такие как BSD), Linux; ядро MS-DOS, ядро KolibriOS.
Монолитные ядра имеют долгую историю развития и усовершенствования и, на данный момент, являются наиболее архитектурно зрелыми и пригодными к эксплуатации. Вместе с тем, монолитность ядер усложняет их отладку, понимание кода ядра, добавление новых функций и возможностей, удаление «мёртвого», ненужного, унаследованного от предыдущих версий кода. «Разбухание» кода монолитных ядер также повышает требования к объёму оперативной памяти, требуемому для функционирования ядра ОС. Это делает монолитные ядерные архитектуры малопригодными к эксплуатации в системах, сильно ограниченных по объёму ОЗУ, например, встраиваемых системах, производственных микроконтроллерах и т. д.
Понятие ядра операционной системы Linux.
Ядро является сердцем любой операционной системы, обеспечивая базовую функциональность операционной системы:
- создает процессы и управляет ими
- распределяет и обеспечивает доступ к файлам, а также к периферийным устройствам
Взаимодействие прикладных задач с ядром происходит посредством стандартного интерфейса системных вызовов. Интерфейс системных вызовов представляет собой набор услуг ядра и определяет формат запросов на услуги. Процесс запрашивает услугу посредством системного вызова определенной процедуры ядра, внешне похожего на вызов обычной библиотечной функции . Ядро от имени процесса выполняет запрос и возвращает процессу необходимые данные.
Исходный код ядра коммерческих дистрибутивов UNIX является собственностью их разработчиков и не распространяется за пределы компании. Полностью противоположная ситуация с Linux. Процедуры для компиляции и исправления ядер и драйверов весьма различны. Для Linux и других операционных систем с открытым исходным кодом патч может быть выпущен в виде исходного кода, и конечный пользователь может установить, проверить и даже модифицировать его. Эти патчи обычно проверены не так тщательно как патчи от поставщиков коммерческих ОС UNIX. Поскольку нет полного списка приложений и сред, которые должны быть оттестированы для корректной работы на Linux, Linux-разработчики зависят от конечных пользователей и других разработчиков, которые будут отлавливать ошибки.
Поставщики коммерческих UNIX-дистрибутивов выпускают ядра только в виде исполняемого кода. Некоторые релизы являются монолитными, тогда как другие позволяют обновить только какой-нибудь конкретный модуль ядра. Но в любом случае этот релиз предоставляется только в форме исполняемого кода. Если необходимо обновление, администратор должен ждать, пока производитель выпустит патч в бинарном коде, однако его может утешить то, что производитель выполнит тщательную проверку своего патча на обратную совместимость.
Все коммерческие версии UNIX в некоторой степени эволюционировали до модульного ядра. Драйверы и отдельные особенности ОС доступны как отдельные компоненты и могут быть по необходимости загружены или выгружены из ядра. Но открытая модульная архитектура Linux гораздо гибче. Однако гибкость и адаптируемость Linux означают и постоянное изменение. Исходный код Linux постоянно меняется, и, по прихоти разработчика, может поменяться API. Когда модуль или драйвер написан для коммерческой версии UNIX, он проработает гораздо дольше, чем тот же драйвер для Linux.
Краткая история Linux
В 1991 году в Хельсинки, Финляндии, Линус Торвальдс начал работу над проектом, который был, по его словам, «просто для удовольствия». Этот проект в конечном счете стал ядром Linux. Он никогда не был предназначен для чего-то особенного, просто инструмент, который позволил бы студенту получить доступ к UNIX-серверам в соседнем университете. Он написал его специально для железа, на котором он работал на тот момент, и оно не зависело от операционной системы. Linux разработана "с нуля" для процессора Intel i386, сегодня она перенесена на огромный ряд других аппаратных платформ, включая серверы Alpha фирмы DEC.
Что такое ядро процессора?
Ядро — физический блок, который находится внутри процессора и занимается линейным вычислением арифметических операций. Чем больше ядер, тем быстрее процессор обрабатывает информацию — все ядра могут работать как одновременно для основной, мощной задачи, так и последовательно, выполняя поток задач.
Если в CPU 1 ядро, то оно будет постоянно переключаться между задачами — от этого снижается производительность ПК в целом.
Кстати, до того того, как изобрели многоядерные процессоры для профессиональных пользователей, производились компьютеры с несколькими физическими процессорами.
Читайте далее:
Литература
Робачевский, Андрей (2002). Autotools : Операционная система Unix / by Андрей Робачевский. No Starch Press. p. 528. ISBN 5-8206-0030-4.
Вы когда-нибудь задумывались о том, как построены современные процессоры, что такое ядра и на что они влияют? Почему процессор может выполнять сразу несколько операций, что такое многопоточность и как это все работает? Как ЦП позволяет обрабатывать компьютеру одновременно большое количество данных. Итак, давайте разбираться в архитектуре данного устройства.
Для работы с графикой
При работе с графикой требования к процессору отличаются. Для обработки 2D графики – подойдут бюджетные варианты, 2 или 4 ядра с тактовой частотой 2,4 ГГц вполне справятся с задачей.
Для работы с 3D графикой лучше всего выбирать 4 или 6-ядерные чипы, с тактовой частотой 3 ГГц и выше, а также с поддержкой многопоточности.
Для чего нужно такое «объединение»?
- уменьшить энергозатраты аппаратной части компьютера;
- создать более компактное «железо»;
- снизить стоимость компьютера.
Для стриминга
Выбор ЦП для стриминга зависит от сборки самого ПК.
Для бюджетных компьютеров подойдут любые четырехъядерные процессоры, которые смогут раскрыть видеокарту.
Для профессионального стриминга понадобится ЦП с 6, 8, 16 ядрами и тактовой частотой 4 ГГц и выше. Тут выбор будет завесить от купленной видеокарты и нужного разрешения для стрима.
Не нужно путать GPU в компьютере с видеокартой, потому что GPU — это небольшой микрочип для обрабатывания графики, а видеокарта — это уже полноценное отдельное устройство. GPU является частью видеокарты. Когда GPU в компьютере размещается как отдельный микрочип, тогда его именуют графическим процессором. А если GPU интегрирован в процессор или материнскую плату, то в этом случае его часто называют встроенным или интегрированным графическим ядром.
Если подробнее изучать строение персональных компьютеров, то можно заметить , что разделение между интегрированным графическим ядром в процессор и отдельными видеокартами составляет примерно 50/50. Это объясняется тем, что «железо» с интегрированными графическими ядрами дешевле, чем «железо» с видеокартами. На практике люди, которые самостоятельно приобретают себе персональный компьютер , предпочитают покупать их с отдельными видеокартами. А компьютеры с графическим ядром, встроенным в процессор, в основном предпочитают покупать корпоративные клиенты , чтобы устанавлива ть их в офисах. Этим и объясняется такое разделение в устройствах.
Рекомендации по выбору процессора
При выборе ЦП некоторые характеристики будут важнее других – это зависит от предпочтений пользователя.
Недостатки встроенного ГП в компьютере
- Более низкая производительность. Что это будет означать для пользователя компьютера? В строенных версий GPU очень много, как и производящих их фирм. Но большинству пользователей компьютеров и не нужно будет разбираться со всем многообразием, потому что для повседневных дел возможностей ГП в компьютере будет более чем достаточно: полазить в и нтернете, посидеть в соцсетях, посмотреть фильм в отличном качестве, поиграть в современную игрушку на низких настройках и др. Проблемы с производительностью начинаются, когда нужно делать более производительную работу: монтаж видеороликов, 3D-моделиров а ние и другое , и все это на 2-х мониторах.
- Отсутствие собственной памяти. Получается, что встроенный ГП в компьютере не имеет собственно й памяти, а это означает, что вся нагрузка, которая ложится на него , будет прямо влиять на оперативную память. Поэтому об этом заранее нужно беспокоит ь ся, чтобы оперативки хватало и на работу , и на графические задачи.
- Дополнительно е тепловыделение. На процессоре и так есть собственные ядра, которые греются , и их нужно охлаждать, а тут еще встроенный графический чип, который тоже неплохо греется.
- Нет возможности улучшить обработку графики. Встроенный ГП в компьютере можно поменять только вместе с процессором, а это так себе затея.
Общее понятие архитектуры процессора ПК
Под понятием архитектуры процессора подразумеваются важные с точки зрения построения и функциональности особенности чипа, которые связаны как с его программной моделью, так и с физической конструкцией.
Архитектура набора команд (ISA) – это набор инструкций процессора и других его функций (например, система и нумерация регистров или режимы адресации памяти), имеющих программную часть ядра, которые не зависят от внутренней реализации.
В свою очередь, физическое построение системы называется микроархитектурой (uarch). Это детальная реализация программной модели, которая связана с фактическим выполнением операций. Микроархитектура представляет собой конфигурацию, определяющую отдельные элементы, например, логические блоки, а также связи между ними.
Стоит отметить, что ЦП, выполняющие одинаковую программную модель, могут значительно отличаться друг от друга микроархитектурой – например, устройства от фирм AMD и Intel. Современные чипы имеют идентичную программную архитектуру x86, но абсолютно разную микроархитектуру.
Подсистема ввода/вывода
Подсистема ввода/вывода выполняет запросы файловой подсистемы и подсистемы управления процессами для доступа к периферийным устройствам ( дискам, терминалам, а ранее и к магнитным лентам и др. ). Она обеспечивает необходимую буферизацию данных и взаимодействует с драйверами устройств - специальными модулями ядра, непосредственно обслуживающими внешние устройства.
Что такое потоки и на что влияет их количество
Потоки – это виртуальный компонент или код, который разделяет физическое ядро процессора на несколько ядер. Одно ядро имеет до 2 потоков.
Например, если процессор двухъядерный, то он будет иметь 4 потока, а если восьмиядерный – 16 потоков.
Поток создается активным процессом. Каждый раз, когда открывается приложение, оно само создает поток, который будет обрабатывать задачи этого конкретного приложения. Поэтому, чем больше приложений будет открыто, тем больше потоков будет создано.
Потоки создаются операционной системой для выполнения задачи конкретного приложения. Они управляются планировщиком, который является стандартной частью каждой ОС.
Существует один поток (код того ядра, выполняющий вычисления, также известный как основной поток) на ядре, который, когда получает информацию от пользователя, создает другой поток и выделяет ему задачу. Аналогично, если он получает другую инструкцию, он формирует второй поток и выделяет ему задачу, создавая таким образом многопоточность.
Единственный факт, который ограничивает создание потоков, – количество основных потоков, предоставляемых физическим процессором. А их количество зависит от ядер.
Потоки стали жизненно важной частью вычислительной мощности, поскольку они позволяют выполнять несколько задач одновременно. Это повышает производительность компьютера, а также позволяет сделать его способным к многозадачности. Благодаря этой технологии становится возможно просматривать веб-страницы, слушать музыку и скачивать файлы в фоновом режиме одновременно.
Графическое ядро в процессоре
Процессор — это небольшой микрочип, который устанавливается на материнскую плату ; это не «весь компьютер», как считают некоторые. Мы уже знаем, что такое GPU в компьютере и как это может быть организовано.
С видеокартой как бы ясно — это отдельное устройство, которое можно купить в магазине и установить в свой ПК. Хорошая видеокарта стоит недешево. Она занимает отдельное место в материнской плате и греется при своей работе.
Графическое ядро в процессоре — это та же видеокарта, только более простая и минимизированная. Оно не занимает отдельного места в материнской плате, так как находится внутри самого процессора. Как правило, такие ядра могут быть менее мощными, чем стационарные видеокарты. Но со своей основной целью — выводить изображение на экран компьютера — они справляются на «отлично». Поэтому такие процессоры рекомендуется применять в офисных компьютерах, где нет больших нагрузок на GPU.
Подсистема управления запросами
Запущенная на выполнение программа порождает в системе один или более процессов ( задач ). Подсистема управления процессами контролирует:
- Создание и удаление процессов
- Распределение системных ресурсов ( памяти, вычислительных ресурсов ) между процессами
- Синхронизацию процессов
- Межпроцессорное взаимодействие
Известно, что в общем случае число активных процессоров превышает число процессоров компьютера, но в каждый конкретный момент времени на каждом процессоре может выполняться только один процесс. Операционная система управляет доступом процессоров к вычислительным ресурсам, создавая ощущение одновременного выполнения нескольких задач. Специальная задача ядра, называемая распорядителем или планировщиком процессов, разрешает конфликты между процессами в конкуренции за системные ресурсы ( процессор, память, периферийные устройства ). Планировщик запускает процесс на выполнение, следя за тем, чтобы процесс монопольно не захватил разделяемые системные ресурсы. Процесс освобождает процессор, ожидая длительной операции ввода/вывода, или по прошествии периода времени. В этом случае планировщик выбирает следующий процесс с наивысшим приоритетом и запускает его на выполнение. Модуль управления памятью обеспечивает размещение оперативной памяти для прикладных задач. Оперативная память является дорогостоящим ресурсом, и, как правило, она редко "простаивает". В случае, если для всех процессов недостаточно памяти, ядро перемещает части процесса или несколько процессов во вторичную память ( как правило, для этого выделена некоторая область жесткого диска ), освобождая ресурсы для действующих процессов. Все современные системы реализуют виртуальную память: процесс выполняется в собственном логическом адресном пространстве, которое может значительно превышать доступную физическую память. Управление виртуальной памятью процесса также входит в перечень задач модуля управления памятью. Модуль межпроцессного взаимодействия.отвечает за уведомление процессов о событиях с помощью сигналов и обеспечивает возможность передачи данных между различными процессами.
Переход от Unix к Linux
Linux был разработан в попытке создать бесплатную альтернативу коммерческим UNIX-средам. Его история начинается в 1991 или даже в 1983 гг., когда был создан проект GNU, чьей исходной целью было предоставить бесплатную альтернативу UNIX. Linux работает на гораздо большем количестве платформ, например на Intel®/AMD x86. Большинство ОС UNIX способны работать только на одной платформе.У Linux и UNIX общие исторические корни, но есть и серьезные отличия. Много инструментов, утилит, и бесплатных приложений, являющихся стандартными для Linux, первоначально задумывались как бесплатная альтернатива программам для UNIX. Linux часто предоставляет поддержку множества опций и приложений, заимствуя лучшую или наиболее популярную функциональность из UNIX. Администратору или разработчику, который привык работать с Linux, система UNIX может показаться не очень удобной для использования. С другой стороны, фундамент UNIX-подобной операционной системы (инструменты, файловая система, интерфейсы API) достаточно стандартизирован.
Устройство компонентов ядра ОС Linux
Ядро состоит из:
- Файловая система
- Подсистема управления процессами и памятью
- Подсистема ввода / вывода
Выполнение в режиме ядра
Существуют всего три события, при которых выполнение процесса переходит в режим ядра:
- аппаратные прерывания
- особые ситуации
- системные вызовы
Во всех случаях ядро Linux получает управление и вызывает соответствующую системную процедуру для обработки события. Непосредственно перед вызовом ядро сохраняет состояние системы, а именно состояние прерванного процесса в системном стеке. После завершения обработки, состояние процесса восстанавливается и процесс возвращается в исходный режим выполнения. Чаще всего это режим задачи, например, когда прерывание возникло, когда процесс уже находился в режиме ядра, после обработки события он останется в том же состоянии. Стоит разграничить особые ситуации и прерывания. Аппаратные прерывания генерируются периферией при наступлении исключительных событий ( например, завершение печати или поступление данных на последовательный вход ввода ) и имеют асинхронный характер, поскольку невозможно в тот или иной момент сказать, когда система нам пробросит исключение. Часто, эти прерывания не связаны с текущим процессом, а вызваны внешними событиями. Именно поэтому, обработка прерываний происходит в системном контексте, при этом недопустим доступ к адресному пространству процесса. По этой причине обработка ситуаций не должна блокироваться, поскольку это вызовет блокирование выполнения независимого процесса Системные вызовы позволяют процессам воспользоваться базовыми услугами ядра. Интерфейс системных вызовов определяет ограниченный набор точек входа в ядро системы, обращение к которым изменяет режим выполнения процесса и позволяет выполнять привилегированные функции ядра. Стандартная библиотека C, позволяющая использовать системные функции как обычные процедуры, на самом деле содержит заглушки, обеспечивающие фактическую реализацию вызова соответствующей точки входа ядра. Эта реализация практически не зависит от аппаратной части системы. Например, для систем на базе процессоров Intel используются шлюзы. Имеются два типа шлюзов: шлюзы ловушек и шлюзы вызовов. Для осуществления вызова через шлюз ловушки процесс выполняет команду прерывания, а при работе через шлюз вызова - команду межсегментного вызова. Выполнение системного вызова происходит в режиме ядра, но в контексте процесса, сделавшего системный вызов. Таким образом, открыт доступ к адресному пространству процесса и используется стек ядра процесса.
Основные функции ядра
Основные функция ядра:Ядро операционной системы, как правило, содержит программы для реализации следующих функций:
- обработка прерываний;
- создание и уничтожение процессов;
- переключение процессов из состояния в состояние;
- диспетчирование ;
- приостановка и активизация процессов ;
- синхронизация процессов ;
- организация взаимодействия между процессами;
- манипулирование блоками управления процессами;
- поддержка операций ввода-вывода;
- поддержка распределения и перераспределения памяти;
- поддержка работы файловой системы ;
- поддержка механизма вызова-возврата при обращении к проце¬дурам;
- поддержка определенных функций по ведению учета работы
- машины.
Экзоядро
Экзоядро — ядро операционной системы, предоставляющее лишь функции для взаимодействия между процессами и безопасного выделения и освобождения ресурсов. Предполагается, что API для прикладных программ будут предоставляться внешними по отношению к ядру библиотеками (откуда и название архитектуры). Возможность доступа к устройствам на уровне контроллеров позволит эффективней решать некоторые задачи, которые плохо вписываются в рамки универсальной ОС, например, реализация СУБД будет иметь доступ к диску на уровне секторов диска, а не файлов и кластеров, что положительно скажется на быстродействии.
Что такое поток?
Можно сказать, что поток является виртуальным ядром самого ядра. Поток — параметр исключительно программный, он работает с ядром и способен дать ядру работать параллельно с разными задачами. Сколько потоков — столько и задач. Такая программная хитрость позволяет более рационально использовать вычислительную мощность ядра.
Чем больше программ вы запускаете на компьютере, тем сильнее нагружаете CPU. А он уж сам определяет как задействовать ядра и потоки для максимальной производительности. Для игр и серьезных задач с графикой вычислительная мощность для видеопотока отдается видеокарте для того, чтобы разгрузить графическое ядро CPU. Кстати, процессор видеоадаптера работает примерно также, как и основной.
Но два разобранных в статье параметра не являются самыми ключевыми. Да, чем больше потоков и ядер, тем лучше. Но есть еще и другие параметры, как архитектура процессора, техпроцесс, частота и объем кэш памяти.
Поэтому двухядерный CPU может быть намного лучше, чем четырехъядерный — последний будет проигрывать по другим параметрам.
Ядро операционной системы (Kernel) - часть операционной системы: постоянно находящаяся в оперативной памяти, управляющая всей операционной системой, содержащая: драйверы устройств, подпрограммы управления памятью, планировщик заданий, реализующая системные вызовы и т.п.
Все операции, связанные с процессами, выполняются под управлением той части операционной системы, которая называется ядром. Ядро представляет собой лишь небольшую часть кода операционной системы в целом, однако оно относится к числу наиболее интенсивно используемых компонент системы. По этой причине ядро обычно резидентно размещается в основной памяти, в то время как другие части операционной системы перемещаются во внешнюю память и обратно по мере необходимости. Одной из самых важных функций, реализованных в ядре, является обработка прерываний. В больших многоабонентских системах в процессор поступает постоянный поток прерываний. Быстрая реакция на эти прерывания играет весьма важную роль с точки зрения полноты использования ресурсов системы и обеспечения приемлемых значений времени ответа для пользователей, работающих в диалоговом режиме.
Когда ядро обрабатывает текущее прерывание, оно запрещает другие прерывания и разрешает их снова только после завершения обработки текущего прерывания. При постоянном потоке прерываний может сложиться такая ситуация, что ядро будет блокировать прерывания в течение значительной части времени, т. е. не будет иметь возможности эффективно реагировать на прерывания. Поэтому ядро обычно разрабатывается таким образом, чтобы оно осуществляло лишь минимально возможную предварительную обработку каждого прерывания, а затем передавало это прерывание на дальнейшую обработку соответствующему системному процессу, после начала работы которого ядро могло бы разрешить последующие прерывания.
Содержание
Гибридное ядро
Гибридные ядра — это модифицированные микроядра, позволяющие для ускорения работы запускать «несущественные» части в пространстве ядра. Имеют «гибридные» достоинства и недостатки.
Заключение
Сегодня вы узнали, что такое «GPU в компьютере», а также кто такой «графический процессор» , и много-много другого. А главное — вы сможете понимать, на что обращать внимание при выборе персонального компьютера. Если ПК вам нужен для решения небольших повседневных задач, то можете смело ориентироваться только по цене, при этом смело можно брать компьютер со встроенным ГП. Если же ПК вам нужен для более производительной работы, то нужно обратить внимание на наличие отдельной видеокарты и на ее характеристики. А если смотреть на встроенные графические ядра, то лучше изучить их линейки от разных производителей, чтобы понимать, ч его ожидать от будущего персонального компьютера.
Мы будем очень благодарны
если под понравившемся материалом Вы нажмёте одну из кнопок социальных сетей и поделитесь с друзьями.
Читайте также: