Вадим Поспелов Профессионал

Как устроен компьютер? Первый и второй уровни - физический и виртуальный

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

1-й уровень — физический

Stokkete Shutterstock.com

На физическом уровне компьютер работает как набор устройств: процессор и память — основное устройство, звуковая плата — другое, принтер — третье, и т. д. Устройства между собой обмениваются байтами через центральную шину. Причем, в зависимости от устройства, один и тот же байт будет вызывать различные действия. Например, принтер напечатает символ, а звуковая карта издаст определенный звук, никак не связанный с символом из принтера.

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

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

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

Каждый такой набор устройств управляется встроенной в ПЗУ программой — прошивкой. Именно она определяет, что принтер будет печатать русские буквы, а не греческие; а MIDI- синтезатор генерирует звуки рояля, а не виолончели. Соответственно, меняя прошивку, можно менять некоторые функции составного устройства или исправлять ошибки в его работе.

2-й уровень — виртуальное устройство, драйвер

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

Разные устройства могут быть подключены к компьютеру и отключены от него как в моменты его выключения, так и во время работы. Заранее неизвестно, какие устройства и в какой разъем будут подключены. Эту неизвестность разрешают драйверы — они описывают, какое устройство куда подключено и как обрабатывать данные.

Для примера очень упрощенно можно представить воспроизведение музыки с CD на звуковую карту так:

— луч лазера считывает очередной кусок данных с поверхности диска и передает их в порт CD;

— драйвер CD считывает данные из порта, отделяет полезную информацию от служебной, передает «чистые данные» в память и дает указание считать следующий кусок данных;

— драйвер звуковой карты берет данные из памяти, наделяет их управляющими командами, нарезает на куски и передает их в звуковую карту;

— по переданным данным звуковая карта генерирует звук.

Это очень упрощенный вариант с понятными устройствами.

А пока задумаемся вот о чем: к компьютеру, в принципе, может быть подключено несколько CD-приводов. Возникает проблема их идентификации. А если на звуковую карту попытаются выводить звук несколько программ, то как быть в этом случае? Вот тут-то и приходит на помощь виртуальное устройство.

Виртуальное устройство — это программа, типа драйвера. Она занимает некоторое промежуточное место между драйверами и «решает», какое устройство и как задействовать. Например, звук из нескольких источников для одной реальной звуковой карты виртуальная замикширует (смешает). Виртуальный принтер примет данные для печати и будет хранить их, пока реальный принтер занят. Если к компьютеру подключено несколько однотипных принтеров, то пул (pool) принтеров распределит, какой документ на какой принтер отправить так, чтобы они не перемешались. И так далее. То есть в рамках вышеописанной модели определит, какую обработку произвести над данными, передаваемыми из одного драйвера в другой.

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

Обновлено 28.04.2016
Статья размещена на сайте 14.10.2013

Комментарии (30):

Чтобы оставить комментарий зарегистрируйтесь или войдите на сайт

Войти через социальные сети:

  • Мне и статьи особенно комментарии напомнили диалог:
    Папа, а когда ты был в Новгороде и с нами в Москве по телефону разговаривал,как ты туда залез?
    И папа начинает объяснять сыну устройство и принцип работы телефона.
    -Ну понял, сынок?
    -Понял. А как ты оттуда вылез?

    Вот и думаю не я один задаемся этим вопросом.

    Оценка статьи: 4

  • Не понимаю, кому могут быть интересны такие статьи? Как будто взято из учебника 90-х годов прошлого века.

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

      ШЖ популярный ресурс, академические высОты и глубины многим не по зубам. "Не думайте о лохах свысока."

      Оценка статьи: 5

  • Очень жаль констатировать, но статья очень слабая, а дидактически, ИМХО, совсем беспомощная. Если вы пишите для домохозяек, то и язык повествования следует использовать адекватный, понятный вашему читателю, а вы завалили его специальными и жаргонными терминами (порты, шина, ПЗУ, знакогенератор и т.п.), что вряд ли он без специального компьютерного образования разберется. Очень похоже на рассказ практика, научившегося ремонтировать компьютеры, но не разобравшегося в теории, определениях, терминологии.

    Оценка статьи: 3

    • Фрол Фролкин, Большинство людей водят машину (например, моя жена), не имея понятия о его устройстве. Но стоит объяснить, для чего служит сцепление и что есть понятие "минимальные обороты двигателя" (почему-то этого не объяснили в автошколе), как манера езды существенно улучшается.

      С компьютерами точно так же. Я не пытаюсь учить пользователей ни терминологии, ни профессии электронщика, ни профессии программиста. Я пытаюсь расширить их понятия о мире в той области, в которой работаю сам. И как показывает многолетний опыт, от таких объяснений они лучше справляются со СВОЕЙ работой на компьютере.

      • Вадим Поспелов, в этом вы совершенно правы, но в вашей статье вы делаете дадактическую ошибку, вы пытаетесь объяснять чайникам сложные технические вещи с позиции специалиста. Это чайнику сложно понять. Я бы это объяснил наоборот глядя на проблему с позиции чайника, то есть представил бы мысленно его уровень технический знаний, ему привычную и понятную терминологию. Исходя из этого начал бы развивать свою мысль, от простого к сложному, по ходу вводя новую терминологию и объясняя ее. При этом не следует перегружать новыми понятиями. Можно было бы не вдаваться в объяснения работы отдельных узлов /модулей /дивайсов и т.п. ограничившись кратким описанием их функции или свойства, важного для понимания основного вашего тезиса.

        Оценка статьи: 3

      • Вадим Поспелов,

        Правильно, правильно...

        Вот машина... у неё есть кузов колёса руль и дырка куда бензин заливать....

        С таким подходом Ваша статья ВООБЩЕ не нужна...
        Надо было написать есть монитор, системный блок, принтер (печ. устройство) и клава/мышь...

        Ещё есть провод с вилкой на конце который суется в дырку на стене /удлинителе.

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

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

        Вот я не скрываю , помимо прочих дипломов- первое очное образование..
        Московский Энергетический Институт , Автоматическое управление технических систем ( фактически кибернетика).

        А у ВАС?

        • Андрей Владимиров, Ну давайте дипломами меряться. У меня законченная аспирантура по САПР. 1999 год, Нижний Новгород (Ну не в Москве я живу). Второе образование - информационные технологии в экономике. Давайте еще чем-нибудь померяемся? Надо ж выяснить, кто круче...

  • Сергей Дмитриев Сергей Дмитриев Мастер 18 октября 2013 в 02:16 отредактирован 18 октября 2013 в 02:19

    Мне расписали шаги для сканнера: 1.Scanner в розетку 2. Start 3.My computer 4. Hewett-Packet Scanjet 5. Next 6.Prevew 7. В окне Picture Name and Distantid № в первой строке дать группе картинок имя.

    Но лень и тупость не дают мне освоить эти свиду простые шаги.

    Неловко мне соваться к знатокам , но чисто грамматически: "Виртуальное устройство типа драйвер" это не драйвер,а только типа

    Это как "сидит кошка на окошке,- всё такое, как у кошки, только не кошка."

    Оценка статьи: 5

  • Вот хотел например спросить , с точки зрения домохозяина... что такое "Центральная шина"?
    Вот шину адреса знаю, шину данных знаю... Центральную не знаю. Может она где то между ними посредине залегла?
    И что сия ШИНА делает...

    Вот процессор центральный (ЦП) знаю.

    Кстати как домохозяйкам понять - что такое драйвер....
    Этот термин вы постоянно используете...

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

      • Андрей Владимиров Читатель 18 октября 2013 в 11:38 отредактирован 18 октября 2013 в 11:39

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

        Если уж говорите про данные, регистры , разряды, булеву алгебру, раз и т.д. будьте добры объяснить народу для чего шина данных, а для чего адреса...
        Я же не прошу Вас объяснять народу отличие между кодом Хеминга и Грея? Вообще , Что такое циклические коды. Про контрольные суммы... и т.д.

        Но вот понятие Центральная шина - лично мне не знакомо... Потому я хотел про него услышать. Возможно каждая домохозяйка уже про это знает, но я вот дипломированный специалист "Проектированию и надёжности автоматических систем" с сим термином НЕЗНАКОМ. Правда 13 по специальности не работаю (переквалифицировался в управдомы/ сиреч юристы) , но архитектура процессора по моим данным не менялась.

        • Андрей Владимиров, специально ради Вас погуглил, что такое системная шина. Секундное дело, но теперь и Вы узнаете понятие системной шины:

          Энциклопедический словарь
          СИСТЕМНАЯ ШИНА (system bus), совокупность линий передачи всех видов сигналов (в том числе данных, адресов и управления) между микропроцессором (см. МИКРОПРОЦЕССОР) и остальными электронными устройствами компьютера (см. КОМПЬЮТЕР). Часть системной шины, передающая данные, называется шиной данных, адреса — адресной шиной, управляющие сигналы — шиной управления.

          • Вадим Поспелов,
            Э нет... дорогой... так не пойдёт.
            Я про ЦЕНТРАЛЬНУЮ шину... про которую в статье!

            • Вадим Поспелов Вадим Поспелов Профессионал 18 октября 2013 в 16:24 отредактирован 18 октября 2013 в 16:25

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

              Системные и локальные шины

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

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

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

              • Вадим Поспелов,
                Не... Вы меня не поняли. Про профпригодность судить не берусь, сам уже отстал... я прото что если Вы объясняите с научной точки зрения придерживайтесь этого стиля, если с позиции чайника, то объясняйте всё ёнормальным доступным человеческим языком.
                Как Вам правильно сказали, система какая-то должна быть...
                Сначала общие понятия, потом общие... Если говорите про драйвер так скажите, что
                Драйвер (англ. driver, мн. ч. дра́йверы[1]) — компьютерная программа, с помощью которой другие программы (операционная система) получают доступ к аппаратному обеспечению некоторого устройства

                Для тупых поясните, что это перевочик (адаптер) программного кода на аппаратный команды (машинный код), понятный механическому устройству

                ПЗУ. постоянное запоминающие устройство.. устройство в которое записан набор команд нужны ЭВМ постоянно.


                которые ни при каких обстоятельсвах не могут быть переписаны, так как записаны жёстко ("ПРОШИТЫ"),

                и т.д.

                • Андрей Владимиров, Приведу пример, который понятен большинству моих клиентов. Люди - программы, машины - аппаратная часть: Вы пассажир такси. Говорите таксисту куда ехать, а он сам нажимает на педали, включает поворотники, крутит рулем. Он драйвер. И драйвер от зерноуборочного комбайна Дон не может эффективно водить болид Формулы 1 (и наоборот).

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

  • Сборная солянка в которую засыпал винегрет....

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

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

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

    Вы кстати кем работаете? Если конечно не секрет....
    На личности не перехожу, оценку не даю, просто интересно где учились, где работаете.... К статье это имеет прямое отношение.

    • Андрей Владимиров, Работаю в техподдержке 16 лет. И по несколько раз в день объясняю, что компьютер без электричества не работает. Что нельзя скачать в Интернете фотографии собственной квартиры для размещения объявления на сайте. Что принтер не будет печатать с вашего компьютера, если вы втихую перенесете его с соседнего стола без подключения к вашему компьютеру. Что нельзя слушать музыку без наушников или колонок.

      Контингент: врачи, экономисты, менеджеры, инженеры-строители, студенты и частные лица.

      • Андрей Владимиров Читатель 18 октября 2013 в 11:24 отредактирован 18 октября 2013 в 15:53

        Вадим Поспелов,
        Верю!
        Объявление на стенке не вешали? "Если КОм. не работает, не торопитесь звонить в техотдел, проверьте включён ли штепсель (маленькая чёрная/белая рогатая штучка, похожая на вилку) в розетку ( штучка с двумя /тремя/ четырьмя дырками."

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

  • Я работаю на компьютерах или с компьютерами? не знаю как правильно с 2003 года. Очень долго специально учился, переучивался с аналоговой техники. Теперь знаю практически все об их работе и устройстве. Всегда рядом минимум 2 компа не считая различной переферии.
    И вот меня всегда интересовал вопрос ! Почему при наличии стольких составляющих эта штука такая живучая, работает годами и практически не ломается !!?

    Оценка статьи: 5