首页 > 系统相关 >进程

进程

时间:2024-09-20 12:37:14浏览次数:6  
标签:struct mm PCB 页表 进程 内存

1.c语言和cpp语言中,
这个不是内存,

%p 
  1. 进程认为自己是独占空间的,实际上不是这样子的。

  2. pcb中存了一个内存空间,进程地址空间

  3. 页表是进程内存管理的核心部分,它管理了进程虚拟内存到物理内存的映射关系。通过页表,操作系统可以为每个进程提供独立的虚拟地址空间,并实现内存分页和虚拟内存等功能。在进程切换时,操作系统需要根据PCB中的页表指针加载正确的页表,确保当前进程能够正确访问自己的内存。

  4. 虚拟地址也叫线性地址,并且具有拦截的功能,不然恶意软件入侵的内存。

  5. 内存隔离:不同进程有各自独立的页表,进程之间的地址空间相互独立,保证了内存的安全和隔离性。

  6. 写时拷贝,就是父进程拷贝一份到子进程,只有遇到需要修改的时候才会真的在物理内存中开辟一个空间

  7. 进程=内核数据结构+进程对应的代码和数据

  8. 地址空间的存在,可以更加方便的进行进程和进程的数据代码的解耦,保证代码的独立性的特征

  9. linux中代码在磁盘就有逻辑地址,加载进物理内存中,就会有物理地址。

  10. PCB 和 mm_struct
    在操作系统中,进程是系统执行任务的基本单位,而每个进程都需要一些结构来记录和管理它的状态。在 Linux 内核中,PCB(Process Control Block,进程控制块)和mm_struct是两个关键的结构体,它们共同协作来完成对进程的管理。

  11. PCB(进程控制块)
    PCB 是操作系统中保存进程全部关键信息的数据结构。在 Linux 中,PCB 通过 task_struct 结构体实现,它包含了进程的状态、控制信息以及与系统资源交互的细节。具体包括:
    进程ID:唯一标识一个进程的进程号 (PID)。
    进程状态:如运行、睡眠、停止等。
    调度信息:进程的优先级、调度策略等。
    CPU上下文:保存进程的寄存器、程序计数器等信息,确保进程在上下文切换后能够继续运行。
    内存管理信息:通过指向 mm_struct 的指针,关联该进程的内存布局。
    文件描述符表:记录进程打开的文件和设备。

  12. mm_struct

mm_struct 是 Linux 内核中专门用于描述进程内存布局的结构体。它包含了进程虚拟地址空间的详细信息,包括:

代码段、数据段、堆和栈的起始地址和大小。
虚拟内存区域的划分和管理。
页表信息,用于内存地址的转换。
内存映射文件、共享内存等资源。
每个进程都有自己的 mm_struct,其中保存了该进程的内存使用情况。PCB 中的 task_struct 会通过指针链接到该结构。

标签:struct,mm,PCB,页表,进程,内存
From: https://www.cnblogs.com/zhudachang/p/18422290

相关文章

  • 进程间通信-信号
    大部分信号是异步的/*1-31号信号 非实时信号(所有非实时信号优先级相同) ---不可靠信号不可靠:处于就绪队列多个相同的非实时信号只会被响应一次,其余的被丢弃特征:1、不排队,会相互嵌套(例如家里来客人1先来,招待1的过程中2来了就立马去招待2)2、处于就绪队列多个相同的非实时......
  • 11 UML中的逻辑视图、进程视图、实现视图、部署视图
    UML(UnifiedModelingLanguage,统一建模语言)是一种用于对软件密集系统进行可视化建模的标准语言。在UML中,系统可以从不同的角度进行描述,这些不同的角度被称为视图。具体来说,UML中的逻辑视图、进程视图、实现视图和部署视图分别代表了系统的不同方面。1.逻辑视图(LogicalView)定义......
  • Linux | 进程间通信:管道、消息队列、共享内存与信号量
    文章目录《深入理解进程间通信:管道、消息队列、共享内存与信号量》一、进程间通信介绍(一)进程间通信目的(二)进程间通信发展(三)进程间通信分类二、管道(一)什么是管道(二)匿名管道(三)管道特点(四)命名管道三、共享内存(一)共享内存简介(二)共享内存数据结构(三)共享内存函数四、消息队......
  • 【原创】解决NasCab掉进程,NasCab进程维护
    最近对象吐槽家里服务器又连不上,看不了考研视频了。我掏出手机一试,确实连不上。家里的服务器是Win11平台,用NasCab管理的视频文件,然后通过frpc做的内网穿透。我们在外面的图书馆,连不上无非是三种情况:服务器关机了、NasCab内网穿透插件掉了、NasCab进程掉了。远程登录服务器,发现......
  • Linux 基础入门操作 第九章 进程之间通讯信号量
    systemV的进程间通信之信号量9.3信号量信号量与其他进程间通信方式不大相同,它主要提供对进程间共享资源访问控制机制。相当于内存中的标志,进程可以根据它判定是否能够访问某些共享资源,同时,进程也可以修改该标志。除了用于访问控制外,还可用于进程同步。信号量有以下两......
  • 进程和线程基础内容
    什么是进程和线程?进程是指运行中的程序,在windows里可以在任务管理器中查看;线程是CPU调度的基本单位,进程可以看成程序执行的一个实例。一个进程可以拥有多个线程,每个线程使用其所属进程的栈空间。进程就是线程的容器,需要线程利用进程中的一些资源,处理一个代码、指令。最终实现进......
  • 操作系统之进程
    概念进程是程序的一次执行过程,是动态的。程序则是存放在磁盘上的可执行文件,属于静态。进程是程序的实体运行过程,是系统进行资源分配和调度的独立单位。组成进程控制块(PCB):PID:进程标识符,用于唯一标识一个进程。UID:用户标识符,标识创建该进程的用户。进程控制和管理信息:用于......
  • 26. 多进程理论、操作
    1.多进程相关理论1.1什么是进程进程是一个正在执行的任务或程序负责执行任务的是CPU(1)单任务单核CPU+多道技术实现多个进程的伪并发(2)多任务多个任务并发执行1.2 进程和程序的区别程序是代码的集合体进程是程序的执行过程1.3进程的调度算法(1)先来先服务算法 F......
  • docker 将进程内的文件复制到物理机路径
     在实际开发过程中,经常遇到使用docker部署数据库时  很多同学未将容器的路径跟服务器路径做一个映射,从而会导致很多问题出现,因此做个记录1.使用dockerps命令可以获取docker容器中所有正在运行的容器,如下图所示 2.运行 dockerexec-it8236262ad053/bin/bash  ......
  • 操作系统:进程间通信方式详解(下:消息队列、信号量、共享内存、套接字)
    每日一问:操作系统:进程间通信方式详解(下:消息队列、信号量、共享内存、套接字)进程间通信(Inter-ProcessCommunication,IPC)是操作系统中实现不同进程之间数据交换和协作的关键机制。本文详细介绍了几种常用的IPC方式,包括消息队列、信号量、共享内存和套接字。每种通信方式都......