当前位置: 首页 > article >正文

操作系统——计算机系统概述——1.4操作系统结构

目录

操作系统的体系结构

大内核(宏内核/单内核):

微内核:

分层法

模块化


操作系统的体系结构

大内核(宏内核/单内核):

将操作系统的主要功能模块都作为系统内核,运行在核心态。(大内核的OS通常也采用了“模块化”的设计思想)

优点:高性能,内核内部各种功能都可以直接相互调用

缺点:

1、内核代码庞大,结构混乱,难以维护

2、大内核中某个功能模块出错,就可能导致整个系统崩溃

微内核:

只把最基本的功能保留在内核。

优点:

1、内核小功能少、易于维护,内核可靠性高

2、内核外的某个功能模块出错不会导致整个系统崩溃

缺点:

1、需要频繁地在核心态和用户态之间切换,性能低。用户态下的功能模块不可以直接相互调用,只能通过内核的“消息传递”来间接通信。

2、用户态下的各功能模块不可以直接相互调用,只能通过内核的“消息传递”来间接通信。

tip:变态的过程是有成本的,要消耗不少时间,频繁地变态会降低系统性能。

分层法

将操作系统分为若干层,底层(层0)为硬件,顶层(层N)为用户接口,每层只能调用紧邻它的低层的功能和服务(单向依赖)。

优点:

1、便于调试和验证,自底向上逐层调试验证

2、易扩充和易维护,各层之间调用接口清晰固定

缺点:

1、仅可调用相邻低层,难以合理定义各层的边界

2、效率低,不可跨层调用,系统调用执行时间长

模块化

将内核划分为多个模块,各模块之间相互协作。

内核=主模块+可加载内核模块

主模块:只负责核心功能,如进程调度、内存管理。

可加载内核模块:可以动态加载新模块到内核,而无需重新编译整个内核。

优点:

1、模块间逻辑清晰易于维护,确定模块间接口后即可多模块同时开发

2、支持动态加载新的内核模块(如:安装设备驱动程序、安装新的文件系统模块到内核),增强OS适应性。

3、任何模块都可以直接调用其他模块,无需采用消息传递进行通信,效率高。

缺点:

1、模块间的接口定义未必合理、实用

2、模块间相互依赖,更难调试和验证。

内核负责进程调度、进程通信等功能,外核负责为用户进程分配未经抽象的硬件资源,且由外核负责保证资源使用安全。

优点:

1、外核可直接给用户进程分配“不虚拟、不抽象”的硬件资源,使用户进程可以更灵活的使用硬件资源。

2、减少了虚拟硬件资源的“映射层”,提升效率。

缺点:

1、降低了系统的一致性。

2、使系统变得更复杂。

外核

内核负责进程调度、进程通信等功能,外核负责为用户进程分配未经抽象的硬件资源,且由外核负责保证资源使用安全。

优点:

1、外核可以直接给用户进程分配“不虚拟、不抽象”的硬件资源,使用户进程可以更加灵活的使用硬件资源

2、减少了虚拟硬件资源的“映射层”,提升效率。

缺点:

1、降低了系统的一致性

2、使系统变得更加复杂


http://www.kler.cn/a/377973.html

相关文章:

  • 接口测试的原则、用例与流程
  • Nginx区分PC端和移动端访问
  • 虚幻引擎结构之UWorld
  • 定义Shape:打造属于你的独特图形
  • 【Spring】配置文件的使用
  • 电脑缺失libcurl.dll怎么解决?详解电脑libcurl.dll文件丢失问题
  • 【2】Elasticsearch 查询从基础到高级
  • jsweb2
  • Java实现动态切换ubuntu壁纸功能
  • 自定义日志打成jar包引入项目后不生效
  • 3D Gaussian Splatting 入门
  • 8.5K+ Star!Skyvern:一个基于LLMs和计算机视觉自动化浏览器工作流的工具
  • Day 41 || 1049. 最后一块石头的重量 II 、494. 目标和、474.一和零
  • 机器学习之fetch_olivetti_faces人脸识别--基于Python实现
  • 数据智能驱动金融策略优化:民锋智能分析技术的应用
  • 深度学习-38-基于PyTorch的卷积神经网络AlexNet
  • 【Java笔记】1-JDK/JRE/JVM是个啥?
  • Golang | Leetcode Golang题解之第518题零钱兑换II
  • pgsql数据量大之后可能遇到的问题
  • SpringCloudAlibaba实战入门之OpenFeign高级用法(十)
  • 数据结构-二叉树中的递归
  • [每周一更]-(第121期):模拟面试|微服务架构面试思路解析
  • 虚函数和纯虚函数是 C++ 中实现多态性的关键概念
  • 【算法笔记】位运算算法原理深度剖析
  • 单向函数、单向陷门函数、困难问题
  • PHP的 CSRF、XSS 攻击和防范