Какие виды работ выполняет компьютер

Обновлено: 02.07.2024

Возможности компьютера

Какие задачи можно решить с помощью компьютера?

Рассмотрим некоторые из них:

Печать текстовых документов

В офисе приходится ежедневно печатать большое количество разной документации:

  • Деловые письма;
  • Договоры;
  • Счета;
  • Доверенности;
  • Всевозможные бланки.

И очень часто они нужны в нескольких экземплярах.

Подготовить нужный документ можно с помощью компьютера.

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

Электронная почта

Это служба по пересылке и получению электронных писем между пользователями в интернете.

По принципу работы она повторяет систему работы обычной почты.

  • Высокая надежность доставки писем;
  • Высокая скорость передачи;
  • Простота использования;
  • Передать можно разный текст: простой; форматированный; произвольные файлы, например, архивы, программы, медиафайлы, текстовые файлы.

Дистанционное обучение

Самостоятельная форма обучения, когда взаимодействие преподавателей и учеников происходит на расстоянии.

Преимущества такого обучения:

  • Снижение затрат на проведение обучения: не надо арендовать помещение и платить за него арендную плату; не надо тратить деньги на то, чтобы добраться до места учебы. За счет того, что никуда не надо ехать, экономится время;
  • Одновременно можно обучать большое количество людей;
  • За счет применения современных средств повышается качество обучения.
  • Печатать и редактировать тексты;
  • Подготавливать высококачественные цветные иллюстрации, комбинировать их с текстом;
  • Хранить большие объемы информации;
  • Обеспечивает быстрый доступ к нужным файлам.

Ведение бухгалтерского учета

Удаленный бухгалтерский учет включает в себя:

  • Работу с первичной документацией;
  • Кадровое делопроизводство;
  • Начисление заработной платы;
  • Ведение бухучета в зависимости от организационно-правовой формы;
  • Заполнение и сдачу налоговых деклараций в компетентные органы.

Автоматизированное проектирование

Компьютерные инструменты помогают инженерам, архитекторам создавать, анализировать, оптимизировать различные проекты.

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

  • Систему двухмерного черчения;
  • Трехмерное параметрическое моделирование поверхностей и объемных тел.

По областям применения автоматизированное проектирование подразделяется на:

  • Архитектурно-строительное;
  • Механическое;
  • Технологическое;
  • Проектирование электронных приборов и устройств.

Математические расчеты

С помощью математического онлайн-сервиса можно:

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

Управление технологическими процессами

Автоматизированная система управления технологическим процессом представляет собой комплекс программных и технических средств, предназначенных для автоматизации управления технологическим оборудованием в организации.

Компьютерные игры

Это программы, которые создаются для развлечения людей.

Для ПК создано большое количество электронных игр, они создаются на основе книг, фильмов и мультфильмов.

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

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

Компьютерные игры можно классифицировать в зависимости от тематики:

Посмотрим видео на тему Возможности компьютера

Специальные возможности на компьютере в Windows 8

10 секретных функций твоего компьютера

Как узнать технические характеристики компьютера

Заключение

В этой статье мы рассмотрели тему Возможности компьютера, какие задачи можно решить с помощью компьютера и какую работу выполнить.

Надеюсь, статья оказалась полезной. Если возникли вопросы, можете задать их через форму комментариев под этой статьей.

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

Код ОГЭ: 1.4.1. Основные компоненты компьютера и их функции.

Компьютер — это электронное устройство для программной обработки информации.

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

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

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

Основные компоненты компьютера

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

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

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

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

Процессор (центральный процессор, ЦП) выполняет все действия по обработке информации и управляет работой компьютера. Производительность процессора зависит от его частоты и разрядности. Тактовая частота — количество операций, которые процессор производит за секунду. Она измеряется в мегагерцах (МГц) и гигагерцах (ГГц): 1 МГц означает выполнение 10 6 (миллион) операций за секунду, 1 ГГц — 10 9 (миллиард) операций за секунду. Разрядность — длина двоичного кода, который процессор может обработать или передать целиком одновременно. Современные ПК обычно оснащены 32– или 64–разрядными процессорами; существуют процессоры с разрядностью 128 бит. Современные процессоры — многоядерные, они содержат несколько (до 32) процессорных ядер в одном корпусе. Однако частота процессора намного важнее количества ядер. Так что одноядерный процессор с 3,6 ГГц лучше 4 ядерного процессора с 1,5 ГГц.

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

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

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

Устройства внешней памяти называются накопителями. Они предназначены для длительного сохранения информации. К ним относятся накопители на жестких, гибких и оптических дисках, флеш–память и др. Накопитель на жестких магнитных дисках (НЖМД, HDD — Hard Disk Drive, он же «винчестер») — основное устройство для долговременного хранения больших объемов данных и программ практически всех современных компьютеров. Одна из основных характеристик жесткого диска — емкость (количество данных, которые могут храниться накопителем; для современных устройств достигает нескольких терабайт). Гибкие магнитные диски были вытеснены компакт–дисками (оптическими дисками) и DVD, а затем — флеш-памятью (твердотельными носителями данных), которые имеют значительно большую емкость и надежность. В настоящее время существуют не только внутренние, но и внешние дисководы, имеющие удобное подключение к настольному ПК, ноутбуку, нетбуку.

Звуковая карта (звуковая плата) — это плата, которая позволяет работать на компьютере со звуком.

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

Периферийные устройства

Периферийные устройства — устройства для ввода или вывода информации: принтеры, клавиатуры, мыши, сканеры и т. д. Подсоединение их к компьютеру производится через специальные разъемы — порты ввода/вывода. По способу передачи информации различают последовательные (информация передается последовательно) и параллельные (несколько битов информации передается одновременно) порты. В настоящее время они вытесняются шиной USB и беспроводными технологиями передачи информации.

Устройства ввода информации

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

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

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

Трекбол — встроенный в клавиатуру или мышь шарик, вращение которого вызывает перемещение курсора (по сути, это «перевернутая» шариковая мышь).

Сенсорная панель (тачпад) — сенсорная пластина, реагирующая на движение пальца пользователя по поверхности. Удар пальцем по поверхности тачпада воспринимается как нажатие кнопки.

Трекпойнт — специальная гибкая клавиша на клавиатуре, прогиб которой в нужном направлении перемещает курсор на экране дисплея.

Графический планшет — используется для рисования, а также для ввода рукописного текста с помощью специальной ручки.

Джойстик — рукоять с кнопкой. При вращении рукояти перемещается курсор на экране.

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

Цифровая фотокамера — устройство для ввода фотоснимков в память компьютера.

Звуковая карта и микрофон — устройство для ввода звуковой информации.

Устройства вывода информации

Монитор. Основным компонентом мониторов обычно является матрица жидкокристаллических (ЖК) элементов, реже — электронно-лучевая трубка (ЭЛТ). Перспективными моделями считаются плазменные, проекционные и OLED–мониторы (в основе которых — органические светоизлучающие диоды).

Монитор подключается к компьютеру через устройство сопряжения — видеоадаптер. Основные параметры мониторов:

Плоттер (графопостроитель) — устройство печати сложных графических изображений — чертежей, схем, графиков, карт, диаграмм;

Акустические колонки и наушники — устройство для прослушивания звука.

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

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

Суть и назначение компьютера

Первые компьютеры предназначались для математических вычислений. Даже самые простые приборы этой области значительно превосходят возможности людей.

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

Третьим назначением является управление различными устройствами, сложной техникой или объектами. Даже в бытовой технике встречаются компьютерные устройства. А что говорить о космических кораблях или атомных электростанциях. Компьютеры позволяют собирать большое количество информации о состоянии системы, мгновенно ее обрабатывать, и принимать оптимальное решение о дальнейшем управлении системой.

Четвёртое. Развитие компьютеров достигло такого уровня, что они стали важным информационным инструментом и в каждом офисе, и в каждом доме. Теперь многая работа с информацией производится через компьютер. Это и набор текста, и просмотр видео и фильмов, навигация в Интернете и развлечение играми.

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

image

Меня зовут Андрей Артемьев, я работаю в Microsoft над ядром ОС Windows 10, ранее я работал над Windows 10x (WCOS), XBox, Windows Phone и Microsoft Edge. Я хочу популярно в образовательных целях рассказать о том как работает компьютер на примере клавиатурного ввода и Windows 10. Данный цикл статей рассчитан в первую очередь на студентов технических специальностей. Мы рассмотрим какой путь проходит информация о нажатой клавише от клавиатуры до отображения в Notepad.exe. В виду обширности и междисциплинарности темы в статьях могут быть неточности, о которых сообщайте в комментариях. Какая-то информация может быть устаревшей в виду скорости с которой развивается Windows.

Насколько глубоко мы погрузимся в тему?

Давайте для начала в общих чертах поговорим об уровнях на которых можно рассматривать компьютер. Каждый уровень основывается на предыдущем. Начнём с самого верха.

Уровень операционной системы. ОС можно рассматривать как:

  • Менеджер ресурсов — память, жёсткие диски, принтеры, экран, клавиатура ограниченные ресурсы которые совместно используются запущенными на компьютере программами.
  • Виртуальная машина — файл это наглядный пример виртуального объекта. Он представляет абстракцию данных на диске, API для работы с ним и так же добавляет концепцию прав доступа. Вместо файла могла быть концепция контейнера данных и совершенно другого API. Таких виртуальных объектов в ОС много.
  • Платформа — ОС предоставляет программные модели и примитивы для построения программ. К примеру Windows Drivers Framework позволяет быстро разрабатывать драйвера, окна в Windows используются для построения сложных пользовательских интерфейсов. Dll — предоставляет модель расширения функционала программы через плагины, а так же механизм для реализации читалки экрана через ловушки клавиатуры (см. LowLevelKeyboard hook).

image

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

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

image

Материнскую плату можно рассматривать как колонию микросхем которые общаются между собой через шины и через них циркулируют данные от подключенных устройств к процессору и обратно. Чип-сет — это своего рода нервная система компьютера. Все чипы на материнской плате были изначально созданы чтобы работать друг с другом. Некоторые из них могут иметь особые функции, к примеру таймер или хранение настроек BIOS. Пожалуй самый важный из них тот что имеет встроенную программу (прошивку, BIOS, UEFI) которая начинает выполняться как только появляется электричество. Она находит жёсткий диск с загрузчиком Windows и передаёт тому управление который в свою очередь запускает исполняемый файл ОС, который можно назвать Windows10.exe, на самом деле NtOsKrnl.exe. BIOS знает что искать благодаря соглашению между производителями железа и операционных систем.

Вокруг материнской платы можно собрать мобильный телефон, игровую приставку, серверную станцию или умное устройство. На картинке ниже распространённые форм-факторы материнских плат.

image

Уровень микроархитектуры представлен процессором (CPU), это сердце материнки и весь чип-сет нужен для обслуживания CPU. Процессор это компьютер в компьютере, более мощный и продвинутый микроконтроллер которому не нужна прошивка, потому как поток команд подаётся на лету, когда планировщик потоков поменял контекст процессора. Функционал процессора делится на подсистемы, к примеру компонент занимающийся математическими и логическими операциями, математический сопроцессор, кэш. Какие-то из них раньше были отдельным чипом на материнской плате, но сейчас их сделали частью ЦПУ, например контроллер прерывания и микросхема под названием “Северный мост” что увеличило скорость работы.

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

image

Архитектура процессора это по сути документ который описывает какой функциональностью он должен обладать для того чтобы соответствовать к примеру архитектуре x86, x64 или ARM применяемой на мобильных устройствах. В этом документе описано какие должны поддерживаться команды, назначения регистров и логика работы. Создатели процессоров Intel, AMD, Эльбрус могут реализовывать эту функциональность как угодно и добавлять к ней новые возможности в виде команд, регистров, флагов, прерываний и если ОС знает о них то может использовать. В терминах ООП архитектура ЦПУ — это интерфейс, а микроархитектура — его реализация.

Логические схемы. Цветные прямоугольники с блок-схемы CPU состоят из логических схем, которые производят свои операции на последовательностях нулей и единиц. Процессор видит все данные и команды в виде битов (0 и 1), по формуле любое десятичное число можно представить в виде последовательности 0 и 1, а вот что значит конкретное число зависит от контекста. Это может быть код, цифра, буква. Арифметическое и логическое устройство (ALU) умеет производить сложение двух чисел через побитовые операции. Побитовые алгоритмы сложения, вычитания, умножения и деления давно известны, разработчикам логической схемы их только надо эффективно реализовать.

image

image


Уровень радиоэлементов. Физически аналоговые схемы полагаются на радиоэлементы, которые собственно и эксплуатируют законы физики. Преимущественно это полупроводники, т.е. в определённых условиях они могут проводить электричество, а могут и нет. Диод проводит ток только в одном направлении, если его выпаять, развернуть на 180 и впаять обратно, то ток через него проходить не будет. Транзистор пропускает ток только если есть напряжение на управляющей ножке. Человечество научилось делать транзисторы микроскопическими и потому их можно размещать на маленькой плате миллионами. На картинках ниже полупроводниковые радиоэлементы и обычный транзистор рядом с нано транзистором под электронным микроскопом.

image

Уровень законов физики. И наконец самый нижний уровень — это уровень законов физики которые заключены в полупроводниковые радиоэлементы.

image

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

Основы Операционной Системы

Когда мы проходили в универе программирование на ассемблере у многих студентов был ступор от таких умных слов как “режимы ядра и пользователя”, под которыми на самом деле скрывается хорошо всем известная ролевая система аутентификации, на всех сайтах есть как минимум “Админ” имеющий доступ ко всем страницам и “Пользователь” имеющий ограниченный доступ. Точно так же роль “Ядро” имеет доступ ко всем возможностям 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, папку, набор функций с общим префиксом, пространство имён, слой в архитектуре.

Более подробно о разделении на клиент-сервер

Разделение на клиент и сервер реализовано при помощи встроенной функциональности CPU, разделения памяти и программных проверок.

Производители оборудования сотрудничают с разработчиками ОС, поэтому в процессоре есть механизмы созданные с учётом потребностей создателей операционных систем. Во всех современных процессорах реализован механизм ролей пользователя, где под пользователем понимается исполняемый в данный момент код. В веб приложениях роль залогиненого пользователя хранится в какой-то переменной и помимо понятного названия Admin или User имеет Id этой роли который чаще и используется при авторизации, потому как сравнивать числа быстрее и проще чем строки. В процессоре роль текущего пользователя хранится в поле которое называется “кольцо безопасности” (Security Ring), а не “CurrentUser.Role.Id”. В большинстве процессоров это поле принимает четыре значения от 0 до 3. Windows использует 0 для роли которая называется “Режим Ядра”, потому как это самый привилегированный режим и самое большое значение для роли “Режим Пользователя”, потому как это самая ограниченная роль. Остальные роли не используются потому как различие между 0 и 1, 2 и 3 незначительное. Эти роли ограничивают страницы памяти которые могут быть адресованы, нельзя вызывать некоторые инструкции или же нельзя их вызывать с определёнными аргументами. Так же есть ограничения на использование технологии I/O Ports для обмена данными с устройствами такими как клавиатура, но она уже лет 10 не используется. Переключение в режим ядра происходит через команду syscall, которая по индексу находит в массиве указателей на APIs Windows функцию которую надо вызвать. Указатель на этот массив сохраняется в специальном регистре процессора во время загрузки ОС.

image

Прерывания могут генерироваться не только процессором но и внешними устройствами (клавиатура, мышь) или программным кодом. Планировщик потоков устанавливает таймер который с интервалами равными одному кванту (по умолчанию около 15мс, в Windows Server больше) генерирует прерывание чтобы по внутреннему алгоритму назначить другой поток на исполнение. Пошаговое исполнение программы в Visual Studio так же полагается на механизм прерываний — у процессора устанавливается флаг, который после каждой команды вызывает прерывание которое обрабатывает Windows Debugging Engine и уведомляет через API Visual Studio.

Разделение памятью реализовано благодаря виртуальной памяти. Ранее я говорил что ОС это менеджер ресурсов и виртуальная машина. Даже если у вас 1Гб RAM 32х битный Windows будет работать так как если бы у вас было 4Гб оперативки, т.е. реально у вас 1Гб, а виртуально 4Гб. Современные компьютеры основаны на теоретической модели машины Тьюринга или же архитектуре фон Неймана (с некоторыми изменениями). Согласно этим моделям память в компьютере это лента состоящая из ячеек размером один байт. Эти ячейки сгруппированы в страницы как правило по 4096 байт (4Кб), потому как:

image
image

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 удобный компромисс между десятичной и двоичной системами, средами людей и машин.

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

Из чего состоит Windows?

Абстракция или же разбиение на компоненты есть во всех сферах программирования и интуитивно понятно что Windows тоже делится на какие-то компоненты. Под компонентом понимается какая-то единица функциональности — ООП класс, файл, dll, папка. Компоненты на диаграмме ниже могут быть как индивидуальными *.sys, *.dll файлами, так и просто набором API сгруппированным логически через добавление префикса к имени функции, старая часть системы написана на C, а он не поддерживает классы. Новые части пишутся нередко на C++. В укрупнённом виде Винда выглядит так:

image

Давайте быстренько пробежимся по её компонентам снизу вверх:

  • Hyper-V Hypervisor — слой виртуализации благодаря которому в Windows можно создать виртуальную машину. Иногда говорят, что Hyper-V это минус первый уровень привилегий, однако реализован он в одном уровне привилегий и адресном пространстве что и ядро ОС, за счёт использования слоёной архитектуры ОС ничего не знает о нём.
  • HAL.dll — Hardware Abtraction Layer — изначально задумывался как абстракция над железом — чипсет, материнская плата, процессор — для того чтобы можно было перенести Windows на новую платформу реализовав новый HAL.dll, который будет выбран и скопирован во время установки. По сути это драйвер к устройствам материнской платы, к примеру таймерам, контроллеру прерываний. Сейчас его роль снижена, потому как многие драйвера материнки и чип-сета реализованы в ACPI.sys.

Читайте также: