Перейти к содержимому

Какие существуют способы реализации ядра системы

  • автор:

Какие существуют способы реализации ядра системы

Главное меню

Соглашение

Регистрация

Английский язык

Астрономия

Белорусский язык

Информатика

Итальянский язык

Краеведение

Литература

Математика

Немецкий язык

Обществознание

Окружающий мир

Русский язык

Технология

Физкультура

Для учителей

Дошкольникам

VIP — доступ

Автор: К.Самусенко | ID: 16941 | Дата: 14.4.2022

Помещать страницу в закладки могут только зарегистрированные пользователи
Зарегистрироваться

Получение сертификата
о прохождении теста

Какие существуют способы реализации ядра системы

Евдокимов А.А., Майстренко Н.В., Майстренко А.В.

3.2.3. Реализация потоков в пользовательском пространстве

Первый способ реализации набора потоков — это поместить весь набор потоков в пользовательское пространство. Ядро операционной системы не имеет никакой информации о таком наборе. В таком случае ядро управляет с его точки зрения обычными процессами, которые состоят из одного потока. Самым очевидным преимуществом такой реализации считается то, что набор потоков может быть реализован в не поддерживающей потоки операционной системе.

Все эти реализации имеют одну и ту же общую структуру (рис. 3.8, а). Запуск потоков происходит поверх системы поддержки исполнения программ (run-time system), представляющей собой набор процедур, которые управляют потоками.

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

При совершении потоком каких-нибудь действий, вызывающих его локальную блокировку, он вызывает процедуру системы поддержки исполнения программ. Данная процедура осуществляет проверку потока на возможность перевода в состояние блокировки. Она сохраняет по возможности регистры потока в соответствующие записи таблицы потоков, затем находит поток, который готов к выполнению, и перезагружает регистры сохраненными значениями нового потока. После переключения указателя стека и счетчика команд выполнение ново¬го потока автоматически возобновляется. Если машина получает инструкцию сохранения всех регистров, а последующей инструкцией будет загрузка всех регистров, то полное переключение потока осуществляется всего лишь за несколько инструкций. Переключение потоков, которое осуществляется подобным образом, на порядок быстрее, чем перехват управления ядром. Такое преимущество является достаточно веским аргументом в пользу реализации набора потоков на пользовательском уровне.

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

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

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

Операционные системы

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

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

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

Разделение времени позволило создать «многопользовательские» системы, в которых один (как правило) центральный процессор и блок оперативной памяти соединялся с многочисленными терминалами. При этом часть задач (таких как ввод или редактирование данных оператором) могла исполняться в режиме диалога, а другие задачи (такие как массивные вычисления) — в пакетном режиме.

Тест с ответами по дисциплине Операционные системы

Какие особенности характерны для современных универсальных операционных систем?

+ 1. поддержка многозадачности

+ 2. поддержка сетевых функций

+ 3. обеспечение безопасности и защиты данных

4. предоставление большого набора системных функций разработчикам приложений

Какие утверждения относительно понятия «API-функция» являются правильными?

+ 1. API-функции определяют прикладной программный интерфейс

+ 2. API-функции используются при разработке приложений для доступа к ресурсам компьютера

3. API-функции реализуют самый нижний уровень ядра системы

4. API-функции — это набор аппаратно реализованных функций системы

Какие особенности характерны для ОС Unix

+ 1. открытость и доступность исходного кода

2. ориентация на использование оконного графического интерфейса

+ 3. использование языка высокого уровня С

+ 4. возможность достаточно легкого перехода на другие аппаратные платформы

Какие типы операционных систем используются наиболее часто в настоящее время?

+ 1. системы семейства Windows

+ 2. системы семейства Unix/Linux

3. системы семейства MS DOS

4. системы семейства IBM OS 360/370

Какие задачи необходимо решать при создании мультипрограммны х ОС

+ 1. защита кода и данных разных приложений, размещенных вместе в основной памяти

+ 2. централизованное управление ресурсами со стороны ОС

+ 3. переключение процессора с одного приложения на другое

4. необходимость размещения в основной памяти кода и данных сразу многих приложений

Какое соотношение между используемыми на СЕРВЕРАХ операционными системами сложилось в настоящее время?

+ 1. примерно поровну используются системы семейств Windows и Unix/Linux

2. около 10 % — системы семейства Windows, около 90 % — системы смейства Unix/Linux

3. около 90 % — системы семейства Windows, около 10 % — системы семейства Unix/Linux

4. около 30 % — системы семейства Windows, около 30 % — системы семейства Unix/Linux, около 40 % — другие системы

Какие утверждения относительно понятия «Ядро операционной системы» являются правильными?

+ 1. ядро реализует наиболее важные функции ОС

+ 2. подпрограммы ядра выполняются в привилегированно м режиме работы процессора

3. ядро в сложных ОС может строиться по многоуровневому принципу

4. ядро всегда реализуется на аппаратном уровне

Какие сообщения возникают при нажатии на клавиатуре алфавитно-цифров ой клавиши?

Какие шаги в алгоритме взаимодействия приложения с системой выполняются операционной системой

1. формирование сообщения и помещение его в системную очередь

+ 2. распределение сообщений по очередям приложений

+ 3. вызов оконной функции для обработки сообщения

4. извлечение сообщения из очереди приложения

Что представляет собой понятие “сообщение” (message)?

1. небольшую структуру данных, содержащую информацию о некотором событии

2. специальную API-функцию, вызываемую системой при возникновении события

3. однобайтовое поле с кодом происшедшего события

+ 4. небольшое окно, выводящее пользователю информацию о возникшем событии

Какие утверждения относительно иерархии окон являются справедливыми

+ 1. главное окно может содержать любое число подчиненных окон

+ 2. любое подчиненное окно может содержать свои подчиненные окна

3. подчиненные окна могут быть двух типов – дочерние и всплывающие

+ 4. приложение может иметь несколько главных окон

Как можно узнать координаты текущего положения мыши при нажатии левой кнопки

+ 1. с помощью события WM_LbuttonDown и его поля LPARAM

2. с помощью события WM_LbuttonDown и его поля WPARAM

3. с помощью события WM_LbuttonDown и его полей WPARAM и LPARAM

4. с помощью события WM_LbuttonCoordi nates

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

Какая инструкция (оператор) является основной при написании оконной функции?

+ 1. инструкция множественного выбора типа Case — Of

2. условная инструкция if – then

3. инструкция цикла с известным числом повторений

4. инструкция цикла с неизвестным числом повторений

Какой вызов позволяет добавить строку в элемент-список?

+ 1. SendMessage (MyEdit, lb_AddString, 0, строка)

2. SendMessage (“Edit”, lb_AddString, 0, строка)

3. SendMessage (MyEdit, AddString, 0, строка)

4. SendMessage (MyEdit, строка, lb_AddString, 0)

Какие утверждения относительно оконной функции являются правильными

+ 1. оконная функция принимает 4 входных параметра

+ 2. тело оконной функции – это инструкция выбора с обработчиками событий

+ 3. оконная функция обязательно должна обрабатывать сообщение wm_Destroy

+ 4. оконная функция явно вызывается из основной функции приложения

Какие сообщения возникают при нажатии на клавиатуре функциональной клавиши?

Что может быть причиной появления внутреннего прерывания

+ 1. попытка деления на ноль

2. попытка выполнения запрещенной команды

+ 3. попытка обращения по несуществующему адресу

4. щелчок кнопкой мыши

Какие операции определяют взаимодействие драйвера с контроллером

+ 1. проверка состояния устройства

+ 2. запись данных в регистры контроллера

+ 3. чтение данных из регистров контроллера

4. обработка прерываний от устройства

Какие операции включает в себя вызов обработчика нового прерывания

+ 1. обращение к таблице векторов прерываний для определения адреса первой команды вызываемого обработчика

2. сохранение контекста для прерываемого программного кода

+ 3. занесение в счетчик команд начального адреса вызываемого обработчика

+ 4. внесение необходимых изменений в таблицу векторов прерываний

Что входит в программный уровень подсистемы ввода/вывода

2. диспетчер ввода/вывода

+ 3. системные вызовы

Что определяет понятие “порт ввода/вывода”

+ 1. порядковый номер или адрес регистра контроллера

2. машинную команду ввода/вывода

3. устройство ввода/вывода

4. контроллер устройства ввода/вывода

Какие существуют типы прерываний

+ 1. внешние или аппаратные прерывания

+ 2. внутренние прерывания или исключения

+ 3. программные псевдопрерывания

4. системные прерывания

Какие утверждения относительно понятия прерывания являются правильными

+ 1. прерывания — это механизм реагирования вычислительной системы на происходящие в ней события

2. прерывания используются для синхронизации работы основных устройств вычислительной системы

+ 3. прерывания возникают в непредсказуемые моменты времени

4. прерывания — это основной механизм планирования потоков

Какую информацию могут содержать регистры контроллеров устройства

+ 1. текущее состояние устройства

+ 2. текущую выполняемую устройством команду

3. данные, передаваемые от устройства системе

4. данные, передаваемые системой устройству

Как выстраиваются аппаратные прерывания в зависимости от их приоритета

1. сбой аппаратуры > таймер > дисковые устройства > сетевые устройства > клавиатура и мышь

2. сбой аппаратуры > таймер > дисковые устройства > клавиатура и мышь > сетевые устройства

+ 3. таймер > сбой аппаратуры > дисковые устройства > сетевые устройства > клавиатура и мышь

4. сбой аппаратуры > дисковые устройства > таймер > сетевые устройства > клавиатура и мышь

Что может быть причиной появления внешнего прерывания

+ 1. нажатие клавиши на клавиатуре

+ 2. завершение дисковой операции

3. обращение выполняемой процессором команды по несуществующему адресу

4. попытка выполнения запрещенной команды

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *