sga-help.ru

Демо (html) Системное программное обеспечение (курс 1)



Общие сведения о программном обеспечении. Операционные системы

NetWare использует метод невытесняющей

- многозадачности

Абстракция набора локальных переменных монитора – это виртуальный

- ресурс

Алгоритм нулевого этапа загрузки операционной системы

- 1 распознание начальной программой основных устройств, на которые может быть записана нужная пользователю программа
- 2 загрузка этой программы в память
- 3 передача ей выполнения
- 4 поддержка интерфейса, позволяющего менять настройки

Алгоритм управления вводом-выводом, осуществляемый центральным процессором

- 1 посылка устройству управления команды, требующей, чтобы устройство ввода-вывода выполнило некоторое действие
- 2 исполнение команды транслированием сигналов, понятных устройству управления и центральному устройству, в сигналы, понятные устройству ввода-вывода
- 3 выдача устройством ввода-вывода сигнала готовности, который сообщает процессору о том, что можно выдать новую команду для продолжения обмена данными
- 4 опрос соответствующей линии интерфейса на наличие или отсутствие нужного сигнала

Алгоритм установки программного обеспечения для ОС Windows

- 1 поиск установочного набора (дистрибутива) программы
- 2 проверка на соответствие системным требованиям
- 3 поиск в установочном наборе файла, запускающего установку, и выполнение его
- 4 последовательный ответ на вопросы, задаваемые мастером



Организация вычислительного процесса

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

классом

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

- 1 выбор сегментной части виртуального адреса
- 2 выбор по индексу записи той таблицы, адрес которой находится в регистре адреса таблицы дескрипторов
- 3 сравнение части виртуального адреса, соответствующей смещению, с полем длины в дескрипторе
- 4 вычисление реального адреса как суммы базового адреса из дескриптора сегмента и смещения из виртуального адреса, если смещение в сегменте не превышает его длины

Алгоритм размещения секций для редактора связей ld(1)

- 1 в одну выходную секцию помещаются все входные секции .init, а за ними все входные секции .text
- 2 все входные секции .data помещаются в одну выходную
- 3 в системах со страничной виртуальной памятью, выходная секция связывается с адресом, который получается выравниванием на машинно-зависимую границу плюс величина, определяемая размерами заголовков и секции .text
- 4 секции неинициализированных данных .bss, а также неинициализированные и неразмещаемые глобальные имена помещаются в одну выходную секцию с именем .bss

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

- 1 пометить все ячейки кучи, на которые прямо указывают значения из стека времени выполнения
- 2 просмотреть кучу, начиная с низших адресов, чтобы найти первый помеченный указатель, указывающий на непомеченную ячейку, и пометить ее
- 3 продолжать просмотр кучи, помечая непомеченные ячейки, на которые указывают помеченные ячейки
- 4 выделить адрес ячейки с наименьшим адресом, помеченным таким способом, и назвать его низшим

Алгоритм сборки мусора, использующий стек сборки мусора

- 1 линейно просматривается стек времени выполнения, пока не будет обнаружена переменная, указывающая на непомеченную ячейку кучи
- 2 адреса ячеек помещаются в стек сборки мусора, если они являются указателями на непомеченные ячейки кучи
- 3 маркируются все непомеченные ячейки кучи, на которые указывает куча
- 4 адреса непомеченных ячеек кучи помещаются в стек сборки мусора



Отладчик

Cтруктура FILETIME задает время в интервалах, каждый из которых равен ___ наносекундам

100

dwX и dwY - поля структуры STARTUPINFO, указывающие

позицию левого угла окна консоли

dwXCountChars и dwYCountChars - поля структуры STARTUPINFO, указывающие

размер буфера экрана

dwXSize и dwYSize - поля структуры STARTUPINFO, указывающие

размер окна

Алгоритм отладки драйвера клавиатуры с помощью программы Turbo Debugger

- 1 запустите отладчик и загрузите программу
- 2 установите точку останова в начале резидентной части кода
- 3 с помощью команды Run запустите рабочую часть программы
- 4 отладьте рабочую часть программы с помощью обычных методов