Бройдо В.Л., Ильина О.П. Архитектура ЭВМ и систем (2006) (1186249), страница 77
Текст из файла (страница 77)
Неявная адресация — адрес операнда в команде не указан, но он подразумевается кодом операции. Адресация ячеек основной памяти ПК имеет две разновидности: О относительную; Ы стековую. 351 Адресация регистров и ячеек памяти в ПК Относительная адресация Абсолютный (А„, ) адрес формируется как сумма адресов исполнительного (Амсе) и сегментного (А„м ): '1абс '1ссгм '1мса Аи — 20-битовый начальный адрес сегмента, который является увеличенным в 16 раз (сдвинутым на 4 бит влево) 16-битовым адресом сегмента А;,, хранящимся в одном из 16-битовых сегментных регистров. Начальный адрес сегмента в таком варианте всегда кратен 16 байтам, и он может быть полностью идентифицирован значением А'„,м (сегмент всегда состоит из целого числа параграфов, а параграф равен 16 байт), то есть А„- 16 А;, А '„0000.
16-битовый исполнительный адрес может в ПК представлять собой сумму 3-х адресов: Асс Асмег г1+АбазЦ+Аггг Й где А,м,и — 16-битовый адрес смешения относительно начала сегмента (или относительно базы, если есть Аб ); А~ — 16-битовый адрес смещения базы адреса операнда относительно начала сегмента; А„м, — адрес индекса (или просто индекс) — дополнительная составляющая адреса операнда, часто использующаяся при программировании циклических процессов с массивами и таблицами. Индекс должен быть непосредственно задан в соответствующем регистре МПП.
При адресации данных могут использоваться все составляющие адреса: где А„- 16 А'; А', берется из регистра ЭБ по умолчанию или из регистра ЕВ, если это указано в программе; А~ и Аи берутся, соответственно, из регистров ВХ и индексных (8! или Р1), а А,м, в явном или неявном виде указываются в программе. При адресации команд программы могут использоваться только две составляющие адреса: '1абс = "1сегм+ '1мса = Асегм Асмеи= '1 ссгм' 16 + Асмеи А' берется из регистра СЗ, а А,м,и — из регистра !Р. Стекоаая адресация В стековой памяти (стеке) доступ к ячейкам памяти не произвольный, а по принципу епоследний записанный операнд первым считывается» (гП.О): Аабс Ассгм+ [Абаз1 + Асмам 16-битовый адрес сегмента А' берется из регистра ЗВ, смешения относительно начала сегмента стека автоматически считываются из регистров ВР (смещение базы стека — Аб ) и БР (смещение активной ячейки стека, в которую записыва- 352 Глава 17.
Программное управление — основа автоматизации вычислений ется или из которой считывается информация, — «вершины стека» относительно базы — А к). В защищенном (многопрограммном) режиме работы микропроцессора начальные адреса сегментов хранятся в таблицах дескрипторов и имеют длину 24 илн 32 бит (в зависимости от типа МП). В сегментных регистрах в этом режиме хранятся селекторы, содержащие адресные ссылки на соответствующие таблицы дескрипторов. Режимы работы компьютеров Однопрограммные и многопрограммные режимы Вычислительные машины могут выполнять обработку информации в разных режимах (рис.17.1): О однопрограммном (монопольном) режиме; О многопрограммном режиме, который можно подразделить: О на режим пакетной обработки информации; О режим разделения машинного времени. Режим разделения времени имеет разновидности: О диалоговый режим; О режим реального времени.
Рис. 17.1. Классификации режимов работы компьютеров Однопрограммный режим использования компьютера — самый простой и применяется во всех поколениях компьютеров. Из современных машин этот режим чаще всего используется в персональных компьютерах, где он называется реальным режимом работы микропроцессора. В этом режиме все ресурсы ПК переда- ЗБЗ Режимы работы компьютеров ются одному пользователю. Пользователь сам готовит и машину, и всю необходимую для решения задач информацию, загружает программу и данные, непосредственно наблюдает за ходом решения задачи и выводом результатов.
Такой вариант называют режимом непосредственного доступа. Однопрограммный режим имеет и второй вариант — косвенного доступа, при котором пользователь не имеет непосредственного контакта с компьютером. В этом варианте пользователь готовит свое задание и отдает его на обработку. Задача запускается в порядке очередности, и по мере готовности результаты решения задачи выдаются пользователю. Этот вариант, бывший когда-то самым распространенным, сейчас практически, по крайней мере на персональных компьютерах, не используется.
Однопрограммный режим непосредственного доступа весьма удобен для пользователя, но для него характерен чрезвычайно низкий коэффициент загрузки оборудования — временные простои многих устройств машины и в период подготовки задачи для решения, и непосредственно при решении задачи (при вычислениях в процессоре простаивают внешние устройства, при печати простаивают процессор, основная и внешняя память и т. д.). Поэтому даже в современных ПК, для которых характерен именно однопрограммный режим (в силу их «персональности»), последний в микропроцессорах обогащается многоступенчатой суперконвейерной обработкой данных, использующей некоторые элементы многопрограммности.
Миогопрограммный (его также называют мультипрограммным, многозадачным, а в ПК и многопользовательским') режим обеспечивает лучшее расходование ресурсов компьютера, но несколько ущемляет интересы пользователя. Для реализации этого режима необходимо прежде всего разделение ресурсов машины в пространстве (на множестве устройств компьютера) и во времени. Естественно, такое разделение ресурсов эффективно может выполняться только автоматически, следовательно, требуется автоматическое управление вычислениями.
Автоматическое управление особо необходимо для распределения памяти между несколькими одновременно запускаемыми программами, поскольку программы готовятся пользователями независимо друг от друга, в них не выполняется предварительно статическое распределение памяти (как и других программных и технических ресурсов машины). В процессе решения задач недопустимо одновременное обращение двух программ к одному и тому же файлу или устройству.
Все названные проблемы решают операционные системы, обеспечивающие многопрограммную работу компьютера, помогают им в этом драйверы устройств машины и автозагрузчики (загрузчики) программ. Важнейшая проблема — защита памяти. Недопустимо несанкционированное, пусть и неодновременное, обращение двух программ к одним и тем же областям памяти для изменения информации. Для предотвращения такого несанкционированного случайного доступа к памяти, выделенной для другой задачи, служит специальная система защиты памяти. Важность проблемы защиты памяти подчеркивается ' Многопользовательский режим, строго говоря, отличаегся от многозадачного хотя бы тем, что и первом требуется дополнительная диспетчеризация, обеспечивающая интерактивный (диалогоеый) режим работы пользователей.
354 Глава 17. Программное управление — основа автоматизации вычислениа тем фактом, что многопрограммный режим работы микропроцессора в ПК обычно называют защищенным режимам. Простейшим вариантом многопрограммного режима является режим пакетной обработки. Он в максимальной степени обеспечивает загрузку всех ресурсов машины, но наименее удобен пользователю. В классических системах пакетной обработки информации все подлежащие решению задачи анализировались я объединялись в различные группы (пакеты) с тем, чтобы в пределах пакета обеспечивалась равномерная загрузка всех устройств машины. Например, задача, связанная с длительным выводом информации на печать, объединялась с задачей, интенсивно использующей внешнюю память, и с задачей, требующей сложных вычислений в процессоре и т.
и. После формирования всех пакетов они по очереди запускались на обработку. Пользователь в этом режиме обращался к машине два раза: первый раз для ввода задания, второй раз для получения результатов— по современной терминологии такой режим относится к режимам группы «огй1пе». В персональных компьютерах, из-за небольшого количества одновременно решаемых задач режим пакетной обработки претерпел существенные изменения и сводится, по существу, к последовательному решению одновременно поступивших задач (пакета задач) в соответствии с их важностью (приоритетностью) н временем поступления.
Переход к решению следующей задачи выполняется только после окончательного завершения текущей. Правда, в развитых системах такой пакетной обработки при внезапном поступлении информации по более приоритетной задаче выполняемая на компьютере менее приоритетная задача уступает свое место (прерывается). Второй частный случай многопрограммного режима — режим разделения времени — характерен тем, что на машине действительно одновременно решается несколько задач, каждой из которых по очереди выделяются кванты времени, обычно недостаточные для полного решения задачи.