A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

1、进程:在执行程序时,内核首先将程序(文件)读入内存,然后将此内存区域分配给进程。进程拥有独立的虚拟空间,可以使用虚拟地址空间的地址,由MMU(内存管理单元)转换为实际的内存地址(物理地址)。进程拥有唯一的ID;内存以进程为单位分配,进程的虚拟地址空间各自独立,从节约内存使用量的角度出发,有时也会将同一块内存分配给多个进程的虚拟地址空间。

2、进程的并行执行:内核会随时切换执行中的进程,将时间片分给不同的进程,即使只有一个CPU,也可以并行处理多个程序,采用这种方式的系统称为分时系统。

3、进程的执行状态:进程的执行状态可以分为两种:可执行状态和休眠状态;细分为休眠状态、可执行状态、进程生成中、僵尸状态、等待被跟踪。

4、用户模式和内核模式:处理器具有两种模式:用户模式和内核模式,通过PSW(处理器状态字寄存器)能够在两者间进行切换;切换模式时,映射到虚拟地址的物理内存区域也随之发生变换(由MMU来实现);进程为了访问内核功能,用户程序必须通过系统调用向内核提出访问内核功能的请求。

5、交换处理:内核定期将处于休眠状态、重要度较低的进程(所需的数据)从内存转移到交换空间,或者将交换空间中已处于可执行状态的进程重新恢复到内存。

6、proc结构体和user结构体:进程的状态信息和控制信息等由proc结构体和user结构体管理。每个进程各自会被分配1组上述结构体的实例。proc结构体常驻内存,而user结构体有可能被移至交换空间

    proc结构体:由proc结构体构成的数组proc[]中的每个元素对应一个进程,proc结构体管理着在进程状态、执行优先级等与进程相关的信息中需要经常被内核访问的那部分信息;proc[]的长度决定了在系统中可以同时存在的进程上限

    user结构体:user结构体用来管理进程打开的文件或目录等信息。由于内核只需要当前执行进程的user结构体,因此当进程被换出至交换空间时,对应的user结构体也会被转移出内存。

7、为进程分配内存:代码段和数据段作为两个连续的物理内存区域被分配给进程;进程通过虚拟地址访问被分配的物理内存区域;

    代码段:代码段是只读的,用来存放程序执行的机器代码,当被同时执行多次时,个进程共享同一代码段;

    数据段:用来存放程序使用的变量等数据,不会被多个进程共享;数据段从低地址开始,依次由PPDA、数据区域、栈区域组成;

        PPDA(Per Process Data Area):user结构体和内核栈区域构成,长度为USIZE*64字节=1KB,从用户空间无法访问;内核栈区域被用于内核处理时的临时工作区域;

        数据区域:由存放全局变量或bss等静态变量的区域和进程用来动态管理内存的堆区域构成,扩展堆区域需要系统调用来完成。扩展从虚拟地址的低位向高位方向进行;

        栈区域:用来暂时存放函数的参数或局部变量,栈区域的扩展从虚拟地址的高位向低位方向进行。

8、虚拟地址空间:进程拥有64KB的虚拟地址空间,通过16比特的虚拟地址访问物理内存,虚拟地址由MMU转换成18比特的物理地址;

    代码段位于虚拟地址空间的最低位,其后是数据区域,数据区域的起始地址以8KB为边界对齐。栈区域被分配在虚拟地址空间的最高为地址;

    每个进程都拥有独立的虚拟地址空间,使用虚拟地址具有以下优点:

        程序能够使用以任意地址为起点的内存空间;

        实现对内存访问的管理

        提高内存的使用效率

9、变换地址:MMU通过APR(Active Page Register)寄存器将虚拟地址变换为物理地址。一个APR由一个PAR(Page Address Register)寄存器和一个PDR(Page Description Register)寄存器构成;

    虚拟地址经过分段单元转换成线性地址,再经过分页单元转换成物理地址

2 个回复

倒序浏览
回复 使用道具 举报
棒棒哒
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马