Вытесняющее ядро позволяет процессу быть вытесненным, пока он работает в режиме ядра. Невытесняющее ядро не позволяет процессу, работающему в режиме ядра, быть вытесненным; процесс режима ядра -будет работать до тех пор, пока не выйдет из режима ядра, блокирует или добровольно передает контроль над процессором. Очевидно, непредвзятый Ядро по существу свободно от условий гонки в структурах данных ядра, поскольку в каждый момент времени в ядре активен только один процесс. Мы не можем сказать то же самое о вытесняющие ядра, поэтому они должны быть тщательно спроектированы, чтобы обеспечить данные ядра свободны от условий гонки. Упреждающие ядра особенно сложно проектировать для архитектур SMP, поскольку в этих средах два процесса режима ядра -могут работать одновременно на разных процессоры. Упреждающее ядро больше подходит для программирования в реальном -времени, так как оно разрешить процессу реального -времени вытеснять процесс, запущенный в данный момент в ядре. Более того, упреждающее ядро может быть более отзывчивым, поскольку риск того, что процесс режима ядра -будет работать в течение сколь угодно долгого периода, прежде чем уступка процессора ожидающим процессам. Конечно, этот эффект может быть сводится к минимуму путем разработки кода ядра, который не ведет себя таким образом. Позже В этой главе мы исследуем, как различные операционные системы управляют вытеснением внутри ядра.
Я подозреваю, что это связано с настройкой viminfo
. Изhelp viminfo
:
- The viminfo file
If you exit Vim and later start it again, you would normally lose a lot of information. The viminfo file can be used to remember that information, which enables you to continue where you left off.
The viminfo file is used to store:
- The command line history.
- The search string history.
- The input-line history.
- Contents of non-empty registers.
- Marks for several files.
- File marks, pointing to locations in files.
- Last search/substitute pattern (for 'n' and '&').
- The buffer list.
- Global variables.
Возможным значением для записи viminfo
является :
"
" Tell vim to remember certain things when we exit
" '20 : marks will be remembered for up to 20 previously edited files
" "100 : will save up to 100 lines for each register
" :20 : up to 20 lines of command-line history will be remembered
" % : saves and restores the buffer list
" n... : where to save the viminfo files
"
set viminfo='20,\"100,:20,%,n~/.viminfo
Вы можете увидеть, что у вас viminfo
установлено с помощью:
:set viminfo?
Вы можете изменить это, заменив '#
на '0
. Из приведенного выше примера:
set viminfo='0,\"100,:20,%,n~/.viminfo