Будь умным!


У вас вопросы?
У нас ответы:) SamZan.net

Операционные системы среды и оболочки Перечислите основные действия которые нужно было выполнить п.html

Работа добавлена на сайт samzan.net:


Список вопросов для подготовки к экзамену «Операционные системы, среды и оболочки»

  1.  Перечислите основные действия, которые нужно было выполнить пользователю для выполнения его программы до появления операционных систем.
  2.  Загрузка нужного транслятора;
  3.  Запуск транслятора и получение программы в машинных кодах;
  4.  Связывание программы с библиотечными подпрограммами;
  5.  Загрузка программы в ОЗУ;
  6.  Запуск программы;
  7.  Вывод результатов работы на печатающее или другое периферийное устройство.
  8.  Что такое операционная система, операционная среда, операционная оболочка? Дайте определение.

Операционная система, сокр. ОС (англ. operating system, OS) — комплекс управляющих и обрабатывающих программ, которые, с одной стороны, выступают как интерфейс между устройствами вычислительной системы и прикладными программами, а с другой стороны — предназначены для управления устройствами, управления вычислительными процессами, эффективного распределения вычислительных ресурсов между вычислительными процессами и организации надёжных вычислений.

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

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

  1.  Что такое однопрограммная пакетная обработка? Как определить классическое мультипрограммирование?

Режим однопрограммной пакетной обработки предусматривал отсутствие пользователя, как причины замедления работы ЭВМ. В качестве компенсации присутствия пользователя используется резидентная программа – диспетчер, для которой пользователи пишут программу (последовательность заданий на языке команд диспетчера) работы с этой программой (вызвать транслятор, компилировать программу и т.д.) для всех возможных вариантах развития событий. Эти программы на языке диспетчера и составляют пакет. Таким образом, при пакетном режиме программист должен писать программы на языках программирования и, на языке команд диспетчера – программу заданий по использованию программы "диспетчером". Для реализации этого режима ЭВМ должна быть снабжена система прерывания и операционная система (ОС), по крайней мере, в виде диспетчера и набора программ обработки прерываний.

Стратегия режима заключается в следующем:

  1.  Часть первых программ в пакете переводится в состоянии "задача" но, возможно, на разных стадиях,
  2.  Часть из них может находиться в состоянии ожидания. Это задачи, для которых производится загрузка данных.
  3.  Другая часть программ может находиться в состоянии счет. Это задачи, для которых загружены данные и они готовы к обработке на процессоре. Одна из них находится в стадии выполнения команд процессором. Остальные – ожидают своей очереди на обработку.

  1.  Что относится к базовому программному обеспечению ранних компьютерных систем?

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

  1.  Что такое многопрограммная пакетная обработка?

При обработке программ в однопрограммном пакете работают, поочередно, две системы: процессор и система ввода вывода. Организация их параллельной работы является резервом повышения производительности ЭВМ. Но для этого требуется многопрограммная пакетная обработка. Это режим мультипрограммной пакетной обработки или "режим классического мультипрограммирования". Цель режима – минимизация простоев процессора при обработке пакета программ.

  1.  Что такое мультипроцессорная обработка, чем она отличается от мультипрограммирования?

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

  1.  Перечислите поколения операционных систем. Назовите основные отличительные признаки поколений.

40-е годы ХХ века.

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

Первое поколение ОС.

50-е годы ХХв.

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

Второе поколение ОС.

Середина 60-х г.

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

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

Режим коллективного пользования заключался в том, что к вычислит.машине подключалось несколько терминалов (монитор и клавиатура), за которыми работали отдельные пользователи. ОС с большей скоростью переключала терминалы, и у каждого пользователя создавалось впечатление, что он один работает с ВМ.

ОС реального времени использовались в ВМ, которые управляли какими-либо машинами или устройствами. Как правило, скорость реакции устройства меньше скорости реакции ЭВМ, ОС реального времени искусственно замедляли работу ЭВМ, приближая ее к скорости устройства или машины.

Третье поколение ОС.

70-е годы ХХв.

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

Появилось большое количество различных типов ЭВМ. Наиболее известным компьютером этого поколения был IBM PC 360. ОС третьего поколения должны были работать на разных типах машин, а, кроме того, должны быть многорежимными, т.е., поддерживать пакетный режим, многозадачный, многопроцессорный и т.д. ОС были громоздкими и сложными, часто содержали большое количество ошибок. Для эксплуатации таких ОС нужна была спецподготовка. Оператору ЭВМ приходилось изучать сложные языки управления задачами.

Но именно в этот период были заложены все основные черты современных ОС.

Четвертое поколение ОС.

80-е годы ХХв.

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

Это поколение включает в себя все основные черты ОС предыдущих поколений, а так же имеют следующие особенности:

  1.  Управление работой сетей ЭВМ.
  2.  Управление работой сложных многопроцессорных вычислительных комплексов.
  3.  Появление ОС ПК.
  4.  ОС начали использовать «дружественный» интерфейс, т.е. ОС строятся в расчете на не подготовленных или малоподготовленных пользователей.
  5.  Что такое архитектура операционной системы? Какие архитектуры ОС вы можете охарактеризовать?

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

Наиболее общим подходом к структуризации операционной системы является разделение всех ее модулей на две группы:

  1.  ядро — модули, выполняющие основные функции ОС;
  2.  модули, выполняющие вспомогательные функции ОС.

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

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

  1.  Что такое виртуальная машина? В чем Вы видите преимущества использования виртуальных машин?

Виртуальная машина

  1.  программная и/или аппаратная система, эмулирующая аппаратное обеспечение некоторой платформы и исполняющая программы для этой платформы (target — целевая или гостевая платформа) на другой платформе (host — хост-платформа, платформа-хозяин)
  2.  или виртуализирующая некоторую платформу и создающая на ней среды, изолирующие друг от друга программы и даже операционные системы (см.: песочница);
  3.  также, спецификация некоторой вычислительной среды (например: «виртуальная машина языка программирования C»).

Виртуальная машина исполняет некоторый машинно-независимый код (например, байт-код, шитый код, p-код) или машинный код реального процессора. Помимо процессора, ВМ может эмулировать работу, как отдельных компонентов аппаратного обеспечения, так и целого реального компьютера (включая BIOS, оперативную память, жёсткий диск и другие периферийные устройства). В последнем случае в ВМ, как и на реальный компьютер, можно устанавливать операционные системы (например, Windows можно запускать в виртуальной машине под Linux или наоборот). На одном компьютере может функционировать несколько виртуальных машин (это может использоваться для имитации нескольких серверов на одном реальном сервере с целью оптимизации использования ресурсов сервера).

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

Виртуальные машины могут использоваться для:

  1.  защиты информации и ограничения возможностей программ (см.: песочница);
  2.  исследования производительности ПО или новой компьютерной архитектуры;
  3.  эмуляции различных архитектур (например, эмулятор игровой приставки);
  4.  оптимизации использования ресурсов мейнфреймов и прочих мощных компьютеров (см., например: IBM eServer);
  5.  вредоносного кода для управления инфицированной системой: вирус PMBS, обнаруженный в 1993 году, а также руткит SubVirt, созданный в 2006 году в Microsoft Research, создавали виртуальную систему, которой ограничивался пользователь и все защитные программы (антивирусы и прочие).
  6.  моделирования информационных систем с клиент-серверной архитектурой на одной ЭВМ (эмуляция компьютерной сети с помощью нескольких виртуальных машин).
  7.  упрощения управления кластерами — виртуальные машины могут просто мигрировать с одной физической машины на другую во время работы.
  8.  Тестирования и отладки системного программного обеспечения;


  1.  
  2.  Дайте определение процессу и потоку. Чем поток отличается от процесса?

Процесс – это систематическое, последовательное определение функциональных операций, которые приносят специфический результат.

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

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

Почему мы используем потоки вместо процессов, хотя, при необходимости, приложение может состоять и из нескольких процессов? Дело в том, что переключение между процессами — значительно более длительная операция, чем переключение между потоками. Другой довод в пользу применения потоков — то, что они специально задуманы для совместного использования ресурсов; разделить ресурсы между процессами (имеющими раздельное адресное пространство) не так-то просто.

  1.  Перечислите основные задачи ОС по управлению процессами.

Её задачи:

● создание процессов и потоков.

● обеспечение процессов и потоков необходимыми ресурсами.

● изоляция процессов.

● планирования выполнения процессов и потоков.

● диспетчеризация потоков.

● организация межпроцессного взаимодействия.

● синхронизация.

● завершение и уничтожение процессов и потоков.

  1.  Как можно представить модель процесса и потока? Назовите возможные состояния процесса.

Простейшая модель процесса предполагает, что он имеет 2 устойчивых состояния – выполняется и не выполняется. Если бы все процессы имели равный приоритет, всегда были готовы к выполнению, то очередь по данной схеме работала бы эффективно по принципу обслуживания в порядке поступления, а процессор обслуживал бы поступающие процессы круговым методом (Round-Robin). Каждому процессу отводится определенный промежуток времени (t кванта), после которого процесс возвращается в очередь или, если он решен полностью, выгружается из ОЗУ. Однако не все процессы одновременно готовы к выполнению – часть из них по какой-то причине заблокирована (например, ожидают соответствующий ресурс). Поэтому при наличии одной очереди диспетчер вынужден просматривать её всю для поиска первого незаблокированного процесса.

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

Модели потоков:

А. Организация потоков на уровне пользователя.

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

Б. Управление потоками на уровне ядра.

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

Состояние процесса, определяющее готовность процесса к выполнению (выполняющийся, готовый к выполнению, ожидающий и приостановленный).

  1.  Дайте характеристику возможным уровням параллелизма выполнения программ.

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

Распараллеливание на уровне задач

Часто распараллеливание на этом уровне является самым простым и при этом самым эффективным. Такое распараллеливание возможно в тех случаях, когда решаемая задача естественным образом состоит из независимых подзадач, каждую из которых можно решить отдельно. Хорошим примером может быть сжатие аудио-альбома. Каждая запись может обрабатываться отдельно, так как она никак не связана с другими.

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

Уровень параллелизма данных

Название модели «параллелизм данных» происходит оттого, что параллелизм заключается в применении одной и той же операции к множеству элементов данных. Параллелизм данных демонстрирует архиватор, использующий для упаковки несколько ядер процессора. Данные разбиваются на блоки, которые единообразным образом обрабатываются (упаковываются) на разных узлах.

Уровень распараллеливания алгоритмов

Следующий уровень, это распараллеливание отдельных процедур и алгоритмов. Сюда можно отнести алгоритмы параллельной сортировки, умножение матриц, решение системы линейных уравнений.

Параллелизм на уровне инструкций

Наиболее низкий уровень параллелизма, осуществляемый на уровне параллельной обработки процессором нескольких инструкций. На этом же уровне находится пакетная обработка нескольких элементов данных одной командой процессора. Программа представляет собой поток инструкций выполняемых процессором. Можно изменить порядок этих инструкций, распределить их по группам, которые будут выполняться параллельно, без изменения результата работы всей программы. Это и называется параллелизмом на уровне инструкций. Для реализации данного вида параллелизма в микропроцессорах используется несколько конвейеров команд, такие технологии как предсказание команд, переименование регистров.

  1.  Каким образом файлы, процессы и потоки могут быть использованы для синхронизации?

Сотрудничество с использованием разделения:

Этот случай охватывает процессы (потоки), взаимодействующие с другими процессами (потоками) без наличия явной информации о них. Например, несколько потоков могут обращаться к разделяемым переменным (глобальным) или совместно используемым файлам или базам данных. Поскольку данные хранятся в ресурсах (устройствах, памяти), в этом случае также возможны проблемы взаимоблокировок, взаимоисключения и голодания. Единственное отличие в том, что доступ к данным может осуществляться в двух режимах – чтения и записи, и взаимоисключающими должны быть только операции записи. Однако в этом случае вноситься новое требование синхронизации процессов для обеспечения согласованности данных.

Сотрудничество с использованием связи:

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

  1.  Какие методы могут использоваться для ликвидации тупиковых ситуаций?
  2.  Принудительная выгрузка ресурсов. Способность забирать ресурс у процесса, отдавать его другому процессу, а затем возвращать назад так, что исходный процесс не замечает этого, в значительной мере зависит от ресурсов устройства. Выйти из тупика, таким образом, зачастую трудно или невозможно.
  3.  Восстановление через откат. В этом способе процессы должны периодически создавать контрольные точки, позволяющие запустить процесс с его предыстории. Когда взаимоблокировка обнаружена, достаточно просто понять, какие ресурсы нужны процессам. Чтобы выйти из тупика, процесс, занимающий необходимый ресурс, откатывается к тому моменту времени, перед которым он получил данный ресурс, для чего запускается одна из его контрольных точек. Вся работа, выполненная после этой контрольной точки, теряется. Если возобновленный процесс вновь попытается получить этот ресурс, ему придется ждать, пока ресурс станет доступным.
  4.  Восстановление путем уничтожения одного или более процессов – грубейший, но простейший выход из тупика. Проблема, какой процесс уничтожать.
  5.  Приведите пример использования семафора. Что такое мьютекс, как он используется?

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

Мьютекс (взаимное исключение) – упрощенный семафор, неспособный считать, он может управлять лишь взаимным исключением доступа к совместно используемым ресурсам и кодам. Реализация мьютекса полезна в случае потоков, действующих только в пространстве пользователя.

  1.  Перечислите методы взаимоисключений процессов.

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

  1.  Когда возникает необходимость в синхронизации процессов?

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

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

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

Ежесекундно в системе происходят сотни событий, связанных с распределением и освобождением ресурсов, и ОС должна иметь надежные и производительные средства, которые бы позволяли ей синхронизировать потоки с происходящими в системе событиями.

  1.  Дайте определение иерархической памяти.

Иерархическая память - структура соподчиненности запоминающих устройств в организации внешней памяти. Иерархическая память предоставляется системой управления иерархией запоминающих устройств.

  1.  Назовите задачи распределения памяти.

Задача распределения ОП распадается на три взаимосвязанные задачи: учета, выделения, возврата.

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

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

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

  1.  Дайте определение виртуальной памяти. Перечислите варианты организации такой памяти.

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

Размер дискового пространства, который можно выделить для организации виртуальной памяти ограничивает возможностями ЦП по адресации и составляет 2^32 ≈ 4 ГБ степени для 32-х разрядных процессоров и 2^64 для 64-х разрядных ЦП.

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

Для виртуализации используют 2 возможных подхода:

  1.  Свопинг – образы процессов выгружаются на диск и возвращаются в ОП целиком.
  2.  Виртуальная память – между ОП и диском перемещаются части образов (сегменты, страницы, блоки и т. д.) процессоров.

Недостатки свопинга:

● избыточность перемещаемых данных и в силу этого замедление работы системы и неэффективное использование памяти.

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

Достоинства свопинга:

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

Виртуальная память не имеет указанных недостатков, но её проблемой является значительные затраты времени на преобразование виртуальных адресов в физические, сложность программной и аппаратной поддержки.

  1.  Что такое подкачка страниц?

Подкачка страниц (англ. термин — англ. Paging) — один из механизмов виртуальной памяти, при котором отдельные фрагменты памяти (обычно неактивные) перемещаются из ОЗУ на жёсткий диск, освобождая ОЗУ для загрузки других фрагментов памяти. Такими фрагментами в современных ЭВМ являются страницы памяти.

  1.  Охарактеризуйте проблему защиты памяти.

Защита памяти - аппаратные и программные средства для предотвращения записи или воспроизведения информации по неразрешенному адресу памяти вычислительной системы или машины. Сущность З. п. заключается в том, что память ЦВМ программно или аппаратно разбивается на ряд участков и каждому участку или группе участков присваивается код-ключ, который запоминается в той же или специальной памяти. При обращении к памяти определяется её участок и соответствующий ключ, который сравнивается с разрешённым ключом З. п., указанным в самой команде или диспетчером-программой. Несоответствие ключей рассматривается как нарушение З. п. и выполнение программы прерывается. Прерывание программы организуется так, чтобы содержание защищённой области памяти осталось без изменения. З. п. функционирует при каждом обращении к памяти либо в режиме записи информации, либо в режиме воспроизведения информации, либо в обоих режимах. З. п. выполняет следующие функции: защиту содержимого определенных областей памяти от потери информации во время выполнения программ из-за ошибочных засылок информации, вызванных отказами и сбоями оборудования или диспетчер-программы ЦВМ, ошибками программиста или пользователя; защиту информации от попадания её в руки постороннего пользователя при несанкционированном случайном или намеренном вмешательстве.

К аппаратным средствам З. п. относятся: запоминающее устройство ключей защиты, ёмкость которого соответствует числу защищаемых участков, а быстродействие на порядок больше, чем у основной памяти ЦВМ; схемы сравнения ключей защиты, прерывания и индикации при нарушении З. п. К программным средствам З. п. относятся: программы контроля участков памяти, их кодирования и составления таблиц соответствия; программы динамического перераспределения З. п. по распоряжениям потребителей, по параметрам одновременно решаемых задач; программы анализа причин нарушений З. п. и принятия решений по их устранению. З. п. повышает эффективность работы ЦВМ, сокращая временные затраты на поиск ошибок, неисправностей и на повторные вычисления из-за потери информации. З. п. необходима при одновременном решении нескольких задач одной ЦВМ в режиме разделения времени, одновременном обслуживании нескольких пользователей, наличии библиотек программ, архивов, принадлежащих определённым потребителям, одновременной работе нескольких устройств в составе ЦВМ.

  1.  Нужно ли бороться с фрагментацией памяти? Какие методы для этого существуют?

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

В мире информационных технологий каждый знает, что фрагментация замедляет работу. Но не всем известно, что фрагментация негативно влияет на надёжность системы. Начиная загрузкой и кончая выключением компьютера, фрагментированный диск является причиной проблем при выполнении практически любого действия в Windows. В качестве главного примера можно взять тот факт, что операционная система Windows постоянно использует файлы с диска, поэтому надёжность диска критически важна для безотказной работы системы. Если проблема фрагментации возникнет с файлом, то это может привести к "превышению виртуальной памяти" и потере данных. Проследить негативное влияние фрагментации можно также и на главной файловой таблице (таблица, используемая NTFS для размещения файлов, файловая система Windows): фрагментированная главная файловая таблица может замедлить процесс загрузки компьютера с ОС (операционной системой) Windows.

Фрагментация файла также причиняет серьёзный физический ущерб жёстким дискам: происходит увеличение движения головки жёсткого диска, так как жёсткому диску необходимо найти данные, находящиеся на фрагментированных файлах. Чем больше движений головки жёсткого диска, тем меньше средняя наработка на отказ (MTBF) и работоспособность жёсткого диска. Именно средней наработкой на отказ определяется надёжность жёсткого диска.

Фрагментация диска становится хуже вместе с увеличением количества информации, которая хранится на жёстком диске.

Существует ли решение данной проблемы? Конечно, фрагментацию диска может предотвратить дефрагментация. Регулярная дефрагментация способствует:

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

- увеличению срока службы жёсткого диска, уменьшая движения его головки.

В связи с тем, что сегодня используются продвинутые системы (благодаря глобализации многие сайты сегодня 24X7), важно использовать определённую технологию дефрагментации. Большинство сайтов используют запланированную дефрагментацию для того, чтобы она проводилась регулярно. Однако сегодня из-за того, что диски имеют большой объём, файлы имеют большой размер и на компьютере выполняется большой объём работы, про дефрагментацию часто забывают. Между плановыми загрузками, фрагментация продолжает негативно влиять на работу жёсткого диска. Можно привести также множество примеров, демонстрирующих, что запланированная дефрагментация никак не влияет на фрагментацию.

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

  1.  Что такое прямой доступ к памяти?

Прямой доступ к памяти (англ. Direct Memory Access, DMA) — режим обмена данными между устройствами или же между устройством и основной памятью (RAM), без участия Центрального Процессора (ЦП). В результате скорость передачи увеличивается, так как данные не пересылаются в ЦП и обратно.

Кроме того, данные пересылаются сразу для многих слов, расположенных по подряд идущим адресам, что позволяет использование т.н. «взрывного» (burst) режима работы шины — 1 цикл адреса и следующие за ним многочисленные циклы данных. Аналогичная оптимизация работы ЦП с памятью крайне затруднена.

  1.  Как организуется управляемый прерываниями ввод-вывод?

Всякий раз, когда передача данных в или из управляемого оборудования может быть отложена по любой причине, автору драйвера следует реализовывать буферизацию. Буферы данных помогают отделить передачу и приём данных от системных вызовов write и read, а также повысить общую производительность системы.

Хороший буферный механизм приводит к вводу/выводу, управляемому прерываниями, в котором входной буфер заполнен во время прерывания и очищается процессом, которые читает устройство; выходной буфер заполняется процессами, которые пишут в устройство, и опустошается во время прерывания. Примером управляемого прерыванием вывода является реализация /dev/shortprint. Чтобы управляемая прерыванием передача данных происходила успешно, оборудование должно быть способно генерировать прерывания со следующей семантикой:

• Для ввода, устройство прерывает процессор, когда получены новые данные и они готовы для получения процессором системы. Фактические действия для выполнения зависят от того, использует ли устройство порты ввода/вывода, отображение на память, или DMA.

• Для вывода, устройство обеспечивает прерывание или когда оно готово принять новые данные, или для подтверждения успешной передачи данных. Устройства, использующие отображение на память, и DMA-совместимые устройства обычно генерируют прерывания, чтобы сообщить системе, что они завершили работу с буфером.

  1.  Что дает многоуровневая организация физической памяти современных ЭВМ?

Многоуровневая память [multilevel memory ] - Организация памяти, состоящая из нескольких уровней запоминающих устройств с различными характеристиками и рассматриваемая со стороны пользователей как единое целое. Для многоуровневой памяти характерна страничная организация, обеспечивающая “прозрачность” обмена данными между ЗУ разных уровней.

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

  1.  снижается стоимость бита;
  2.  возрастает емкость;
  3.  возрастает время доступа;
  4.  снижается частота обращения процессора к памяти.
  5.  Как связан уровень мультипрограммирования с объемом оперативной памяти?

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

  1.  Что такое виртуальная память? Какие подходы к организации виртуальной памяти используются в ЭВМ?

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

Размер дискового пространства, который можно выделить для организации виртуальной памяти ограничивает возможностями ЦП по адресации и составляет 2^32 ≈ 4 ГБ степени для 32-х разрядных процессоров и 2^64 для 64-х разрядных ЦП.

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

Для виртуализации используют 2 возможных подхода:

  1.  Свопинг – образы процессов выгружаются на диск и возвращаются в ОП целиком.
  2.  Виртуальная память – между ОП и диском перемещаются части образов (сегменты, страницы, блоки и т. д.) процессоров.

Недостатки свопинга:

● избыточность перемещаемых данных и в силу этого замедление работы системы и неэффективное использование памяти.

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

Достоинства свопинга:

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

Виртуальная память не имеет указанных недостатков, но её проблемой является значительные затраты времени на преобразование виртуальных адресов в физические, сложность программной и аппаратной поддержки.


  1.  Что такое свопинг? Для чего он используется?

Свопинг — один из механизмов виртуальной памяти, при котором отдельные фрагменты памяти (обычно неактивные) перемещаются из ОЗУ на жёсткий диск, освобождая ОЗУ для загрузки других фрагментов памяти. Такими фрагментами в современных ЭВМ являются страницы памяти.

Временно выгруженные из памяти страницы могут сохраняться на внешних запоминающих устройствах как в файле, так и в специальном разделе на жёстком диске (partition), называемые соответственно swap-файл и swap-раздел. В случае откачки страниц, соответствующих содержимому какого-либо файла (например, memory-mapped files), они могут удаляться. При запросе такой страницы она может быть считана из оригинального файла.

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

  1.  Назовите функции ОС по управлению памятью.

● отслеживание и учет свободной и занятой памяти.

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

● настройка адресов программы на конкретную область физической памяти.

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

● защита памяти выделенной процессу от возможных вмешательств со стороны других процессов.

● дефрагментация памяти.

  1.  Что понимается под дефрагментацией памяти?

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

Кластер - это наименьшее место на диске, которое может быть выделено для хранения файла.

  1.  Раскройте понятия: логический, математический, виртуальный и физический адреса.

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

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

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


  1.  В чем суть страничной организации виртуальной памяти?

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

При страничной организации виртуальное адресное пространство (ВАП) каждого загруженного приложения (процесса) делится на одинаковые фиксированные для данной системы части, называемые виртуальными страницами.

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

Оперативная память компьютера также делится на страницы,  называемые физическими. Их размер, как правило, совпадает с размерами виртуальной страницы. Размер страницы всегда выбирается кратным степени двойки (1024, 2048, 4096,…).

При создании процессов ОС загружает в ОП несколько его виртуальных страниц – начальные страницы кодового сегмента и сегмент исходных данных.

Копия всего виртуального пространства находится на диске.

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

  1.  В чем суть сегментной организации виртуальной памяти?

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

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

В настоящее время современные ЭВМ обеспечиваются множеством полностью независимых адресных пространств, называемых сегментами. Каждый сегмент содержит линейную последовательность адресов от 0 до некоторого максимума. Сегменты могут быть различной длины. Их размер может меняться во время выполнения. Поскольку каждый сегмент представляет собой отдельное адресное пространство, разные сегменты могут менять свои размеры независимо друг от друга.

Чтобы определить адрес такой памяти программы используют адрес, состоящий из двух частей – номера сегмента и адреса внутри сегмента. Максимальный размер сегмента определяется разрядностью виртуального адреса (для 32-х разрядного Pentium’а 2^32≈4Гб).

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

  1.  В чем суть сегментно-страничной организации виртуальной памяти?

Сегментно-страничная виртуальная память – использует двухуровневое деление: виртуальное адресное пространство делится на сегменты, а сегменты на страницы. Единицей перемещения является страница.

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

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

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

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

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

  1.  Основные компоненты подсистемы ввода-вывода.

Основные компоненты: драйверы, файловая система, система прерываний.

Устройства ввода-вывода по функциональному назначению принято делить на три основные группы:

  1.  Устройства, работающие с пользователем – обеспечивают связь пользователя с компьютером (принтеры, дисплей, клавиатура, манипуляторы и др.)
  2.  Устройства, работающие с компьютером – обеспечивают связь с электронным оборудованием (дисковые устройства, датчики, контроллеры, преобразователи и др.)
  3.  Коммуникации – обеспечивают связь с удаленными устройствами в сети (модемы, сетевые платы и др.)
  4.  Основные функции подсистемы ввода-вывода.
  5.  Организация параллельной работы устройств ввода-вывода и процессора.
  6.  Согласование скоростей обмена и кэширования данных
  7.  Разделение устройств и данных между процессами
  8.  Обеспечение удобного логического интерфейса между устройствами и остальной частью системы
  9.  Поддержка широкого спектра драйверов с возможностью простого включения в систему нового драйвера
  10.  Динамическая загрузка и выгрузка драйверов
  11.  Поддержка нескольких файловых систем
  12.  Поддержка синхронных и асинхронных операций ввода-вывода.


  1.  Три основных метода организации параллельной работы устройств ввода-вывода и процессора.

Для современных персональных ЭВМ операции ввода-вывода могут выполняться тремя способами:

  1.  С помощью программируемого ввода-вывода. В случае обработки процессором команды ввода-вывода он выполняет ее, посылая соответствующую команду контроллеру ввода-вывода. Контроллер выполняет требуемое действие, а процессор находится в режиме ожидания, периодически проверяя завершение операции ввода-вывода. ЦП непосредственно управляет операциями ввода-вывода, определяет состояние устройств ввода-вывода и осуществляет передачу данных. Основным недостатком этого метода является значительный по времени простой ЦП в ожидании.
  2.  Ввод-вывод, управляемый прерываниями. ЦП посылает необходимые команды контроллеру и продолжает выполнять текущий процесс, если нет необходимости в ожидании операции ввода-вывода. В противном случае текущий процесс приостанавливается до получения сигналов прерывания о завершении ввода-вывода, а процессор переключается на выполнение другого процесса. Наличие прерываний ЦП проверяет в конце каждого цикла команд. Данный метод достаточно эффективен т.к. исключает бесполезный простой ЦП. Но и здесь ввод-вывод потребляет значительное кол-во времени ЦП т.к. каждое слово, передаваемое из памяти в контроллер (или обратно) проходит через ЦП.
  3.  Прямой доступ к памяти (DMA - Direct Memory Access). В этом случае специальный модуль прямого доступа к памяти управляет обменом данными между основной памятью и контроллером. ЦП посылает запрос на передачу блока данных модулю DMA, а прерывание происходит только после передачи всего блока данных.  DMA-контроллер имеет доступ к системной шине независимо от ЦП. Он содержит несколько регистров, доступных ЦП. Они задают, какой порт ввода-вывода должен быть использован, направление переноса данных, единицы переноса информации (байт, бит, слово…), а также число байтов, переносимых за одну операцию
  4.  Методы согласования скоростей работы периферийных устройств.

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

Для увеличения объема буфера и снижения его скорости работы часто используют винчестер, создавая на нем специальный дисковый файл, используемый в качестве буфера (спул файл/спулинг файл).

Другим решением может быть использование большой буферной памяти в контроллере устройства. Это позволяет избежать медленных операций чтения/записи на диск и значительно повысить скорость работы. Например, графические платы используют буферную память соизмеримую по объему с ОЗУ и превосходящую ее по скорости работы.

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

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

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


  1.  Понятие буферизации.

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

Буферизация по принципу своего построения бывает прозрачная (пример — кэширование диска на запись, когда процессы или устройства не подозревают о существовании процедуры буферизации между ними), и непрозрачная, когда сторонам для совершения обмена требуются знания о буфере. Наглядный пример. С бумажными почтовыми отправлениями совершается инкапсуляция в мешки с почтой, далее в вагоны поездов, автомобили и прочие транспортные средства. Отправитель же и получатель обязаны знать только один уровень буферизации — почтовые ящики. Остальные уровни прозрачны для пользователя.

Термины «прозрачная» и «непрозрачная» буферизация не совсем удачны, поскольку могут несколько сбивать с толку. В качестве более удачных можно было бы предложить термины, соответственно, «невидимая» и «видимая буферизация».

  1.  Понятие драйвера устройства.

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




1. Отечественная война 1812 года.html
2. Курсовая работа- Анализ и прогнозирование финансовой устойчивости предприятия
3. темах и методами их исследования
4. тема демократич госва; ограниченность природных ресурсов кроме сша; отлаженная системы управл на всех уров.html
5. Курсовая работа- Генетика
6. Библейско-богословская деятельность профессора Н.Н. Глубоковского в эмиграции
7. 2013 г УТВЕРЖДАЮ- Начальник Управления по физической культуре спорту и туризму Адм
8. ВОЛОСОВОАВТОТРАНС Время отправления Из B
9. Шина Intel ISA
10. Тема 5 Социальное взаимодействие Тест 1
11. на тему ldquo;Проект производства работ на строительство 9этажного жилого домаrdquo; Проектиров
12. разному Как весьма гармонично так и весьма напряженно
13. тема выполняет также и защитную функцию
14. Чувашской государственный педагогический университет им
15. ная Гидроокись алюминия ФормалинКуриный белок Альбумин человека Бычий сыворочный альбуминП
16. Реферат- Мышление и условия формирования личности
17. . Общая характеристика прохождения практики в следственном отделе ОВД г
18. Анализ финансовой устойчивости предприятия ОАО Кавказгидрогеология
19. Байкальский государственный университет экономики и права Торговоэкономический колледж
20. тема правовых норм регулирующих семейные отношения т