深圳建设岗位证书报名网站,安阳seo公司,烟台违建举报网站,门源县住房和城乡建设局网站在#xff08;一#xff09;详解CPU中介绍了操作系统所基于的硬件CPU后#xff0c;本部分学习操作系统的架构。在计算机系统中#xff0c;操作系统的架构通常包括以下几个主要组件#xff1a; 内核#xff08;Kernel#xff09; 进程管理#xff08;Process Management… 在一详解CPU中介绍了操作系统所基于的硬件CPU后本部分学习操作系统的架构。在计算机系统中操作系统的架构通常包括以下几个主要组件 内核Kernel 进程管理Process Management内存管理Memory Management文件系统管理File System Management设备管理Device Management网络管理Network Management 其管理和交互形式如下图 在某些情况下可以将操作系统理解为内核。内核是操作系统的核心组件它直接管理硬件资源并执行系统的底层任务。严格来说操作系统不仅包括内核还包括其他组件如系统库、用户界面、应用程序、命令行工具等。 目录 1. 操作系统分类2. 操作系统内核2.1 Linux内核2.2 Windows内核 1. 操作系统分类
根据任务响应时间要求的不同可分为
实时操作系统通常具有非常短的响应时间可以满足对任务响应时间有严格要求的应用场景如航空航天、工业控制、医疗设备等。比如VxWorks/RTLinux 必须在预定的时间范围内完成对事件的响应和处理即使在高负载时也不能出现延迟。实时操作系统分为硬实时Hard Real-Time和软实时Soft Real-Time两类。硬实时系统绝对保证任务在规定时间内完成而软实时系统在大部分情况下能够满足响应时间要求但在极端情况下可能会发生延迟。实时操作系统使用预定的调度算法如固定优先级调度Fixed Priority Scheduling或最早截止时间优先调度Earliest Deadline First Scheduling以确保高优先级任务在规定的时间内得到处理。 非实时操作系统适用于大多数普通应用如个人计算机、服务器等。比如Linux、Android。 非实时操作系统对任务的响应时间没有严格的限制它更关注任务的吞吐量和效率。非实时操作系统允许任务在不同的时间片中完成任务的响应时间可能会有所波动但在大多数情况下不会影响系统正常运行。非实时操作系统采用通用的调度算法如轮转调度Round Robin Scheduling、优先级调度Priority Scheduling等以平衡任务之间的公平性和系统资源的利用率。 主要区别在于对任务响应时间的要求和任务调度方式的不同。
2. 操作系统内核
基本功能
管理进程、线程决定哪个进程、线程使用 CPU也就是进程调度的能力管理内存决定内存的分配和回收也就是内存管理的能力管理硬件设备为进程与硬件设备之间提供通信能力也就是硬件通信能力 PS操作系统能够实现硬件管理就是因为内核中包含了管理CPU的进程管理组件管理memory的内存管理组件管理其他外设存储的文件管理组件管理其他设备的设备管理组件设备驱动程序在内核空间运行 提供系统调用如果应用程序要运行更高权限运行的服务那么就需要有系统调用它是用户程序与操作系统之间的接口。
工作方式按照程序工作时占用的内存空间地址划分。
内核空间这个内存空间只有内核程序可以访问内核空间的代码感觉指令更准确可以访问所有内存空间。当程序使内核空间时程序则在内核态执行。用户空间这个内存空间专门给应用程序使用用户空间的代码只能访问一个局部的内存空间。当程序使用用户空间时常说该程序在用户态执行。
两种工作方式怎么切换当应用程序使用系统调用时会产生一个中断软中断因为是应用程序使用系统调用产生的。然后 CPU 会中断就是前面那个中断当前在执行的用户程序转而跳转到中断处理程序也就是开始执行内核程序。内核处理完后主动触发中断把 CPU 执行权限交回给用户程序回到用户态继续工作。
2.1 Linux内核
核心理念和技术
MultiTask多任务Linux支持多任务能够在同一时间内运行多个应用程序通过时间片轮转等调度算法来分配处理器时间。SMP对称多处理Linux采用SMP架构允许多个处理器核心并行地执行任务。每个 CPU 的地位是相等的多个 CPU 共享同一个内存每个 CPU 都可以访问完整的内存和硬件资源。这一特点决定了每个程序都可以被分配到任意一个 CPU 上被执行。ELF可执行文件链接格式Linux 操作系统中可执行文件、共享库、目标文件等的存储格式。定义了文件的结构包括程序代码、数据、符号表等信息。 代码首先通过「编译器」编译成汇编代码接着通过「汇编器」变成目标代码也就是目标文件最后通过「链接器」把多个目标文件以及调用的各种函数库链接起来形成一个可执行文件也就是 ELF 文件。 执行 ELF 文件的时候会通过「装载器」把 ELF 文件装载到内存里CPU 读取内存中的指令和数据于是程序就被执行起来了。Monolithic Kernel宏内核宏内核是一种操作系统内核架构其中操作系统的大部分功能如进程调度、内存管理、文件系统、设备驱动等都实现在内核空间即Linux 的内核是一个完整的可执行程序且拥有最高的权限。Linux内核最初是一个宏内核但随着时间的推移它采用了一些微内核的概念微内核架构的内核只保留最基本的能力比如进程调度、内存管理、中断等把一些应用放到了用户空间比如驱动程序、文件系统等。这样服务与服务之间是隔离的单个服务出现故障或者完全攻击也不会导致整个操作系统挂掉提高了操作系统的稳定性和可靠性将一部分功能以模块的形式加载实现了一种混合内核结构。 一些功能可以在运行时动态加载和卸载而不需要重新编译内核比如: 设备驱动程序很多设备驱动程序可以作为模块加载以支持新的硬件。 文件系统模块一些不太常用的文件系统可以作为模块加载以减小内核的大小。 网络协议栈某些网络协议栈可以作为模块加载以根据需要进行调整。
2.2 Windows内核 Windows 10 使用的内核叫 Windows NTNT 全称叫 New Technology。Windows 和 Linux 一样同样支持 MultiTask 和 SMP但不同的是Window 的内核设计是混合型内核内核中有一个 MicroKernel 模块而其他模块就在这个基础上搭建整个内核实现是一个完整的程序。
Windows 的可执行文件格式叫 PE称为可移植执行文件扩展名通常是.exe、.dll、.sys等。