Скачать 1.23 Mb.
|
Лекции СПО Лекция № 1 Введение Системное ПО – это комплексы программ, предназначенные для совместного использования технических средств вычислительных систем, для автоматизации создания программ и для выполнения существующих. Все системное ПО делится на 5 классов: 1. ОС. 2. СУФ. 3. Интерфейсная оболочка. 4. Система программирования. 5. Утилиты. Операционная система – это комплекс управляющих и обрабатывающих программ, предназначенных для организации интерфейса взаимодействия между техническими средствами и пользователем с его задачами. ОС предназначена для использования и распределения ресурсов вычислительной системы, для организации надежности вычислений. В общем случае, существует 3 способа взаимодействия программ с техническими средствами: Через использование функций ОС. Через использование функций базовой системы ввода/вывода (BIOS). Например, int 13h обеспечивает доступ к магнитным носителям, int 10h – доступ к видеобуферу и т.д. Прямое обращение к регистрам периферийных устройств. Важнейшие решаемые задачи ОС: 1. Прием от пользователя заданий или команд и их предварительная обработка. 2. Прием запросов на запуск, остановку или приостановку программы. 3. Загрузка программ в оперативную память. 4. Инициализация программ. 5. Идентификация данных и программ. 6. Обеспечение работы СУФ и СУБД. 7. Организация обмена сообщениями и данными между программами. 8. Распределение внутренней памяти и организация виртуальной памяти. 9. Обеспечение мультипрограммного режима работы. 10. Планирование и диспетчеризация задач. 11. Управление операциями ввода/вывода. 12. Организация защиты между управляющимися программами. Упрощенно ОС состоит из двух компонент: базовой системы ввода/вывода (BIOS) и собственно дисковой операционной системы, реализующих следующие функции управления: ![]() Назначение BIOS – управление периферийным оборудованием. BIOS располагается в ПЗУ на материнской плате и представляет собой набор подпрограмм по управлению дисковыми носителями, видеобуфером, принтерами, клавиатурой, системным таймером и т.д. Базовыми языками для СПО следует считать такие языки, которые обеспечивают, с одной стороны, доступ к устройствам на уровне портов ввода/вывода, регистров, аппаратных буферов, управляющих схем и т.д. для эффективной организации всех вычислительных процессов. К таким языкам следует отнести языки программирования ASM и СИ. Ассемблер – это программа, переводящая (компилирующая) мнемонический текст исходной программы, понятный программисту, в машинный код, понятный процессору, т.е. в его систему команд. В повседневной жизни под ASM понимается язык программирования, основанный на системе команд процессора. Лекции № 2 - 3 Архитектурные особенности IBM PC Краткий обзор семейства микропроцессоров фирмы Intel Микропроцессоры (МП) Intel 8086, 8088, 80286, 80386 и 80486, явившиеся в разные годы основой новых моделей персональных компьютеров фирмы IBM (IBM PC, PC/XT , PC/AT, PS/2) при всех своих различиях и особенностях сохраняют единство архитектурных принципов, системы команд и языка программирования, что обеспечивает программную совместимость многочисленных разновидностей компьютеров «типа IBM PC». Важнейшей характеристикой любого микропроцессора является разрядность его внутренних регистров, также внешних шин адресов и данных. МП 8086 имеет 16-разрядную внутреннюю архитектуру и такой же разрядности шину данных. Все регистры внутри процессора, в которых могут хранится данные, имеют длину 16 битов. Таким образом, максимальное целое число (данное или адрес), с которым может работать микропроцессор, составляет 216-1=65536 (64К-1). Однако адресная шина МП 8086 содержит 20 линий, что соответствует адресному пространству 220-1 Мбайт. Для того, чтобы с помощью 16-разрядных адресов можно было обращаться в любую точку 20-разрядного адресного пространства, в микропроцессоре предусмотрена сегментная адресация памяти, реализуемая с помощью четырех сегментных регистров. Суть сегментной адресации заключается в следующем. Исполнительный 20-разрядный адрес любой ячейки памяти вычисляется путем сложения начального адреса сегмента памяти, в котором располагается эта ячейка, со смещением к ней (в байтах) от начала сегмента, которое обычно называют относительным адресом или смещением. Сегментный адрес без четырех младших битов, т. е. Деленный на 16, хранится в одном из сегментных регистров. При вычислении исполнительного адреса процессор умножает содержимое сегментного регистра на 16 (путем сдвига влево на 4 двоичных разряда) и прибавляет к полученному 20-разрядному адресу относительный адрес. Умножение базового адреса на 16 увеличивает диапазон адресуемых ячеек до величины 64 Кбайт * 16 = 1 Мбайт. МП 8088 является, по существу, 8-разрядным вариантом МП 8086. В нем, как и в МП 8086, предусмотрена адресация физической памяти объемом до 1 Мбайт с помощью такого же набора сегментных регистров. Однако шина данных МП 8088 имеет ширину не 16, а 8 разрядов, т.е. доступ к памяти осуществляется байтами. Это обстоятельство никак не отражается на работе с процессором, так как, например, при считывании из памяти операнда-слова микропроцессор автоматически генерирует два цикла магистрали, реализующих чтение младшего и старшего байтов. С другой стороны, 8-разрядная шина данных облегчила согласование этого микропроцессора со схемами, разработанными ранее для 8-разрядных МП 8080 и 8085. МП 80286, используемый как центральный процессор компьютеров IBM PC/AT, является усовершенствованным вариантом МП 8086, дополненным схемами управления памятью и ее защиты. МП 80286 работает с 16-разрядными операндами, но имеет 24-разрядную адресную шину, что соответствует адресному пространству 224=16 Мбайт. Однако описанный выше способ сегментной адресации памяти не позволяет выйти за пределы 1 Мбайт. Для преодоления этого ограничения в МП 80286 (так же, как и в МП 80386) используются два режима работы: реального адреса и виртуального защищенного адреса, или просто защищенный режим. В реальном режиме МП 80286 функционирует фактически так же, как МП 8086 с повышенным быстродействием и может обращаться лишь к 1 Мбайт адресного пространства. Оставшиеся 15 Мбайт памяти, даже если они установлены в компьютере, использоваться не могут. В защищенном режиме по-прежнему используются сегменты и смещения в них, однако начальные адреса сегментов не вычисляются путем умножения на 16 содержимого сегментных регистров, а извлекаются из таблиц сегментных дескрипторов, индексируемых теми же сегментными регистрами. Каждый сегментный дескриптор занимает 6 байтов, из которых 3 байта (24 двоичных разряда) отводятся под сегментный адрес. Тем самым обеспечивается полное использование 24-разрядного адресного пространства. В каждом сегментном регистре под индекс таблицы сегментных дескрипторов отводится 14 двоичных разрядов. Полный логический адрес адресуемой ячейки состоит из 14-разрядного индекса (номера) сегмента и 16-разрядного относительного адреса. Это позволяет каждой программе использовать до 230! байт логического, или виртуального пространства, которое, таким образом, в 64 раза превышает максимально возможный объем физической памяти. Операционная система виртуальной памяти хранит все сегменты выполняемых программ в большом дисковом пространстве, автоматически загружая в оперативную память те или иные сегменты по мере необходимости. МП 80386 и 80486 являются высокопроизводительными процессорами с 32-разрядными шинами данных и адресов и 32-разрядной внутренней архитектурой. Последнее означает, что внутренние регистры этих процессоров, в отличие от процессоров ранних моделей, имеют длину 32 бита. Поэтому максимальное целое число, с который может работать микропроцессор, составляет 232-l=42949б729б (4Г-1). Во многих случаях использование 32-битовых операндов позволяет существенно упростить и ускорить вычисления. Помимо этого, в МП 80386 и 80486 расширен состав регистров, что также предоставляет программисту значительные удобства. Наконец, в новых моделях процессоров имеются встроенные средства поддержки многозадачного режима, а также мультипроцессорных систем. Естественно, что эти процессоры, как и МП 80286, могут работать в реальном и защищенном режимах. В последнем случае микропроцессор позволяет адресовать до 232=4 Гбайт физической памяти и 24б=64 Тбайт виртуальной. При этом следует подчеркнуть, что разработчиками обеспечена полная совместимость новых моделей процессоров со старыми, в том смысле, что программы, написанные для процессоров 8086-80286, т.е. с использованием 16-битовых операндов, выполняются на новых процессорах без всяких исправлений. Фактически программист, создающий программу, предназначенную для работы под управлением MS-DOS, может не задумываться над тем, какой процессор установлен на его компьютере. Используемые в настоящее время версии MS-DOS работают в реальном режиме и не обеспечивают управление виртуальной памятью. В то же время обширные классы программ, в частности, программы управления технологическими процессами или научно-исследовательскими установками, не требуют использования защищенного режима и успешно работают в среде операционной системы MS-DOS. Вообще во многих случаях относительно простая и надежная система MS-DOS, получившая, к тому же, широчайшее распространение, оказывается удобнее более совершенных, но и значительно более сложных систем, реализующих все возможности современным микропроцессоров. ^ В зависимости от модификации персонального компьютера и состава его периферийного оборудования распределение адресного пространства может несколько различаться. Тем не менее, размещение основных компонентов системы довольно строго унифицировано. Типичная схема использования адресного пространства компьютера приведена на рис. 1.1. Значения адресов на этом рисунке, как и повсюду далее в книге, даны в 16-ричной системе счисления. Признаком 16-ричного числа служит буква h, стоящая после числа. 1 ![]() ![]() ![]() ![]() 2 ![]() 5 ![]() ![]() ![]() ![]() Дополнительная память(EMS) (резидентная часть) Дополнительная ![]() для загружаемых прикладных и системных ![]() 6 ![]() 3 ![]() 3 ![]() 6 ![]() 6 ![]() 1 ![]() ![]() 6 ![]() Д ![]() (80286) XMS Расширенная память До 4 Гбайт ( ![]() Первые 640 Кбайт, адресного пространства с адресами от OOOOOh до 9FFFFh отводятся под основную оперативную память, которую еще называют стандартной (conventional). Начальный килобайт оперативной памяти занят векторами прерываний (256 векторов по 4 байта). Вслед за векторами прерываний располагается область данных BIOS, которая занимает адреса от 00400h до 004FFh. В этой области хранятся разнообразные данные, используемые программами BIOS в процессе управления периферийным оборудованием. Так, здесь размещаются: - входной буфер клавиатуры с системой указателей; - адреса последовательных и параллельных портов; - данные, характеризующие настройку видеосистемы (форма курсора и его текущее местоположение на экране, текущий видеорежим, ширина экрана и прочее); - ячейки для отсчета текущего времени; - область межзадачных связей и т.д. Область данных BIOS заполняется информацией в процессе начальной загрузки компьютера и динамически модифицируется системой по мере необходимости; многие прикладные программы обращаются к этой области с целью чтения или модификации содержащейся в ней информации. В области памяти, начиная с адреса 500h, содержатся некоторые системные данные DOS. Вслед за областью данных DOS располагается собственно операционная система, загружаемая из файлов IO.SYS и MSDOS.SYS (IВМВIO.СОМ и IBMDOS.COM для системы PC-DOS). Система обычно занимает несколько десятков Кбайт. Если в файл CONFIG.SYS включены директивы DEVICE=... загрузки устанавливаемых драйверов (ADM.SYS, SMARTDRV.SYS, EMM386.EXE, ANSI.SYS и др.), то они загружаются вслед за системой. Наконец, ниже драйверов размещается резидентная часть командного процессора COMMAND.COM, занимающая около 3 Кбайт. В функции резидентной части COMMAND.COM входит обработка Перечисленные выше компоненты операционной системы занимают обычно 60-90 Кбайт. Вся оставшаяся память до границы 640 Кбайт (называемая иногда транзитной областью) свободна для загрузки любых системных или прикладных программ. Как правило, в начале сеанса в память загружают резидентные программы (русификатор, электронный блокнот, резидентные расширения DOS, программы контроля состояния диска, входящие, например, в состав Нортоновских утилит и др.). При наличии резидентных программ объем свободной памяти уменьшается. Оставшиеся 384 Кбайт адресного пространства, называемого верхней (upper) памятью, первоначально были предназначены для размещения постоянных запоминающих устройств (ПЗУ). Практически под ПЗУ занята только часть адресов. В самом конце адресного пространства, в области FOOOOh...FFFFFh (или EOOOOh... FFFFFh) располагается основное постоянное запоминающее устройство BIOS, а начиная с адреса COOOOh - так называемое ПЗУ расширений BIOS для обслуживания графических адаптеров и дисков. Часть адресного пространства верхней памяти отводится для адресации к видеобуферам графического адаптера. Приведенное на рисунке расположение видеобуферов характерно для адаптера EGA; для других адаптеров оно может быть иным, например, видеобуфер простейшего монохромного адаптера MDA занимает всего 4 Кбайт и располагается, начиная с адреса ВООООЮ. В состав компьютеров PC/AT наряду со стандартной памятью (640 Кбайт) может входить расширенная (extended) память, максимальный объем которой зависит от ширины адресной шины процессора и при использовании процессора 80286 может достигать 15 Мбайт, а для процессоров 80386/486 - 4 Гбайт. Эта память располагается за пределами первого мегабайта адресного пространства и начинается с адреса lOOOOOh. Реально на машине может быть установлен не полный объем расширенной памяти, а лишь 2-3 Мбайт или даже меньше, например, всего 384 Кбайт. Поскольку функционирование расширенной памяти подчиняется "спецификации расширенной памяти" (Extended Memory Specification, сокращенно XMS), то и саму память часто называют XMS-памятью. Как уже отмечалось выше, доступ к расширенной памяти осуществляется в защищенном режиме, поэтому для MS-DOS, работающей только в реальном режиме, расширенная память недоступна. Однако в современные версии MS-DOS включается драйвер HIMEM.SYS, поддерживающий расширенную память, т.е. позволяющий ее использовать, хотя и ограниченным образом. Конкретно в расширенной памяти можно разместить электронные диски (с помощью драйвера RAMDRIVE.SYS) или кош буферы диска (с помощью драйвера SMARTDRV.SYS). Первые 64 Кбайт расширенной памяти, точнее, 64 Кбайт -16 байт с адресами от lOOOOOh до lOFFEFh, носят специальное название область старшей памяти (High Memory Area, НМА). Эта область замечательна тем, что хотя она находится за пределами первого мегабайта, к ней можно обратиться в реальном режиме работы микропроцессора, если определить сегмент, начинающийся в самом конце мегабайтного адресного пространства. с ялпрся FFFFOh. и разрешить использование адресной линии А20. Первые 16 байтов этого сегмента заняты ПЗУ, область же со смещениями 0010h...FFFFh можно, в принципе, использовать под программы и данные. MS-DOS позволяет загружать в НМА (директивой файла CONFIG.SYS DOS=HIGH) значительную часть самой себя, в результате чего занятая системой, область стандартной памяти существенно уменьшается. Старшую память обслуживает тот же драйвер HIMEM.SYS, поэтому загрузка DOS и НМА возможна, только если установлен HIMEM.SYS. Как видно из приведенного выше рисунка, часть адресного пространства верхней памяти, не занятая расширениями BIOS и видеобуферами, оказывается свободной. На компьютерах с МП 80386 и 80486 эти свободные участки можно использовать для адресации к расширенной памяти (конечно, не ко всей, а лишь к той ее части, объем которой совпадает с общим объемом свободных адресов верхней памяти). Пере отображение расширенной памяти на свободные адреса верхней памяти выполняет драйвер ЕММ386.ЕХЕ, а сами участки верхней памяти, "заполненные" расширенной, называются блоками верхней памяти (Upper Memory Blocks, UMB). MS-DOS позволяет загружать в UMB устанавливаемые драйверы устройств, а также резидентные программы-расширения DOS (APPEND.EXE, DOSKEY.COM, KEYB.COM и др.). Загрузка системных программ в UMB освобождает от них стандартную память, увеличивая ее транзитную область. В UMB можно загрузить также и прикладные резидентные программы. Загрузка в UMB драйверов осуществляется директивой файла CONFIG.SYS DEVICEHIGH (вместо директивы DEVICE), a загрузка резидентных программы - командой DOS LOADHIGH. По умолчанию драйвер ЕММ386.ЕХЕ преобразует в UMB 128 Кбайт расширенной памяти, располагая ее по адресам СООО... CFFF. При необходимости (если, например, на эти адреса настроено какое-то нестандартное внешнее устройство) объем, и расположение UMB в адресном пространстве верхней памяти можно изменить с помощью ключей в строке установки драйвера ЕММ386.ЕХЕ. Независимо от наличия и объема расширенной (XMS) памяти, компьютер может быть укомплектован платой с дополнительной памятью, не отвечающей каким-либо определенным адресам 16-мегабайтного адресного пространства. Эта память функционирует в соответствии со спецификацией Lotus-Intel-Microsoft Expanded Memory Specification (LIM EMS) и может достигать объема (в версии EMS 4/0) 32 Мбайт. Обращение к EMS-памяти осуществляется через относительно узкие окна (физические страницы) размером по 16 Кбайт, в качестве которых используется часть адресного пространства верхней памяти (от границы 640 Кбайт до 1 Мбайт). Любой блок дополнительной памяти, называемый логической страницей, может быть отображен на физическую страницу в верхней памяти, чем и обеспечивается прямая (хотя и не одновременная) адресация всего пространства дополнительной памяти. В дополнительной памяти, как и в расширенной, обычно размещают электронные диски или кеш- буферы, хотя спецификация EMS 4.0 допускает (в отличие, от EMS 3.2) выполнение программ, находящихся в дополнительной памяти. Компьютеры типа PC/AT или PS/2 обычно оснащаются расширенной памятью того или иного объема, но не всегда дополнительной. Между тем, некоторые программы в процессе своего выполнения обращаются к дополнительной памяти и при ее отсутствии просто не будут функционировать. Для того, чтобы позволить таким программам выполняться на компьютерах без дополнительной памяти, предусмотрена возможность преобразования части расширенной памяти в дополнительную. Это преобразование осуществляет тот же драйвер ЕММ386.ЕХЕ. По умолчанию для отображения дополнительной памяти используется диапазон адресов верхней памяти DOOO...DFFF, который в этом случае, естественно, выпадает из области блоков верхней памяти UMB. При необходимости область отображения дополнительной памяти можно изменить. 1.3. Регистры процессора Как уже отмечалось выше, внутренняя архитектура микропроцессоров Intel практически совпадает, если не рассматривать имеющихся в старших моделях процессоров (начиная с МП 80286)' схем организации защищенного режима. Поэтому ниже все эти микропроцессоры будут рассматриваться вместе под общим названием "процессор". Процессор содержит двенадцать 16-разрядных программно - адресуемых регистров, которые принято объединять в три группы: регистры данных, регистры-указатели и сегментные регистры. Кроме того, в состав процессора входят счетчик команд и регистр флагов (рис. 1.2). В группу регистров данных включаются регистры АХ, ВХ, СХ и DX. Программист может использовать их по своему усмотрению для временного хранения любых объектов (данных или адресов) и выполнения над ними требуемых операций. При этом регистры допускают независимое обращение к старшим (АН, ВН, СН и DH) и младшим (AL, BL, CL и DL) половинам. Так команда mov BL, AH пересылает старший байт регистра АХ в младший байт регистра ВХ, не затрагивая при этом вторых байтов этих регистров. Заметьте, что сначала указывается операнд-приемник, а после запятой - операнд-источник. Во многих случаях регистры данных вполне эквивалентны, однако предпочтительнее пользоваться регистром АХ, поскольку многие команды занимают в памяти меньше места и выполняются быстрее, если их операндом является регистр АХ (или его половины AL или АН). С другой стороны, ряд команд использует определенные регистры неявным образом. Так, все команды циклов используют регистр СХ в качестве счетчика числа повторений; в командах умножения и деления регистры АХ и DX выступают в качестве неявных операндов; операции ввода-вывода можно осуществлять только через регистр АХ (или AL) и т.д. Индексные регистры SI и DI так же, как и регистры данных, могут использоваться произвольным образом. Однако их основное назначение - хранить индексы (смещения) относительно некоторой базы (т.е. начала массива) при выборке операндов из памяти. Адрес базы при этом может находиться в базовых регистрах ВХ или ВР. Специально предусмотренные команды работы со строками используют регистры SI и DI в качестве неявных указателей в обрабатываемых строках. Регистр ВР служит указателем базы при работе с данными в стековых структурах, но может использоваться и произвольным образом в большинстве арифметических и логических операций. Последний из группы регистров-указателей, указатель стека SP, стоит особняком от других в том отношении, что используется исключительно как указатель вершины стека, обеспечивая выполнение стековых команд (PUSH, POP и др). Однако это не исключает его использование в качестве операнда в арифметических операциях или операциях пересылки, если требуется изменить положение вершины стека. Регистры SI, DI, ВР и SP, в отличие от регистров данных, не допускают побайтовую адресацию. Четыре сегментных регистра CS, DS, ES и SS являются важнейшим элементом архитектуры процессора, обеспечивая адресацию 20-разрядного адресного пространства с помощью 16-разрядных операндов.
Регистры-указатели SI DI ВР SP Сегментные регистры CS DS ES SS Прочие регистры IP FLAGS Аккумулятор Базовый регистр Счетчик Регистр данных Индекс источника Индекс приемника Указатель базы Указатель стека Регистр программного сегмента Регистр сегмента данных Регистр дополнительного сегмента данных Регистр сегмента стека Указатель команд Регистр флагов Рис.1.2. Регистры процессора. Обращение к памяти (как к стандартной памяти в пределах 640 Кбайт, так и к буферам или ПЗУ в области 640 Кбайт -1 Мбайт) осуществляется исключительно посредством сегментов - логических образований, накладываемых на любые участки физического адресного пространства. Размер сегмента должен находиться в пределах 0 байт - 64 Кбайт (допустимы и иногда используются сегменты нулевой длины). Начальный адрес сегмента, деленный на 16, т.е. без младшей 16-ричной цифры, заносится в один из сегментных регистров. Как правило, это действие выполняет программист с помощью соответствующих программных строк. При обращении к памяти процессор извлекает из сегментного регистра сегментный базовый адрес, умножает его на 16 сдвигом влево на 4 двоичных разряда и складывает с заданным каким-либо образом относительным адресом (смещением), получая 20-разрядный физический адрес адресуемой ячейки памяти (слова или байта). Этот процесс проиллюстрирован на рис. 1.3 на конкретном примере команды inc meml. Оперативная память слова
Код команды inc meml Смещение к ячейке meml I—— Содержимое DS - 10E2h 10E20h Базовый адрес сегмента (на границе параграфа) lDE22h lDE24h lDE26h Физический адрес ячейки meml 10Е28П Вычисление физического адреса: lDE2h * 10h = lDE20h + ООО6h =1DE26h |
![]() | Анализ к ф. м н., доцент Рудой Евгений Михайлович 2013-2014 уч год Лекция (2 часа) Введение. Нормированные пространства. Компактные множества. Теорема Хана-Банаха | ![]() | Лекция введение Материалы данного файла могут быть использованы без ограничений для написания собственных работ с целью последующей сдачи в учебных... |
![]() | Лекция «Сущность и проблемы вэд, состояние вэд в России» 1 час. 2... Лекция «Внешнеэкономические операции и сделки: виды, классификация, организация» 1 час | ![]() | Лекция 1 введение Петрофизика сформировалась к началу 60-х годов, когда появились обобщающие труды по всем вопросам изучения физических свойств пород... |
![]() | 1. Лекция: Введение. История, предмет, структура информатики Хотя информатика и считается достаточно молодой наукой по отношению ко многим другим отраслям знания, но предпосылки к ее зарождению... | ![]() | Лекция №1. Введение в Экономикс. Основная проблема экономики и производственные... Под материальными потребностями подразумевается желания потребителей приобрести и использовать товары и услуги, которые доставят... |
![]() | Лекция №1 Лекция № Общие принципы эффективной организации учебного процесса. Физиологическая цена учебных нагрузок | ![]() | Лекция №1 Лекция № Общие принципы эффективной организации учебного процесса. Физиологическая цена учебных нагрузок |
![]() | Лекция №1 Лекция № Общие принципы эффективной организации учебного процесса. Физиологическая цена учебных нагрузок | ![]() | Лекция №1 Лекция № Общие принципы эффективной организации учебного процесса. Физиологическая цена учебных нагрузок |