Linux操作系统之内存管理

发布于:2022-11-16 ⋅ 阅读:(17) ⋅ 点赞:(0) ⋅ 评论:(0)

一、程序运行过程

1)例如main.c中的代码与数据,通过编译链接过程,将代码段(.text)与数据段(.data)加载到内存中(主存中)

2)CPU(控制器)从主存中取指令 在执行

3)执行完当前指令,继续执行下一条指令,循环往复

二、回顾上节知识点(刷新缓冲区)

1)缓冲区已满,将缓冲区数据刷新到屏幕

2)进程结束前,刷新(main:return;exit)
exit:刷新缓冲区+结束程序(_exit)

3) 强制刷新缓冲区:‘\n’ 或 fflush(stdout)

三、计算机基本组成

输入和输出设备、运算器、存储器、控制器(了解)

在这里插入图片描述
总线:分为地址总线(在计算机内主要体现的是寻址能力,例如:x86操作系统为2^32 -> 4G,地址总线为32)、数据总线、控制总线
在这里插入图片描述
在这里插入图片描述

四、进程管理(重点)

1)进程定义:当某个程序运行时,就让将其从硬盘调入内存中,以供CPU运算和处理,这些正在运行的程序就称进程
2)程序只占磁盘空间,不占系统运行资源
3)进程是操作系统资源分配和调度的基本单位

1、PCB进程控制块

PCB : 即是进程控制块(Processing Control Block),是进程存在的唯一标志。用来

描述进程的属性信息。OS是根据PCB来对并发执行的进程进行控制和管理的。进程

是操作系统资源分配和调度的基本单位。

在这里插入图片描述
产生:先有PCB产生,再产生进程实体
消失:先消失进程实体,在结束PCB

2、进程状态转移图

在这里插入图片描述

五、虚拟内存与物理内存

1、什么是物理内存?

注意:物理内存并不是越大越好,也和计算机地址总线的寻址能力有关

在这里插入图片描述

2、什么是虚拟内存?

在这里插入图片描述

重点:物理内存和虚拟内存都是有4G空间的,只不过虚拟内存为我们设想的一片内存区域,而物理内存是程序真正运行起来的运行内存,它们之间存在虚拟内存向物理内存映射的关系

在这里插入图片描述