【个人技术经验及开发技巧分享】 【个人技术经验及开发技巧分享】
首页
  • 操作系统初识
  • JAVA基础
  • JVM
  • 开发框架
  • Redis
  • Zookeeper
  • 消息中间件
  • 持久化
  • 算法
  • 网络
  • 系统架构
  • 并发编程
  • 框架
  • 开发杂货
  • 线上排查
  • 技巧备忘
  • 部署指南
  • 版本管理
  • 工作流程
  • 发版流程
  • 友情链接
  • 网站备忘
  • 在线工具
  • 学习
  • 各种云
  • 应用下载

Louis

首页
  • 操作系统初识
  • JAVA基础
  • JVM
  • 开发框架
  • Redis
  • Zookeeper
  • 消息中间件
  • 持久化
  • 算法
  • 网络
  • 系统架构
  • 并发编程
  • 框架
  • 开发杂货
  • 线上排查
  • 技巧备忘
  • 部署指南
  • 版本管理
  • 工作流程
  • 发版流程
  • 友情链接
  • 网站备忘
  • 在线工具
  • 学习
  • 各种云
  • 应用下载
  • 操作系统初识

    • 计算机模型
    • CPU结构
    • 操作系统内存管理
      • 1 执行空间保护
      • 2 线程模型
      • 3 进程与线程
    • CPU缓存一致性协议
  • JAVA基础

  • JVM

  • 开发框架

  • Redis

  • Zookeeper

  • 消息中间件

  • 持久化

  • 算法

  • 网络

  • 系统架构

  • 学习笔记
  • 操作系统初识
luoxiaofeng
2022-08-01
目录

操作系统内存管理

# 1 执行空间保护

操作系统有用户空间与内核空间两个概念,目的也是为了做到程序运行安全隔离与稳定,以32位操作系统4G大小的内存空间为例

image-20220801181743611

Linux为内核代码和数据结构预留了几个页框,这些页永远不会被转出到磁盘上。内核代码及其数据结构都必须位于这 1 GB的地址空间中,但是对于此地址空间而言,主要应该是物理地址的虚拟映射。

从 0x00000000 到 0xC0000000 的线性地址可由 用户代码 和 内核代码 进行引用(即用户空间)。

从 0xC0000000(PAGE_OFFSET)到 0xFFFFFFFFF的线性地址只能由 内核代码 进行访问(即内核空间)。

这意味着在 4 GB 的内存空间中,只有 3 GB 可以用于用户应用程序。

进程与线程只能运行在 用户方式(usermode) 或 内核方式(kernelmode) 下。用户程序运行在用户方式下,而系统调用运行在内核方式下。

在这两种方式下所用的堆栈不一样:用户方式下用的是一般的堆栈(用户空间的堆栈),而内核方式下用的是固定大小的堆栈(内核空间的堆栈,一般为一个内存页的大小),即每个进程与线程其实有两个堆栈,分别运行与用户态与内核态。

# 2 线程模型

CPU调度的基本单位线程,可划分为2种模型:

  • 内核线程模型(KLT)
  • 用户线程模型(ULT)
image-20220801182822817

内核线程(KLT):系统内核管理线程(KLT),内核保存线程的状态和上下文信息,线程阻塞不会引起进程阻塞。在多处理器系统上,多线程在多处理器上并行运行。线程的创建、调度和管理由内核完成,效率比ULT要慢,比进程操作快。

image-20220801200843889

用户线程(ULT):用户程序实现,不依赖操作系统核心,应用提供创建、同步、调度和管理线程的函数来控制用户线程。不需要用户态/内核态切换,速度快。内核对ULT无感知,线程阻塞则进程(包括它的所有线程)阻塞。

提示

JVM采用的线程模型是:内核线程(KLT)

# 3 进程与线程

什么是进程?

现代操作系统在运行一个程序时,会为其创建一个进程;例如,启动一个Java程序,操作系统就会创建一个Java进程。进程是OS(操作系统)资源分配的最小单位。

什么线程?

线程是OS(操作系统)调度CPU的最小单元,也叫轻量级进程(Light Weight Process),在一个进程里可以创建多个线程,这些线程都拥有各自的计数器、堆栈和局部变量等属性,并且能够访问共享的内存变量。CPU在这些线程上高速切换,让使用者感觉到这些线程在同时执行,即并发的概念。

线程上下文切换过程:

image-20220801201505962
CPU结构
CPU缓存一致性协议

← CPU结构 CPU缓存一致性协议→

最近更新
01
SpringBoot
10-21
02
Spring
10-20
03
Sentinel
10-14
更多文章>
Copyright © 2022-2023 Louis | 粤ICP备2022060093号-1
  • 跟随系统
  • 浅色模式
  • 深色模式
  • 阅读模式