Классификация компьютеров
Первый компьютер был создан в 1946 году в США. Данная электронная вычислительная машина (ЭВМ) состояла из 18 тыс. вакуумных ламп, весила 30 тонн, занимала площадь около 200 м 2 и потребляла огромное количество энергии. В 1964 г. фирма IBM объявила о создании семейства компьютеров System 360, после чего продолжается постоянное развитие компьютерной техники и элементной базы.
Компьютерная техника может классифицироваться по назначению, мощности, размерам, элементной базе и т.д. Такое разделение компьютеров является условным, что объясняется стремительным развитием компьютерной науки и техники.
В общем виде компьютеры можно разделить:
- по производительности и быстродействию;
- по назначению;
- по уровню специализации;
- по типу процессора;
- по особенностям архитектуры;
- по размерам.
В зависимости от набора решаемых задач, на основании которых формируются требования к характеристикам, компьютеры делят на:
- персональные компьютеры;
- рабочие станции;
- серверы;
- мэйнфреймы;
- суперкомпьютеры (кластерные архитектуры).
Системный блок
Основным узлом персонального компьютера является системный блок. Он представляет собой корпус, чаще всего металлический вертикальный коробок, на передней панели которого расположены кнопки включения и дисководы. На заднюю стенку выведены все необходимые разъемы и кабели. Системный блок состоит из блока питания, материнской платы (она же системная плата или «материнка»), жесткого диска (HDD), видеокарты, процессора (CPU), оперативной памяти (ОЗУ), дисководов (CD/DVD), звуковой платы и сетевой платы. Зачастую сетевая и звуковая платы выполняются интегрированными в материнскую плату, то есть радиоэлементы платы распаяны прямо на материнской плате.
Блок питания выполнен в виде отдельного коробка, который расположен вверху сзади системного блока и имеет несколько кабелей питания всех элементов системного блока.
Применение
Возвращаясь к главной теме статьи «Для чего можно использовать компьютер», важно понять, что до сих пор полный спектр выполняемых им задач трудно исследовать. И вряд ли все текущие процессы, которые компьютер исполняет, являются пределом его возможностей.
Тем не менее, если говорить об общеизвестных методах использования, то первое, что приходит на ум: ПК востребован в работе и для развлечений. Последнее сейчас особенно популярно, а вместе с образовательной составляющей помогает многим студентам автоматизировать свое обучение и получать больше информации.
Более подробно о разделении на клиент-сервер
Разделение на клиент и сервер реализовано при помощи встроенной функциональности CPU, разделения памяти и программных проверок.
Производители оборудования сотрудничают с разработчиками ОС, поэтому в процессоре есть механизмы созданные с учётом потребностей создателей операционных систем. Во всех современных процессорах реализован механизм ролей пользователя, где под пользователем понимается исполняемый в данный момент код. В веб приложениях роль залогиненого пользователя хранится в какой-то переменной и помимо понятного названия Admin или User имеет Id этой роли который чаще и используется при авторизации, потому как сравнивать числа быстрее и проще чем строки. В процессоре роль текущего пользователя хранится в поле которое называется “кольцо безопасности” (Security Ring), а не “CurrentUser.Role.Id”. В большинстве процессоров это поле принимает четыре значения от 0 до 3. Windows использует 0 для роли которая называется “Режим Ядра”, потому как это самый привилегированный режим и самое большое значение для роли “Режим Пользователя”, потому как это самая ограниченная роль. Остальные роли не используются потому как различие между 0 и 1, 2 и 3 незначительное. Эти роли ограничивают страницы памяти которые могут быть адресованы, нельзя вызывать некоторые инструкции или же нельзя их вызывать с определёнными аргументами. Так же есть ограничения на использование технологии I/O Ports для обмена данными с устройствами такими как клавиатура, но она уже лет 10 не используется. Переключение в режим ядра происходит через команду syscall, которая по индексу находит в массиве указателей на APIs Windows функцию которую надо вызвать. Указатель на этот массив сохраняется в специальном регистре процессора во время загрузки ОС.
Я специально назвал регистр ЦПУ полем. Когда вы пишете программу на C#, то можете добавлять сколько угодно полей в свой класс и давать им понятные названия. У процессоров и микроконтроллеров поля называются регистрами. Когда вы проектируете железку то нужно уже на этом этапе понять сколько регистров (полей) надо, какого размера они должны быть и какой функционал на них возложить, чтобы этого хватало на все случаи жизни для всех мыслимых и немыслимых ситуаций. Представьте, что вам надо написать программу на C#-подобном языке программирования у которого в классе 16 предопределённых полей и вы не можете использовать локальные переменные. Т.е. одно и то же поле может использоваться для хранения залогиненного пользователя, отсортированного массива, временных данных или результата выполнения метода. Имена таких полей должны быть максимально общими, вместо tempData, funcResult будут странные имена EAX, AH, AL, DX и пр. Если бы вы писали на C# эмулятор процессора на архитектуре x86, то код мог бы выглядеть примерно так (DIV — divide, команда целочисленного деления):
Для иллюстрации я добавил проверку на режим ядра. Если происходит ошибка деления на ноль, то процессор уведомляет об этому ОС через прерывание (выбрасывает событие). Во время загрузки ОС предоставляет процессору одномерный массив указателей на функцию, который называется вектор прерываний, где каждому индексу соответствует какое-то событие к примеру деление на ноль. ОС знает архитектуру процессора на котором исполняется и может соответствующим образом упорядочить в массиве указатели на функции. CPU вызывает эту функцию и ОС свой код. К примеру Windows смотрит в реестре установлен ли отладчик и показывает сообщение о том что произошла ошибка и есть возможность запустить дебаггер чтобы посмотреть на место где она произошла. Прерывание называется прерыванием потому как оно вклинивается в нормальный ход выполнения программы и даёт возможность выполнится обработчику прерывания и только после его завершения процессор может вернуться к исполнению программы.
Прерывания могут генерироваться не только процессором но и внешними устройствами (клавиатура, мышь) или программным кодом. Планировщик потоков устанавливает таймер который с интервалами равными одному кванту (по умолчанию около 15мс, в Windows Server больше) генерирует прерывание чтобы по внутреннему алгоритму назначить другой поток на исполнение. Пошаговое исполнение программы в Visual Studio так же полагается на механизм прерываний — у процессора устанавливается флаг, который после каждой команды вызывает прерывание которое обрабатывает Windows Debugging Engine и уведомляет через API Visual Studio.
Разделение памятью реализовано благодаря виртуальной памяти. Ранее я говорил что ОС это менеджер ресурсов и виртуальная машина. Даже если у вас 1Гб RAM 32х битный Windows будет работать так как если бы у вас было 4Гб оперативки, т.е. реально у вас 1Гб, а виртуально 4Гб. Современные компьютеры основаны на теоретической модели машины Тьюринга или же архитектуре фон Неймана (с некоторыми изменениями). Согласно этим моделям память в компьютере это лента состоящая из ячеек размером один байт. Эти ячейки сгруппированы в страницы как правило по 4096 байт (4Кб), потому как:
- С т. зр. CPU нет разницы между кодом и данными, что приводит к трудновыявляемым ошибкам и возможностям для взлома. Если регионы памяти пометить атрибутами по которым можно сказать, что здесь находится код, а здесь данные только для чтения, а сюда можно писать, то это решит указанные проблемы. Так же можно пометить страницы доступные только в режиме ядра.
- Поддержка виртуальной памяти процессором, который умеет копировать страницу виртуальной памяти в физическую. Физическая память RAM так же представлена в виде страниц по 4Кб. Кэш процессора считывает память из RAM страницами, потому как часто программа читает расположенные рядом данные.
- Кажется что процесс владеет всей доступной ему памятью, хотя реально его запросы на выделение динамической памяти (оператор new в С++) ОС удовлетворяет только когда процесс попытается прочитать/записать её. Exe-файл полностью не загружается в память, а отображается с диска и когда нужно исполнить код или считать данные они загружаются в память c диска. Эти механизмы основаны на страницах.
- Имитация эксклюзивного пользования RAM каждым процессом. Когда планировщик потоков назначает поток на выполнение он загружает в регистры процессора информацию о мапинге виртуальных страниц процесса в физические страницы и когда код потока пытается прочитать/записать какой-то адрес процессор правильно его транслирует. Помимо процессов на эмуляцию эксклюзивности пользования RAM полагаются сессии, которые содержат код и данные специфичные для отдельного пользователя, к примеру глобальная очередь сообщений. В Windows 10 есть контекст потока, процесса и сессии.
64 битный адрес позволяет адресовать 16 экзабайт, это 18,446,744,073,709,551,616 ячеек памяти. Современные процессоры пока что не поддерживают так много RAM и поэтому используют только младшие 48 бит адреса, остальные 16 заполняются старшим разрядом. Поэтому Win x64 попросту не использует часть адресов, которые помечены на рисунке выше чёрным. Но это не значит, что 64х битный Windows “видит” 256 Tb оперативки. Максимум 8TB виртуальной памяти на архитектуре IA64 и 7TB на x64. Предел физической памяти поддерживаемой Windows 10 — 2TB, потому как с большим количеством Винда не тестировалась. Объём поддерживаемой RAM в Windows 10 определяется во многом редакцией ОС, чем дороже тем больше.
Почему ячейки памяти пронумерованы шестнадцатиричными (HEX) числами, а не десятичными или двоичными? Адрес ячейки это не просто порядковый номер, в нём закодировано три числа по которым эту ячейку можно отобразить на физическую память. Первые два это индексы по которым находится конкретная страница виртуальной памяти, а третье число — смещение от начала страницы. CPU и ОС здесь работают в связке — ОС предоставляет структуру данных по которой CPU находит страницу виртуальной памяти и копирует её в физическую. По HEX номеру можно сразу увидеть как выровнен в памяти адрес. Формат двоичного числа слишком громоздкий, 32 бита (или 64) трудны для восприятия. Десятичный формат — показывает слишком мало информации, тогда как HEX удобный компромисс между десятичной и двоичной системами, средами людей и машин.
Программный способ разделения на клиент-сервер (режим ядра-режим пользователя) гораздо скучнее перечисленных выше механизмов. Процессы и потоки могут быть помечены специальными аттрибутами или же мы можем хранить список указателей на потоки/процессы и проверять их в коде. Если вы хоть раз делали авторизацию в веб-приложении, то хорошо понимаете о чём я говорю.
Связываем всё вместе
Подводя итоги сказанному выше, можно констатировать, что компьютеры – это очень удачное и крайне полезное сочетание аппаратной и программной части. На вопрос «Как устроен компьютер?» можно ответить такой формулой:
p, blockquote 40,0,0,0,0 —>
или то же самое «по-русски»,
p, blockquote 42,0,0,1,0 —>
Приведенная формула наглядно показывает, что проблемы, которые возникают на компьютере, связаны
- либо с аппаратной частью компьютера (т.е. с «железом»),
- либо с программной частью компьютера (т.е. с операционной системой или с прикладной программой).
Аппаратная часть персонального компьютера – это
- материнская плата с установленными на ней (или подключенными к ней с помощью кабелей) остальными частями компьютера:
- процессор,
- оперативная память,
- жесткие диски,
- дисководы (приводы) CD- и DVD-,
- а также прочие устройства, такие как
- звуковая плата,
- видео карта,
- ТВ-тюнер и
- пр.
Все устройства персонального компьютера заключены в корпус и запитаны от блока электропитания или от аккумуляторной батареи.
p, blockquote 46,0,0,0,0 —>
Для удобства работы с компьютером к нему подключаются также
- клавиатура, ,
- монитор,
- звуковые колонки и
- другие полезные устройства.
Программная часть персонального компьютера состоит из
- операционной системы и
- прикладного программного обеспечения.
Операционная система позволяет запустить аппаратный комплекс, добиться его слаженной и четкой работы. Прикладные программы являются самыми полезными и самыми важными частями программно-аппаратного комплекса, поскольку именно с их помощью пользователи компьютеров выполняют свои задачи на персональном компьютере.
p, blockquote 49,0,0,0,0 —>
Таким образом, если Вы видите и читаете данный текст, это значит, что в Вашем компьютере все вышеперечисленные программные и аппаратные элементы работают слаженно, четко, бесперебойно и взаимосвязанным образом.
Из каких основных компонентов состоит компьютер?
Процессор. Это мозг компьютера. Он является главным компонентом и производит все вычисления в компьютере, контролирует все операции и процессы. Также является одним из самых дорогих компонентов, и цена очень хорошего современного процессора может переваливать за 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-тюнер. В стационарных домашних компьютерах, всё это приобретается, как правило, отдельно!