Демо (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 отладьте рабочую часть программы с помощью обычных методов