- •3) Стек, вектора прерываний
- •4. Клавиатура. Клавиатурный буфер.
- •5) Клавиатура. Байты статуса. Основные шаги обработки прерывания от клавиатуры
- •6) Видеосистемы
- •7) Диски. Логическая структура жёсткого диска.
- •10) Хранение длинного именных имён.
- •11) Функции блокировки диска
- •13) Ассемблеры. Режимы адресации.
- •14) Структура машинной команды. Префикс замены сегмента в памяти.
- •15) Компиляторы. Формальные языки и грамматики
- •16) Компиляторы. Формальные языки и грамматики. Классификация Хомского.
- •17) Распознаватели
- •18) Цепочки вывода
- •19) Преобразование грамматик
- •20) Таблица свёрток и диаграмма состояний
- •21) Метод восходящего разбора
- •22) Нисходящий метод
- •24) Генерация кода. Триады. Тетрады. Префиксная и постфиксная записи. Три формы объектного кода.
- •26) Компиляторы. Оптимизация кода.
- •27) Компоновщик
- •28) Загрузчики абсолютные, связывающие и перемещающие
- •29) Защита информации в персональных эвм. Средства, позволяющие контролировать доступ.
- •30) Защита информации в персональных эвм. Защита от копирования.
Основные функции ОС, требования, предъявляемые к ОС.
Функции ОС:
Управление ресурсами вычислитель.системы (процессорное время, оперативная память, периферийные устройства и ресурсы математического обеспечения);
Упрощение общения пользователя с ЭВМ. Создание удобного интерфейса пользователя (с такими элементами системного программирования как трансляторы, отладчики, загрузчики и т.д.).
Википедия: Основные функции:
Выполнение по запросу программ (ввод и вывод данных, запуск и остановка других программ, выделение и освобождение дополнительной памяти и др.).
Загрузка программ в оперативную память и их выполнение.
Стандартизованный доступ к периферийным устройствам (устройства ввода-вывода).
Управление оперативной памятью (распределение между процессами, организация виртуальной памяти).
Управление доступом к данным на энергонезависимых носителях (таких как жёсткий диск, оптические диски и др.), организованным в той или иной файловой системе.
Обеспечение пользовательского интерфейса.
Сохранение информации об ошибках системы.
Требования к ОС:
Надеж-ть – система должна быть так же надежна, как и аппар-ра, на кот-й она работает; должна производить определ-е и диагностир-е ошибок, защищать пользователя от его же ошибок.
-Уменьш-е числа критических сбоев.
-Сокращ-е объема ущерба, кот-ый м.б. причинен любой ошибкой.
-Возможность восстанов-ия после распростран. сбоев.
Защищ-ть – Система д.б. защищена как от внутр., так и от внешних ошибок, сбоев и отказов. Ее действия д.б. всегда предсказуемы, а прилож-я не должны иметь возможности наносить вред. Соврем.ОС защищает данные и другие ресурсы вычислит. системы от несанкционированного доступа и от попыток непреднамеренного повреждения этих данных.
Предсксаз-ть – система должна отвечать на запросы пользов-ля предсказуемым образом, рез-т выполнения команд пользов-ля д.б. одним и тем же, вне завис-сти от последов-сти выполн-я этих команд.
Удобство – Средства ОС д.б. простыми и гибкими, а логика ее работы ясна пользователю. Современные ОС ориентированы на обеспечение пользователю max-но возможного удобства при работе с ними. Необходимым условием этого стало наличие у ОС графического пользовательского интерфейса и всевозможных мастеров – программ, автоматизирующих установку, настройку и эксплуатацию системы.
Эффект-ть – система должна max-но повышать использов-е системн.ресурсов пользователем. Сама система не должна использ-ть больш.кол-во ресурсов.
Гибкость – системные операции должны настраиваться, ресурсы м.б.увеличены или уменьшены для того, чтобы эффективность и доступность.
Расширяемость(Р) – ОС является расширяемой, если в нее можно вносить дополн-я и измен-я, не нарушая целостности системы. Р достигается за счет модульной структуры ОС, при кот-ой программы строятся из отдельных модулей, взаимодействующих только через функциональный интерфейс. Такая архит-ра позволяет в случае необходимости добавлять новые или удалять ненужные компоненты. Однако простота, с кот-ой пользов-ль или системн.програм-ст сможет производить такие функцион.измен-я, определяется совершенством и продуманностью применяемых при построении системы решений.
Многозадачность – параллельное или всевдопараллельное выполнение задач
а также Эффективное распределение ресурсов вычислительной системы между процессами.
9.Переносимость. В идеальном случае ОС должна легко переноситься с одного типа аппаратной платформы на другой. Реально это далеко не всегда быстро и легко выполнимая задача. Как правило, ОС разрабатыв-ся для определенного типа аппаратных платформ и перенос ее на платформу с принципиально иным строением может стать трудной задачей.
10.Совместимость. ОС всегда измен-ются со временем, и эти измен-я более значимы, чем измен-я аппаратных средств. Измен-я ОС обычно заключ-ся в приобретении ими новых св-в, добавлении новых и модификации имеющихся ф-ций. Под требованием совмест-ти поним-ся сохранение возможности использов-я прикладных программ, написанных для «старой» или вообще другой ОС, в новой ОС.
Адресация памяти в реальном режиме. Сегментация памяти, сегментные регистры.
Процессор делит адресное простр-во на произвольное кол-во сегментов, каждый из кот-ых содержит не более 64 Кбайт. Адрес первого байта сегмента всегда кратен 16 и назыв-ся адресом сегмента или параграфом сегмента. Для работы с памятью используются две шины: - шина адреса; - шина данных. При работе в реальном режиме процессора компьютер оснащен 20-разрядной шиной адреса и 16-разрядной шиной данных, это означает, что имеется возможность адресоваться к 1 Мбайту памяти.
Возникает проблема представл-я 20-разр. физич. адреса памяти при помощи содержимого 16-разрядных регистров. Для этого использ-ся двухкомпонентный логич.адрес. Логический адрес состоит из 16-разрядных компонент: сегмента памяти и смещения внутри сегмента. Например, <CS:IP>
Для получения 20-разр.физич.адреса к сегментной компоненте приписываются справа четыре нулевых бита и складывается с компонентой смещения.
В процессоре имеется неск-ко быстрых элем-ов памяти на интегральных схемах, кот-ые назыв-ся регистрами. Регистры можно рассм-ть, как ЯП, к кот-ым ПР может обращаться быстрее, чем к обычной памяти. Регистры разбив-ся на 4 категории: 1) Регистры флагов 2) Рег-ры общего назнач-я (РОН) 3) Указатель инструкций 4) Сегментные регистры.
Все РОНы могут участвовать в ариф-ко-логических операциях. РОНы делятся условно на 2 части: Low – младшая и High – старшая (например, старшая часть – это AH, а младшая – AL). Так же использ-ся рег-ры EAX, EBX, ECX и EDX (E - Extended(расширенный))
AX – аккумулятор, BX - базовый регистр, CX – счетчик,
DX - данные. Явл-ся расширением регистра AX при умножении двойных слов, а также при операциях деления хранит остаток.
SI - индекс. Использ-ся в кач-ве индексного рег-ра, 2) DI - индекс. Использ-ся в кач-ве индексного регистра, 3) BP – дополнительный регистр базы. Используется в кач-ве базового регистра, 4) SP - указатель стека.
Сегментные регистры Регистр CS использ-ся для определ-я кодового сегмента, содержащего выполняемую прогр-у, и содержит начал.адрес этого сегмента. Регистр DS использ-ся для доступа к сегменту данных и содержит его начал.адрес. Регистр SS задает начал.адрес сегмента стека. Регистр ES использ-ся, для адресации данных, находящихся в разных физических сегментах.
Регистр флагов Этот 16-разр-ый (16-битовый) регистр содержит инфо о соотношении между данными, резул-тах операций и состоянии ПР в целом.
. Битовые флаги: O - флаг переполнения; D - флаг направления; I - флаг прерывания; T – флаг трассировки; S - флаг знака; Z - флаг нуля; A - флаг дополнительного переноса; P - флаг четности; C - флаг переноса. Неиспользуемые биты регистра флагов установлены в 0.
Некот-ые флаги устанавл-ся в резул-те выполн-я арифметич.операций или операций сравнения,Напр-р, флаг нуля (бит Z в регистре флагов) устанавл-ся после инструкции вычитания, если рез-т нулевой. Другие флаги (флаг трассировки, флаг прерыв-я, флаг направл-я) устанавл-ся спец.командами. Рег-р флагов не считывается и не модифицируется непосредственно.
3) Стек, вектора прерываний
Система прерыв-ий в реал.режиме работы ПР
4. Клавиатура. Клавиатурный буфер.
Клава включает в себя сложную топологию проводников, и даже собственный микропроцессор - контроллер.
Буфер устроен как циклическая очередь (FIFO - "первым записан - первым считан"). Он занимает непрерывную область адресов памяти с адреса 0040:001Е. Указатели на голову и хвост расположены по адресам 0040:001А и 0040:001С соответственно. Имеет длину 32 байта.
Полученный в резул-те преобразований в контроллере двухбайтовый код посылается в кольцевой буфер ввода, который служит для синхронизации ввода данных с клавиатуры и приёма их выполняемой программой. При переполнении буфера новые коды в него не поступают, а нажатие на клавиши вызывает предупреждающие сигналы.
Чтение, запись в буфер
Когда оба указателя равны, буфер пуст. 001Eh и 003Eh адреса начала и конца буфера. Указателями на начало и конец клавиатурного буфера обычно управляют обработчики прерываний INT 09h и INT 16h. Программа извлекает из буфера коды нажатых клавиш, используя различные функции прерывания INT 16h.
5) Клавиатура. Байты статуса. Основные шаги обработки прерывания от клавиатуры
Нажатие/отпускание любой клавиши вызывает сигнал аппаратного (внешнего) прерывания.
Это заставляет ПР прервать выполняемую программу и перейти на программу обработки прерывания от клавиатуры.
Процессор вместе с сигналом прерывания получает еще и номер вектора прерывания – 09h.
Программа INT 09h, получив управление в рез-те прерывания от клавиатуры, считывает из порта 60h скэн-код и анализирует его значение.
Если скэн-код принадлежит одной из управляющих клавиш и, к тому же, представляет собой код нажатия, в байте статуса клавы устанавл-ся бит (флаг), соответ-ющий нажатой клавише.
При нажатии любой клавиши программа INT 09h считывает из порта 60h её скэн-код нажатия и по таблице трансляции в коды ASCIформирует двухбайтовый код, старший байт кот-го содержит скэн-код, младший - ASCI
После передачи одного позиционного кода, клава ожидает от компа подтерждения готовности принять след.код. Если до получ-я сигнала подтверждения нажаты др.клавиши, клава записывает их позиционные коды в буфер
Кроме кодов ASCII существуют расширенные коды, присвоенные клавишам или комбинациям клавиш, которые не имеют представляющего их символа ASCII, такие как функциональные клавиши или комбинации с клавишей Alt. Расширенные коды имеют длину 2 байта: 1) всегда ASCII = 0. 2) номер расширенного кода. Например: Код функциональной клавиши F1=003Bh Проверка нажата ли F1 cmp ax,003Bh
ОС предост-ет неск-ко способов ввода данных с клав: – обращение к клаве как к файлу, с помощью прерывания DOS INT 21h с функцией 3Fh; – использов-е группы ф-ций DOS INT 21h из диапазона 1h...Ch, обеспечивающих посимвольный ввод с клав-ы в разных режимах; – посимвольный ввод путем обращения непосредственно к драйверу BIOS с помощью прерывания INT 16h.
Прочитать скэн-код и послать клавиатуре подтверждающий сигнал;
Установить соответствующий бит байта-статуса клавиш переключателей, если необходимо;
Преобразовать скэн-код в ASCII-код или;
Преобразовать скэн-код в номер расширенного кода, если нажата функциональная клавиша;
Поместить код клавиши в буфер клавиатуры.