Ядро Linux повторно используемо (как все UNIX), который просто означает, что несколько процессов могут быть выполнены ЦП. Он не должен ожидать, пока чтение доступа к диску не обрабатывается смертельным медленным контроллером жесткого диска, ЦП может обработать некоторый другой материал, пока доступ к диску не закончен (который сам инициирует прерывание раз так).
Обычно прерывание может быть прервано другим прерыванием (вытеснение), это называют 'Вложенным Выполнением'. В зависимости от архитектуры существуют все еще некоторые критические функции, которые должны работать без прерывания (неупреждающего) путем завершенного отключения прерываний. На x86 они проходят некоторое время соответствующие функции (time.c
, hpet.c
) и некоторые xen
материал.
Существует только два приоритетных уровня относительно прерываний: 'включите все прерывания', или 'отключают все прерывания', таким образом, я предполагаю, что Ваше "высокоприоритетное прерывание" является вторым. Это - единственное поведение, ядро Linux знает касающиеся приоритеты прерывания и не имеет никакого отношения к расширениям в реальном времени.
Если прерываемое прерывание (Ваше "низкоприоритетное прерывание") прервано другим прерыванием ("высоко" или "низко"), ядро сохраняет старый код выполнения прерванного прерывания и начинает обрабатывать новое прерывание. Это "вложение" может произойти многократно и таким образом может создать несколько уровней прерванных прерываний. Впоследствии, ядро перезагружает сохраненный код от старого прерывания и попыток закончить старую.
Дать Вам формулу, которая включает wc
- основанная проверка:
(($(wc -l<input_file)<=$(tput lines))) && echo 'will fit' || echo 'not enough'
Существует a $LINES
окружите переменную, которая может также использоваться:
(($(wc -l<input_file)<=LINES)) && echo 'will fit' || echo 'not enough'
Но $LINES
обновляется только когда в командной строке. Для понимания, что я имею в виду выполните это и измените размер окна терминала во время sleep
:
( sleep 3; echo $LINES; tput lines )
Возможно, 'меньше-F file_to_read' является опцией: это выходит меньше, если окно достаточно отобразить весь файл и ожидать на пейджере, если это не имеет место
-X
опция остановит очистку, таким образом, короткие файлы будут отображены как cat
делает. К сожалению, с -X
экран не будет очищен ни один после отображения длинных, прокрученных файлов.
– manatwork
22.06.2012, 14:12
cat
были названы также
– Tobias Kienzler
22.06.2012, 14:50
less
уже, если, например, 2/3 экрана использовалисьcat
. – Tobias Kienzler 22.06.2012, 14:57