为什么我们的应用程序不直接去访问我们的外部设备,为什么要通过操作系统去执行
1.操作系统对于计算机来说是被内核信任的第三方软件
2.只有内核可以执行特权指令
3.应用程序实际上是不可信任的
中断、异常和系统调用三者在操作系统中有何作用?
源头不同:
中断:外设
异常:程序的行为异常(被动产生,需要操作系统去中断后再次执行)
调用:程序请求操作提供服务(主动产生,需要让操作系统提供某些服务)
处理时间:
中断:异步
异常:同步
系统调用:异步或同步
同步和异步是相对于程序的
同步:指一个进程在执行某个请求的时候,若该请求需要一段时间才能返回消息,那么,这个进程将会一直等待,知道收到返回信息才会继续执行下去。
异步:指进程不需要一直等下去,而去继续执行下面的操作,不管其他进程的状态,当有消息返回时系统会通知进程处理,这样可以提高执行的效率。
响应:
中断:持续
异常:KILL或重新执行
系统调用:等待或持续
关键:用户态-内核态
拥有各自的堆栈,转换时会产生系统开销