Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Программирование [игнор отключен] [закрыт для гостей] / Как можетядро располагаться в том же адресном пространстве,что и пользовательский процесс? / 12 сообщений из 12, страница 1 из 1
27.09.2013, 01:53
    #38409148
Как можетядро располагаться в том же адресном пространстве,что и пользовательский процесс?
В википедии пишут:
Переключение контекста
авторВо многих случаях ядро располагается в том же адресном пространстве, что и пользовательский процесс . При переключении контекста между user-space и kernel-space (и обратно), что, например, происходит при выполнении системных вызовов, ядро не трогает регистр CR3, тем самым сохраняя TLB
Это как?
А если у нас на системе несколько процессов, каждый с изолированным виртуальным адресным пространством, то как ядро может располагаться в каждом из них?
...
Рейтинг: 0 / 0
27.09.2013, 02:36
    #38409161
White Owl
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как можетядро располагаться в том же адресном пространстве,что и пользовательский процесс?
в той статье слегка наоборот написано.
Не ядро располагается в адресном пространстве процесса, а адресное пространство процесса принадлежит пространству ядра. В итоге процесс видит ядро, ядро видит все процессы, но процессы друг-друга не видят.
...
Рейтинг: 0 / 0
27.09.2013, 03:00
    #38409163
Новый Год
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как можетядро располагаться в том же адресном пространстве,что и пользовательский процесс?
на мейнфреймах (z/OS) нет переключения контекста
там внутри адрес спейса есть все - и ядро и приложения и шаред память
...
Рейтинг: 0 / 0
27.09.2013, 13:45
    #38409802
Как можетядро располагаться в том же адресном пространстве,что и пользовательский процесс?
White Owlв той статье слегка наоборот написано.
Не ядро располагается в адресном пространстве процесса, а адресное пространство процесса принадлежит пространству ядра. В итоге процесс видит ядро, ядро видит все процессы, но процессы друг-друга не видят.
Хорошо, тогда если несколько процессов в адресном пространстве ядра, то как эти процессы не могут видеть друг друга если они все в одном адресном пространстве ядра?
...
Рейтинг: 0 / 0
27.09.2013, 13:45
    #38409806
Как можетядро располагаться в том же адресном пространстве,что и пользовательский процесс?
Новый Годна мейнфреймах (z/OS) нет переключения контекста
там внутри адрес спейса есть все - и ядро и приложения и шаред память
Т.е. там просто нет изоляции адресных пространств или вообще нет виртуальной памяти?
...
Рейтинг: 0 / 0
27.09.2013, 14:10
    #38409865
Новый Год
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как можетядро располагаться в том же адресном пространстве,что и пользовательский процесс?
ядро в адресном пространстве проНовый Годна мейнфреймах (z/OS) нет переключения контекста
там внутри адрес спейса есть все - и ядро и приложения и шаред память
Т.е. там просто нет изоляции адресных пространств или вообще нет виртуальной памяти?

есть, некоторые диапазоны адресов просто не изолированы
...
Рейтинг: 0 / 0
27.09.2013, 15:01
    #38409972
Как можетядро располагаться в том же адресном пространстве,что и пользовательский процесс?
Новый Годядро в адресном пространстве пропропущено...

Т.е. там просто нет изоляции адресных пространств или вообще нет виртуальной памяти?

есть, некоторые диапазоны адресов просто не изолированы
А имеете ввиду в эти "некоторые диапазоны адресов" входят адреса mutex/cond_var/events и шаред памяти для IPC?

Ну переключение контекста все равно будет, просто реже - только при переключении потоков.
...
Рейтинг: 0 / 0
27.09.2013, 16:44
    #38410174
softwarer
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как можетядро располагаться в том же адресном пространстве,что и пользовательский процесс?
ядро в адресном пространстве проА если у нас на системе несколько процессов, каждый с изолированным виртуальным адресным пространством, то как ядро может располагаться в каждом из них?
Ну для начала, никто не запрещает замапить сто "виртуальных адресных пространств" на один и тот же участок оперативной памяти.
...
Рейтинг: 0 / 0
27.09.2013, 17:53
    #38410270
Новый Год
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как можетядро располагаться в том же адресном пространстве,что и пользовательский процесс?
ядро в адресном пространстве проНовый Годпропущено...
есть, некоторые диапазоны адресов просто не изолированы
А имеете ввиду в эти "некоторые диапазоны адресов" входят адреса mutex/cond_var/events и шаред памяти для IPC?

нет, память которая доступна вообще всем "процессам" в системе
там терминология немножно другая

mutex/cond_var/events -- слишком высокоуровневые вещи в данном контексте
доступ к этой памяти обычно синхронизируется через CAS инструкцию

ядро в адресном пространстве проНу переключение контекста все равно будет, просто реже - только при переключении потоков.

"потоки" все в одном адресс спейсе
переключение контекста будет только при переключении адрес спейсов

а при системном вызове переключения контекста не будет
ядро "мапится" на один и тот же участок памяти в каждом адрес спейсе
...
Рейтинг: 0 / 0
27.09.2013, 19:50
    #38410385
Как можетядро располагаться в том же адресном пространстве,что и пользовательский процесс?
softwarerядро в адресном пространстве проА если у нас на системе несколько процессов, каждый с изолированным виртуальным адресным пространством, то как ядро может располагаться в каждом из них?
Ну для начала, никто не запрещает замапить сто "виртуальных адресных пространств" на один и тот же участок оперативной памяти.
И тогда будет "ядро располагается в том же адресном пространстве, что и пользовательский процесс ... тем самым сохраняя TLB ", исходный вопрос читали?
"сто "виртуальных адресных пространств"" - это сто раз обновить TLB.
...
Рейтинг: 0 / 0
27.09.2013, 19:59
    #38410391
Как можетядро располагаться в том же адресном пространстве,что и пользовательский процесс?
Новый Годядро в адресном пространстве пропропущено...

А имеете ввиду в эти "некоторые диапазоны адресов" входят адреса mutex/cond_var/events и шаред памяти для IPC?

нет, память которая доступна вообще всем "процессам" в системе
там терминология немножно другая
А что конкретно например содержится в этой памяти?

Новый Годядро в адресном пространстве проНу переключение контекста все равно будет, просто реже - только при переключении потоков.

"потоки" все в одном адресс спейсе
переключение контекста будет только при переключении адрес спейсов

а при системном вызове переключения контекста не будет
ядро "мапится" на один и тот же участок памяти в каждом адрес спейсе
А, т.е. не то, что в каждом виртуальном пространстве некая виртуальная область мапится на одну и ту же физическую область, а одна и та же виртуальная область мапится на одну и туже физическую область в разных процессах, т.е. одна и та же часть Page Table состоящая из ряда PTE используется сразу для нескольких виртуальных пространств?
Вообще интересная затея, а почему же это для x86 не сделали?
...
Рейтинг: 0 / 0
27.09.2013, 21:23
    #38410470
Новый Год
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как можетядро располагаться в том же адресном пространстве,что и пользовательский процесс?
ядро в адресном пространстве проА что конкретно например содержится в этой памяти?

это так называемая CSA/ECSA
http://pic.dhe.ibm.com/infocenter/zos/v1r11/index.jsp?topic=/com.ibm.zos.r11.ieae100/iea2e16012.htm

данные приложений там хранятся
какие-нибудь контрол блоки
приложения эти обычно от вендора, типа субд

затея это конечно интересная, только очень опасная
например утечка памяти в CSA, или запись чего-нибудь по неверному адресу приведет к краху системы

а под x86 вообще пишет кто угодно, нет никакого шанса что все будут писать программы корректно
...
Рейтинг: 0 / 0
Форумы / Программирование [игнор отключен] [закрыт для гостей] / Как можетядро располагаться в том же адресном пространстве,что и пользовательский процесс? / 12 сообщений из 12, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]