The website "dmilvdv.narod.ru." is not registered with uCoz.
If you are absolutely sure your website must be here,
please contact our Support Team.
If you were searching for something on the Internet and ended up here, try again:

About uCoz web-service

Community

Legal information

6.2.3 Написание драйвера API ядра

6.2.3 Написание драйвера API ядра

Предыдущая  Содержание  Следующая V*D*V

Иногда вы столкнётесь с трудностями при принятии решения о переносе задачи в пространство пользователя или пространство ядра, так как она вызывает как функции пользователя, так и функции ядра. Та же проблема возникает с функцией, которая вызывает функции как в пользовательском пространстве, так и в пространстве ядра. Например, рассмотрим функцию func, вызывающую функции func1 и func2. func1 является функцией пользовательского пространства, а func2 - функцией ядра.

 

void func(){

  func1(); <-- Функция пользовательского пространства

  func2(); <-- Функция ядра

}

 

Куда должна быть перенесена функция func? В пространство пользователя или пространство ядра? Вам необходимо написать драйвер API ядра для поддержки таких случаев. В модели драйверов API ядра функция func переносится в пространство пользователя, предоставляя интерфейс для функции func2 в пространстве пользователя. Драйвер API ядра подробно обсуждается в Разделе 6.5.

В этом разделе мы обсудили план по переносу приложения с ОС реального времени на Linux.Оставшаяся часть главы разделена на три части:

 

В первой части мы вкратце обсудим pthread-ы (потоки POSIX). Pthread-ы представляют собой модель многопоточности в Linux.Раздел охватывает все операции с pthread-ами, которые надо понимать, прежде чем начинать процесс переноса.

Во второй части мы напишем небольшой OSPL, поддерживающий только интерфейсы создания задачи, уничтожения задачи и мьютекс.

В конце мы обсудим драйвер API ядра.

 

Предыдущая  Содержание  Следующая