操作系统的接口和处理方式

学习目的:内核调度、异常原理、跨机器通信、进程与线程的深入学习。

操作系统里都有那些名词首先要知道

1.批处理系统、多道程序系统、分时操作系统、实时操作系统这些都听过,却常常搞得人云里雾里,到底分别代表什么样的操作

  1. 批处理系统:任务提交后,系统一个一个地顺序执行,处理大量的重复的任务。
  2. 多道程序系统:任务提交后,允许同时处理多个任务,如果有空闲时间,可以分配给其它任务进行,虽然任务处理时间变快,但并不会知道具体什么时候完成任务。
  3. 分时操作系统:也能同时处理多个任务,多了一个多用户访问一个系统的思想。像UNIX\Linux,DOS/Windows,Android/IOS都是分时系统。
  4. 实时操作系统:规定了必须在某段时间限制内给出响应或者结果。RTOS就是代表。这类系统的关键是及时性可靠性

2. 做开发时,我们都是通过操作系统的接口控制计算机,那操作系统这个黑匣子实现了哪些范围的功能可以供我们调用?

做开发时,经常会听到系统调用,比如网络编程中SOCKET的申请。这个时候就用了操作系用提供给我们用户提供的接口。

操作系统是个黑匣子没错,但不是所有的功能都给用户提供了接口去调用,这样很容易出问题,而且不提供外部接口的功能通常都是核心的功能,确保系统能够正常被使用。比如不能把CPU调度权交给用户,所以操作系统不能提供给用户的接口有:进程/线程调度器(有人习惯称其为Scheduler)、内存管理器(Memory Manager)、中断处理器(Interrupt Handler)、文件系统设备驱动程序网络栈(Network Stack)、进程间通信(Inter-Process Communication,IPC)、异常处理(Exception Handling)、虚拟机管理器(Virtual Machine Manager)。
操作系统可以提供给开发人员的功能接口包括但不限于:

  1. 硬件驱动程序接口:允许开发人员开发和管理底层硬件设备的驱动程序,以实现对设备的控制和访问。
  2. 文件系统接口:允许开发人员读取、写入和管理文件及目录,以及进行文件和目录的操作,如创建、删除和重命名等。
  3. 进程/线程管理接口:包括创建、终止、调度和管理进程/线程的接口,以及进程/线程间的通信和同步机制。
  4. 内存管理接口:允许开发人员进行动态内存分配和释放,管理内存的使用和释放。
  5. 网络接口:提供网络通信的功能接口,包括套接字接口、网络协议接口、域名解析接口等。
  6. 输入/输出接口:对输入设备(如键盘、鼠标)和输出设备(如显示器、打印机)的访问和控制。
  7. 图形用户界面接口:允许开发人员创建图形用户界面(GUI)应用程序,包括窗口、按钮、文本框等控件的设计和操作。
  8. 安全接口:提供加密和身份验证功能,以确保系统和数据的安全性
  9. 数据库接口:允许开发人员与数据库进行交互,包括连接数据库、执行查询和更新操作等。
  10. 时间和日期接口:获取和管理系统时间、日期和时区等信息。

3.哪些设备上可以安装操作系统?服务器的操作系统会特殊吗?

  1. 终端的操作系统:个人电脑、智能手机、平板电脑。轻量级嵌入式操作系统(电视机、汽车电子、工业设备控制)
  2. 服务器操作系统:对外提供服务的高性能计算机,相较于上面的终端设备,对硬件资源利用率够高、对用户的隔离够安全。
  3. 华为的鸿蒙系统是终端的操作系统,那么openEluer就是专注于对外提供高性能服务的服务器操作系统。

4.操作系统发展方向

应用层需求:可靠性(无人驾驶),定制化(定制操作系统而非通用)云计算平台。
硬件层需求:从多核到众核;存储设备延迟明显降低(NVMe把固态硬盘访问延迟达到100微秒,是机械硬盘的百分之一);网速大幅提升(RDMA把网络延迟降低了100倍到了几微秒);新型网络技术改变设备间互联方式(智能网卡,无CPU可联网)。这些都使得操作系统在挖掘新硬件潜力方面有了更大的空间(外内核、多内核、离散化内核)。

5.微内核

与之相对的宏内核是如Linux一样把所有硬件资源抽象在内核中,内核体量大,而微内核只提供必要的物理资源隔离的功能,IPC(进程间通信)、CPU调度、内存管理等,其它模块都在操作系统的系统服务层而不在内核中实现,这些服务可以根据自身需要而下载添加,这些被移出内核的功能就成为用户态进程。

6.库操作系统

现代CPU——以鲲鹏920处理器为例

那些年华为设计的芯片:

  1. 昇腾芯片(Ascend):昇腾芯片是华为针对AI计算任务而设计的芯片系列。它们由NPU(神经网络处理器)和AI加速模块组成,旨在提供高效、低能耗的计算能力,用于深度学习、图像识别、语音识别等人工智能领域。
  2. 麒麟芯片(Kirin):麒麟芯片是华为手机和移动设备所采用的处理器系列。这些芯片结合了高性能和低功耗的设计,提供了强大的图形处理和计算能力,支持手机的高速运行和多媒体处理。
  3. 华为基带芯片:华为还自主研发了5G基带芯片,如巴龙(Balong)系列。这些芯片用于支持移动通信网络的无线通信功能,包括5G网络的数据传输和信号处理等。
  4. 除了这些芯片,华为还设计了其他领域的芯片,如路由器芯片、交换机芯片和物联网芯片等。

处理器架构

鲲鹏处理器基于ARMV8架构,这个处理器主要用于服务器端的云计算、边缘计算。
常见的处理器指令架构以及适用对象如下

  1. 个人电脑:多为X86架构,用CISC复杂指令集,可以在一条指令中完成多个操作,执行复杂的任务。
  2. 手机:多为ARM架构,ARM即Advanced RISC Machine,RISC是精简指令集reduced instruction set computer),指令的长度和格式都是固定的,完成的操作也直观和简单。经常看到64位
  3. 服务器:服务器要采用的架构比较灵活,根据服务器提供的服务要求而采用X86或者ARM。
    以上架构都支持处理器寄存器位数32位和64位。

芯片内部架构

  1. SoC,System On Chip片上系统,主要的功能都被尽可能地封装到一个芯片中,早期,不同的功能需要的特定的外部芯片去处理,而这些特定功能的芯片又需要与主板上的CPU再连接完成协同处理,这分离式的设计使得系统的性能降低,功耗增大。为解决这一缺陷,SoC出现了。
  2. 芯片,现在所说的芯片就是SoC集成的硬件实体片,这个芯片内可能由好几片负责不同计算功能的硅片——DIE封装而成。
  3. DIE,芯片最小的物理单元,以鲲鹏920为例,芯片内部共3个DIE,两个负责通用计算,一个负责I/O(如PCIe总线以及高速网卡设备的I/O)
  4. Cluster,现代处理器核(Core)数越来越多,多个核集成在一起是集群,4个Core组成一个Cluster,8八个cluster组成一个DIE。
  5. Core,真正负责做计算的单元。
片上系统SoC架构

两个通用计算DIE以及一个I/ODIE、总线桥、中断子系统、片外互联、内存与处理器连接通道DDRC都通过高级微控制器总线AMBA互相连接。
计算子系统执行的流程:取指令器从总线获取指令–译码器从取指器获取指令并解析,把指令按解析结果发送到对应的数据类型的计算单元(整型、浮点、加载/存储、CRC计算单元)中。920支持计算超量、乱序执行(指在保证计算结果不变的前提下,计算顺序不按程序安排的顺序执行)。
存储子系统执行的流程:共三级CacheL1\L2\L3。L1的Cache将指令和数据分开缓存,缓存大小均为64Kb。L2和L3不区分指令和数据,但L3有内容索引Tag部分,索引范围是本集群上的四个CPU核,每八个这样的集群组成的DIE有四组DDRChannel,能够支持最大2TB的DDR双数据传输率内存空间。
I/O子系统:以I/ODIE为中心扩展,支持SoC片上加速器(如100Gb网卡
、串行SCSI控制器 SAS)、支持基于PCIe4.0总线的设备。
中断子系统:本处理器在兼容了通用中断控制器规范的基础上还支持线中断、消息中断以支持扩展的中断源。

你可能感兴趣的:(嵌入式学习,鸿蒙系统,华为,系统架构)