【Binder 机制】进程通信 | 用户空间与内核空间 | MMU 与虚拟内存地址

简介: 【Binder 机制】进程通信 | 用户空间与内核空间 | MMU 与虚拟内存地址

文章目录

一、进程通信

二、用户空间与内核空间

三、MMU 与虚拟内存地址





一、进程通信


进程隔离概念 : 系统中的进程存在 " 进程隔离 " , 出于对进程运行的保护 , 两个进程的内存是隔离的 , 并且不允许进行直接通信 ;


内核自带通信机制 : 内核提供了 pipe 管道 , socket 等通信机制 , 可以进行跨进程通信 ;


Binder 机制 : Android 中的进程间的通信 , 是通过 " Binder " 机制 完成的 ; Binder 机制不是内核自带的机制 , 而是 Android 可以动态进行 Binder 注册 , 然后进程间通过 Binder 进行通信 ;






二、用户空间与内核空间


系统中的内存分为 2 22 部分 , 用户空间 和 内核空间 , 内核空间一般是运行操作系统 , 用户空间一般运行应用 ;


操作 内核空间 时的状态称为 " 内核态 " ;


操作 用户空间 时的状态称为 " 用户态 " ;

image.png







三、MMU 与虚拟内存地址


每个 应用进程 的 内存空间 使用的地址都是 独立的 , 连续的 , 虚拟地址 ;


内存管理单元 ( MMU - Memory Management Unit ) 的作用就是进行 内存映射的 ;


MMU 的作用是将真实的 内存 物理地址 转为 虚拟地址 , 虚拟地址 又称为 逻辑地址 , 一般情况下虚拟地址大小远远大于物理地址 ;


MMU 可以让每个进程都拥有独立的连续的内存空间 ;

image.png



32 3232 位的操作系统的 寻址空间是 0 00 ~ 2 32 2^{32}2

32

 , 大小 4 44 GB ;


32 3232 位操作系统 , 使用的是 二级分页 ;


64 6464 位的操作系统的 寻址空间是 0 00 ~ 2 64 2^{64}2

64

 , 这个寻址空间很大 , 一般是使用前 40 4040 位 , 大概是 18 1818 TB ;


64 6464 位操作系统 , 使用的是 四级分页 ;



在 32 3232 位的系统中 , MMU 会让每个应用都有 1 11 个 4 44 GB 大小的空间 ,



Linux 系统内核空间占 1 11 GB , 用户空间 3 33 GB ; 0 00 ~ 3 33 GB 是用户空间地址 , 3 33 ~ 4 44 是内核空间地址 ;


Windows 系统内核空间占 2 22 GB , 用户空间 2 22 GB ;



虚拟地址的必要性 : 代码编译完成之后 , 地址是分配好的 , 都是从 0 00 地址开始计数的 , 因此如果要保证程序的运行 , 必须保证应用进程的内存从 0 00 开始 ; 这里将实际的物理内存地址映射为虚拟内存地址 , 这个虚拟内存地址可以保证每个程序都按照相同的初始地址运行 ;


汇编指令 需要直接操作 虚拟内存地址 ;


目录
相关文章
|
22天前
|
消息中间件 存储 算法
【软件设计师备考 专题 】操作系统的内核(中断控制)、进程、线程概念
【软件设计师备考 专题 】操作系统的内核(中断控制)、进程、线程概念
66 0
|
28天前
|
消息中间件 Unix Linux
Linux进程间通信(IPC)介绍:详细解析IPC的执行流程、状态和通信机制
Linux进程间通信(IPC)介绍:详细解析IPC的执行流程、状态和通信机制
42 1
|
18天前
|
存储 缓存 Java
金石原创 |【JVM盲点补漏系列】「并发编程的难题和挑战」深入理解JMM及JVM内存模型知识体系机制(1)
金石原创 |【JVM盲点补漏系列】「并发编程的难题和挑战」深入理解JMM及JVM内存模型知识体系机制(1)
33 1
|
26天前
|
监控 安全 算法
深入理解操作系统的内存管理机制
【2月更文挑战第30天】 本文旨在探讨操作系统中至关重要的一环——内存管理。与传统摘要不同,本文将直接点出核心议题:操作系统是如何通过复杂的数据结构和算法实现对计算机内存的有效管理和优化。文章将详细阐述内存管理的关键组成部分,包括内存分配、虚拟内存技术、分页和段机制等,并探讨它们如何共同协作以支持多任务处理和保护系统安全。通过对这些机制的深入了解,读者可以更好地把握操作系统设计之精髓及对现代计算环境的深远影响。
|
1天前
|
算法
深入理解操作系统的内存管理机制
【4月更文挑战第15天】 本文将探讨操作系统中至关重要的一环——内存管理。不同于通常对内存管理概念的浅尝辄止,我们将深入研究其核心原理与实现策略,并剖析其对系统性能和稳定性的影响。文章将详细阐述分页系统、分段技术以及它们在现代操作系统中的应用,同时比较它们的效率与复杂性。通过本文,读者将获得对操作系统内存管理深层次工作机制的洞见,以及对设计高效、稳定内存管理系统的理解。
|
4天前
|
算法 Linux 调度
深度解析:Linux内核的进程调度机制
【4月更文挑战第12天】 在多任务操作系统如Linux中,进程调度机制是系统的核心组成部分之一,它决定了处理器资源如何分配给多个竞争的进程。本文深入探讨了Linux内核中的进程调度策略和相关算法,包括其设计哲学、实现原理及对系统性能的影响。通过分析进程调度器的工作原理,我们能够理解操作系统如何平衡效率、公平性和响应性,进而优化系统表现和用户体验。
14 3
|
9天前
|
Linux 编译器 Windows
【Linux】10. 进程地址空间
【Linux】10. 进程地址空间
19 4
|
11天前
|
缓存 监控 算法
深入理解操作系统的内存管理机制
【4月更文挑战第5天】 随着现代计算机系统的发展,操作系统的内存管理已成为确保系统高效稳定运行的关键因素。本文旨在探讨操作系统中内存管理的基本原理、关键技术及其在实际应用中的优化策略。通过分析内存分配、虚拟内存技术以及内存保护和分页机制等方面,揭示内存管理对提升系统性能的重要性,并提供了一系列优化内存使用效率的方法。
|
21天前
|
存储 Linux 程序员
【Linux C/C++ 堆内存分布】深入理解Linux进程的堆空间管理
【Linux C/C++ 堆内存分布】深入理解Linux进程的堆空间管理
66 0
|
22天前
|
存储 安全 Linux
进程地址空间
进程地址空间
15 2