用户态、系统调用、内核态

您所在的位置:网站首页 用户调用操作系统有关功能的途径 用户态、系统调用、内核态

用户态、系统调用、内核态

2024-07-17 04:00| 来源: 网络整理| 查看: 265

1、用户态与内核态

根据进程访问资源的特点,我们可以把进程在系统上的运行分为用户态、内核态

1.1 用户态 用户态(user mode) :当进程执行用户自己的代码时,则该进程处于用户态。用户态运行的进程可以直接读取用户程序的数据,但是,这时cpu访问资源受限。 1.2 内核态 系统态(kernel mode):当进程执行系统内核代码时,则该进程处于内核态。系统态运行的进程或程序几乎可以访问计算机的任何资源,不受限制,这时cpu可以访问计算机的所有资源 2、用户态与内核态的转换 2.1 系统调用

用户态进程通过系统调用申请使用系统态级别的资源,并由操作系统程序代为完成。系统调用使用了操作系统为用户开放的中断来实现,例如Linux的int 80h中断。

在运行的用户态程序中,凡是与系统态级别的资源有关的操作(如文件管理、进程控制、内存管理等),都必须通过系统调用方式向操作系统提出服务请求,并由操作系统代为完成。这些系统调用按功能大致可分为如下几类:

设备管理。完成设备的请求或释放,以及设备启动等功能。文件管理。完成文件的读、写、创建及删除等功能。进程控制。完成进程的创建、撤销、阻塞及唤醒等功能。进程通信。完成进程之间的消息传递或信号传递等功能。内存管理。完成内存的分配、回收以及获取作业占用内存区大小及地址等功能。

在这里插入图片描述

2 外围设备的中断

当外围设备接收到用户请求后,会向CPU发出相应的中断信号,这时CPU会暂停执行下一条即将要执行的指令,转而去执行与中断信号对应的处理程序,如果先前执行的指令是用户态程序,那么这个转换的过程自然也就发生了由用户态到内核态的切换。比如需要进行硬盘读写操作时,系统会切换到硬盘读写的中断处理程序

3 异常

当CPU在执行用户态程序时,发生了某些事先不可知的异常,这时会触发由当前运行进程切换到处理此异常的内核相关程序中,也就转到了内核态,比如缺页异常。



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3