计算机基础

您所在的位置:网站首页 计算机的内核是什么 计算机基础

计算机基础

2023-06-02 03:59| 来源: 网络整理| 查看: 265

文章目录 简单说说操作系统操作系统的主要功能用户态和内核态为什么要有用户态和内核态?只有一个内核态不行吗?用户态和内核态是如何切换的系统调用系统调用过程

简单说说操作系统

操作系统是一种系统软件,它管理计算机硬件资源和提供服务给应用程序。操作系统执行如下任务:

管理计算机的内存、CPU、磁盘等硬件资源,以使不同程序和用户之间共享使用这些资源。提供文件系统,让用户可以保存和访问文件和数据。处理输入输出,例如接受用户输入,向屏幕显示信息,向打印机发送信息等。提供网络服务,让计算机可以连接互联网或其他计算机进行通信。提供安全保护,例如防火墙、加密和认证等,以保护计算机系统不受入侵和病毒的攻击。

不同类型的操作系统有不同的设计理念、特点和适用范围。最常见的操作系统包括Windows、MacOS、Linux等。

操作系统的主要功能 进程管理: 它能启动、暂停、恢复、停止进程,并提供进程间通信。存储管理: 内存和外存的分配和管理。文件管理: 文件的读、写、创建以及删除等。设备管理: 管理输入和输出设备,它能够识别输入设备、发送输出信号,同时确保输入和输出的数据正确性和可靠性。网络管理: 操作系统负责管理计算机网络的使用。网络是计算机系统中连接不同计算机的方式,操作系统需要管理计算机网络的配置、连接、通信和安全等,以提供高效可靠的网络服务。安全管理: 用户的身份认证、访问控制、文件加密等,以防止非法用户对系统资源的访问和操作。 用户态和内核态

用户态和内核态是计算机系统中的两种模式,它们具有不同的权限和特点。

用户态: 是指应用程序运行的模式,它是指进程在安全保护的环境下运行程序时所处的一种状态。在用户态中,进程可以直接读取用户程序的数据,应用程序只能访问自己的内存空间和限制好的操作系统资源,拥有的权限较低,比如说打开文件和申请内存等,而不能直接访问系统资源和内核代码。这样可以保证应用程序不能对整个系统进行破坏。当应用程序需要执行某些需要特殊权限的操作,就需要向操作系统发起系统调用请求,进入内核态。

内核态: 是指操作系统运行的模式,它几乎可以访问计算机的任何资源包括系统的内存空间、设备、驱动程序等,不受限制,拥有非常高的权限。当操作系统接收到进程的系统调用请求时,就会从用户态切换到内核态,执行相应的系统调用,并将结果返回给进程,最后再从内核态切换回用户态。

内核态相比用户态拥有更高的特权级别,因此能够执行更底层、更敏感的操作。不过,由于进入内核态需要付出较高的开销(需要进行一系列的上下文切换和权限检查),应该尽量减少进入内核态的次数,以提高系统的性能和稳定性。

为什么要有用户态和内核态?只有一个内核态不行吗?

在操作系统中,如果只有一个内核态,那么系统就可以访问系统所拥有的所有的资源,没有访问的限制,这样做虽然大大提高了操作的灵活性和效率,但是也带来了一系列的问题:

安全性问题: 在计算机系统中存在着大量的机密和敏感信息,操作系统必须采用措施保证数据和系统的安全性。如果一个程序可以访问系统中的所有资源,就很容易被黑客攻击或破坏者实现获取敏感信息或破坏系统。资源管理问题: 在计算机系统中,各种应用程序同时运行,需要相当数量的硬件资源。如果只有一个内核态无法区分和管理应用程序所需的资源,很容易导致系统的崩溃和资源的枯竭。提高效率: 为了使系统能够更加高效地运行,内核态可以高速执行一些可以允许的操作。但执行系统调用时一些重要的数据出现了错误,若没有用户态,意味着整个操作系统就会崩掉。

因此,同时具有用户态和内核态是为了保证计算机的安全性、稳定性和性能。

用户态和内核态是如何切换的

用户态和内核态的切换是通过系统调用来完成的。用户态的程序执行系统调用时,CPU会临时切换到内核态,访问完特权资源后,在返回到用户态继续执行程序。

用户态切换到内核态的 3 种方式:

系统调用(Trap):用户态进程 主动 要求切换到内核态的一种方式,主要是为了使用内核态才能做的事情比如读取磁盘资源。系统调用的机制其核心还是使用了操作系统为用户特别开放的一个中断来实现。中断(Interrupt):当外围设备完成用户请求的操作后,会向 CPU 发出相应的中断信号,这时 CPU 会暂停执行下一条即将要执行的指令转而去执行与中断信号对应的处理程序,如果先前执行的指令是用户态下的程序,那么这个转换的过程自然也就发生了由用户态到内核态的切换。比如硬盘读写操作完成,系统会切换到硬盘读写的中断处理程序中执行后续操作等。异常(Exception):当 CPU 在执行运行在用户态下的程序时,发生了某些事先不可知的异常,这时会触发由当前运行进程切换到处理此异常的内核相关程序中,也就转到了内核态,比如缺页异常。

在系统的处理上,中断和异常类似,都是通过中断向量表来找到相应的处理程序进行处理。区别在于,中断来自处理器外部,不是由任何一条专门的指令造成,而异常是执行当前指令的结果。

系统调用

系统调用是操作系统提供给用户程序的一种接口,通过它,用户程序可以请求操作系统提供各种服务。我们运行的用户程序中,凡是与系统态级别的资源有关的操作(如文件管理、进程控制、内存管理等),都必须通过系统调用方式向操作系统提出服务请求,并由操作系统代为完成。

在这里插入图片描述

系统调用是应用程序与操作系统之间进行交互的一种方式,通过系统调用,应用程序可以访问操作系统底层资源例如文件、设备、网络等。

系统调用过程

在这里插入图片描述

用户程序调用系统调用,传递相应的参数并触发系统调用指令。

CPU将程序的控制流切换到内核态,操作系统接手程序的运行。

操作系统根据系统调用的类型和参数执行相应的内核代码,完成请求的服务。

操作系统将执行结果返回给用户程序,并将控制流切换回用户态。

用户程序继续执行,根据操作系统返回的结果继续运行。

用户态的程序发起系统调用,因为系统调用中涉及一些特权指令(只能由操作系统内核态执行的指令),用户态程序权限不足,因此会中断执行,也就是 Trap(Trap 是一种中断)。

发生中断后,当前 CPU 执行的程序会中断,跳转到中断处理程序。内核程序开始执行,也就是开始处理系统调用。

内核处理完成后,主动触发 Trap,这样会再次发生中断,切换回用户态工作。



【本文地址】


今日新闻


推荐新闻


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