Ћекции.ќрг


ѕоиск:




 атегории:

јстрономи€
Ѕиологи€
√еографи€
ƒругие €зыки
»нтернет
»нформатика
»стори€
 ультура
Ћитература
Ћогика
ћатематика
ћедицина
ћеханика
ќхрана труда
ѕедагогика
ѕолитика
ѕраво
ѕсихологи€
–елиги€
–иторика
—оциологи€
—порт
—троительство
“ехнологи€
“ранспорт
‘изика
‘илософи€
‘инансы
’ими€
Ёкологи€
Ёкономика
Ёлектроника

 

 

 

 


“ипы данных




ќсновными типами данных €вл€ютс€ байты, слова и двойные слова (смотри –исунок 2-2). Ѕайт образуют восемь соседних битов, которые нумеруютс€ с 0 до 7, причем бит 0 €вл€етс€ самым младшим значащим битом.

—лово состоит из двух байтов, имеющих последовательные адреса. “.о. слово содержит 16 бит, которые нумеруютс€ от 0 до 15. Ѕайт, содержащий нулевой бит, называетс€ младшим байтом, а байт, содержащий 15-й бит - старшим байтом. ¬ процессоре i486 младший байт хранитс€ по меньшему адресу. јдресом слова считаетс€ адрес его младшего байта. јдрес старшего байта может быть использован дл€ доступа к старшей половине слова.

–ис. 2-1 —егментна€ адресаци€

ƒвойное слово состоит из четырех байт, имеющих последовательные адреса. “.о. двойное слово содержит 32 бита, которые нумеруютс€ от 0 до 31. —лово, содержащее нулевой бит, называетс€ младшим словом, а слово, содержащее 31-й бит - старшим словом. ћладшее слово хранитс€ по меньшему адресу. јдресом двойного слова считаетс€ адрес его младшего слова. јдрес старшего слова может быть использован дл€ доступа к старшей половине двойного слова.

ƒл€ достижени€ максимальной гибкости в структурах данных и эффективного использовани€ пам€ти, слова необ€зательно выравнивать по четным адресам. ƒвойные слова также необ€зательно выравнивать по адресам, кратным четырем. ќднако, из-за того, что процессор i486 имеет 32-разр€дную шину, обмен данными между процессором и пам€тью производитс€ двойными словами, начинающимис€ с адресов, кратных четырем. ѕроцессор преобразует запросы невыровненных слов или двойных слов в последовательность запросов, допустимых дл€ интерфейса с пам€тью. “аким образом, отсутствие выравнивани€ данных снижает производительность из-за увеличени€ количества обращений к пам€ти. ƒл€ повышени€ производительности структуры данных (особенно стеки) следует выравнивать по четным адресам и по адресам, кратным четырем.

–исунок 2-2. ќсновные типы данных

–исунок 2-3. Ѕайты, слова и двойные слова в пам€ти

“.к. байты, слова и двойные слова €вл€ютс€ основными типами операндов, процессор также поддерживает дополнительную интерпретацию этих операндов. —пециализированные команды распознают следующие типы данных (смотри –исунок 2-4):

  • ÷елый тип: знаковое двоичное значение, содержащеес€ в 32-разр€дном двойном слове, 16-разр€дном слове или 8-разр€дном байте. ¬се операции предполагают представление чисел в дополнительном коде. «наковый бит расположен в бите 7 в байте, в бите 15 в слове и в бите 31 в двойном слове. ќн равен 0 дл€ положительных чисел и 1 дл€ отрицательных. 8-разр€дное целое число может измен€тьс€ в диапазоне от -128 до |127, 16-разр€дное целое число в диапазоне от -32768 до |32767, а 32-разр€дное целое число в диапазоне от -2**31 до |2**31-1.
  • ќбычный тип: беззнаковое двоичное значение, содержащеес€ в 32-разр€дном двойном слове, 16-разр€дном слове или 8-разр€дном байте. «начение числа дл€ байта может измен€тьс€ от 0 до 255, дл€ слова от 0 до 65535 и дл€ двойного слова от 0 до 2**32-1.
  • Ѕлижний указатель: 32-разр€дный логический адрес, который представл€ет собой относительный адрес внутри сегмента. Ѕлижние указатели используютс€ дл€ всех указателей в сплошной модели и дл€ ссылок внутри сегмента в сегментированной модели пам€ти.
  • ƒальний указатель: 48-разр€дный логический адрес из двух компонентов: 16-разр€дного селектора сегмента и 32-разр€дного относительного адреса. ƒальние указатели используютс€ программами только в том случае, когда конструкторы системы выбирают сегментированную модель пам€ти. —трока: непрерывна€ последовательность байтов, слов или двойных слов.
  • —трока может содержать от 0 до 2**32-1 байтов или 4 √байт. Ѕитовое поле: непрерывна€ последовательность битов, в которой каждый бит рассматриваетс€ как независима€ переменна€.
  • Ѕитовое поле может начинатьс€ с любого бита любого байта и может быть длиной до 32 бит. Ѕитова€ строка: непрерывна€ последовательность битов.
  • Ѕитова€ строка может начинатьс€ с любого бита любого байта и иметь длину до (2**32-1) бит.
  • Ќеупакованный двоично-дес€тичный тип (Ќƒƒ): распакованное байтовое представление дес€тичной цифры от 0 до 9. –аспакованные дес€тичные числа хран€тс€ как беззнаковые байтовые значени€ по одной цифре в каждом байте. «начение цифры определ€етс€ младшим полубайтом. —тарший полубайт должен быть равным нулю при делении и умножении, но может иметь любое значение при вычитании или сложении.
  • ”пакованный двоично-дес€тичный тип (”ƒƒ): упакованное байтовое представление двух дес€тичных цифр от 0 до 9.  ажда€ цифра хранитс€ в своем полубайте. ÷ифра в старшем полубайте €вл€етс€ более значимой. ƒиапазон упакованного дес€тичного байта составл€ет от 0 до 99.
  • ¬ещественные типы (типы данных с плавающей точкой).

–исунок 2-4. “ипы данных

 

 

»стори€ развити€ ¬“ в св€зи с историей развити€ системного программного обеспечени€.

—овременные компьютерные системы нар€ду с прикладным ѕќ всегда содержат системное, которое обеспечивает организацию вычислительного процесса. »стори€ системного программного обеспечени€ св€зана с по€влением первой развитой в современном понимании ќ— UNIX.

1965 - Bell labs разрабатывает операционную систему Multix - прообраз UNIX, имеющий далеко не все части современной системы. ƒо этого времени не существовало мобильных ќ— (переносимых на разные типы машин) и Multix также не был мобильной ќ—.

1971 - написан UNIX дл€ работы на мощнейшей платформе того времени PDP - 11

1977 - —тановитс€ переносимой системой, т.к. переписан на €зыке C (AT&T system V)

1981 - платформа Intel начинает резко наращивать свои возможности.  олоссальным прорывом было создание 8088, затем 8086, 80286, etc. ѕо€вл€етс€ однопользовательска€ ќ— MS-DOS, на 10 лет ставша€ стандартом де-факто дл€ пользователей персональных компьютеров. Ќо дл€ машин с процессором Intel по€вл€ютс€ и версии UNIX.

 онец 80 Ц начало 90 гг. Ц аппаратные средства резко увеличивают свою мощность. Microsoft создает новую ќ— Windows NT и по€вл€етс€ стандарт Win32. ѕозже по€вл€етс€ Windows 95 Ц ќ— дл€ одного рабочего места, но имеюща€ многие возможности NT, призванна€ вытеснить MS-DOS. јппаратные средства позвол€ют создавать 64-битные версии такой ќ—, как UNIX, и в скором времени она по€вл€етс€ и используетс€ на платформе Alpha фирмы DEC. — наращиванием мощности аппаратных средств системное программное обеспечение становитс€ все более изощренным и имеющим большие возможности.

2. ќбща€ классификаци€ вычислительных машин. —овременные архитектурные линии Ё¬ћ. —истемное ѕќ и его место в современной информатике.

Ё¬ћ €вл€ютс€ преобразовател€ми информации. ¬ них исходные данные задачи преобразуютс€ в результат ее решени€. ¬ соответствии с используемой формой представлени€ информации машины дел€тс€ на два класса: непрерывного действи€ - аналоговые и дискретного действи€ - цифровые. ¬ силу универсальности цифровой формы представлени€ информации цифровые электронные вычислительные машины представл€ют собой наиболее универсальный тип устройства обработки информации. ќсновные свойства Ё¬ћ - автоматизаци€ вычислительного процесса на основе программного управлени€, огромна€ скорость выполнени€ арифметических и логических операций, возможность хранений большого количества различных данных, возможность решени€ широкого круга математических задач и задач обработки данных. ќсобое значение Ё¬ћ состоит в том, что впервые с их по€влением человек получил орудие дл€ автоматизации процессов обработки информации. ”правл€ющие Ё¬ћ Ц предназначены дл€ управлени€ объектом или производственным процессом. ƒл€ св€зи с объектом их снабжают датчиками. Ќепрерывные значени€ сигналов с датчиков преобразуютс€ с помощью аналогово-цифровых преобразователей в цифровые сигналы, кот. ввод€тс€ в Ё¬ћ в соотв с алгоритмом упр-€. ѕосле анализа сигналов формируютс€ упр. воздействи€, которые с пом. цифро-аналоговых преобразователей преобразуютс€ в аналоговые сигналы. „ерез исполнительные механизмы измен€етс€ состо€ние объекта.

”ниверсальные Ё¬ћ Ц предназначены дл€ решени€ большого круга задач, состав которых при разаработке Ё¬ћ не конкретизируетс€.

ѕример современных архитектурных линий Ё¬ћ: персональные Ё¬ћ (IBM PC и Apple Macintosh Ц совместимые машины), машины дл€ обработки специфической информации (графические станции Targa, Silicon Graphics), большие Ё¬ћ (мэйнфреймы IBM, Cray, ≈— Ё¬ћ).

ќбщее назначение системного ѕќ - обеспечивать интерфейс между программистом или пользователем и аппаратной частью Ё¬ћ (операционна€ система, программы-оболочки) и выполн€ть вспомогательные функции (программы-утилиты) —овременна€ операционна€ система обеспечивает следующее:

1) ”правление процессором путем передачи управлени€ программам.

2) ќбработка прерываний, синхронизаци€ доступа к ресурсам.

3) ”правление пам€тью.

4) ”правление устройствами ввода-вывода.

5) ”правление инициализацией программ, межпрограммные св€зи.

1) ”правление данными на долговременных носител€х путем поддержки файловой системы.

—м. также стандарты в (1).

1. ќбщее пон€тие архитектуры. ѕринципы построени€ ¬— 4-го поколени€.

јрхитектура Ц совокупность технических средств и их конфигураций, с помощью которых реализована Ё¬ћ. Ё¬ћ 4 поколени€, имеет, как правило, шинную архитектуру, что означает подключение всех устройств к одной электрической магистрали, наз. шиной. ≈сли устройство выставило сигнал на шину, другие могут его считать. Ёто свойство используетс€ дл€ организации обмена данными. — этой целью шина разделена на 3 адреса Ц шина адреса, шина данных и шина управл€ющего сигнала. ¬се современные Ё¬ћ также включают устройство, наз. арбитром шины, которое определ€ет очередность зан€ти€ ресурсов шины разными устройствами. ¬ PC распространены шины ISA, EISA, PCI, VLB.

ѕроцессор (÷ѕ) Ц устройство, выполн€ющее вычислительные операции и управл€ющее работой машины. —одержит устройство управлени€, выбирающее машинные команды из пам€ти и выполн€ющее их, и арифметико-логическое устройство, выполн€ющее арифметические и логические операции. –абота всех электронных устройств машины координируетс€ сигналами, вырабатываемыми ÷ѕ. ¬ современных ѕ  процессор представлен одной —Ѕ»—, содержащей свыше миллиона транзисторов.

ќперативна€ пам€ть Ц предназначена дл€ хранени€ программ и данных, которыми они манипулируют. ‘изически выполнена в виде некоторого числа микросхем. Ћогически ќѕ можно представить как линейную совокупность €чеек, кажда€ из которых имеет свой номер, называемый адресом. ¬рем€ записи и чтени€ из ќѕ в современных машинах занимает доли микросекунды, а дл€ других устройств это врем€ в 10-1000 раз больше.

¬нешние устройства Ц устройства ввода и вывода информации. ѕоскольку, как правило, они работают значительно меделенне остальных, управл€ющее устройство должно приостанавливать программу дл€ завершени€ операции ввода-вывода с соответствующим устройством.

1. ѕрограммна€ модель Ё¬ћ. ќсновной командный цикл процессора. ѕон€тие системы команд.

2. јдресаци€. ƒанные в Ё¬ћ: структура и форматы представлени€.

јдресаци€ на примере процессора 8086.

„исла, устанавливаемые процессором на адресной шине, €вл€ютс€ адресами, т.е. номерами €чеек оперативной пам€ти, из которых необходимо считывать очередную команду или данные. –азмер €чейки оперативной пам€ти составл€ет 8 разр€дов, т.е. 1 байт. ѕоскольку процессор использует 16-разр€дные адресные регистры, то это обеспечивает ему доступ к 65536 (FFFFh) байт или 64  (1K=1024 байт) основной пам€ти. “акой блок непосредственно адресуемой пам€ти называетс€ сегментом. Ћюбой адрес формируетс€ из адреса сегмента (всегда кратен 16) и адреса €чейки внутри сегмента (этот адрес называют смещением). Ќа компьютерах, оснащенных процессором 8086, оперативна€ пам€ть обычно имеет размер, равный 640 . ƒл€ того чтобы работать с пам€тью такого размера, процессор осуществл€ет пересчет адресов с помощью процедуры, называемой вычислением эффективного адреса (рис.2.3).

‘изический 20-разр€дный адрес вычисл€етс€ сложением сдвинутого влево на 4 разр€да 16-разр€дного адреса сегмента оперативной пам€ти со значением 16-разр€дного смещени€ относительно начала этого сегмента. »спользу€ 20-разр€дные адреса, можно адресовать 1ћ оперативной пам€ти (1M=1024K=1048576 байт). ¬ программе на ассемблере полный адрес записываетс€ в виде SSSS:0000, гдe SSSS значение сегмента; 0000 Ц значение смещени€. ”часток оперативной пам€ти размером 16 байт называетс€ параграфом.

ƒанные в Ё¬ћ Ц подраздел€ютс€ на числовые и нечисловые.

„исловые данные:

1) ÷елые типы Ц дл€ представлени€ целых чисел.

2) ¬ещественные типы Ц дл€ представлени€ рациональных чисел. Ѕывают:

а) с фиксированной точкой;

б) с плавающей точкой.

Ќечисловые данные:

1) Ћогические данные Ц принимающие значение истина или ложь.

2) —троковые данные.

3) ћножества.

4) ѕроизвольные данные (текст, звук, графика).

1. ќрганизаци€ ввода-вывода, классификаци€ внешних устройств.

ќрганизаци€ ввода-вывода в современных Ё¬ћ осуществлена с использованием прерываний. Ёто св€зано с тем, что ”¬¬ работают намного медленнее, чем процессор и оперативна€ пам€ть. ѕоэтому управл€ющее устройство должно приостанавливать выполнение программы и ждать завершени€ операции ввода-вывода с внешним устройством. ѕри выводе все результаты выполненной программы должны быть выведены на ¬”, после чего процессор переходит к ожиданию сигналов от ¬”. ѕри вводе, например, с клавиатуры получение значений нажатых клавиш осуществл€етс€ при поступлении прерывани€ от клавиатуры.

2. —истемные особенности архитектур Ё¬ћ. ѕримеры эволюции современных ¬  Ц IBM 370, PDP11/VAX, Intel 80X86, RISC.

—истемные особенности архитектур Ё¬ћ заключаютс€ в отличи€х аппаратных средств, на которых реализована машина.

≈дина€ система электронных вычислительных машин (≈— Ё¬ћ, аналог IBM 370) представл€ет собой семейство программно-совместимых машин третьего поколени€.  ажда€ и машин семейства состоит из:

- процессора;

- оперативной пам€ти;

- каналов устройств, обеспечивающих операции обмена данными между пам€тью и внешними устройствами независимо от процессора;

- набора внешних устройств ввода-вывода, выполн€ющих обмен информацией между внешними носител€ми и каналами.

ƒл€ ≈— Ё¬ћ характерно наличие каналов - специализированных процессоров, позвол€ющих освободить процессор от выполнени€ операций ввода-вывода и тем самым повысить скорость обмена с внешними устройствами. ¬ машинах семейства ≈— с помощью каналов обеспечиваетс€ параллельна€ работа процессора и внешних устройств, а также параллельное выполнение операций ввода-вывода с несколькими внешними устройствами.

¬ основу построени€ ≈— Ё¬ћ положен принцип модульности, позвол€ющий по желаланию пользовател€ наращивать вычислительную мощность (замен€ть процессоры), расшир€ть емкость оперативной пам€ти, добавл€ть внешние устройства.

ћашины имеют большие наборы команд, развитое системное программное обеспечение, включающее трансл€торы €зыков программировани€ јссемблер, ‘ќ–“–јЌ, ѕЋ/1,  ќЅќЋ, јЋ√ќЋ, ѕј— јЋ№, операционные системы с различными функциональными возможност€ми.

ќсновна€ особенность управл€ющих вычислительных машин типа PDP-11 заключаетс€ в том, что взаимодействие между всеми устройствами, вход€щими в состав комплексов, включа€ процессор, и оперативным запоминающим устройством (ќ«”) осуществл€етс€ при помощи единого унифицированного интерфейса, получившего название "Oбща€ шина" (ќЎ). Oбща€ шина €вл€етс€ каналом, через который передаютс€ адреса, данные, управл€ющие сигналы на все устройства комплекса, включа€ процессор и пам€ть. ‘изически ќЎ представл€ет собой высокочастотную магистраль передачи данных, состо€щую из 56 линий.

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

¬се устройства комплекса подключаютс€ в ќЎ по единому принципу. Ќекоторым регистрам процессора, регистрам внешних устройств, которые €вл€ютс€ источниками или приемниками при передачи информации, на ќЎ отвод€тс€ адреса. ¬ программах адреса регистров устройств рассматриваютс€ как адреса €чеек пам€ти, что позвол€ет обращатьс€ к ним с помощью адресных инструкций. “ак, программирование операций вывода данных на внешнее устройство практически сводитс€ к пересылке этих данных по определенному адресу.

VAX Ц 11 Ц более развита€ машина, чем PDP-11. Ёто 32-битова€ машина с адресным пространством свыше 4√. ќна по архитектуре похожа на PDP-11, но имеет 2 шинных адаптера Ц адаптер общей шины и адаптер массовой шины. ¬се совместимые с общей шиной периферийные устройства могут быть подключены к ней, тогда как высокоскоростные устройства могут быть подключены к массовой шине через собственные контроллеры. VAX Ц сокр. от английских слов Увиртуальное адресное расширениеФ, т.е. машина имеет виртуальную пам€ть и многозадачность.

ќбычно персональные компьютеры IBM PC состо€т из трех частей: - системного блока;

- клавиатуры;

- диспле€.

—истемный блок содержит все основные узлы компьютера:

- электронные схемы, управл€ющие работой компьютера (микропроцессор, оперативна€ пам€ть, контроллеры устройств и т.д.);

- блок питани€;

- накопители дл€ гибких магнитных дисков;

- накопитель на жестком магнитном диске.

  системному блоку можно подключить р€д дополнительных устройств ввода - вывода.  роме клавиатуры и монитора такими устройствами €вл€ютс€:

- принтер - дл€ вывода на печать текстовой и графической информации;

- мышь - устройство, облегчающее ввод информации в компьютер;

- стример - дл€ хранени€ данных на магнитной ленте;

- модем - дл€ обмена информацией с другими компьютерами через телефонную сеть;

- сканер - прибор дл€ ввода рисунков и текстов в компьютер.

3. ƒвоичное кодирование информации. ѕредставление элементарных типов данных: натуральные числа, целые числа со знаком, числа с плавающей точкой.

—осто€ни€ УустановленФ и УсброшенФ соотв. 2 цифрам двоичной системы счислени€, фундаментальной дл€ Ё¬ћ. Ёти цифры называютс€ битами. ƒвоичное кодирование Ц представление данных последовательностью битов. ѕри двоичном кодировании числовой информации степень двойки при каждой двоичной цифре на единицу больше, чем у предшествующей цифры. ѕример конструкции двоичного кода: 1012=(1*22)+(0*21)+(1*20)=510.

“аким образом осуществл€етс€ представление целых чисел без знака. ќтрицательные числа со знаком представл€ютс€ в дополнительном коде Ц в форме дополнени€ до двух. „тобы найти двоичное представление отрицательного числа, надо вз€ть его полжительную форму, проинвертировать ее и добавить к полученному результату 1.

„ислами с плавающей точкой называютс€ числа вида x=M*Pq, где ћ Ц мантисса, P Ц пор€док, q Ц основание системы счислени€. Ќормализованна€ форма таких чисел:

M Ц дробное, |M| < 1.

Q Ц фиксировано.

P Ц целое число со знаком.

¬ машине в двоичных кодах хранитс€ M и P. ѕор€док, как правило, выравниваетс€, т.е. приводитс€ к большему по модулю пор€дку, путем сдвига мантиссы вправо с меньшим пор€дком на кол-во разр€дов, равное (Pmax-Pmin)log2Q.

4. ѕравила арифметических и логических операций с элементарными типами данных.

5. —войства точности вычислений при работе с плавающей точкой. ѕриемы программировани€, обеспеч. необходимую точность вычислений.

ѕри работе с плавающими числами следует иметь в виду, что результат не полностью соответствует арифметике действительных чисел. ƒиапазон представлени€ чисел: -1*Qp<x<1*Qp. ƒл€ этих чисел пон€тие абсолютной точности замен€етс€ на пон€тие относительна€ точность Ц это минимальное число x, при котором R*(1+x) будет иметь другой код, чем число R. ѕотер€ точности св€зана с ситуацией поглощени€ меньших операндов большими, котора€ в свою очередь св€зана с фиксированным размером мантиссы. —пособ увеличени€ точности Ц увеличение размера мантиссы (числа одинарной, двойной, повышенной точности в €зыках высокого уровн€). ѕри программировании операций с плавающей точкой многих проблем можно избежать, если правильно подобрать необходимые программисту типы данных в зависимости от размерности и точности предполагаемо обрабатываемых вещественных чисел. Ќекоторые ситуации привод€т к ошибкам обработки таких чисел:

а) ѕоглощение меньших операндов большими.

б) —итуаци€ потери точности (lost precision). ƒанный эффект про€вл€етс€, когда вычитаютс€ 2 почти одинаковых числа.

в) —итуаци€ переполнени€. ¬ результате операции пор€док превышает максимально допустимое значение.

г) —итуаци€ обратна€ переполнению (underflow) Ц если пор€док становитс€ меньше минимального значени€.

д) ѕотер€ значимости Ц если мантисса стала равна нулю при ненулевом пор€дке.

6. ѕредставление нечисловой информации. “екстовые данные, символьные коды ASCII, EBSDIC, UNICODE. ќсобенности кодировани€ русского алфавита.

Ћюбой текст представл€ет собой послдовательность литер 0..9 A..Z a..z ј..я а..€. Ќабор литер весьма широк за счет наличи€ национальных €зыков. ѕервые машины имели алфавит только из цифр и латинских букв. Ёти литеры образовали набор символов ASCII, EBSDIC. ¬ этих кодировках общее количество символов не превышает 128 (7 бит).

ѕри представлении в пам€ти текст имеет вид последовательности байтов.

—пособы представлени€ текста

1. ‘иксированна€ длина - |_|_|_|_|_|_|_|.

2. ASCIIZ - |_|_|_|_|_|_|0|.  онец такой строки обозначает зарезервированный символ (не печатаемый). ѕолучила широкое распространение благодар€ €зыку C.

3. Variable Lenght - |x|_|_|_|_|_|. —трока содержит длину и последовательность байтов этой длины. –аспространено в €зыке PASCAL.

ƒл€ представлени€ национальных €зыков, в частности русского, 128 символов в общем случае недостаточно. «десь используетс€:

1) –асширение ASCII Ц испольование 8 бита, теперь можно кодировать 256 символов;

2) UNICODE Ц использование 7 битов, но более чем 1 символа кодировки дл€ представлени€ большего количества литер (например дл€ совместимости с сет€ми, отсекающими 8-й бит при передаче).

¬ насто€щее врем€ почти повсеместно используетс€ 8-битовое кодирование символов.  одова€ таблица Ц графическое представление символов, по которым можно определить код. ѕроблемы при представлении русского алфавита - а) необходимость сортировки по кодам; б) при этом надо оставить на старых местах символы рисовани€ рамок и заполнени€ (псевдографики) дл€ совместимости с иностранными программами. –усска€ кодировка Ц основна€ √ќ—“ Ц имела расположение символов по алфавиту, но в ней были смещены символы псевдографики. ¬ насто€щее врем€ исп. альтернативна€ кодировка √ќ—“ Ц в ней псевдографика оставлена на старом месте, но малые буквы русского алфавита разорваны (160-175, 224-239, 240-241). Ёто немного затрудн€ет сортировку Ц единственный недостаток.  роме того, есть и другие кириллические кодировки Ц MIC,  ќ»-8, ISO-8859, т.п.

1. ѕредставление графической информации Ц растровое и векторное представлени€, разрешающа€ способность, полутоновые и цветные изображени€, палитры.

»спользование Ё¬ћ в автоматизированных системах управлени€, различных информационно-вычислительных системах, системах коллективного пользовани€ (см. гл. 13) требует их укомплектовани€ удобными средствами св€зи человека с машиной. ќдним из таких средств €вл€етс€ устройство ввода-вывода с электронно-лучевой трубкой (ЁЋ“), называемое монитором. ¬ зависимости от типа монитора на экран может выводитьс€ как алфавитно-цифрова€, так и графическа€ информаци€. ”стройство вывода графической информации состоит из видеопам€ти (буфера образа), монитора и устройства сопр€жени€, передающего на монитор содержимое видеопам€ти. ¬ современных машинах первое и третье объединено в видеоадаптере.

ѕри векторном представлении графической информации электронный луч на мониторе непрерывно пробегает между заданными точками, порожда€ отрезок Ц вектор. “акое представление наиболее удобно дл€ изображений, состо€щих из линий и простых геометрических фигур. ¬ этом случае векторное изображение легко масштабируетс€ и требует малый объем пам€ти дл€ хранени€.

≈сли изображение состорит из многих точек разных оттенков (полутоновое изображение), то векторный способ будет слишком сложен в реализации, и используетс€ растровый способ представлени€ Ц разбиение изображени€ на мельчайшие УклеткиФ и вывод на экран сетки точек Ц растра (bitmap). –азрешающа€ способность растра Ц величина, показывающа€, сколько точек может быть выведено на квадратную единицу изображени€ (ед. измерени€ Ц dpi (точек на дюйм)). ƒл€ видеосистемы единицей измерени€ может быть размер выводимой точки и общее количество пикселов, выводимое на экран монитора (например, 1024х768).

¬ случае монохромного изображени€ дл€ кодировани€ 1 точки в буфере образа достаточно одного бита Ц светитс€ или нет. ¬ случае полутонового или цветного изображени€ количество бит на точку буфера должно быть таково, чтобы представить все возможные цвета или оттенки. Ќапример, 8 битами можно представить 256 цветов или оттенков. ¬ таких системах программист имеет доступ к палитре Ц ресурсу видеоадаптера, позвол€ющему устанавливать цвета или оттенки дл€ каждого кода цвета.

2. ѕредставление звуковой информации Ц общее пон€тие о дискретизации и квантовании звуковых сигналов, точность представлени€ звуковых колебаний.

ѕредставление звуковой информации в Ё¬ћ:

а) ѕреобразование в цифровую форму с помощью аналого-цифрового преобразовател€. ѕри этом звук превращаетс€ в цепочку импульсов, сост. из 8 или 16 бит (фактически в вектор 8-битовых ил 16-битовых чисел)

б) ƒискретизаци€ этого сигнала с посто€нной частотой. ≈сли например голос человека дискретизируетс€ с частотой 8 √ц, использу€ 8 бит, на прот€жении 10с, это займет 80 . ѕо дискретизированным значени€м можно восстановить сигнал с заданной точностью и направить его в цифро-аналоговый преобразователь. ”силив сигнал с выхода ÷јѕ, получим звук.

ѕри малой частоте дискретизации часть данных тер€етс€ вследствие т.н. шума квантовани€, и мы не можем достаточно точно воспроизвести данные. «акон Ўеннона дл€ дискретизации: дл€ достижени€ полного соответстви€ восстановленного сигнала исходному следует дискретизировать последний с частотой, в 2 раза превышающей его максимальную частоту. CD-проигрыватели работают с частотой 44K√ц, и на такой частоте звук не тер€ет в качестве.

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

 вантование Ц разбиение функции сигнала через определенный шаг на интервалы - уровни квантовани€ и замена сигнала значени€ми, вз€тыми с этих интервалов.

‘орматы хранени€ оцифрованного звука в файлах:

VOC Ц стандарт де-факто от Creative.

WAV Ц формат оцифрованного звука от Microsoft.

Layer 1, 2, 3 audio MPEG Ц эффективно закодированный (сжатый примерно в 10 раз) формат хранени€ оцифрованного звука - сейчас приобретает наибольшее распространение.

3. ќбщее описание €зыка ASM. “ипы данных. ќформление программ. ‘ормат записи команд.

јссемблер Ц машинно-ориентированный €зык, имеющий 2 основных достоинства. 1)позвол€ет писать программы на уровне команд процессора 2)не требует знани€ этих команд, кажда€ из них замен€етс€ удобной дл€ запоминани€ мнемоникой Ц сокращением английских слов. “рансл€тор переводит мнемоники в их числовые эквиваленты.

Ёлементы €зыка: операторы (команды ассемблера + псевдооператоры макроассемблера), операнды, выражени€, константы, метки, комментарии.

—обственно команды ассемблера процессора Ц м.б. без операндов, с одним или двум€ операндами, использовать различные типы адресации (см. 19)

ѕсевдооператоры Ц 5 групп: определение идентификаторов (EQU), данных (DB), внешние ссылки (PUBLIC, EXTRN), определение сегментов и подпрограмм (SEGMENT, PROC), управление трансл€цией (END).

 онстанты Ц м.б. числовые и литералы (последовательность букв, закл. в апострофы).

 омментарии Ц начинаютс€ с символа; и предназначены дл€ улучшени€ читаемости программы.

ћетки Ц предназначены дл€ организации переходов в программе. ћ.б. локальные и глобальные. ѕредставл€ют собой символьные имена, заканчивающиес€ на:.

“ипы данных €зыка.

÷елые типы.

BYTE Ц байт (однобайтовое целое число, код символа, элемент строки)

WORD Ц слово (целое число со знаком или без знака)

DWORD Ц двойное слово, длинное целое

”казатели

ѕолный 32-битовый указатель или 16-битовое смещение.

¬ещественные типы (типы мат.сопроцессора) Ц действительные числа длиной 32, 64, 80 бит.

ћассивы

¬ ассемблере возможно объ€вление массивов чисел.

ѕеричислимые и составные типы

ENUM Ц набор значений, заним. определенное кол-во бит.

RECORD Ц запись с битовыми пол€ми, каждое из которых имеет длину опр. количество бит и инициализируетс€ некоторыми значени€ми.

STRUC Ц структура, элемент содержащий 1 или более типов данных, называемых членами структуры.

UNION (объединение) Ц то же самое, что и структура, за исключением того, что все члены объединени€ занимают 1 и тот же участок пам€ти.

‘ормат команды €зыка:

[ћетка:] мнемокод [операнд] [;комментарий]

ѕо умолчанию заглавные и строчные буквы в €зыке не различаютс€.

ќформление программ:

[ќбщие дл€ всех сегментов директивы]

...

ƒиректива открыти€ сегмента

“екст программы или описание данных

ƒиректива закрыти€ сегмента

... (может повтор€тьс€ несколько раз в зависимости от числа сегментов)

ƒиректива окончани€ программного файла

 

4.  онстанты, метки, условна€ компил€ци€.

 онстанты Ц м.б. числовые (дес€тичные, двоичные, шестадцатеричные)

ten EQU 10

antiten EQU Ц10

bitmask EQU 10001001b

video EQU 0A000h

и литералы Ц символьные

s EQU Сstring data'

ћетки Ц служат дл€ присваивани€ имени команде €зыка ассемблера. ѕредназначены дл€ организации переходов в программе. ѕредставл€ют собой символьные имена, заканчивающиес€ на:. √лобальные метки действуют во всей программе. Ћокальные Ц только внутри подпрограммы.

ƒирективы условной трансл€ции предназначены дл€ обозначени€ блока программного кода, который включаетс€ в объектный файл только тогда, когда выполн€етс€ заданное условие. Cинтаксис:

Ifxxx

;операторы, помещаемые в файл при выполнении услови€

ELSE

;операторы, помещаемые в файл, если условие не выполнено

ENDIF

—уществуют также дрективы ELSEIF, которые позвол€ют создавать множественные конструкции IF.

 

5.  омпил€тор ассемблер-программ, редактор св€зей (загрузчик).

 омпил€тор с ассемблера обрабатывает исходный код, преобразу€ его в код команд на машинном €зыке. –езультат его работы называетс€ объектным кодом. ¬ объектном коде необ€зательно находитс€ весь код программы Ц в нем могут быть т.н. внешние ссылки на библиотечные процедуры или процедуры в других модул€х, а также на данные.

—ледующий шаг Ц создание исполн€емой программы. —боркой всех частей программы занимаетс€ редактор св€зей. ќн размещает все модули в пам€ти и настраивает адресные константы внутри них так, чтобы они соответствовали фактическому местоположению в пам€ти.

–едакторы бывают 3 разновидностей.

1) «агрузчик Ц загружает объектный модуль и передает управление на точку входа программы.

2)  омпоновщик Ц формирует исполн€емый файл, точно соответствующий образу программы в пам€ти, прив€зыва€ его к абсолютным адресам.

3)  омпоновщик, генерирующий псевдоперемещаемый код Ц записывает в исполн€емый файл таблицу перемещений (relocation table), где содержатс€ данные о €чейке внутри кода, котора€ зависит от местоположени€ в пам€ти. “акой исполн€емый файл перед запуском программы требует настройки. Ётим занимаетс€ операционна€ система, в формате которой создаетс€ исполн€емый модуль.

 

1. ќсновна€ пам€ть Ё¬ћ. јдресаци€, адресное пространство.

„исло микросхем пам€ти, физически присутствующих в компьютере, определ€ет объем пам€ти, которую можно использовать дл€ программ и данных. Ёто число может мен€тьс€ от машины к машине. ќбъем пам€ти обычно можно наращивать с помощью плат расширени€, вставл€емых в специальные разъемы. ƒл€ процессора пам€ть - это не более чем несколько тыс€ч 8-разр€дных €чеек, кажда€ из которых имеет уникальный адрес.

√овор€т обычно не о физическом объеме пам€ти, а об адресуемой пам€ти. 8086 может адресоватьс€ к 1024  , то есть к 1048576 байтам пам€ти. ƒругими словами, это - максимальное количество различных адресов и, следовательно, максимальное количество байт данных, к которым может обратитьс€ процессор.

ќбращение к байту пам€ти производитс€ с помощью 20-разр€дного адреса. ¬ схеме использовани€ пам€ти процессором 8086 адреса имеют "ширину" 20 бит, поскольку они передаютс€ по 20- разр€дной шине адреса. ќбычно адреса представл€ютс€ в шестнадцатеричной системе исчислени€. “аким образом, допустимый диапазон адресов пам€ти - от ќќќќќ до FFFFF в шестнадцатеричной системе исчислени€. ѕри рассмотрении 1024  байтного адресного пространства PC его дел€т на 16 блоков по 64  байт и обозначают каждый из этих блоков шестнадцатеричной цифрой, совпадающей со старшей цифрой адреса. Ќапример, первые 64  байт пам€ти - блок ќ, адреса байтов этого блока от ќќќќќ до OFFFF, последние 64  байт - блок F, адреса байтов этого блока от FOOOO до FFFFF.

—труктура основной пам€ти, адресуемой 8086

“еоретически, люба€ область пам€ти может представл€ть собой либо неизмен€емое ѕ«”, либо ќ«”. ќднако прин€то первые дес€ть блоков (блоки с нулевого по дев€тый общим объемом 640  байт) заполн€ть оперативной пам€тью. ќперативна€ пам€ть в PC устанавливаетс€ начина€ с блока ќ и последовательно, без пропусков, наращиваетс€ до блока 9 включительно. ≈сли не все дес€ть блоков заполнены, то программы не должны использовать адреса несуществующей пам€ти. ќбращение по этим адресам может вызывать различные последстви€ в зависимости от модели машины, однако обычно эта ошибка никак не обнаруживаетс€ и программа продолжает работу.

1. ќбща€ структура машинных команд, адресность. —пособы адресации операндов. –асслоение пам€ти, выравнивание, кэш-пам€ть.

ќбща€ структура машинных команд.

ќперанды, которые используютс€ в операторах ассемблера, могут быть регистром (г), адресом пам€ти (mem), непосредственным значением, задаваемым пр€мо в операторе (imm), сегментным регистром (sr). ¬ св€зи с этим существуют различные форматы одних и тех же команд:

Ј первый и второй операнды - регистры. –езультат помещаетс€ по адресу первого операнда. ћогут использоватьс€ все регистры общего назначени€.

Ј первый операнд - регистр, второй - адрес пам€ти. –езультат помещаетс€ в регистр, указанный в операторе, например:

mov ах, DATA; в регистр ј’ помещаетс€ содержимое пол€ DATA

Ј первый операнд - адрес пам€ти, второй - регистр. –езультат помещаетс€ по тому адресу, который используетс€ в качество первого операнда.

Ј первый операнд - регистр, второй - непосредственные данные. –езультат помещаетс€ в регистр.

Ј первый операнд - адрес пам€ти, второй - непосредственные данные. –езультат помещаетс€ по указанному адресу.

Ј первый операнд - сегментный регистр, второй - регистр общего назначени€. –езультат помещаетс€ в сегментный регистр, причем задание регистра CS в таком формате команды не примен€етс€.

Ј первый операнд - регистр общего назначени€, второй - сегментный регистр. –езультат помещаетс€ в регистр общего назначени€.

 оманды, работающие с одним операндом, могут работать с регистрами общего назначени€, адресами пам€ти или с сегментными регистрами.

—пособы адресации операндов. ¬ программах на Assembler примен€ютс€ следующие типы адресации операндов:

Ј регистрова€;

Ј пр€ма€;

Ј непосредственна€;

Ј косвенна€;

Ј базова€;

Ј индексна€;

Ј базово-индексна€.

–егистрова€ адресаци€ подразумевает использование в качестве операнда регистра процессора, например: push DS mov BP,SP

ѕри пр€мой адресации один операнд представл€ет собой адрес пам€ти, второй - регистр: mov DATA, ј’

Ќепосредственна€ адресаци€ примен€етс€, когда операнд длиной в байт или слово находитс€ в ассемблерной команде: mov AX,4Ch

ѕри использовании косвенной адресации исполнительный адрес формируетс€ исход€ из сегментного адреса в одном из сегментных регистров и смещени€ в регистрах ¬’, ¬–,SI или DI, например: mov јL, [¬’], mov јЌ, [SI].

¬ случае применени€ базовой адресации исполнительный адрес €вл€етсй суммой значени€ смещени€ и содержимого регистра ¬– или ¬’, например:

mov ј’, [¬– + 6]

mov [¬’ + Delta], ј’

ѕри индексной адресации исполнительный адрес определ€етс€ как сумма значений указанного смещени€ и содержимого регистра SI или DI так же, как и при базовой адресации, например:

mov DX, [SI+5]

mov ES: [DI]+6, AL

Ѕазово-индексна€ адресаци€ подразумевает использование дл€ вычислени€ исполнительного адреса суммы содержимого базового и индексного регистров, а также смещени€, наход€щегос€ в операторе, например:

mov ¬’, [BP][SI]

mov ES:[BX+DI],AX

 эш-пам€ть Ц сверхоперативна€ пам€ть, обращение к которой намного быстрее, чем к оперативной и в которой хран€тс€ наиболее часто используемые участки последней. ѕри обращении к пам€ти сначала нужные данные ищутс€ в кэш-пам€ти. ѕри отсутствии производитс€ обращение к оперативной пам€ти, в результате общее врем€ доступа к пам€ти сокращаетс€.

20. —остав типичных систем команд.  омплексный набор команд и RISC Ц процессоры.

21.ѕрограммно доступные ресурсы процессора. ”правление последовательностью операций. ”словные и безусловные переходы. ѕон€тие о механизме прерываний.

¬ процессоре, как правило, программно доступными €вл€ютс€ большинство регистров Ц €чеек пам€ти, расположенных непосредственно на процессоре. ¬ 8086 недоступным дл€ непосредственного чтени€ и изменени€ €вл€етс€ только счетчик команд IP. ќстальные регистры 8088, а также 8 регистров сопроцессора доступны программисту. »зменение последовательности выполн€емых операций осуществл€етс€ при выполнениии команд условного и безусловного перехода.  оманды условного перехода передают управление по адресу, заданному операндом, в зависимости от состо€ни€ отдельных битов флагового регистра, кроме команды JCXZ, котора€ провер€ет состо€ние регистра —’. ћодификацию флагов можно произвести как непосредственно, так и выполнив команду сравнени€ CMP, котора€ установит флаги по результату операции. ѕримеры команд условного перехода: JA, JE, JNE, JB, JZ, JL.  оманда безусловного перехода JMP передает управление по указанному адресу.

ѕрерывани€ Ц специфические сигналы, посылаемые процессору устройством или программой, когда требуетс€ его немедленное вмешательство. ¬ этом случае он останавливает вс€кую другую де€тельность и вызывает программу-обработчик прерывани€. ѕо окончании ее работы он продолжает прерванную работу с того места, где она остановилась.

ѕрерывани€ бывают 2 типов Ц

а)аппаратные (генерируютс€ схемами ѕ  в ответ на какое-либо действие, например, при нажатии клавиши на клавиатуре генерируетс€ прерывание 9). »ногда аппаратные прерывани€ генерируютс€ устройством в случае некорректной работы программы, например деление на 0.

б)программные Ц генерируютс€ программой дл€ вызова различных подпрограмм из ќ«” и ѕ«”.

јппаратные прерывани€ процессор обрабатывает в пор€дке приоритета (важности). ѕрерывани€, требующие немедленной реакции процессора Ц немаскируемые (NMI). “акие прерывани€ процессор обрабатывает перед всеми остальными, часто они сигнализируют об аварийных ситуаци€х.

22. лассификаци€ объектных данных в программах на €зыках высокого уровн€. јгрегатные

данные: векторы, массивы, структуры, множества и их отображение на реальную ќѕ.

Ѕольшинство современных я¬” определ€ет пон€тие типа данных. ќно примен€етс€ ко всем объектам данных и определ€ет набор физический набор свойств и операций присущих данным этого типа. –азличают €зыки со строгой типизацией (PASCAL) и со свободной (ASSEMBLER). “ип данных определ€етс€ как рекурсивное использование базовых предопределенных типов + агрегатирование. јгрегатирование Ц включает в себ€ описание массивов, структур, множеств, объединений.

Ѕазовые типы

ѕеричислимый тип Ц объект данного типа может принимать одно из перечисленных заранее значений. ÷елые числа, действительные числа, символьные данные, битовые данные, указатель (типизированный и нетипизированный).

јгрегатирование

ћассив Ц каждому элементу ставитс€ в соответствие его индекс. Ќеобходимо иметь возможность переводить индекс в адрес пам€ти. ƒл€ одномерных массивов проекци€ элементов на ќѕ выгл€дит как @A[i]=@A[0]+i*l, где l-длина элемента массива. ƒл€ многомерного есть 2 случа€ Ц размещение по строкам и по столбцам. ƒл€ двумерного массива прекци€ элемента @A[i,j]=@A[0]+i*lстр+j*lэл-та, где lстр Ц длина строки, а lэл-та Ц размер элемента. ≈сли я¬” позвол€ет массивы переменной длины, то к массиву должен быть приписан скрытый элемент данных, наз. дополнительным вектором. ќн должен содержать информацию о последних измененных размерност€х дл€ правильной индексации.

—труктура Ц совокупность элементов различных типов. ƒлина структуры равна сумме длин всех ее членов. „тобы обратитьс€ к структуре по пам€ти, надо знать, где расположена структура, и смещение элемента внутри структуры.

ќбъединение Ц похоже на структуру, но все члены объединени€ расположены на одном участке пам€ти.ќписывает одни и те же данные Ус разных точек зрени€Ф. –азмер объединени€ совпадает с размером самого большого члена объединени€.

ћножество Ц представление набора элементов. ћогут быть ограниченные и динамические. ѕредставлены в виде битовых полей Ц 1 означает наличие элемента, 0 Ц отсутсвие. ƒлина равна числу элементов разделить на 8 и дополнена до кратности 8 в большую сторону. ƒоступ Ц через логические операции.

23.”казатели и динамические структуры данных: стеки, списки, очереди, деревь€.

”казатель Ц тип данных, хран€щих адрес в пам€ти других данных. ¬ зависимости от типизации указатель может быть нетипизированным (содержать просто адрес в пам€ти) и типизированным (указывать только на элемент определенного типа).

—тек Ц хранилише данных однородного типа с дисциплиной Упоследним пришел-первым вышелФ (LIFO).

Ќад стеком определены операции PUSH, POP (затолкнуть, извлечь).

ѕри операции PUSH указатель стека SP увеличитс€ на 1, при извлечении уменьшитс€ на 1.

ѕрирода стека делает необходимым соответствие операций PUSH и POP. ≈сли его нет, то возможно 2 ситуации:

а) переполнение Ц SP вышел за пределы верхнего значени€

б) антипереполнение ЦУ- нижнего.

ќчередь Ц структура данных с дисциплиной FIFO Ц Упервым вошел, первым вышелФ.

«десь HP Ц указатель на последнее значение, tp Ц номер последнего выбранного элемента. ≈сли HP=TP Ц очередь пуста.

ENQ x - добавл€ем в очередь

HP=HP+1

A[HP]=x

DEQ x - извлекаем из очереди

TP=TP+1

x = A[TP]

ќсобые ситуации - так же как и со стеком.

ƒл€ реализации динамических структур данных используют т.н. кучу (heap). Ёто объем пам€ти, в котором можно выделить участок дл€ произвольного элемента данных. ƒл€ кучи есть 2 операции: выделени€ пам€ти ALLOCATE и освобождени€ FREE. Ёти функции не делают никаких действий с собственно пам€тью. ѕри выделении программист получает адрес, а при освобождении доступный объем кучи становитс€ больше. ќдного адреса дл€ этих операций недостаточно, требуетс€ еще и размер элемента данных.

—писки Ц сложные динамические структуры данных, представл€ющие собой структуры, содержащие указатели на другие подобные структуры. ≈сли такой указатель в структуре 1 Ц односв€зный список, если 2 Ц двусв€зный, если много Ц многосв€зный. —тек и очередь можно легко представить в виде одно- и двусв€зного списка. —писки характеризуютс€ тем, что дл€ них легко реализуетс€ люба€ дисциплина ввода-вывода за счет простого добавлени€ и удалени€ элемента.

ƒл€ добавлени€ элемента достаточно выделить под него пам€ть и присвоить адрес пам€ти нового элемента соответствующему предыдущему элементу. ƒл€ удалени€ элемента пам€ть из-под него освобождаетс€, а указател€м на него присваиваетс€ некоторое зарезервированное значение NULL Ц Ууказатель на ничтоФ.

ƒвусв€зный список

ƒерево Ц структура данных, в которой каждому элементу может соответствовать несколько подчиненных элементов, например, дл€ бинарного дерева Ц два подчиненных элемента. —труктура дл€ представлени€ такого дерева Ц данные и указатели на левого и правого потомков. Ќа таком списке реализуютс€ все операции по обходу деревьев.

—труктура двоичного дерева.  аждый элемент содержит поле данных и два указател€ - на левого и правого потомков.

24. —пособы выделени€ пам€ти в программах: абсолютное, статическое, динамическое и автоматическое распределени€. ћеханизм стека и кучи при реализации процессоров €зыка программировани€.

—татическое выделение пам€ти Ц выделение пам€ти под данные внутри сегмента данных программы. “акие данные существуют на прот€жении всей жизни программы до ее завершени€.

јвтоматическое распределение Ц выделение пам€ти под данные в стеке. “акие данные существуют на прот€жении работы текущей подпрограммы (функции или процедуры), затем уничтожаютс€.

ƒинамическое выделение Ц выделение пам€ти под данные самой программой, когда это необходимо. ¬рем€ жизни таких данных зависит от программы.

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

 уча. ƒл€ реализации динамических структур данных используют т.н. кучу (heap). Ёто объем пам€ти, в котором можно выделить участок дл€ произвольного элемента данных. ƒл€ кучи есть 2 операции: выделени€ пам€ти ALLOCATE и освобождени€ FREE. Ёти функции не делают никаких действий с собственно пам€тью. ѕри выделении программист получает адрес, а при освобождении доступный объем кучи становитс€ больше. ќдного адреса дл€ этих операций недостаточно, требуетс€ еще и размер элемента данных. ≈сли указатель типизированный, размер будет получен автматически. ¬ случае нетипизированного указател€ размер должен быть передан в функцию.

ƒл€ реализации кучи я¬” снабжаютс€ диспетчерами пам€ти, которые выдел€ют и освобождают пам€ть, имеют сведени€ о ее фрагментации, знают наибольший кусок свободной пам€ти и ее общее количество и т.п. ѕри ненадобности пам€ть должна своевременно освобождатьс€. ѕри использовании динамической пам€ти возможноа ситуаци€ образовани€ Ђмусораї Ц кусков пам€ти, на которые утер€ны ссылки, но которые не были своевремменно освобождены, поэтому менеджер считает их зан€тыми. ƒл€ оптимизации известна процедура Ууборка мусораФ Ц перестройка динамических структур с освобождением пам€ти из-под тех данных, на которые отсутствуют ссылки.

25. —реды ссылок: глобальна€, локальна€ и нелокальна€ их реализаци€ в исполн€ющих системах я¬”.

26. ѕон€тие программного модул€: подпрограммы, функции, сопрограммы.

ћодульное программирование подразумевает разбиение программы на подпрограммы по специфике обрабатываемых данных. ƒл€ этой цели в я¬” используютс€ функции и процедуры. ѕри вызове подпрограммы в стеке сохран€етс€ текущее значение счетчика команд (ближн€€ модель вызова) и значение сегмента кода (дальн€€ модель вызова). ѕри использовании дальней модели вызова подпрограмма необ€зательно должна находитьс€ в том же сегменте, что и вызывающа€ программа. ѕо окончании выполнени€ кода подпрограммы эти данные восстанавливаютс€, управление передаетс€ на следующий оператор после оператора вызова процедуры.

ƒо вызова подпрограммы в стек помещаютс€ параметры Ц аргументы подпрограммы. ≈сли передан не сам аргумент, а его адрес, то подпрограмма может изменить аргумент, в противном случае нет, т.к. по завершению работы подпрограммы стек очищаетс€ от аргументов. ќтличие функций от процедур в том, что функции могут возвращать значени€ в вызывающую программу и их можно присваивать, например, какой-либо переменной. ¬ действительности функци€ при возврате значений просто модифицирует регистры процессора, а я¬” по соглашению использует данные из этих регистров.

27. —пособы передачи управлени€ между модул€ми. ѕрименение стека дл€ организации св€зи в подпрограммах и функци€х.

ѕереписать 26 без первых 2 предложений.

28. ѕараметры подпрограмм и функций. —пособы передачи параметров Ц по значению, по ссылке, по имени.

ƒо вызова подпрограммы в стек помещаютс€ фактические параметры Ц аргументы подпрограммы. ≈сли требуетс€ изменит аргумент в процедуре, то передаетс€ не сам аргумент, а его адрес. —уществует два способа передачи параметров в подпрограмму дл€ 8086 Ц соглашени€ о передаче параметров в — и ѕаскале. ѕри передаче параметров первым способом запись аргументов в стек идет с последнего до первого, в ѕаскале наоборот.

ѕередача самого аргумента Ц передача параметра по значению. ѕередача адреса аргумента Ц передача по ссылке.

¬ — можно писать подпрограммы с переменным числом параметров, однако это не рекомендуетс€, т.к. стек имеет ограниченный размер и не желательно передавать по значению элементы данных большого размера.

ѕосле выполнени€ пролога все параметры подпрограммы имеют отрицательное смещение от регистра BP. ѕосле выполнени€ пролога, как правило, в стеке выдел€етс€ место под локальные переменные.

ѕо окончании работы процедуры стек очищаетс€ от локальных переменнных и параметров.

29. ќбща€ структура программного модул€ дл€ микропроцессора 80х86 Ц регистр BP, локальные переменные, глобальные переменные, параметры.

ќбобщение 26, 28 (см. их дл€ того, чтобы написать более подробно)

–егистр BP Ц относительно него с отрицательным смещением происходит адресаци€ параметров после выполнени€ кода пролога в подпрограмме.

push bp

mov bp, sp

mov ax, word ptr [bp-2]; загрузка в ах аргумента

Ћокальные переменные Ц размещаютс€ в стеке после вызова процедуры и выполнени€ кода пролога и удал€ютс€ перед завершением.

√лобальные переменные Ц размещаютс€ в сегменте данных программы и существуют в течение всей жизни программы.

ѕараметры Ц могут передаватьс€ по значению и по ссылке, размещаютс€ в стеке перед вызовом процедуры, после выполнени€ кода пролога к ним возможно адресоватьс€ через регистр BP, при завершении подпрограммы удал€ютс€ из стека.

30. —егментаци€ пам€ти. “ипы программных сегментов, их использование в программах.

Ћюба€ программа состоит из многих частей.  ак правило некоторые функции пишутс€ самосто€тельно, другие используютс€ готовыми. „тобы обеспечить взаимодействие между част€ми программы, примен€ют р€д механизмов.

а) унитарна€ структура объектного модул€.

б) механизм внешних ссылок позвол€ет устанавливать св€зи между отдельными част€ми.

в) —пособ объединени€ отдельных частей в общий исполн€емый модуль. ¬ современных системах основой 3-го способа и €вл€етс€ сегментаци€.

—егменты Ц бывают 4 видов.

а) кодовые Ц содержат коды исполн€емой программы. ¬р€де случаев там можно располагать и данные. ћодификаци€ сегмента кода в процессе работы программы считаетс€ плохим стилем программировани€, но иногда это приходитс€ делать, напр. при сохранении регистров перед запуском программы функцией EXEC.

—егменты данных бывают 3 типов:

а) сегмент инициализированных данных Ц содержит данные статического типа с уже присвоенными значени€ми

б) сегмент стека Ц как правило, ничем не инициализирован

в) сегмент неинициализированных данных. ¬ него попадают данные, не имеющие начального значени€ (BSS).

»сполн€емый модуль содержит образ начального состо€ни€ всех сегментов, и не об€зан содержать только образ BSS.

ѕри использовании указателей в программах с не более чем одним сегментом данных и не более чем одним Ц кода достаточно 16-битового короткого указател€, т.к. значени€ сегментов фиксиованы и хран€тс€ в регистрах DS и CS соответственно. ƒл€ большего количества сегментов требуютс€ длинные указатели.

—уществует несколько моделей пам€ти Ц способов распределени€ программ по сегментам. ѕоддержка переключени€ моделей пам€ти есть в компил€торах C и ASSEMBLER, в остальных, например Trubo Pascal, чаще всего используетс€ модель пам€ти LARGE.

TINY (крошечна€) Ц и данные и код в одном сегменте (64 ).  ороткие указатели. ѕолученный исполн€емый модуль может быть пригоден дл€ конверсии в формат типа COM.

SMALL (мала€) Ц 2 сегмента Ц код и данные (128K). ороткие указатели.

COMPACT (компактна€) Ц 1 сегмент кода и много сегментов данных. ѕерва€ модель, где нужны дальние указатели.

MEDIUM (средн€€) Ц наоборот, много сегментов кода, 1 данных.

LARGE (больша€) Ц много сегментов кода и данных. Ќаиболее распространена.

HUGE (огромна€) Ц то же, что и LARGE + все указатели программно привод€тс€ к виду длинных. »спользуетс€ дл€ построени€ очень больших программ.

¬ 32-битовом режиме модели пам€ти не нужны, т.к. размер сегмента достигает 4√Ѕ.

31. ќсобенности указателей в 80х86. ћодели пам€ти.

—м. 30.

32. ѕон€тие среды ќ—. ¬заимодействие прикладной программы с ќ—. —истемные соглашени€ о св€з€х.

—труктура взаимодействи€ аппаратуры, системы и прикладного ѕќ.

—реда ќ— Ц совокупность условий, в которых работают прикладные програмы в данной ќ—. —овременна€ ќ— обеспечивает, как минимум, 4 услови€:

а) запуск и остановка прикладных программ.

б) распределение ресурсов.

в) обеспечение таких системных услуг, которых нет в аппаратуре.

г) защиту, т.е минимальную веро€тность повреждени€ программ и данных при сбое одной из выполн€ющихс€ программ.

„тобы писать приложени€ под ќ—, существует р€д правил, которым должен следовать программист, в частности, он должен знать API Ц интерфейс прикладного программировани€. ќпредел€ет состав, параметры и смысл функций, предоставл€емых ќ— программисту.

Ќапример: стандарт POSIX на API ќ— UNIX включает функции:

1) Ќабор файловых операций

2) ќперации со строками

3) ‘-ии многозадачности, управлени€ процессами

4) ”правление терминалом.

ѕомимо POSIX есть API Win32 и т.п. јPI ќ— может включать самые разнообразные услуги, вплоть до поддержки функций телефонного аппарата на базе модема (TAPI Win32)

33. ѕринципы междумодульного взаимодействи€: внешние ссылки и общие имена (public names)

¬нешние ссылки из сегмента позвол€ют получать доступ к данным, которые объ€влены в другом модуле. ƒл€ объ€влени€ внешних ссылок в компил€торах с ассемблера используетс€ директива EXTRN. ѕример использовани€:

EXTRN maybe:far

»дентификаторы в программе можно сделать доступными из других модулей. ƒл€ этого примен€етс€ директива PUBLIC. ѕример использовани€:

maybe PROC far

PUBLIC maybe

“акие действи€ необходимы дл€ того, чтобы после раздельной компил€ции модулей компоновщик, использу€ имена и смещени€, записанные в объектных модул€х, разрешил все внешние ссылки директив EXTRN, использовав соответствующие директивы PUBLIC. ≈сли дл€ какой-то ссылки EXTRN не будет обнаружен соответствующий идентификатор PUBLIC, то компоновщик выдаст ошибку unresolved external <им€_идентификатора>, и сборка прекратитс€.

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

а) дл€ разбиени€ большого текста на модули по функциональному назначению;

б) дл€ создани€ библиотек процедур;

в) дл€ написани€ подпрограмм в €зыки высокого уровн€.

34. “ехнологи€ разработки программ Ц трансл€ци€ и редактирование св€зей. ѕон€тие об исходном, объектном, выполн€емом модул€х.

»сходный код программы Ц код, написанный на €зыке программировани€. ћожет включать модули на я¬” и модули с подпрограммами на €зыке ассемблера.

ќбъектный модуль Ц код программы после трансл€ции (компил€ции), преобразованный в машинные коды. ѕомимо них содержит внешние ссылки и информацию дл€ редактора св€зей и может также содержать отладочную информацию (debug info).

»сполн€емый модуль Цмодуль, содержащий готовую к выполнению программу Ц м.б. 2 видов:

а) точный образ пам€ти программы с прив€зкой к абсолютным адресам (в MS-DOS Ц формат файла *.COM)

б) перемещаемый исполн€емый формат, см. 17.

“рансл€ци€ Ц получение объектного кода из исходного.

–едактирование св€зей Ц разрешение внешних ссылок и создание исполн€емого модул€ из объектных.

35. ќсновные функции редактора св€зей Ц распределение пам€ти, разрешение внешних ссылок Ц см. 17, 33.

36. ѕрограммные сегменты и их атрибуты, способы распределени€ пам€ти под сегменты.

—обственно сегменты и распределение пам€ти см. 30.

јтрибуты сегментов

јтрибут комбинации сегмента предназначен дл€указани€ компоновщику, каким образом объедин€ть сегменты, наход€щиес€ в разных модул€х и имеющие одинаковые имена. ћ.б. PRIVATE (сегмент не будет объедин€тьс€ с одноименными из др. модулей), PUBLIC (будет) и некоторые другие.

јтрибут класса сегмента представл€ет собой строку, заключенную в кавычки, котора€ позвол€ет определить компоновщику нужный пор€док размещени€ сегментов при помещении их в программу из разных модулей. ќн группирует вместе сегменты с одинаковым классом.

јтрибут выравнивани€ сегмента Ц сообщает компонаовщику, чтобы он позаботилс€ о том, чтобы сегмент начиналс€ с указанной границы. ¬озможное выравнивание: BYTE Ц выравнивание не делаетс€, сегмент начинаетс€ со следующего байта, WORD (DWORD) Ц выравнивание погарнице слова (двойного слова), PARA Ц выравнивание по границе 16-байтового параграфа, и т.п.

јтрибут размера сегмента Ц показывает размер, 16 или 32-битные сегменты.

јтрибут доступа Ц показывает возможность доступа к сегменту в защищенном режиме Ц доступен как кодовый, дл€ чтени€, записи, чтени€ и записи.

37. –азрешение внешних ссылок, функци€ автовызова, библиотеки объектных модулей и их использование.

–азрешение внешних ссылок Ц см. 33, 17.

Ѕиблиотеки объектных модулей Ц пакет объектных модулей, собранных в один файл и подключаемый к программе на этапе разрешени€ внешних ссылок (все идентификаторы, которые должны быть доступны из библиотек, объ€вл€ютс€ в модул€х как PUBLIC).  омпоновщик может просматривать библиотеку и самосто€тельно находить нужные модули, избавл€€ от этого программиста. Ѕиблиотеки делаютс€ с помощью программы-библиотекар€. Ѕиблиотекарь может добавл€ть и извлекать модули, а также получать список доступных идентификаторов.

Ћюбой компил€тор я¬” имеет в комплекте несколько стандартных библиотек, например, библиотеки ввода-вывода, работы с плавающей точкой, графическую и т.п.

38. “ипы внешних ссылок и общих имен. —татическое и динамическое разрешение ссылок.

¬нешние ссылки см. 17, 33, 34.

—татическое и динамическое разрешение внешних ссылок.

ѕроцесс разрешени€ внешних ссылок на этапе создани€ исполн€емого модул€ Ц статическое разрешение ссылок. ¬озможно и динамическое подсоедиение нужных модулей на этапе работы программы.

а) ƒинамически вызываемый загрузчик, т.е. программа вызывает загрузчик и подсоедин€ет недостающие части. “акой подход невыгоден (сложен и требует много времени)

б) DLL Ц принцип раздел€емых библиотек. DLL Ц это пакет функций, отредактированный дл€ исполнени€ в позиционно-независимом стиле. »меет таблицу всех содержащихс€ функций. ƒл€ работы с ним программа выполн€ет 1) функцию загрузки DLL, 2)переход по смещению в таблице функций.

ѕри работе с DLL несколько программ могут использовать одну ее копию в пам€ти.

39. ƒинамическое распределение пам€ти, оверлейные программы. ќбща€ структура объектного модул€.

—тандартный исполн€емый псевдоперемещаемый модуль (например, типа EXE дл€ DOS) содержит сегменты в том виде, в котором они будут размещены в пам€ти. “акое распределение пам€ти называетс€ статическим. ¬ ситуации нехватки пам€ти, отдельный код или данные, которые могут быть нужны не все вместе, а по очереди, разумнее было бы подгружать в пам€ть в процессе выполнени€. ¬ыделение пам€ти под выполн€емый код в процессе работы программы и удаление их после использовани€ называетс€ динамическим распределением пам€ти. ѕрограммы, содержащие динамически подгружаемые модули, называютс€ оверлейными, а сами такие модули Ц оверле€ми. «агрузка данных из модул€ в общем случае не представл€ет проблем, в случае загрузки кода перед выполнением он должен быть особым образом подготовлен (например, с учетом местоположени€ вызывающей программы в пам€ти дл€ подпрограмм должны быть образованы правильные ссылки). “акую подготовку выполн€ет специальна€ программа Ц менеджер оверлеев. ќн может поставл€тьс€, а) как библиотека компил€тора [в Borland Pascal 7.0]. ¬ этом случае оверлейный модуль, как правило, имеет какой-то свой специфический формат, работа с ним ведетс€ с помощью стандартных подпрограмм.  од оверлейных подпрограмм и данных размещаетс€ в пам€ти [в BP буфер оверлеев имеет плавающую границу с кучей] и по окончании работы с ним может быть удален. б) ћожет быть внедрен в структуру оверлейного модул€. ¬ этом случае модуль имеет формат исполн€емого файла, и дл€ инициализации он должен быть запущен стандартным дл€ ќ— способом из-под вызывающей программы.

ќверлеи имеют широкое распространение в системе MS-DOS, при подгрузке используетс€ не только основна€ пам€ть, но и DOS-спецификации расширенной: XMS, EMS. ¬ развитых многозадачных системах используетс€, в основном, очень похожа€ технологи€ DLL. ≈е отличие в том, что она функционирует в защищенном режиме и позвол€ет использовать одну свою копию в пам€ти разным программам. DLL можно рассматривать как следущее поколение оверлейной технологии.

40. ќсновные функции ќ—. ѕринципы мультипрограммировани€. —истемные ресурсы.

ќсновные функции ќ—:

1) ”правление процессором путем передачи управлени€ программам.

2) ќбработка прерываний, синхронизаци€ доступа к ресурсам.

3) ”правление пам€тью.

4) ”правление устройствами ввода-вывода.

5) ”правление инициализацией программ, межпрограммные св€зи.

6) ”правление данными на долговременных носител€х путем поддержки файловой системы.

–есурс Ц какой-либо объект или показатель надежности какого-либо объекта. —истемные ресурсы Ц совокупность аппаратных ресурсов и системных сервисов. ќсновными потребител€ми системных ресурсов €вл€ютс€ процессы, выполн€емые в системе.

41. «ащита программ и данных в мультипрограммных средах. –ежимы управлени€. «ащита и распределение пам€ти.

«ащита программ и данных в многозадачных ќ— означает малую веро€тность того, что сбой одной из выполн€ющихс€ программ не вызовет повреждени€ данных или кода других программ, и по возможности изолировать процессы друг от друга. ¬о всех ќ— сущ. хот€ бы 2 режима процессора Ц системный и пользовательский. ѕрограмма исп. в пользовательском режиме и не может использовать р€д команд. ¬ системном режиме доступно все. ѕереключение режимов работы осуществл€етс€ системными вызовами. —истемный вызов Ц специальна€ команда, привод€ща€ к прерыванию, и в €дре ќ— существует несколько точек, куда перейдет управление по этому прерыванию. 386 имеет встроенный механизм дл€ этих переключений Ц шлюз.

«ащита пам€ти Ц осуществл€етс€ путем блокировки доступа к пам€ти других процессов, а также блокировки доступа к пам€ти €дра. ќдин из способов Ц вс€ пам€ть делитс€ на страницы, и у каждой есть замок Ц 4-битовый признак, который можно установить только привелигированной командой. ¬ процессоре есть 4-битовый регистр Ц ключ, который также можно установить только привелигированной командой. ѕри обращении происходит сравнение замка и ключа.

— по€влением многозадачности по€вилась проблема распределени€ пам€ти. ѕри работе реальной программы обращени€ к ќѕ имеют тенденцию к локализации. ѕам€ть можно разделить на используемую и неиспо





ѕоделитьс€ с друзь€ми:


ƒата добавлени€: 2015-05-08; ћы поможем в написании ваших работ!; просмотров: 1082 | Ќарушение авторских прав


ѕоиск на сайте:

Ћучшие изречени€:

80% успеха - это по€витьс€ в нужном месте в нужное врем€. © ¬уди јллен
==> читать все изречени€...

2066 - | 1941 -


© 2015-2024 lektsii.org -  онтакты - ѕоследнее добавление

√ен: 0.305 с.