首页 > 其他分享 >操作系统体系结构

操作系统体系结构

时间:2024-03-31 18:14:24浏览次数:18  
标签:功能 调用 操作系统 硬件资源 内核 模块 体系结构

操作系统体系结构

image-20240316230420598

image-20240316230434959

时钟管理:利用时钟中断实现计时功能

原语:原语是一种特殊的程序,具有原子性。也就是说,这段程序的运行必须一气呵成,不可被“中断”

非内核功能:Ubuntu、Centos 的开发团队,其主要工作是实现非内核功能,而内核都是用了 Linux 内核

内核

内核是操作系统最基木,最核心的部分实现操作系统内核功能的那些程序就是内核程序。

注意:操作系统内核需要运行在内核态;操作系统的非内核功能运行在用户态

根据操作系统不同:大内核,微内核

image-20240316230554876

一个故事:

现在,应用程序想要请求操作系统的服务,这个服务的处理同时涉及到进程管理、存储管理、设备管理

image-20240316230747172

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

大内核&微内核区别

image-20240316230831271

image-20240316230851316

分层结构

内核分多层,每层可单向调用更低一层提供的接口

image-20240316230942806

优点

  1. 便于调试和验证,自底向上逐层调试验证
  2. 易扩充和易维护,各层之间调用接口清晰固定

缺点

  1. 仅可调用相邻低层,难以合理定义各层的边界
  2. 效率低,不可跨层调用,系统调用执行时间长

模块化

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

image-20240316231515887

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

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

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

image-20240316231458786

优点:

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

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

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

缺点:

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

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

大内核(宏内核)

image-20240316231644807

所有的系统功能都放在内核里(大内核结构的OS通常也采用了“模块化”的设计思想)

优点:

1.性能高,内核内部各种功能都可以直接相互调用

缺点:

1.内核庞大功能复杂,难以维护

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

微内核

image-20240316231909630

只把中断、原语、进程通信等最核心的功能放入内核,进程管理、文件管理、设备管理等功能以用户进程的形式运行在用户态

优点

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

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

缺点:

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

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

外核

内核负责进程调度、进程通信等功能,

外核负责为用户进程分配未经抽象的硬件资源,且由外核负责保证资源使用安全

什么叫未经抽象的硬件资源

磁盘/内存的存储空间

普通操作系统,想要申请使用内存空间,希望一片连续的。但是需要经过虚拟的。实际上内存里的东西是离散的,,,

但是,用外核的操作系统可以直接分配未经抽象的!

如果用户知道这个东西需要频繁的随机访问,可以申请连续的磁盘块!!!或者连续的内存空间!!

效果就是右边那个粉色箭头。

image-20240316232513548

优点:

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

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

缺点:

  1. 降低了系统的一致性
  2. 使系统变得更复杂

标签:功能,调用,操作系统,硬件资源,内核,模块,体系结构
From: https://www.cnblogs.com/nekodream/p/18107014

相关文章

  • 操作系统引导和虚拟机
    操作系统引导安装操作系统后:C盘(是这个磁盘的活动分区,安装了操作系统)主存主存由RAM和ROM组成,ROM(BIOS)包含:ROM引导程序,即自举程序断电后,RAM会消失,但是ROM不会整个开机过程:CPU通电,找到ROM执行引导程序,然后引导磁盘里的主引导记录(读入RAM),判断C盘位置,然后把C盘的引导记录......
  • ubuntu使用-ubuntu23.10中创建arm架构的银河麒麟操作系统v10
    ubuntu使用-ubuntu23.10中创建arm架构的银河麒麟操作系统v10ubuntuqemu银河麒麟arm安装qemu之后,从应用中或者使用virt-manager命令打开虚拟系统管理器。创建虚拟机,架构选择aarch64,机器类型不知道选什么,暂选的是virt,后面有问题的话再说。参考国产银河麒麟操作系统下载地址收集--......
  • 操作系统概念-进程管理-同步互斥camproj
    操作系统概述操作系统定义:能有效的组织和管理系统中的各种软/硬件资源,合理的组织计算机系统工作流程,控制程序的执行,并且向用户提供一个良好的工作环境和友好的接口。操作系统有两个重要的作用:通过资源管理提高计算机系统的效率;改善人机界面向用户提供友好的工作环境。操......
  • 计算机组成与体系结构--2.2:校验码
    转上一节---2.1数据的表示计算机组成与体系结构-数据的表示http://t.csdnimg.cn/1WUdC2.2:校验码考点1:奇偶校验码1.校验码基础知识码距:任何-种编码都由许多码字构成,任意两个码字之间最少变化的二进制位数就称为数据校验码的码距。例如:用2位二进制表示4种状态,则有4个......
  • credwiz.exe 是 Windows 操作系统中的一个程序,用于备份和还原用户凭据。凭据可以包括
    credwiz.exe是Windows操作系统中的一个程序,用于备份和还原用户凭据。凭据可以包括保存的密码、证书、访问令牌等信息。使用凭据向导(CredentialBackupandRestoreWizard)可以帮助用户在需要时轻松地备份和恢复这些重要的凭据。这个工具通常用于帮助用户在更换计算机、重装操......
  • 校验码-体系结构-指令-流水线
    校验码码距:就单个编码A:00而言,其码距为1,因为其只需要改变一位就变成另一个编码。在两个编码中,从A码到B码转换所需要改变的位数称为码距,如A:00要转换为B:11,码距为2。一般来说,码距越大,越利于纠错和检错。奇偶校验码:在编码中增加1位校验位来使编码中1的个数为奇数(奇校验)或者偶数......
  • 操作系统实验6之信号量的实现与应用
    操作系统中常用信号量相关系统调用函数用法1、sem_open:用于创建或打开一个命名的信号量。点击查看代码#include<semaphore.h>sem_t*sem_open(constchar*name,intoflag,mode_tmode,unsignedintvalue);name:信号量的名称,必须以斜杠开头,例如/my_semaphore。oflag:......
  • 你问我答!手把手教学,银河麒麟桌面操作系统编译安装BIMP插件过程详解
    (引言:银河麒麟应热心用户后台提问,推出银河麒麟桌面操作系统编译安装BIMP插件详解过程详解专题。如有其它问题和需求,欢迎后台留言咨询……)1.GIMP简介GIMP是GNU图像处理程序(GNUImageManipulationProgram)的缩写。包括几乎所有图象处理所需的功能,号称Linux下的PhotoS......
  • 面经_操作系统
    操作系统线程和进程的区别、应用场景线程(Thread)和进程(Process)是操作系统中管理和执行任务的基本单元,它们有一些重要的区别和应用场景。线程和进程的区别:进程:进程是资源调度的最基本单位。每个进程都有自己的地址空间、内存、数据栈等,是操作系统中的资源分配单位。进程之间......
  • Chap2:操作系统架构
    简述操作系统支持多进程任务,并且每个进程之前还应当隔离,但又在必要的时候进行交互。操作系统必须满足的三个要求:多路复用、隔离和交互抽象系统资源实现隔离禁止应用程序直接访问敏感的硬件资源,将这些资源抽象为服务,提供接口向应用程序服务。一般来说就是通过系统调用命令来实......