还剩3页未读,继续阅读
文本内容:
操作系统内核态和用户态操作系统内核态和用户态几乎是考研试题中必考的题目,一般是一道选择题,但是在教材中对着一部分讲解的不是很全面在复习中(包括我在内),往往面临两难的问题,一方面教材上的内容较少,另一方面网上的东西又太多,看的时候又不知所措所在在这里给大家把这一块的知识点总结一下,希望能给大家带来一些启迪,同时也欢迎大家一起讨论操作系统结构操作系统的发展大致经历了无结构操作系统(第一代),模块化的操作系统(第二代),分层式结构(第三代),这些称为传统操作系统结构而微内核操作系统是现代操作系统结构,他是在C/S(客户端/服务器)这种架构方式上发展起来的传统操作系统的内容,大家只需要了解就可以了重点在微内核操作系统微内核操作系统微内核操作系统往往采用的是C/S模式,它把操作系统分为微内核和多个服务器微内核主要用于
(1)实现与硬件紧密相关的处理,
(2)实现一些较基本的功能,
(3)负责客户和服务器之间的通信内核的功能
(1)进程(线程)管理(进程或者线程的调度)
(2)低级存储器管理(用户程序逻辑空间到内存空间的物理地址的变换)
(3)中断和陷入管理(中断和陷入)由于微内核结构的存在,那么程序就运行在两种不同的地方,内核态和用户态,内核态与用户态是操作系统的两种运行级别,跟intelcpu没有必然的联系内核态和用户态内核态当一个任务(进程)执行系统调用而陷入内核代码中执行时,我们就称进程处于内核运行态(或简称为内核态)其他的属于用户态用户程序运行在用户态才集作系统运行在内核态.(操作系统内核运行在内核态,而服务器运行在用户态)用户态不能干扰内核态.所以CPU指令就有两种,特权指令和非特权指令.不同的状态对应不同的指令特权指令只能由操作系统内核部分使用,不允许用户直接使用的指令如,I/O指令、置终端屏蔽指令、清内存、建存储保护、设置时钟指令(这几种记好,属于内核态)非特权指令所有程序均可直接使用所以系统态(核心态、特态、管态)执行全部指令用户态(常态、目态)执行非特权指令
2.用户态和内核态的转换1)用户态切换到内核态的3种方式a.系统调用这是用户态进程主动要求切换到内核态的一种方式,用户态进程通过系统调用申请使用操作系统提供的服务程序完成工作,比如前例中fork实际上就是执行了一个创建新进程的系统调用而系统调用的机制其核心还是使用了操作系统为用户特别开放的一个中断来实现,例如Linux的int80h中断b.异常当CPU在执行运行在用户态下的程序时,发生了某些事先不可知的异常,这时会触发由当前运行进程切换到处理此异常的内核相关程序中,也就转到了内核态,比如缺页异常c.外围设备的中断当外围设备完成用户请求的操作后,会向CPU发出相应的中断信号,这时CPU会暂停执行下一条即将要执行的指令转而去执行与中断信号对应的处理程序,如果先前执行的指令是用户态下的程序,那么这个转换的过程自然也就发生了由用户态到内核态的切换比如硬盘读写操作完成,系统会切换到硬盘读写的中断处理程序中执行后续操作等常见的内核态常见总结前文已经提到,内核的功能
(1)进程(线程)管理(进程或者线程的调度)
(2)低级存储器管理(用户程序逻辑空间到内存空间的物理地址的变换)
(3)中断和陷入管理(中断和陷入)具体的I/O指令、置终端屏蔽指令、清内存、建存储保护、设置时钟指令中断、异常、陷入,比如缺页中断等
(3)进程(线程)管理
(4)系统调用,比如调用了设备驱动程序
(5)用户内存地址的转换(逻辑---物理映射)以前考过的真题
1、用户在程序中试图读某文件的第100个逻辑块,使用操作系统提供的()接口A:系统调用B:图形用户接口C:原语D:键盘命令解析程序需要读取第100个逻辑块,这里发生了逻辑地址到物理地址的转换,必然要进入到内核态执行转换,所以必然要进入到内核态,在四个选型中,只有A系统调用才能进入到内核态所以A入选图形用户接口是用户接口,他是获得操作系统提供的服务一种方式,但是要想获得操作系统的服务,在底层仍然是使用的系统调用在中断发生后,进入中断处理的程序属于()A:用户程序B:可能是应用程序,也可能是操作系统程序C:操作系统程序D:既不是是应用程序,也不是操作系统程序解析中断的处理是由操作系统内核来处理的,这是操作系统内核最基本的功能之-所以只能是操作系统程序从这些题目中,可以看出,理解内核态和用户态的基本的概念,区分好他们不同的情景,并且掌握内核态的典型场景,就可以做好这一类的题目。