close

Вход

Забыли?

вход по аккаунту

?

ответы

код для вставкиСкачать
Распределённые информационные системы
Вопросы для подготовки к экзамену
Раздел 1. DLL.
1. Классификация распределённых информационных систем На сегодняшний день можно выделить две основные классификации
распределенных систем. Во-первых, это классификация по размерам
систем и способам администрирования:
1)Кластер 2)Распределенная система корпоративного уровня 3)Глобальная система (грид-система). Во-вторых, распределенные системы можно рассматривать с точки
зрения их функциональности, т.е. по типу предоставляемых ресурсов и видам прикладных задач, под решение которых они оптимизированы.:1)Вычислительные системы (Computational Grid) 2)Информационные системы (Data Grid) 3)Передаточные грид (Network Grid или Delivery Grid)
2. Назначение и преимущества технологии DLL Первоначально предполагалось, что введение DLL позволит эффективно организовать память и дисковое пространство, используя только одну инстанцию библиотечных модулей для многих приложений. Это было особенно важно для ранних версий Microsoft Windows с жёсткими ограничениями по памяти. Далее, предполагалось улучшить эффективность разработок и использования системных средств за счёт модульности. Замена DLL-программ с одной версии на другую должна была позволить независимо наращивать систему, не затрагивая приложений. Кроме того, библиотеки DLL могли использоваться разнотипными приложениями - например, Microsoft Office, Microsoft Visual Studio и т. п. В дальнейшем идея модульности выросла в концепцию COM. Фактически, полных преимуществ от внедрения DLL получить не удалось по причине явления, называемого DLL_hell ("ад DLL"). DLL Hell возникает, когда несколько приложений требуют одновременно различные, не полностью совместимые, версий DLL-библиотек, что приводит к сбоям в этих приложениях. Когда система выросла до определённых размеров, количество DLL стало превышать многие тысячи, не все из них обладали полной надёжностью и совместимостью, и конфликты типа DLL Hell стали возникать очень часто, резко понижая общую надёжность системы. Поздние версии Microsoft Windows стали разрешать параллельное использование разных версий DLL, что свело на нет преимущества изначального принципа модульности. 3. Способы подключения DLL. Сходства, различия, назначение, команды подключения. Способы: 1) Статически external 'Example.dll'; 2) Динамический LibHandle := LoadLibrary('Example.dll');
Сходства: хранятся в отдельном файле???. Различия: динамические не занимают память пока не используются, статические загружаются при запуске проги. Назначение ХЗ??? 4. Принцип взаимодействия приложения и DLL. Порядок выполнения команд. Обмен данными между прогой и DLL происходит через передачу аргументов функций, которые передаются из основной проги, из DLL в прогу данные передаются как результат функции.
5. Создание и объявление функций в DLL В DLL функции объявляются и описываются как обычно. В динамике: exports - показывает, что эти функции будут использоваться из вне. В проге при статическом подключении функция объявляется как обычно. При динамическом
@AddNumbers := GetProcAddress(LibHandle, 'AddNumbers'); // запоминаем адрес
// необходимой функции
if @AddNumbers <> nil then
begin
result := AddNumbers(1, 2); // используем функцию
6. Команды для создания формы в DLL Form.Create; Form.Show
7. Принцип работы потоков в операционной системе Потоки - это объекты, которым процессор выделяет время. Обратите внимание, не процессам или программам, а порожденным им потокам. Так что любая программа содержит в себе хотя бы один поток. Он называется главным. Когда появляються потоки, появилась возможность отдавать для решения каждой задачи ровно столько ресурсов, сколько ей нужно. Для этого используется понятие приоритета потока. Каждый процесс имеет свой приоритет (от фонового до реального времени). В рамках процесса существуют потоки, приоритетом которых (потоков) может управлять процесс. Таким образом приоритет может иметь значение от 0 до 31. Следует заметить, что программы написанные в Delphi по умолчанию порождают процесс с нормальным приоритетом (он может быть переднего или заднего плана, в зависимости от активности задачи и меняться от 9 до 7). Процессы реального времени используются очень редко.
8. Принцип работы нескольких приложений в многопроцессорной системе Каждому приложению выделяется по возможности отдельный процессор.
9. Сходства и различия однопроцессорной многоядерной системы и многопроцессорной системы Сходства: при выполнении нескольких задач/потоков/прог каждой по возможности выделяется отдельный проц/ядро. Конвеерная обработка????(может быть только в однопроцессорном-многоядерном???) Различие: обмен данными между процессами/потоками в однопроцессорной-многоядерной происходит быстрее так как используется общая память/кэш. 10. Существующие приоритеты потоков с кратким описанием tpTimeCritical Максимальный приоритет tpHighest Приоритет на 2 пункта выше нормы tpHigher Приоритет на 1 пункт выше нормы tpNormal Нормальный приоритет tpLower Приоритет на 1 пункт ниже нормы tpLowest Приоритет на 2 пункта ниже нормы
tpIdle Поток выполняется, когда твоей ОС нечего делать
Раздел 2. Многопоточные приложения.
1. Принцип работы нескольких приложений в однопроцессорной системе Если поддерживает много задачность, то каждому приложению выделяется определенный промежуток машинного времени в зависимоти от приоритета задачи, после истечения времени начинает выполняться другая программа. Если многозадачность не поддерживается, то проги выполняются по очереди.
2. Доступ потоков к общим переменным Чтобы потоки не конфликтовали при взаимодействии с общими переменными/не было "гонки"/ нужно их синхронизировать: метки, семафоры и т.д. В нашем случае (то бишь с Силосом мудаком) метод Synchronize.
3. Ожидание одним потоком окончания выполнения расчетов другим потоком Иногда такое бывает нужно и тогда используются методы синхронизации, например метки или семафоры.
4. Обращение к графическим компонентам из потоков Тоже что и при обращении к общим переменным, может переклинить прогу поэтому синхронизируем.
5. Как для двух потоков, выполняющих общую функцию, определить какой из них выполняется ????????
6. Что делает метод Synchronize, где вызывается и для чего он нужен Вызывается в потоке(ну во всяком в наших лабах он там вызывался), аргументом является функция без аргументов. Зачем нужен смотри выше.
7. Приоритеты потоков. Что они означают и на что влияют. Какие бывают смотри выше. Влияют на машинное время выделяемое задаче и порядок их выполнения, если запущенны одновременно.
8. Построение графика выполнения нескольких потоков 9. Выполнение потоков, имеющих разные приоритеты Сначала выполняется тот что имеет больший приоритет, а после тот что низкий, если конечно у одного из них нет приоритета tpTimeCritical , тогда пока не выполнится управление не передастся; или tpIdle этот будет выполнятся только когда Осе совсем нечего делать.
10. Команды создания, запуска, приостановки, возобновления, удаления потока с указанием параметров
T1:= TmyThread.Create(true)
T1.Resume;T1.Suspend; T1.Terminated;
11. Реализация безостановочной работы потока до нажатия на кнопку Нужно сделать цикл, выполняющийся до появления какого то условия. Бесконечный нельзя.
Раздел 3. Клиент-серверные приложения.
1. Порядок разработки приложения-сервера (создание проекта, компоненты, обмен данными) Создаем форму и Тул Палета-> Интернет кидаем на нее компонент TCP сервер. Вроде все.
2. Порядок разработки приложения-клиента (создание проекта, компоненты, обмен данными) Создаем форму и Тул Палета-> Интернет кидаем на нее компонент TCP клиент. Вроде все.
3. IP-адрес и порт: что они означают и для чего нужны IP - протокол межсетевого уровня, отвечает за доствку и маршрутизацию пакетов на сетевом уровне (между компами), TCP- протокол межхостового уровня, отвечает за доставку пакетов на межхостовом уровне(уровен программ). Порт помогает определить какому приложению направлен пакет. Силос тупой, поэтому IP для нахождения компа, порт для нахождения проги.
4. Одновременная отправка данных двум серверам ?????????
5. Одновременная обработка сервером запросов нескольких клиентов Сервер начинает работать в несколько потоков.
6. Свойство Active компонента сервера. Использование Активирует сервер, теперь к нему могут подключаться клиенты. TCPServer.Active=True;
7. Метод Connect компонента клиента Инициирует подключение к серверу TCPClient.Conect
8. Функции для отправки и приёма числовых и строковых данных с указанием параметров
TCPClient.SendBuf(A, sizeof(A)); // Передает значение переменной A
.Sendln(B); // Передает строку B
.ReceiveBuf(A, sizeof(A)); // Принимает число и записывает его в переменную A
.Receiveln(B); // Принимает строку B
Документ
Категория
Разное
Просмотров
27
Размер файла
46 Кб
Теги
ответы, шпаргалки, шпоры
1/--страниц
Пожаловаться на содержимое документа