Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
АВМиС - Готовые шпоры.doc
Скачиваний:
145
Добавлен:
15.09.2014
Размер:
1.75 Mб
Скачать

5.Базовая система ввода/вывода (bios). Подсистема post.

Физически системная BIOS представляет собой микросхему (или набор микросхем) постоянной памяти ПЗУ, или ROM, расположенную на материнской плате. Поэтому такую микросхему часто называют ROM BIOS, а саму программу системной BIOS – BIOS материнской платы. ROM BIOS – это вставленная в панель материнской платы микросхема с 28 или 32 контактами; она снабжена голографической наклейкой и надписью-логотипом производителя данной BIOS. Часто микросхемы впаиваются прямо в системную плату. Микросхемы ROM BIOS могут иметь различный объём, но чаще он составляет 128 или 256 Кб.

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

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

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

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

Для обновления BIOS новые версии следует получать непосредственно от изготовителей системной платы или с сайтов, хранящих такие версии. Собственно производители BIOS (фирмы AMI, Award, Phoenix) под конкретные платы их не настраивают: Этой настройкой (доработкой) базовых версий BIOS и занимаются изготовители системных плат.

Функции BIOS разделяются на следующие группы:

Инициализация и тестирование аппаратных средств по включении питания – POST (Power On Self Test)

Настройка и конфигурирование аппаратных средств и системных ресурсов– BIOS Setup

Загрузка операционной системы с дисковых носителей – Bootstrap Loader

Обслуживание аппаратных прерываний от системных устройств (таймера, клавиатуры, дисков) – BIOS Hardware Interrupts

Отработка базовых функций программных обращений (сервисов) к системным устройствам –BIOS Services

Все эти функции исполняет системный модуль System BIOS, хранящийся в микросхеме ПЗУ или флэш-памяти, установленной на системной плате.

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

POST (англ.Power On Self Test) — самотестирование после включения. Проверка аппаратного обеспечениякомпьютера, выполняемая при включении. Выполняется программойBIOSматеринской платы. Тест включает:

  1. Проверку целостности программы BIOS

  2. Обнаружение и инициализацию основных системных шин и устройств (контроллера прерываний, контроллеров шин, графического адаптера…), а также выполнение программ заложенных в устройства и обеспечивающих их самоинициализацию.

  3. Определение размера оперативной памятии тестирования первых 64килобайт.

Полный регламент работы POST:

  1. Проверка регистров процессора;

  2. Проверка контрольной суммы ПЗУ;

  3. Проверка системного таймера и порта звуковой сигнализации 8255;

  4. Тест контроллера непосредственного доступа к памяти (DMA);

  5. Тест регенератора оперативной памяти;

  6. Тест нижней области ОЗУ для проецирования резидентных программ в BIOS;

  7. Загрузка резидентных программ;

  8. Тест стандартного графического адаптера (VGA);

  9. Тест оперативной памяти;

  10. Тест основных устройств ввода (НЕ манипуляторов);

  11. Тест CMOS

  12. Тест основных портов LPT/COM;

  13. Тест НГМД (накопителей на гибкие магнитные диски);

  14. Тест НЖМД (накопителей на жесткие магнитные диски);

  15. Самодиагностика функциональных подсистем BIOS;

  16. Передача управления загрузчику BOOTStrap.

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

  1. Понятие о многозадачности.

Многозада́чность (англ.multitasking) — свойство операционной системыили среды программирования обеспечивать возможность параллельной (илипсевдопараллельной) обработки нескольких процессов. Истинная многозадачность операционной системы возможна только враспределенных вычислительных системах.

Свойства многозадачной среды

Примитивные многозадачные среды обеспечивают чистое «разделение ресурсов», когда за каждой задачей закрепляется определённый участок памяти, и задача активизируется в строго определённые интервалы времени.

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

  • Каждая задача имеет свой приоритет, в соответствии с которым получает процессорное время и память

  • Система организует очереди задач так, чтобы все задачи получили ресурсы, в зависимости от приоритетов и стратегии системы

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

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

  • Система обеспечивает защиту адресного пространства задачи от несанкционированного вмешательства других задач

  • Система обеспечивает защиту адресного пространства своего ядра от несанкционированного вмешательства задач

  • Система распознаёт сбои и зависания отдельных задач и прекращает их

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

  • Система гарантирует каждой задаче, что рано или поздно она будет активирована

  • Система обрабатывает запросы реального времени

  • Система обеспечивает коммуникацию между процессами

Трудности реализации многозадачной среды

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

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

Типы псевдопараллельной многозадачности

Невытесняющая многозадачность

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

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

Тип многозадачности, при котором следующая задача выполняется только после того, как текущая задача явно объявит себя готовой отдать процессорное время другим задачам. Как частный случай, такое объявление подразумевается при попытке захвата уже занятого объекта mutex (ядро Linux), а также при ожидании поступления следующего сообщения от подсистемы пользовательского интерфейса (Windows версий до 3.x включительно, а также 16-битные приложения в Windows 95/98/Me).

Вытесняющая или приоритетная многозадачность (режим реального времени)

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

Проблемные ситуации в многозадачных системах

Голодание (starvation)

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

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

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

Гонка (race condition)

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

Инверсия приоритета

Поток L имеет низкий приоритет, поток M — средний, поток H — высокий. Поток L захватывает mutex, и, выполняясь с удержанием mutex’а, преемптивно прерывается потоком M, который пробудился по какой-то причине, и имеет более высокий приоритет. Поток H пытается захватить mutex.

В полученной ситуации поток H ожидает завершения текущей работы потоком M, ибо, пока поток M исполняется, низкоприоритетный поток L не получает управления и не может освободить mutex.

БИЛЕТ 7-Классы приоритетов.

Драйверы.Приоритеты процессов .(приоритет-сокр.п-т+оконч.)Cистемн. планировщик (system scheduler), управл. переключением заданий, определяя, какому из конкурирующих потоков нужно выделить следующий квант времени процессора.Всё зависит от п-тов конкурирующих потоков.Существ. от 0 (низш. п-т) до 31 (высший п-т) п-тов. Нулевой уровень п-та система присваивает особому потоку обнуления свободных страниц. Он работает при отсутствии других потоков. Ни один поток, кроме него, не может иметь нулевой уровень. П-т каждого потока определя-ся исходя из:класса п-та процесса, в контексте которого выполн.-ся поток, О уровня п-та потока внутри класса п-та потока. Существует шесть классов п-тов для процессов:IDLE_PRIORITY_CLASS(процессы, осуществл-ие мониторинг системы, а также хранители экрана (screen savers) должны иметь этот класс чтобы не мешать другим полезным потокам);BELOW_NORMAL_PRIORITY_CLASS((BELOW... и ABOVE...) появились начиная с Windows NT 5.0.);NORMAL__PRIORITY_CLASS(по умолч.);ABOVE_NORMAL_PRIORITY_CLASS;HIGH_PRIORITY_CLASS(если поток процесса этого класса подолгу занимает процессор, то другие потоки не имеют шанса получить свой квант времени);REALTIME_PRIORITY_CLASS(способны прервать даже те системные потоки, которые обрабатывают сообщения мыши, ввод с клавиатуры и фоновую работу с диском)

Приоритеты потоков. Внутри каждого процесса, которому присвоен какой-либо класс п-та, могут существовать потоки, уровень п-та которых принимает одно из семи возможных значений:THREAD_PRIORITY_IDLE(если же вы для потока выберете этот уровень, то базовый уровень скакнет и опустится до единицы);THREAD_PRIORITY_LOWEST(фоновые потоки);THREAD_PRIORITY__BELOW___NORMAL(фоновые потоки);THREAD_PRIORITY_NORMAL(все потоки создаются с этим уровнем);THREAD_PRIORITY_ABOVE_NORMAL;THREAD_PRIORITY_HIGHEST;THREAD_PRIORITY_TIME_CRITICAL.

Каждому потоку назначается приоритет планирования. Имеется 32 уровня приоритетов планирования со значениями 0-31. Приоритеты планирования делятся на две главных группы:динамические приоритеты (dynamic priorities); приоритеты реального времени (real-time priorities).Динамические приоритеты имеют значения в диапазоне 1-15.Остальные реальн.времени. Программно назначенное потоку значение приоритета называют базовым приоритетом.

ДРАЙВЕР - это автономный компонент, который можно динамически загружать и выгружать из системы в зависимости от потребностей пользователя. Унифицированный модульный интерфейс, предоставляемый драйверами, позволяет диспетчеру ввода/вывода не видеть их структуру или внутренние детали. Драйверы могут вызывать друг друга через диспетчер ввода/вывода, что обеспечивает независимую обработку запроса ввода/вывода на нескольких уровнях. Драйверы являются модульными и могут располагаться слоями один над другим, что позволяет, например, драйверам разных файловых систем использовать для доступа к файлам один и тот же драйвер диска. Послойная модель драйверов позволяет также вставлять в иерархию новые драйверы. Драйвер - это особый тип динамически подключаемой библиотеки. Фактически, это DLL, удовлетворяющая ряду дополнительных требований и имеющая расширение «.sys». Как и любая DLL, драйвер имеет свою точку входа — функцию, вызываемую при загрузке исполняемого файла в память. Адрес этой точки входа содержится в служебной информации в самом модуле. При создании модуля в процессе компиляции настройки среды разработки предполагают, что имя соответствующей функции будет DriverEntry, хотя оно может быть заменено на любое другое. Момент загрузки драйвера определяется соответствующими данному драйверу настройками в реестре (ключ Start). Этими настройками управляет Service Control Manager (SCM), хотя они могут быть изменены и вручную. Прежде чем перейти к описанию структуры драйвера желательно ознакомиться с такими важными понятиями как объект-файл, объект-драйвер и объект-устройство.

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

Фактор чередования равен количеству оборотов диска, за которое можно последовательно в порядке возрастания номеров секторов прочитать одну дорожку. Если секторы расположены подряд в порядке возрастания номеров, при достаточном быстродействии контроллера диска можно прочитать дорожку за 1 оборот диска. Если фактор чередования равен двум, потребуется 2 оборота.

Сдвиг цилиндров. Некоторые НМД, в частности использующие интерфейс ESDI, можно отформатировать "со сдвигом цилиндров" (Cylinder Skew). В этом случае цилиндры, расположенные ближе к центру, будут сдвинуты вперед по направлению вращения относительно внешних цилиндров. При переходе от одного цилиндра к другому головки успеют как раз к началу следующей дорожки, т. е. к первому цилиндру. И если величина сдвига выбрана правильно, дополнительный оборот диска не потребуется.

Сдвиг головок. Для выбора правильного расположения первого сектора некоторые программы низкоуровневого форматирования позволяют задавать сдвиг головок (Head Skew) относительно маркера дорожки.

Информационная структура диска.

Каждая дискета (ГМД) обычно рассматривается MS-DOS как единственный логический диск.

Жесткий диск может быть подразделен на несколько разделов, используемых, различными ОС. Максимальное число разделов равно четырем. Собственно MS-DOS может использовать один или два раздела. Первый из них должен быть первичным разделом MS-DOS, второй – может быть расширенным разделом MS-DOS. В первичном разделе DOS может быть сформирован только один логический диск, а в расширенном – любое их количество. Каждый логический диск «управляется» своим логическим приводом.

На логическом уровне считается, что секторы логического диска имеют непрерывную нумерацию от 0 до N – 1, где N = T ´ H ´ S – количество секторов на диске. Соответствие между физическим адресом сектора и его логическим номером n (для ГМД) определяется следующей формулой:N = (t ´ H ´ S) + (h ´ S) + S – 1 (2.1)

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

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

Формулу (2.1.) можно использовать и в обратном направлении для определения физического адреса сектора по его логическому номеру:t = n / (H ´ S) ;h = (n – (t ´ H ´ S)) /

S = n – ((t ´ H ´ S) + (h ´ S)) + 1

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

Логическое дисковое пространство любого логического диска делится на две области: системную область и область данных.

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

Системная область состоит из следующих расположенных в логическом адресном пространстве подряд компонентов:загрузочной записи (BR – Boot Record);зарезервированных секторов (Rsec – Reserved Sector);таблицы размещения файлов (FAT – File Allocation Table);

корневого каталога (Rdir – Root Directory).

Файл – это именованный объект, который может хранить данные, программу или другую информацию.

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