OS中进程切换和模式切换的区别
进程被定义为一个正在执行的程序和一个实体,它代表了系统中要实现的基本工作单元。
流程切换
它被定义为处理器从一个线程/进程切换到另一个线程或进程。它使CPU寄存器和指令指针的内容得以保存。
对于新任务,寄存器和指令指针被加载到处理器中,然后新进程的执行可以开始/恢复。
旧程序不会继续执行,但该进程的状态保存在内存中,因为当内核决定它准备再次执行它时。这个概念类似于多任务处理,但实际上,CPU上一次只能运行一个进程。
上下文切换由硬件或软件发生。硬件中断来自键盘、鼠标或系统计时器等设备,这会导致代码开始执行中断代码。软件切换是内核手动执行任务切换的结果。
这是调度程序使用上下文切换的方式。
特点-
它影响性能
它增加了CPU处理器的负载。
在这里,每个数据包都由路由器或交换处理器检查。
在每个数据包上执行负载平衡。
通过一个命令轻松启用。
模式切换
当CPU更改权限级别时使用模式开关。内核以比标准用户任务更高的权限工作。
为了访问由内核控制的用户任务,需要进行模式切换。
当前正在执行的进程在模式切换期间不会改变。处理器使用这些模式来保护操作系统免受行为不当或恶意程序的影响,并控制对RAM、I/O设备等的并发访问。
必须发生模式切换才能发生软件上下文切换。只有内核可以导致上下文切换。
注意-一般保护错误的想法是用户应用程序试图做一些它不允许做的事情,例如访问其无法访问的地址空间的某些部分。
模式切换的步骤-
在执行程序时,我们有两种模式:用户模式和内核模式。
因此,当程序在用户级别执行时,必须有一个用户域/模式。
当内核模式负责程序执行时,就有了内核模式。
现在,当一个进程急需系统资源时,就会发生模式切换。
它是在系统调用接口或使用中断的帮助下发生的。
并且在此之后内核函数可以从用户模式调用并管理系统调用。