《操作系统导论》学习笔记(三):CPU虚拟化(机制)

CPU虚拟化包括微观和宏观两个方面,微观层面是实现进程切换的机制(mechanism),宏观层面是进程调度的策略(policy)。

进程通过系统调用发出中断指令以递交CPU控制权,所以中断(interrupt)是实现进程切换的主要机制,也是驱动操作系统运作的"发动机"。但在正式介绍中断机制前,需要先介绍中断机制出现的原因及适用环境。

CPU双模式(Dual-mode)

进程的指令都是直接运行在CPU上的,但进程运行过程难免向操作系统请求I/O等系统资源,有时又需要操作系统切换进程,这些都需要到内核空间进行操作。操作系统内核如何满足进程需求的同时避免执行进程的危险操作(比如擅自修改操作系统内核)?

首先,我们可以在地址空间中单独划分一块区域存放系统内核代码数据及进程控制块等关键内容,剩余区域用于用户程序的运行,分别称为内核空间用户空间。然后为内核空间及用户空间运行的指令赋予不同的级别,内核空间的指令级别高,称为特权指令,可以访问一切内存和寄存器,而用户空间运行的指令级别低,称为非特权指令。最后,根据CPU运行的指令级别高低,对CPU运行模式进行区分。当CPU运行特权指令时,CPU处于内核模式,反之则处于用户模式
在这里插入图片描述
Intel的x86处理器是通过Ring级别来进行访问控制的,从Ring0到Ring3共分4级。R0层拥有最高的权限,R3层拥有最低的权限。Intel原有的构想是应用程序工作在R3层,只能访问R3层的数据;操作系统工作在R0层,可以访问所有层的数据;而其他驱动程序位于R1、R2层。实际上,Linux和Windows操作系统均只选取R0层和R3层,分别来运行操作系统指令和应用程序指令——双模式(dual-mode)

1.内核模式(kernel mode):操作系统运行程序,可以使用特权指令,访问所有内存和寄存器。
2.用户模式(user mode):应用程序运行程序,只能使用一般指令,访问特定的内存和寄存器。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值