您的位置:首页 > 其它

操作系统理论

2017-09-03 23:55 183 查看

1 什么是地址空间

  现代操作系统采用虚拟地址空间,一般的32位操作系统,虚拟地址空间为4G(2的32次方)。为了保证内核的安全,操作系统将虚拟地址空间划分为两部分:一部分为内核空间,一部分为用户空间。

  针对Linux系统而言,将最高的1G字节划分供内核使用,称为内核空间。将较低的3G字节,供各个进程使用,称为用户空间,每个进程可以通过系统调用进入内核。因此,linux内核供系统所有进程共享。

需要注意的细节问题:

(1) 内核空间中存放的是内核代码和数据,而用户空间中存放的是用户程序的代码和数据。不管是内核空间还是用户空间,它们都处于虚拟空间中。

(2) Linux使用两级保护机制:0级供内核使用,3级供用户程序使用。

2 内核态与用户态

内核态:当一个任务(进程)执行系统调用而陷入内核代码中执行时,称进程处于内核运行态(内核态)。当进程处于内核态时,执行的内核代码会使用当前进程的内核栈。每个进程都有自己的内核栈。

用户态:当进程在执行用户自己的代码时,则称其处于用户运行态(用户态)。当正在执行用户程序而突然被中断程序中断时,此时用户程序也可以象征性地称为处于进程的内核态。因为中断处理程序将使用当前进程的内核栈。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息