Как работает процессор?
Инструмент проще, чем машина. Зачастую инструментом работают руками, а машину приводит в действие паровая сила или животное.
Компьютер тоже можно назвать машиной, только вместо паровой силы здесь электричество. Но программирование сделало компьютер таким же простым, как любой инструмент.
Процессор — это сердце/мозг любого компьютера. Его основное назначение — арифметические и логические операции, и прежде чем погрузиться в дебри процессора, нужно разобраться в его основных компонентах и принципах их работы.
реклама
Прежде, чем начать, хотелось бы обратиться к «бывалым» завсегдатаям нашего любимого сайта, поскольку я предвижу различную реакцию на появление материалов для новичков. Прежде всего, вспомните себя в начале своего «компьютерного пути». Вам также было необходимо с чего-то начинать. И теперь, когда вы достигли недосягаемых вершин и можете с уверенностью назвать себя Камрадом, вам не пристало свысока смотреть на неопытных пользователей. Вместо этого вы можете передать им свой бесценный опыт, чтобы он не оказался в забвении, и получать от этого наставническое удовлетворение. Кроме того, любому сообществу всегда требуется «молодая кровь», иначе оно деградирует и растворится в бесформенную массу. Поэтому скажем новичкам — добро пожаловать!
Итак, начнём! С каждым годом реальный мир на планете всё более и более компьютеризируется. Каждый человек всё чаще испытывает потребность в знаниях в этой области. Но если вы почувствовали, что вам все эти новейшие технологии цивилизации ещё и интересны, то у вас есть шанс получить увлечение на всю жизнь! Именно с этого чувства зарождается компьютерный энтузиаст – человек, для которого компьютеры и всё, что с ними связано стали неотъемлемым хобби на протяжении всей жизни. Не важно, сколько вам лет, какие у вас знания, образование и какой у вас доход. Компьютерный мир необъятен и он подарит вам общение, знания и море положительных впечатлений, которые не иссякнут никогда! Вы даже сможет стать фанатом определенного лагеря, как в футболе, и вести непримиримую борьбу с оппонентами.
Потоки
На центральном процессоре обрабатываются не сами процессы, а программные потоки. Каждый поток, это код загруженный программой. Программа может работать в одном потоке или создавать несколько. Если программа работает в несколько потоков, то она может выполняться на разных ядрах процессора. Посмотреть на потоки можно с помощью программы Process Explorer.
- два стека: для режима ядра и для пользовательского режима;
- локальную памятью потока (TLS, Thread-Local Storage);
- уникальный идентификатор потока (TID, Thread ID).
Приложение может создать дополнительный поток, например, когда у приложения есть графический интерфейс, который работает в одном потоке и ожидает от пользователя ввода каких-то данных, а второй поток в это время занимается обработкой других данных.
Изучение активности потока важно, если вам нужно разобраться, почему тот или иной процесс перестал реагировать, а в процессе выполняется большое число потоков. Потоков может быть много в следующих процессах:
- svchost.exe — главный процесс для служб Windows.
- dllhost.exe — отвечает за обработку приложений, использующих динамически подключаемые библиотеки. Также отвечает за COM и .NET. И ещё управляет процессами IIS.
- lsass.exe — отвечает за авторизацию локальных пользователей, попросту говоря без него вход в систему для локальных пользователей будет невозможен.
Память микропроцессора
Знакомство с подробностями, касающимися компьютерной памяти и ее иерархии помогут лучше понять содержание этого раздела.
Выше мы писали о шинах (адресной и данных), а также о каналах чтения (RD) и записи (WR). Эти шины и каналы соединены с памятью: оперативной (ОЗУ, RAM) и постоянным запоминающим устройством (ПЗУ, ROM). В нашем примере рассматривается микропроцессор, ширина каждой из шин которого составляет 8 бит. Это значит, что он способен выполнять адресацию 256 байт (два в восьмой степени). В один момент времени он может считывать из памяти или записывать в нее 8 бит данных. Предположим, что этот простой микропроцессор располагает 128 байтами ПЗУ (начиная с адреса 0) или 128 байтами оперативной памяти (начиная с адреса 128).
Модуль постоянной памяти содержит определенный предварительно установленный постоянный набор байт. Адресная шина запрашивает у ПЗУ определенный байт, который следует передать шине данных. Когда канал чтения (RD) меняет свое состояние, модуль ПЗУ предоставляет запрошенный байт шине данных. То есть в данном случае возможно только чтение данных.
Из оперативной памяти процессор может не только считывать информацию, он способен также записывать в нее данные. В зависимости от того, чтение или запись осуществляется, сигнал поступает либо через канал чтения (RD), либо через канал записи (WR). К сожалению, оперативная память энергозависима. При отключении питания она теряет все размещенные в ней данные. По этой причине компьютеру необходимо энергонезависимое постоянное запоминающее устройство.
Более того, теоретически компьютер может обойтись и вовсе без оперативной памяти. Многие микроконтроллеры позволяют размещать необходимые байты данных непосредственно в чип процессора. Но без ПЗУ обойтись невозможно. В персональных компьютерах ПЗУ называется базовой системой ввода и вывода (БСВВ, BIOS, Basic Input/Output System). Свою работу при запуске микропроцессор начинает с выполнения команд, найденных им в BIOS.
Команды BIOS выполняют тестирование аппаратного обеспечения компьютера, а затем они обращаются к жесткому диску и выбирают загрузочный сектор. Этот загрузочный сектор является отдельной небольшой программой, которую BIOS сначала считывает с диска, а затем размещает в оперативной памяти. После этого микропроцессор начинает выполнять команды расположенного в ОЗУ загрузочного сектора. Программа загрузочного сектора сообщает микропроцессору о том, какие данные (предназначенные для последующего выполнения процессором) следует дополнительно переместить с жесткого диска в оперативную память. Именно так происходит процесс загрузки процессором операционной системы.
В данный момент вы не можете посмотреть или раздать видеоурок ученикам
Чтобы получить доступ к этому и другим видеоурокам комплекта, вам нужно добавить его в личный кабинет, приобретя в каталоге.
Основы Операционной Системы
Когда мы проходили в универе программирование на ассемблере у многих студентов был ступор от таких умных слов как “режимы ядра и пользователя”, под которыми на самом деле скрывается хорошо всем известная ролевая система аутентификации, на всех сайтах есть как минимум “Админ” имеющий доступ ко всем страницам и “Пользователь” имеющий ограниченный доступ. Точно так же роль “Ядро” имеет доступ ко всем возможностям CPU, а роль “Пользователь” может вызывать не все команды процессора и не со всеми аргументами. Поверх этой ролевой модели по принципу клиент-серверной архитектуры построена операционная система, где сервер это ядро, которое и реализовывает функционал ОС, а клиент — это пользовательские программы. В мире Web клиент и сервер разделены физически — это два разных компьютера общающихся по сети. В ОС клиент и сервер живут на одной машине и на одном железе. У сервера есть некий API который позволяет клиентам изменять его состояние, к примеру Twitter API позволяет создавать посты, логиниться и загружать ленту твитов в мобильный клиент. У Windows есть Win API, только более громоздкий в виду более широкого круга задач, на сегодняшний день у винды примерно 330 000 API плюс API для UWP apps. Если концепции Твитера более менее всем понятны — пост, пользователь, фид — то концепции ОС могут потребовать некоторого углубления в её внутренности. Поэтому API Windows могут быть трудно понятными без понимания внутреннего устройства ОС.
На самом деле под ядром понимают три разные вещи. Ядро как весь код ОС. Ядро как подсистема которая отвечает за механизмы ОС, такие как планировщик потоков, переключение контекста, обработка прерываний, свап виртуальный памяти на физическую (Kernel) и ядро подсистемы для поддержки других ОС — CSRSS.exe (Windows), PSXSS.exe (POSIX), OS2SS.exe (OS/2) или WSL (Windows SubSystem for Linux). В данном контексте понимается первый смысл — весь код ОС.
Когда на экране появляется окно, то в серверной части ОС (режим ядра) появляется структура данных которая описывает это окно — его положение на экране, размеры, текст заголовка, оконная функция через которую ОС даёт приложению среагировать на события. Поскольку подсистем в ОС много, то и структур данных описывающих один объект может быть несколько, к примеру информация о пользовательском процессе есть в компонентах:
- Executive — здесь логика работы ОС. В этом слое проверяется что могут и не могут делать процессы. Здесь хранится инфа о родительском процессе, параметры старта процесса (Process Environment Block), привязанный аккаунт пользователя, имя exe файла процесса.
- Kernel — здесь реализованы механизмы ОС, такие как планировщик потоков. Здесь хранится сколько времени процесс проводит в режиме пользователя и ядра, к каким процессорам привязаны его потоки, базовый приоритет потоков процесса.
- Windowing subsystem — инфа о GDI объектах которые используются для рисования в окне. Это такие примитивы как кисти, pen и пр.
- DirectX — всё что имеет отношение к DirectX: шейдеры, поверхности, DX-объекты, счётчики производительности GPU, настройки памяти графической памяти.
- Подсистема Windows которая представлена процессом CSRSS.exe (Client Server Runtime SubSystem). Windows ранее поддерживал ОС POSIX (процесс PSXSS.exe) и OS/2 (OS2SS.exe). В те времена возникла идея сделать и Windows такой же подсистемой, но эта было медленно и поэтому скоро часть CSRSS.exe перенесли в win32k.sys, который сейчас разбит на несколько файлов — win32k.sys, win32kbase.sys и win32kfull.sys. Здесь хранится информация о Process Group Data, Shutdown level, Session Data и пр.
Что такое компонент? Это логически сгруппированный функционал. Компонентом можно назвать ООП-класс, dll, папку, набор функций с общим префиксом, пространство имён, слой в архитектуре.
Из каких основных компонентов состоит компьютер?
Процессор. Это мозг компьютера. Он является главным компонентом и производит все вычисления в компьютере, контролирует все операции и процессы. Также является одним из самых дорогих компонентов, и цена очень хорошего современного процессора может переваливать за 50 000 рублей.
Бывают процессоры фирмы Intel и AMD. Тут кому что нравится, а так, Интелы меньше нагреваются, потребляют меньше электроэнергии. При всём этом у AMD лучше идёт обработка графики, т.е. больше подошёл бы для игровых компьютеров и тех, где работа будет вестись с мощными редакторами изображений, 3D графики, видео. На мой взгляд эта разница между процессорами не столь существенна и заметна…
Основной характеристикой является частота процессора (измеряется в Герцах. Например 2.5GHz), а также – разъём для подключения к материнской плате (сокет. Например, LGA 1150).
Вот так выглядит процессор (сверху указана фирма и модель):
Материнская (системная) плата. Эта самая большая плата в компьютере, которая является связующим звеном между всеми остальными компонентами. К материнской плате подключаются все остальные устройства, включая периферийные. Производителей материнских плат множество, а на верхушке держатся ASUS и Gigabyte, как самые надёжные и одновременно дорогие, соответственно. Основными характеристиками являются: тип поддерживаемого процессора (сокет), тип поддерживаемой оперативной памяти (DDR2, DDR3, DDR4), форм фактор (определяет в какой корпус вы сможете поместить данную плату), а также – типы разъёмов для подключения остальных компонентов компьютера. Например, современные жесткие диски (HDD) и диски SSD подключаются через разъёмы SATA3, видеоадаптеры – через разъёмы PCI-E x16 3.0.
Вот так выглядит материнская плата:
Память. Тут разделим её на 2 основных типа, на которые важно будет обратить внимание при покупке:
Оперативная память. Это временная память, в которую подгружаются все запускаемые программы на компьютере, процессы, игровые «миры» (текстуры) и всё остальное. Данная память не предназначена для хранения ваших данных! Поэтому не стоит путать её с памятью, где хранятся все ваши файлы. При выключении и повторном включении компьютера оперативка (так более-менее продвинутые пользователи часто называют оперативную память) будет очищена и по мере запуска вами различных программа начнёт снова заполняться. Т.е. это энергозависимая память.
Чем больше объём оперативной памяти, тем лучше и тем быстрее будет работать компьютер (конечно, если все остальные компоненты соответствуют уровню). Оперативная память выглядит как небольшие продолговатые планки (модули) и объём одного модуля у памяти поколения DDR4 уже может достигать 128 Гб.!
Вот так выглядят модули оперативной памяти:
Жёсткий диск (HDD) и SSD. Вот это как раз-таки та память, на которой у вас постоянно хранятся все ваши файлы, куда устанавливаются программы, игры, скачиваются фильмы, музыка и всё прочее. Этот вид памяти не очищается после перезагрузки или выключения компьютера, как в случае с оперативной памятью, т.е. является энергонезависимой.
Бывают диски HDD и SSD. Последние начали массово использоваться не так-то и давно и постепенно вытесняют HDD за счёт своих неоспоримых преимуществ, главное из которых – скорость записи / считывания данных. У SSD она в 10-ки раз превышает скорость HDD. Помимо этого, SSD диски намного прочнее (поскольку в них отсутствуют движущиеся механизмы как в HDD), потребляют меньше энергии (HDD около 6 Вт, а SSD меньше 2Вт), бесшумны, намного легче по весу, меньше нагреваются.
Недостаток SSD – высокая стоимость. Например, диск SSD объёмом 120 Гб. может стоить около 6000 рублей, в то время как за эти же деньги можно купить диск HDD объёмом около 2-х терабайт 🙂 Поэтому SSD диск целесообразнее покупать не очень небольшого размера (например, 120 Гб) и использовать его только для хранения операционной системы и установленных программ, а все нужные файлы (документы для работы, фильмы, фотки и прочее) хранить уже на HDD большого размера.
Ну и второй недостаток – число циклов перезаписи значительно меньше чем у HDD. А это значит, что SSD диски меньше служат. Но прогресс не стоит на месте и со временем эта проблема будет, я думаю, тоже решена.
Основная характеристика у HDD и SSD – объём для хранения данных. Чем он больше, тем, соответственно, больше вы сможете хранить на компьютере всякого барахла и важных документов 🙂 На данный момент объёмы и тех, и других примерно уравниваются. Объёмы HDD для домашних компьютеров достигают уже 10 Тб. (терабайт). 10 Тб = 10 000 Гб. Это просто огромное пространство для хранения данных! Также не менее важной характеристикой для SDD является скорость записи / считывания. Чем она больше, тем лучше и хорошо если будет в районе 500 Мб/cек. Для HDD похожий параметр – скорость вращения шпинделя. Здесь вполне подойдут диски со скоростью 7200 оборотов в минуту.
Вот так выглядит жесткий диск (HDD):
А вот так выглядит диск SSD:
Видеокарта (видеоадаптер или «видюха», как называют её более-менее продвинутые пользователи компьютеров). Это устройство отвечает за формирование и вывод изображения на экран монитора или любого другого аналогичного подключенного устройства. Видеокарты бывают встроенными (интегрированными) и внешними (дискретными). Встроенная видеокарта на сегодняшний день имеется в подавляющем большинстве материнских плат и визуально мы видим лишь её выход – разъём для подключения монитора. Внешняя видеокарта подключается к плате отдельно в виде ещё одной платы со своей системой охлаждения (радиатор или вентилятор).
Какая разница между ними, спросите вы? Разница в том, что встроенная видеокарта не предназначена для запуска ресурсоёмких игр, работы в профессиональных редакторах изображения и видео. Ей просто не хватит мощности для обработки такой графики и всё будет сильно тормозить. Встроенная видюха на сегодняшний день может использоваться скорее как запасной временный вариант. Для всего остального нужна хоть какая-то простенькая внешняя видеокарта и какая именно уже зависит от предпочтений пользования компьютером: для интернет-сёрфинга, работы с документами или же для игр.
Основной характеристикой видеокарты является: разъём для подключения к плате, частота графического процессора (чем она больше, тем лучше), объём и тип видеопамяти, разрядность шины видеопамяти.
Вот так выглядит видеокарта:
Звуковой адаптер. В каждом компьютере имеется, как минимум, встроенная звуковая карта и отвечает, соответственно, за обработку и вывод звука. Очень часто именно встроенная и далеко не все покупают себе дискретную звуковую карту, которая подключается к материнской плате. Лично мне, например, встроенной вполне достаточно и на этот компонент компьютера я, в принципе, и внимания вообще не обращаю. Дискретная звуковая карта будет выдавать намного качественнее звук и незаменима если вы занимаетесь музыкой, работаете в каких-либо программах для обработки музыки. А если ничем подобным не увлекаетесь, то можно спокойно пользоваться встроенной и не задумываться об этом компоненте при покупке.
Вот так выглядит дискретная звуковая карта:
Сетевой адаптер. Служит для подключения компьютера к внутренней сети и к интернету. Также, как и звуковой адаптер, очень часто может быть встроенным, чего многим достаточно. Т.е. в таком случае в компьютере вы не увидите дополнительной платы сетевого адаптера. Основной характеристикой является пропускная способность, измеряемая в Мбит / сек. Если на материнской плате имеется встроенный сетевой адаптер, а он, как правило, имеется в подавляющем большинстве материнских плат, то и новый покупать для дома не за чем. Определить его наличие на плате можно по разъёму для подключения интернет-кабеля (витая пара). Если такой разъём имеется, значит в плате есть встроенный сетевой адаптер, соответственно.
Вот так выглядит дискретная сетевая карта:
Блок питания (БП). Очень важный компонент компьютера. Он подключается к электросети и служит для снабжения постоянным током всех других компонентов компьютера, преобразуя сетевое напряжения до требуемых значений. А устройства компьютера работают на напряжениях: +3.3В, +5В, +12В. Отрицательные напряжения практически не используются. Основной характеристикой блока питания является его мощность и измеряется, соответственно, в Ваттах. В компьютер ставится блок питания с такой мощностью, чтобы её хватило для питания всех компонентов компьютера. Больше всего будет потреблять видеоадаптер (потребляемая им мощность будет обязательно указана в документации), поэтому ориентироваться нужно на него и брать просто с небольшим запасом. Также блок питания должен иметь все необходимые разъёмы для подключения ко всем имеющимся компонентам компьютера: материнской плате, процессору, HDD и SSD дискам, видеоадаптеру, дисководу.
Вот так выглядит блок питания:
Дисковод (привод). Это уже дополнительное устройство, без которого, в принципе, можно и вообще обойтись. Служит, соответственно, для чтения CD/DVD/Blu-Ray дисков. Если планируется на компьютере читать или записывать какие-либо диски, то, конечно же, такое устройство необходимо. Из характеристик можно отметить только способность дисковода читать и записывать различные типы дисков, а также разъём для подключения к плате, который на сегодняшний день практически всегда – SATA.
Вот так выглядит дисковод:
Всё что перечислено выше – основное, без чего, как правило, не обходится ни один компьютер. В ноутбуках всё аналогично, только часто может отсутствовать дисковод, но это уже зависит от того, какую модель вы выбираете и нужен ли вам вообще этот дисковод. Также могут быть и другие компоненты, которые тоже будут подключаться к материнской плате, например: Wi-Fi адаптер, TV тюнер, устройства для видео захвата. Могут быть и другие дополнительные компоненты, которые являются совсем не обязательными, поэтому останавливаться на них пока что не будем. Сейчас практически в каждом ноутбуке имеется Wi-Fi адаптер для подключения к интернету по беспроводной сети, а также бывает и встроенный TV-тюнер. В стационарных домашних компьютерах, всё это приобретается, как правило, отдельно!