Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лекции по АК.doc
Скачиваний:
5
Добавлен:
01.05.2025
Размер:
752.64 Кб
Скачать

Управление циклами

Циклы имеют несколько разновидностей, поэтому для их классификации есть ряд стандартных критерий:

  1. По порядку проверки условий выполнения (с предусловием и постусловием). Цикл с пост условием выполняется не менее одного раза.

  2. По характеру результата проверки. Цикл исполняется по истинному или ложному условию.

  3. По параметричности. Параметрические и непараметрические.

Параметрические – это цикл, в котором определено заранее количество шагов (for).

Не параметрические – это while и for с нечетко определенными параметрами.

Представление данных

  1. Целые числа – наиболее часто используемый тип данных. В стандарте Microsoft имеет стандарты:

Короткий целый – 1 байт;

Беззнаковый короткий целый – 2 байта;

Целый – 2 байта;

Целочисленный – 4 байта;

Длинный целый – 8 байт;

  1. Числа с плавающей точкой – предназначены для представления очень больших, либо очень малых величин в прикладных программах. Различают с одинарной и двойной точностью.

  2. Целочисленные:

ANSI C, Watcom C, gcc.

  1. Логический тип. В С логическая переменная занимает 1 байт, но стандарт ANSI для контроллеров занимают 1 бит.

Стандарт ANSI подразумевает 0, 1 ложь, истина.

В Борланде 1 и -0.

Microsoft – TRUE=ff, FALSE = -1.

  1. Символьный тип, можно отнести к целочисленному типу (байту), однако в этом случае данным содержащимся в ячейке символьного типа.

  2. Указатель, также может быть отнесен к целочисленному типу, чаще к длинному целому. При этом данным хранящимся в ячейке типа указателя сопоставлена некоторая удаленная ячейка памяти. Различают безтиповые и типовые указатели.

  3. Строки символов. Используются для хранения некоторой информации. Существует 2 способа хранения строк, символов:

  1. В виде последовательных символов.

Преимущество: компактность.

  1. В виде связного списка, возможно, также их комбинации.

Преимущество: легкость модификации.

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

  1. Массивы. Существует 2 способа хранения массивов независимо от их мерности.

  1. С помощью информационных векторов, при этом способе массив независимо от его мерности раскладывается в одномерную последовательность данных.

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

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

Управление процессами

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

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

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

Страница это единичный блок пространства виртуальных адресов. Единица виртуальной памяти соответствует названию станичный блок.

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

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

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

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

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

Разумно заранее загрузить в ОП все те страницы, которые будут использоваться во время работы. Было сделано наблюдение, что участки чаще всего используемого кода или данных концентрируются на небольшом количестве страниц. В любой момент времени t существует множество, в которое входят все страницы, используемые при последовательном обращении памяти т.н. рабочее множество.