Данная статья документации актуальна только для версии 5.0 и была удалена в версии 5.1.
- Введение
- Создание команд
- Выполнение команд
- Передача параметров в запросах
- Очередь команд
- Конвейер команд
- Комментарии (1)
- Глава 1. Компьютер. Программное и аппаратное обеспечение
- Магистраль: шина данных шина адреса и шина управления. Шины периферийных устройств
- Магистраль
- Шина данных
- Шина адреса
- Шина управления
- 🌟 Видео
Видео:03. Основы устройства компьютера. Память и шина. [Универсальный программист]Скачать
Введение
Командная шина Laravel предоставляет удобный способ инкапсуляции задач вашего приложения в простые и понятные «команды» . Чтобы понять назначение команд, давайте представим, что мы создаём приложение, которое позволяет пользователям покупать подкасты.
Когда пользователь покупает подкаст, должно произойти несколько событий. Например, мы должны снять деньги с карты пользователя, добавить запись о покупке в нашу базу данных и послать электронное письмо с подтверждением покупки. Возможно, мы также должны выполнить некоторые проверки, например, разрешено ли пользователю вообще покупать подкасты.
Мы могли бы поместить всю эту логику в метод контроллера. Однако у этого подхода есть несколько недостатков. Во-первых, наш контроллер, вероятно, обрабатывает и несколько других входящих HTTP-действий, поэтому включение сложной логики в каждый метод контроллера приведёт к его быстрому разрастанию, и его будет сложно читать. Во-вторых, будет трудно снова использовать логику покупки подкаста за пределами контекста контроллера. В-третьих, будет сложнее проводить юнит-тесты команд, поскольку нам придётся также генерировать заглушки для HTTP-запросов и выполнять полноценный запрос к приложению, чтобы протестировать логику покупки подкаста.
Вместо размещения этой логики в контроллере, мы можем принять решение инкапсулировать её в объект «команды» , такой как команда PHP PurchasePodcast .
Видео:Кан шина, что это? Поймет школьник! принцип работыСкачать
Создание команд
Командная строка Artisan может генерировать новые классы команды, используя команду sh make:command :
Только что сгенерированный класс будет помещён в каталог app/Commands . По умолчанию команда содержит два метода: конструктор и метод PHP handle . Конструктор позволяет вам передавать любые соответствующие объекты команде, в то время как метод PHP handle выполняет команду. Например:
Метод PHP handle может использовать указание типов зависимостей, и они будут автоматически внедрены сервис-контейнером.
Видео:CAN шина👏 Как это работаетСкачать
Выполнение команд
Как выполнить только что созданную команду? Можно непосредственно вызвать метод PHP handle . Однако, выполнение команд через «командную шину» Laravel имеет ряд преимуществ, которые мы обсудим далее.
Если вы посмотрите на основной контроллер своего приложения, то вы заметите типаж PHP DispatchesCommands . Он позволяет вызывать метод PHP dispatch из любого контроллера.
Командная шина займётся выполнением команды и вызовом IoC-контейнера для внедрения любых необходимых зависимостей в метод PHP handle .
Вы можете добавить типаж Illuminate\Foundation\Bus\DispatchesCommands в любой класс. Если вы хотите получить экземпляр командной шины через конструктор какого-либо из ваших классов, вы можете указать тип интерфейса PHP Illuminate \ Contracts \ Bus \ Dispatcher . Наконец, вы можете просто использовать фасад PHP Bus , чтобы быстро выполнить команду:
Передача параметров в запросах
Передача переменных HTTP-запроса в команды очень распространена. Поэтому, вместо того чтобы делать это вручную для каждого запроса, Laravel предоставляет некоторые вспомогательные методы. Давайте взглянем на метод PHP dispatchFrom , доступный в типаже PHP DispatchesCommands :
Этот метод проверяет конструктор класса команды, который он получил первым аргументом, и затем извлекает переменные из HTTP-запроса (или любого другого объекта типа PHP ArrayAccess ), чтобы заполнить необходимые параметры конструктора команды. Так, если наш класс команды примет аргумент PHP firstName в своём конструкторе, то командная шина попытается получить параметр PHP firstName из HTTP-запроса.
Вы можете также передать массив как третий аргумент метода PHP dispatchFrom . Этот массив будет использоваться, чтобы заполнить любые параметры конструктора, которые не доступны из запроса:
Видео:Подробно про CAN шинуСкачать
Очередь команд
Командная шина предназначена не только для синхронных задач, которые работают во время прохождения текущего запроса. Она также служит основным методом создания очередей задач в Laravel. Так как же заставить командную шину поставить нашу задачу в очередь для фоновой обработки вместо того, чтобы выполнить её синхронно? Очень просто. Во-первых, при генерации новой команды, просто добавьте к команде флаг sh —queued :
И вы увидите, это добавляет ещё несколько функций к команде, а именно, интерфейс Illuminate\Contracts\Queue\ShouldBeQueued и типаж PHP SerializesModels . С помощью них командная шина ставит команды в очередь, а также корректно сериализует и десериализует любые Eloquent-модели, которые содержатся в вашей команде как свойства.
Если вы хотите преобразовать существующую команду в команду для очереди, просто реализуйте интерфейс Illuminate\Contracts\Queue\ShouldBeQueued в классе вручную. Он не содержит методов и просто служит индикатором для командной шины.
Читайте также: Почему нет шин континенталь
Теперь просто пишите свою команду как обычно. Шина автоматически поставит команду в очередь для фоновой обработки.
Для получения дополнительной информации о взаимодействии с очередью команд просмотрите полную документацию по очередям.
Видео:Как работает LIN шина автомобиля. K-Line L-Line шины данных. Лин шина автомобиля. Lin-bus networkСкачать
Конвейер команд
Прежде чем команда передастся в обработчик, вы можете передать её через другие классы на «конвейер» . Каналы команд работают как HTTP-middleware, за исключением ваших команд! Например, канал команды может обернуть всю работу команды в транзакцию базы данных, или просто зарегистрировать в логе её выполнение.
Чтобы добавить канал в вашу шину, вызовите метод диспетчера PHP pipeThrough из вашего метода PHP App \ Providers \ BusServiceProvider :: boot :
Канал команды определяется в методе PHP handle , подобно middleware:
Классы каналов команд выполняются через IoC-контейнер, поэтому свободно указывайте типы любых необходимых зависимостей в их конструкторах.
Вы можете даже определить PHP Closure в качестве канала команды:
Видео:лекция 403 CAN шина- введениеСкачать
Комментарии (1)
Как определить выполняется ли команда в данный момент?
Видео:Компьютерная диагностика авто. K-линия и CAN шинаСкачать
Глава 1. Компьютер. Программное и аппаратное обеспечение
Магистраль: шина данных шина адреса и шина управления. Шины периферийных устройств
Вспомним, на прошлом уроке рассматривалось устройство материнской платы. Рассмотрим более подробно, какие же логические устройства можно установить на системную плату, т.к. системная плата наравне с процессором является основным устройством любого современного компьютера. Так же необходимость более подробного знакомства с системной платой обусловлено тем, что на системных платах реализуются шины различных типов. В гнёзда расширения системной платы устанавливаются платы таких периферийных устройств, как модем, сетевая плата, видеоплата и т.п.
Быстродействие различных компонентов компьютера (процессора, оперативной памяти и контроллеров периферийных устройств) может существенно различаться. Для согласования быстродействия на системной плате, как было сказано на прошлом уроке, устанавливаются специальные микросхемы (чипсеты), включающие в себя контроллер оперативной памяти (так называемый северный мост) и контроллер периферийных устройств (южный мост). (см. рис. 1)
Северный мост обеспечивает обмен информацией между процессором и оперативной памятью по системной шине. В процессоре используется внутреннее умножение частоты, поэтому частота процессора в несколько раз больше, чем частота системной шины. В современных компьютерах частота процессора может превышать частоту системной шины в 10 раз (например, частота процессора 1 ГГц, а частота шины — 100 МГц).
К северному мосту подключается шина PCI ( Peripherial Component Interconnect bus — шина взаимодействия периферийных устройств), которая обеспечивает обмен информацией с контроллерами периферийных устройств. Частота контроллеров меньше частоты системной шины, например, если частота системной шины составляет 100 МГц, то частота шины PCI обычно в три раза меньше — 33 МГц. Контроллеры периферийных устройств (звуковая плата, сетевая плата, SCSI -контроллер, внутренний модем) устанавливаются в слоты расширения системной платы.
По мере увеличения разрешающей способности монитора и глубины цвета требования к быстродействию шины, связывающей видеоплату с процессором и оперативной памятью, возрастают. В настоящее время для подключения видеоплаты обычно используется специальная шина AGP ( Accelerated Graphic Port — ускоренный графический порт), соединенная с северным мостом и имеющая частоту, в несколько раз большую, чем шина PCI .
Южный мост обеспечивает обмен информацией между северным мостом и портами для подключения периферийного оборудования.
Устройства хранения информации (жесткие диски, CD — ROM , DVD — ROM ) подключаются к южному мосту по шине UDMA ( Ultra Direct Memory Access — прямое подключение к памяти).
Мышь и внешний модем подключаются к южному мосту с помощью последовательных портов, которые передают электрические импульсы, несущие информацию в машинном коде, последовательно один за другим. Обозначаются последовательные порты как СОМ1 и COM2, а аппаратно реализуются с помощью 25-контактного и 9-контактного разъемов, которые выведены на заднюю панель системного блока.
Принтер подключается к параллельному порту, который обеспечивает более высокую скорость передачи информации, чем последовательные порты, так как передает одновременно 8 электрических импульсов, несущих информацию в машинном коде. Обозначается параллельный порт как LPT , а аппаратно реализуется в виде 25-контактного разъема на задней панели системного блока.
Читайте также: Шины нокиан 285 50 r20
Для подключения сканеров и цифровых камер обычно используется порт USB ( Universal Serial Bus — универсальная последовательная шина), который обеспечивает высокоскоростное подключение к компьютеру сразу нескольких периферийных устройств.
Клавиатура подключается обычно с помощью порта PS/2 или USB .
Все устройства (модули) компьютера подключаются к магистрали. Однако, непосредственно к магистрали можно подключить лишь процессор и оперативную память, остальные устройства подключаются с помощью специальных согласующих устройств — контроллеров (контроллер клавиатуры, контроллер дисководов, видеоадаптер и т.д.)
Рассмотрим структуру магистрали (системной шины), т.к. модульная организация системы опирается на магистральный (шинный) принцип обмена информации.
Магистраль
Магистраль или системная шина — это набор электронных линий, связывающих воедино по адресации памяти, передачи данных и служебных сигналов процессор, память и периферийные устройства.
Системная магистраль осуществляет обмен данными между процессором или ОЗУ с одной стороны и контроллерами внешних устройств компьютера с другой стороны.
Обмен информацией между отдельными устройствами ЭВМ производится по трем многоразрядным шинам, соединяющим все модули, —
Шины представляют собой многопроводные линии. Тип системных шин, применяемых в компьютерах с невысокой производительностью — ISA. Это дешевая но «малоинтеллектуальная» шина. Она может обеспечивать обмен с клавиатурой, дисплеем (алфавитно-цифровым), дисководами для гибких дискет, принтерами и модемами. Однако ее возможностей не достаточно для работы с дисководами для жестких дисков, видеоконтроллерами, адаптерами локальных сетей и т.п.
Шина MCA — более производительная, но не совместима с ISA, поэтому не нашла широкого применения.
Шина EISA — совместима с ISA , значительно дороже, чем ISA и не всегда обеспечивая нужную скорость обмена.
Шина VESA (VL) — более дешевая шина, используется в сочетании с ISA или с EISA.
Шина PCI — конкурент шины VESA , используется в PENTIUM в сочетании с ISA или EISA.
Рис 2. Магистрально-модульный принцип
Как уже было сказано, подключение отдельных модулей компьютера к магистрали на физическом уровне осуществляется с помощью контроллеров, а на программном обеспечивается драйверами. Контроллер принимает сигнал от процессора и дешифрует его, чтобы соответствующее устройство смогло принять этот сигнал и отреагировать на него. За реакцию устройства процессор не отвечает — это функция контроллера. Поэтому внешние устройства ЭВМ заменяемы, и набор таких модулей произволен.
Шина данных
По этой шине данные передаются между различными устройствами. Например, считанные из оперативной памяти данные могут быть переданы процессору для обработки, а затем полученные данные могут быть отправлены обратно в оперативную память для хранения. Таким образом, данные по шине данных могут передаваться от устройства к устройству в любом направлении, т. е. шина данных является двунаправленной.
Разрядность шины данных определяется разрядностью процессора, т.е. количеством двоичных разрядов, которые процессор обрабатывает за один такт. Разрядность процессоров постоянно увеличивалась по мере развития компьютерной техники.
За 25 лет, со времени создания первого персонального компьютера (1975г.), разрядность шины данных увеличилась с 8 до 64 бит.
К основным режимам работы процессора с использованием шины передачи данных можно отнести следующие: запись/чтение данных из оперативной памяти и из внешних запоминающих устройств, чтение данных с устройств ввода, пересылка данных на устройства вывода.
Шина адреса
Шина адреса предназначена для передачи по ней адреса того устройства (или той ячейки памяти), к которому обращается процессор. Адрес на нее выдает всегда только процессор. По шине данных передается вся информация. При операции записи информацию на нее выставляет процессор, а считывает то устройство (например, память или принтер), адрес которого выставлен на шине адреса. При операции чтения информацию выставляет устройство, адрес которого выставлен на шине адреса, а считывает процессор.
Таким образом, каждое устройство или ячейка оперативной памяти имеет свой адрес. Адрес передается по адресной шине, причем сигналы по ней передаются в одном направлении от процессора к оперативной памяти и устройствам (однонаправленная шина).
Разрядность шины адреса определяет адресное пространство процессора, т.е. количество ячеек оперативной памяти, которые могут иметь уникальные адреса. Количество адресуемых ячеек памяти можно рассчитать по формуле:
Читайте также: Автомагазины шин в самаре
N =2 I , где I — разрядность шины адреса.
Каждой шине соответствует свое адресное пространство, т. е. максимальный объем адресуемой памяти:
Разрядность шины адреса постоянно увеличивалась и в современных персональных компьютерах составляет 32 бит. Таким образом, максимально возможное количество адресуемых ячеек памяти равно:
N == 2 32 = 4 294 967 296 = 4 Гб
В персональных компьютерах величина адресного пространства процессора и величина фактически установленной оперативной памяти практически всегда различаются. Несмотря на то, что общий объем адресуемой памяти достигает 4 Гбайт, величина фактически установленной оперативной памяти может быть значительно меньше — 32 Мбайта.
Аппаратно на системных платах реализуются шины различных типов. В компьютерах РС/286 использовалась шина ISA (Industry Standard Architecture), имевшая 16-разрядную шину данных и 24-разрядную шину адреса. В компьютерах РС/386 и РС/486 используется шина EISA (Extended Industry Standard Architecture), имеющая 32-разрядные шины данных и адреса. В компьютерах PC/ Pentium используется шина PCI (Peripheral Component Interconnect), имеющая 64-разрядную шину данных и 32-разрядную шину адреса.
Шина управления
По шине управления передаются сигналы такие, например, как сигналы чтения, записи, готовности, определяющие характер обмена информацией по магистрали. Сигналы управления определяют, какую операцию считывание или запись информации из памяти нужно производить, синхронизируют обмен информацией между устройствами. Кроме того, каждое внешнее устройство, которому нужно обратиться к процессору, имеет на этой шине собственную линию. Когда периферийное устройство «хочет обратиться» к процессору, оно устанавливает на этой линии специальный сигнал (сигнал прерывания), заметив который, процессор прерывает выполняемые в этот момент действия и обращается (командой чтения или записи) к устройству.
Рассмотрим в качестве примера, как процессор читает содержимое ячейки памяти (см. таблицу). Убедившись, что шина в данный момент свободна, процессор помещает на шину адреса требуемый адрес и устанавливает необходимую служебную информацию (операция – чтение, устройство – ОЗУ и т.п.) на шину управления. Теперь ему остается только ожидать ответа от ОЗУ. Последний, “увидев” на шине обращенный к нему запрос на чтение информации, извлекает содержимое необходимой ячейки и помещает его на шину данных. Разумеется, реальный процесс значительно подробнее.
Особо отметим, что обмен по шине при определенных условиях и при наличии определенного вспомогательного оборудования может происходить и без непосредственного участия процессора, например, между устройством ввода и внутренней памятью.
Подчеркнем также, что описанная нами функциональная схема на практике может быть значительно сложнее. Современный компьютер может содержать несколько согласованно работающих процессоров, прямые информационные каналы между отдельными устройствами, несколько взаимодействующих магистралей и т.д. Тем не менее, если понимать наиболее общую схему, то разобраться в конкретной компьютерной системе будет уже легче.
Магистральная структура позволяет легко подсоединять к компьютеру именно те внешние устройства, которые нужны для данного пользователя. Благодаря ей удается скомпоновать из стандартных блоков любую индивидуальную конфигурацию компьютера.
Таким образом, Все устройства (модули) компьютера подключаются к магистрали. Однако, непосредственно к магистрали можно подключить лишь процессор и оперативную память, остальные устройства подключаются с помощью специальных согласующих устройств — контроллеров (контроллер клавиатуры, контроллер дисководов, видеоадаптер и т.д.)
Необходимость использования контроллеров вызвана тем, что функциональные и технические параметры компонентов компьютера могут существенно различаться, например, их быстродействие. Так, процессор может проводить сотни миллионов операций в секунду, тогда как пользователь может вводить с клавиатуры, в лучшем случае 2-3 знака в секунду. Контроллер клавиатуры как раз и обеспечивает согласование скорости ввода информации со скоростью ее обработки.
Контроллер жестких дисков обычно находится на системной плате. Существуют различные типы контроллеров жестких дисков, которые различаются по количеству подключаемых дисков, скорости обмена информацией, максимальной емкости диска и др.
- Свежие записи
- Нужно ли менять пружины при замене амортизаторов
- Скрипят амортизаторы на машине что делать
- Из чего состоит стойка амортизатора передняя
- Чем стянуть пружину амортизатора без стяжек
- Для чего нужны амортизаторы в автомобиле
🌟 Видео
Как работает компьютер? Шины адреса, управления и данных. Дешифрация. Взгляд изнутри!Скачать
КОМАНДНАЯ СТРОКА ДЛЯ САМЫХ МАЛЕНЬКИХСкачать
Что такое CAN шинаСкачать
Лекция 308. Шина I2CСкачать
Основы Работы с Командной Строкой на ПРАКТИКЕСкачать
Шины для иммобилизации - обзор и сравнениеСкачать
Урок №18. Цифровые интерфейсы современного автомобиля: шины данных CAN и LINСкачать
Лекция 281. Шина ISAСкачать
Команды в cmd для новичковСкачать
КАК работает ПРОЦЕССОР? ОБЪЯСНЯЕМСкачать
Шина CAN. Часть 1. Разбираемся как работает CAN bus, разберем кадр данных до "костей".Скачать
КС | 1.1. Возможности командной строкиСкачать
Шины для внедорожников что выбрать AT и MT General Tire GRABBERСкачать