赞
踩
CPU上会运行两种程序,一种是操作系统内核程序,一种是应用程序。
在合适的情况下,操作系统内核会把cPu的使用权主动让给应用程序(进程管理相关内容)
“中断”是让操作系统内核夺回CPU使用权的唯一途径。中断会使CPU从用户态切换到内核态。
所以:如果没有“中断”机制,那么一旦应用程序上CPU运行,CPU就会一直运行这个应用程序。
与当前执行的指令有关,中断信号来源于CPU内部
eg:
特殊:有时候应用程序想请求操作系统内核的服务,此时会执行一条特殊的指令――陷入指令,该指令会引发一个内部中断信号(系统调用)。陷入指令并不是特权指令
内中断(异常)又细分为:
与当前执行的指令无关,中断信号来源于CPU外部
eg:
不同的中断信号,需要用不同的中断处理程序来处理。当CPU检测到中断信号后,会根据中断信号的类型去查询中断向量表,以此来找到相应的中断处理程序在内存中的存放位置。
具体细节需要查看计算机组成-程序中断方式。
CPU先检查中断信号
然后通过中断信号查询中断向量表,通过向量表找到对应的中断程序。
“系统调用”是操作系统提供给应用程序(程序员/编程人员)使用的接口,可以理解为一种可供应用程序调用的特殊函数,应用程序可以通过系统调用来请求获得操作系统内核的服务。
库函数与系统调用的关系如下:
简单的理解:库函数一般封装了系统调用。
系统调用按照分类分为:设备、文件、进程控制、进程管理、内存管理五部分。
应用程序通过系统调用请求操作系统的服务。而系统中的各种共享资源都由操作系统内核统一掌管.
因此凡是与共享资源有关的操作(如存储分配、I/O操作、文件管理等),都必须通过系统调用的方式向操作系统内核提出服务请求,由操作系统内核代为完成。这样可以保证系统的稳定性和安全性,防止用户进行非法操作。
传递系统调用参数→执行陷入指令(用户态)→执行相应的内请求核程序处理系统调用(核心态)→返回应用程序。
注意:
计算机系统层次结构
注意:
大内核(宏内核、单内核)
进程管理、存储器管理、设备管理等功能放入内核态中
微内核
进程管理、存储器管理、设备管理等功能放入用户态中
内核分多层,每层可单向调用更低一层提供的接口
优点:
缺点:
将内核划分为多个模块,各模块之间相互协作。
内核=主模块+可加载内核模块
主模块:只负责核心功能,如进程调度、内存管理
可加载内核模块:可以动态加载新模块到内核,而无需重新编译整个内核(驱动程序)
优点:
缺点:
分层结构也可以看作模块化,分层结构有跟清晰的模块调用方向。
内核负责进程调度、进程通信等功能,外核负责为用户进程分配未经抽象的硬件资源(即外核直接给进程分配连续的磁盘块或物理内存,不是虚拟内存,性能提升),且由外核负责保证资源使用安全。
优点:
缺点:
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。