Разница между системным вызовом и ловушками

Мне интересно, есть ли разница между системным вызовом MIPS и инструкциями ловушки. Я не могу найти ничего, связанного с этим, поэтому я не уверен, есть ли разница. Ловушки кажутся просто условным системным вызовом, но некоторые пояснения могут быть полезными.


person Alex    schedule 22.12.2012    source источник


Ответы (2)


Инструкции SYSCALL и TRAP вызывают исключения, но результирующее исключение имеет другой тип (SystemCall или Trap), и операционная система, скорее всего, будет обрабатывать их по-разному.

person Community    schedule 22.12.2012
comment
Для чего операционные системы обычно используют ловушки? - person Alex; 22.12.2012
comment
Как правило, нет. В большинстве систем, которые я использовал, ловушки просто приводят к сбою процесса, который их запускает, так же, как и большинство других исключений ЦП. - person ; 22.12.2012
comment
Должен ли я просто сделать это условным системным вызовом, чтобы сохранить некоторый код, когда вам может понадобиться системный вызов. - person Alex; 22.12.2012
comment
Да. В любом случае вам почти всегда нужно выполнить кучу настроек, связанных с системным вызовом, поэтому возможность сделать системный вызов условным не принесет вам много пользы. - person ; 22.12.2012

Trap — это исключение, которое переключается в режим ядра, вызывая подпрограмму ядра (любой системный вызов). . Обычно trap создает какую-либо передачу управления операционной системе. Где SYSCALL — это синхронный и запланированный пользовательский процесс в режиме ядра.

person Sunil Bojanapally    schedule 22.12.2012