Fluid
  • 首页
  • 归档
  • 分类
  • 标签
  • 关于

进程管理-基础知识

进程和线程的区别是什么?并行和并发的区别是什么?进程的状态有哪些? 进程进程状态 运行状态:进程正在占用CPU; 就绪状态:可运行,由于等待CPU时间片; 阻塞状态:进程正在等待某一时间的发生而暂时停止运行,这个时候即使给它CPU控制权也不能运行; 创建状态:进程正在被创建时的状态; 结束状态:进程正在从系统中消失时的状态; 为了避免被阻塞的进程一直占用物理内存造成资源浪费,操作系统通常会把阻塞
2025-05-19
操作系统 > 进程管理

进程管理-进程API

进程相关函数有哪些? fork() 用于创建新进程,创建出来的进程被称为子进程,子进程与父进程几乎一样。子进程不会从main函数开始执行,而是直接从fork系统调用中返回。子进程拥有自己的地址空间(即私有内存),寄存器,程序计数器等,但是它从fork返回的值是不同的。父进程获得的返回值是新创建子进程的PID,子进程获得的返回值是0. 子进程和父进程的相同点: 拷贝完成后,两个地址空间的用户区数
2025-05-19
操作系统 > 进程管理

内存管理-物理内存管理

什么是物理内存?内存硬件结构长什么样?物理内存模型和物理内存架构分别指的是什么?有什么区别和联系? 1 硬件结构 主存: 若干个存储器模块 每个存储器模块包含8个DRAM芯片(64位) 每个DRAM芯片上存储一个字节,8个DRAM组成一个64位的数据; 存储控制器 地址线(2个地址引脚:行地址+列地址) 数据线(8个data引脚:每个单元存储一个字节) 访问流程: 存储控制器将行地址通
2025-05-17
操作系统 > 内存管理

内存管理-LRU

LRU算法是什么?什么是预读失效?什么是缓存污染? 1. LRU算法1.1 传统LRU算法 当访问的页在内存里,就直接把该页对应的LRU链表节点移动到链表头部; 当访问的页不在内存里,除了要把该页放入到LRU链表的头部,还要淘汰LRU链表末尾的页; 传统LRU算法存在两个问题: 预读失效 缓存污染 2. 预读失效2.1 预读失效是什么?操作系统为了提高I/O性能,会预先加载可能被访
2025-05-15
操作系统 > 内存管理

内存管理-虚拟内存管理

内核如果管理虚拟内存区域?task_struct结构体是什么? 1. task_structflowchart LR task_struct --> B[pid_t pid] -->B1(进程id) task_struct --> C[pid_t tgid] --> C1(线程所属pid) task_struct --> D[files_struct] --> D1(进程打
2025-05-15
操作系统 > 内存管理

内存管理-面试八股

内核如何管理虚拟内存区域? 每个进程有一个task_struct,用于描述进程; task_struct包含一个mm_struct,用于描述虚拟内存空间; 虚拟内存空间的每个段(代码段,数据段…)都用一个vm_area_struct结构描述; vm_area_struct记录了这个段的其实地址和结束地址,以及访问权限和行为规范; 内存资源紧张时,系统应对方法有哪些? 产生OOM,内核直接将系统中
2025-05-15
操作系统 > 面试题

内存管理-内存分配

malloc是如何分配内存的? malloc是如何分配内存的? 如何用户分配的内存小于128KB,通过brk()申请内存; 如果用户分配的内存大于128KB,通过mmap()申请内存; 其中通过brk申请的是堆内存,通过mmap申请的是文件映射区的内存。 为什么是以128KB为分界线?malloc分配的是物理内存吗? malloc()分配的是虚拟内存。 如果分配后的虚拟内存没有被访问的话,虚拟内
2025-05-13
操作系统 > 内存管理

内存管理-内存回收

内存满了会有什么处理?什么情况下会触发内存回收?OOM是什么? 1. 有几种内存回收的方式? 后台内存回收 直接内存回收 触发OOM机制 1.1 内存分配过程 当使用malloc分配内存的时候,分配的是虚拟内存; 当访问该内存的时候,通过映射表查找虚拟内存对应的物理内存。此时发现并没有对应的映射表,于是触发缺页中断; 缺页中断处理程序在堆区中查找空闲内存,如果存在,则直接返回物理内存,如果不存在
2025-05-13
操作系统 > 内存管理

内存管理-虚拟内存

虚拟地址怎么映射到物理地址?内存分段?内存分页?现代操作系统使用的是哪个? 什么是虚拟地址?区分虚拟地址和进程的虚拟内存空间进程的虚拟内存空间 代码段:用于存放进程程序二进制文件中的机器指令; 数据段:用于存放二进制文件中定义的已初始化的全局变量和静态变量; BSS段:用于存放二进制文件中定义的未初始化的全局变量和静态变量; 堆:用于存放程序运行中动态申请的堆; 文件映射与匿名映射区:用于存放动态
2025-05-13
操作系统 > 内存管理

底层刨析-内核

内核功能是什么?Linux内核设计理念是什么?什么是多任务?什么是对称多任务?什么是可执行文件链接格式?什么是宏内核?ELF文件格式?ELF文件怎么生成的?ELF文件怎么被执行的?
2025-05-13
操作系统 > 底层刨析
1234…8

搜索

Hexo Fluid