Ресурсы. Память.


Ресурс – средство системы обработки информации, которое может быть выделено процессу на определённый интервал времени. К основным ресурсам относятся память, время процессора, П.У., системные подпрограммы. 

Загрузка EXE & DLL модулей в память.


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

Проецируемые в память файлы


? Загрузка .exe и .DLL модулей; ? Операции ввода/вывода; ? Разделение данных между процессами. Загрузка .exe и .DLL модулей:

Механизм куч


Куча, – динамически распределяемая память (1Mb), для работы с множеством малых объектов. У каждого процесса существует стандартная куча. Дополнительно программист может создать еще несколько куч.  

Программные модули, процессы, задачи


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

Экспорт и импорт функций из DLL


В каждой DLL существует таблица: | адр. | hint | имя процедуры |, т.е. существует список экспортированных функций в виде таблицы, где: адр. – адрес реализации функции в адресном пространстве. Вычисляется путем + базового адреса загрузки DLL со смещением внутри DLL.

Процессы


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

Проблемы упраления процессов.


Существует 4 класса проблем: — взаимные исключения. Возникают 3из-за попытки процессора использовать системный ресурс конфликтным образом. Для решения проблемы предполагается полное завершение критического участка кода перед передачей управления другому процессу.

Процессы


Процесс в Win32- зто участок памяти, занимаемый программой, сам по себе процесс является инертным, он ничем не владеет. Для того чтобы процесс заработал, в нём необходимо создать поток. ОС создаёт главный или первичный поток процесса, с этого момента поток начинает выполняться. Первичный поток задаётся WinMain.

Взаимодействия между процессами.


Событие- это независящая от времени операция, производимая внутри ОС. Может инициализироваться пользователем (прямо или чЕрЕз ЖоПу).Одновременно может функционировать несколько событий.

Синхронизация


Это механизм, который позволяет потокам синхронизировать доступ к ресурсам. Для синхронизации Win32 исп-ся 2 класса методов: 1) Использование критических секций, 2) Использование ф-ий ожидание. Любой объект синхронизации м/б в значащем или не значащем состоянии.

Синхронизация при помощи событий.


Событие – объекты синхронизации бывают двух типов: со сбросом в ручную , события с автосбросом. Для установки события в доступное состояние используется функция SetEvent. Для сброса в недоступное состояние — ResetEvent. Для обеих функций единственным параметром служит Handle события.

Семафоры


Для управления синхронизацией процессов используются семафоры – неотрицательная целая переменная. Для каждого семафора доступны 2 операции: 1. р – операция – уменьшение семафора на 1, захват ресурса: уменьшает семафор если значение положительно.

Семафоры в Win32


Создание семафора производится функцией c. HANDLE CreateSemaphor( LPSECURITY_ATTRIBUTES sa, LONG InitialCount, LONG MaximumCount, LPCTSTR Name)

Ожидаемые таймеры


Объекты синхронизации, чьё состояние устанавливается в доступное через определённый интервал времени. Существуют следующие виды таймеров: 1. Таймер со сбросом вручную. Таймер, чьё состояние остаётся доступным до тех пор пока не будет вызвана функция SetWaitableTimer – установить таймер ожидания для установки нового периода времени.

Создание и использование макроопределений и макрокоманд. Библиотеки макроопределений.


Ассемблер имеет макросредства, которые определяются программистом. Для этого задаются имя макроса, директива МАСRO. Завершается макроопределение директивой ENDM. <имя макроопр.> MACRO <тело макроопред., состоящее из операторов >

1.1 Назначение, функции и структура ОС.


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

Аппаратная поддержка функций ОС.


2.1 Адресация в защищенном режиме. Основные понятия. 1. Сегмент – участок оперативной памяти, выделенный программе для специфических нужд. Характеризуется базовым адресом и пределом.

Адресация в защищенном режиме.


Если Ti = 0, то адресация идет по глобальной дескрипторной таблице, иначе по локальной дескрипторной таблице. Адресация по глобальной дескрипторной таблице. 1. По содержимому регистра GDTR определяем адрес в глобальной дескрипторной таблице.

Структура сегмента TSS. Задачи.


Переключение задач. 1. Выходная задача выполняет команду. far call, fast jump – косвенное переключение через шлюз задач. 2. Когда выходящая задача выполняет far call или fast jump и селектор выбирает дескриптор TSS – прямое переключение. 3. Когда выходящая задача выполняет команду iret для возврата в предыдущую задачу.

Прерывания и особые случаи.


1. Причины возникновения прерываний: 1.1.Сигнал пришедший по линии INTR или NMI. INTR – маскируемое прерывание; NMI – не маскируемое прерывание.

304. Угадать возраст


Для разнообразия можно предложить умножить число лет на 2, прибавить 5, а сумму опять умножить на 5; попросить сказать результат. Последней цифрой результата, очевидно, будет 5. Надо ее отбросить, а от оставшегося числа отнять 2. Разность — искомый возраст.

Pascal


Был разработан в 1968 — 71 гг. Никлаусом Виртом в Цюрихском Институте информатики (Швейцария). Первоначальная цель разработки языка диктовалась необходимостью инструмента «для обучения программированию как систематической дисциплине». Однако была обнаружена чрезвычайная эффективность языка Паскаль в самых разнообразных приложениях, от решения небольших задач численного характера до разработки сложных систем — компиляторов, баз данных, ОС и т.д. 

Краткий курс лекций по языку С/С++. С. Си.


ОСНОВЫ АЛГОРИТМИЗАЦИИ И ПРОГРАММИРОВАНИЯ. ЯЗЫК С/С++. СТРУКТУРНЫЙ ПОДХОД. Краткий курс лекций ПРИДНЕСТРОВСКИЙ ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ им. Т.Г.ШЕВЧЕНКО Инженерно-технический факультет Кафедра «Программное обеспечение вычислительной техники» И.А. Васюткина Курс лекций по С,С++

ДАННЫЕ В ПРОГРАММЕ НА СИ


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

ОПЕРАЦИИ ЯЗЫКА СИ


Операции в языке Си применяются для представления арифметических выражений. Насчитывается около 40 операций и 16 приоритетов. Величина, над которой выполняется операция называется операндом. Операции могут быть унарные (один операнд), бинарные (два операнда) и тернарные.

Операции сдвига. Операция условия.


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

ОПЕРАТОРЫ ЯЗЫКА СИ


Основу программы на Си составляют выражения, а не операторы. Большинство операторов в программе являются выражениями с ‘;’. Это позволяет создавать эффективные программы.