1.系统调用:用户态主动要求切换到内核态,从而使用内核提供的各项服务。比如,Linux创建进程时中用户态的fork()
会调用到内核态的sys_fork()
和do_fork()
等。
2.中断:外设完成用户请求后(如完成读写操作),发出中断信号,CPU暂停执行下一条要执行的指令,而去执行中断处理程序。
3.异常:如发生缺页异常等,同样会切换到内核态进行处理。
2024-01-26 10:28:22
1.系统调用:用户态主动要求切换到内核态,从而使用内核提供的各项服务。比如,Linux创建进程时中用户态的fork()
会调用到内核态的sys_fork()
和do_fork()
等。
2.中断:外设完成用户请求后(如完成读写操作),发出中断信号,CPU暂停执行下一条要执行的指令,而去执行中断处理程序。
3.异常:如发生缺页异常等,同样会切换到内核态进行处理。