
- •1. Микропроцессор: понятие и функции.
- •2. Микропроцессор: функции и основные характеристики.
- •1) Выборка команд из озу
- •3. Архитектуры risc и cisc. Отличия, преимущества и недостатки.
- •Недостатки cisc архитектуры
- •4. Гарвардская архитектура.
- •Классическая гарвардская архитектура
- •Отличие от архитектуры фон Неймана
- •5. Архитектура фон Неймана.
- •6. Конвейерная архитектура.
- •7. Спекулятивное выполнение.
- •8. Шинная архитектура. Виды шин используемые в современных системах.
- •9. Понятия микроархитектуры микропроцессора.
- •10. Система команд: основные типы, их преимущества и недостатки.
- •11. Шины данных, адреса и «разрядность эвм». Шина данных.
- •12. Функционирование процессора в реальном и защищенном режимах.
- •13. Bios. Функции и недостатки современных реализаций.
- •Характерные недостатки bios
- •14. Post. Функции и принципы функционирования.
- •15. Uefi. Функции и преимущества по сравнению с bios.
- •Основные преимущество uefi перед bios:
- •16. Прерывания bios.
- •17. Процедура начальной загрузки ос.
- •18. Mbr и его функции.
- •19. Интерфейс acpi.
- •20. Конструкция hdd.
- •Логическая организация дискового пространства
- •Первичный (основной) раздел
- •Расширенный (дополнительный) раздел
- •Пример разбиения жёсткого диска на разделы
- •Структура записи в кэше
- •Характеристики модулей
- •Принципы работы
- •Сегментная адресация в реальном режиме
- •Сегментная адресация в защищённом режиме (селекторная адресация)
- •61) Ос: низкоуровневые функции, драйверы
- •62) Ос: Linux — структура ядра.
- •63) Ос: многозадачность. Реализации.
- •Совместная или кооперативная многозадачность
- •Вытесняющая или приоритетная многозадачность (режим реального времени)
- •64) Ос: многопоточность. Реализации.
- •65) Модули ядра Linux: назначение.
- •66) Модули ядра Linux: загрузка и выгрузка.
- •67) Linux: системные вызовы.
- •68) Linux: методы выполнения системных вызовов.
- •69) Linux: управление памятью.
- •71.Библиотеки: типы и их характеристики.
- •Динамические библиотеки
- •Статические библиотеки
- •72.Разделяемые библиотеки.
- •73.Статические библиотеки.
- •74.Этапы компиляции.
- •75. Компоновка (линковка).
- •76. Загрузка программ на выполнение.
- •77. Компиляоры. Принципы работы.
- •78. Современные компиляторы: общие характеристики.
- •79. Jit. Понятие и функционирование.
- •80. Виртуальные машины (Java etc)
64) Ос: многопоточность. Реализации.
Многопото́чность — свойство платформы (например, операционной системы, виртуальной машины и т. д.) или приложения, состоящее в том, что процесс, порождённый в операционной системе, может состоять из нескольких потоков, выполняющихся «параллельно», то есть без предписанного порядка во времени. При выполнении некоторых задач такое разделение может достичь более эффективного использования ресурсов вычислительной машины.
Такие потоки называют также потоками выполнения (от англ. thread of execution); иногда называют «нитями» (буквальный перевод англ. thread) или неформально «тредами».
Сутью многопоточности является квазимногозадачность на уровне одного исполняемого процесса, то есть все потоки выполняются в адресном пространстве процесса. Кроме этого, все потоки процесса имеют не только общее адресное пространство, но и общие дескрипторы файлов. Выполняющийся процесс имеет как минимум один (главный) поток.
Многопоточность (как доктрину программирования) не следует путать ни с многозадачностью, ни с многопроцессорностью, несмотря на то, что операционные системы, реализующие многозадачность, как правило реализуют и многопоточность.
К достоинствам многопоточности в программировании можно отнести следующее:
Упрощение программы в некоторых случаях за счет использования общего адресного пространства.
Меньшие относительно процесса временны́е затраты на создание потока.
Повышение производительности процесса за счет распараллеливания процессорных вычислений и операций ввода/вывода.
Типы реализации потоков
Поток в пространстве пользователя. Каждый процесс имеет таблицу потоков, аналогичную таблице процессов ядра.
Достоинства и недостатки этого типа следующие: Недостатки
Отсутствие прерывания по таймеру внутри одного процесса
При использовании блокирующего системного запроса для процесса все его потоки блокируются.
Сложность реализации
Поток в пространстве ядра. Наряду с таблицей процессов в пространстве ядра имеется таблица потоков.
«Волокна» (англ. fibers). Несколько потоков режима пользователя, исполняющихся в одном потоке режима ядра. Поток пространства ядра потребляет заметные ресурсы, в первую очередь физическую память и диапазон адресов режима ядра для стека режима ядра. Поэтому было введено понятие «волокна» — облегчённого потока, выполняемого исключительно в режиме пользователя. У каждого потока может быть несколько «волокон».
65) Модули ядра Linux: назначение.
Модуль — это программный код, который может быть загружен или выгружен ядром
по мере необходимости. Модули расширяют функциональные возможности ядра без
необходимости перезагрузки системы. Одна из разновидностей модулей ядра – драйверы
устройств. При отсутствии поддержки модулей для добавления в ядро новых возможностей пришлось бы изменять код ядра, заново компилировать все ядро, а потом перезагружатьсистему. На практике при конфигурировании ядра перед его компиляцией, можно определить, какие части ядра должны быть скомпилированы в объектном файле ядра, какие – в виде отдельных объектных файлов (т.е. модулей), а какие не должны компилироваться вовсе.
В Linux ядро монолитное, т.е. все его драйвера и подсистемы работают в своем адресном пространстве, отделенном от пользовательского. Сам термин «монолит» говорит о том, что в ядре сконцентрировано всё, и, по логике, ничего не может в него добавляться или удаляться. В случае с ядром Linux — это правда лишь отчасти: ядро Linux может работать в таком режиме, однако, в подавляющем большинстве сборок возможна модификация части кода ядра без его перекомпиляции, и даже без его выгрузки. Это достигается путем загрузки и выгрузки некоторых частей ядра, которые называются модулями. Чаще всего в процессе работы необходимо подключать модули драйверов устройств, поддержки криптографических алгоритмов, сетевых средств.