欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

系统编程

程序员文章站 2022-03-26 20:16:54
一,计算机的基本组成原理:冯诺伊曼体系:控制器,运算器,存储器,输入设备,输出设备其中控制器和运算器组成CPU,存储器即内存,输入输出设备即I/O设备。CPU通过总线来控制内存和I/O设备运算器:对数据进行常规计算。控制器:控制计算机各部分进行协调的工作存储器:存储数据和程序输入设备:把人类的资料转换成二进制存储起来输出设备:把二进制转换成人类能识别的进行呈现系统总线:数据总线,地址总线和控制总线(片内总线和通信总线)数据总线w输数据地址总线:给数据总线上的源数据...

一,计算机的基本组成原理:

冯诺伊曼体系:控制器,运算器,存储器,输入设备,输出设备

其中控制器和运算器组成CPU,存储器即内存,输入输出设备即I/O设备。CPU通过总线来控制内存和I/O设备

系统编程

运算器:对数据进行常规计算。

控制器:控制计算机各部分进行协调的工作

存储器:存储数据和程序

输入设备:把人类的资料转换成二进制存储起来

输出设备:把二进制转换成人类能识别的进行呈现

系统总线:数据总线,地址总线和控制总线(片内总线和通信总线)

数据总线w输数据

地址总线:给数据总线上的源数据或者目的数据指出地址

控制总线:各部分在无时无刻共享上面两个总线,控制总线控制什么时候由谁使用

进程:执行中的程序(只要把程序从磁盘上加载到内存上,系统就会把它当一个进程)

进程分两部分:

1.PCB--》进程控制块:记录进程属性信息 

2.4G的虚拟地址空间映射到物理内存上的数据

系统管理所有的进程的PCB是通过双向循环列表

系统编程

进程状态

系统编程

阻塞:等待事件发生

执行:此处的执行单指CPU正在执行进程中的指令

时间片轮转法:就算进程差一步退出,只要时间片完了,直接进入就绪状态。

系统编程

并行依赖于硬件,取决于CPU是几核处理器

内存管理方案:分区,分页(大小相等和大小不等),分段

 

系统编程

加载过程:操作系统将用户空间的内存划分为大小相等的区块标号,磁盘上的文件也被分为大小相等的标号,操作系统为每个进程维护一个页表,按页管理,这个页表就记录了程序加载到内存时页号对应的物理帧号。其中LINUX中,ELF格式的可执行文件中Program Headers记录了哪些数据需要被加载到一块的。

实地址模式:没有操作系统,都是硬件集成的固定的寻址方式。(计算机在加电使用时,操作系统还没有加载,没有内存管理的时候)

CPU里的寄存器(16位):DS CS SS(物理内存上程序段的起始位置)  IP(偏移值)

地址总线 20位

为了保护地址:规定每个段大小都必须是16的倍数,所以段大小的取值范围为16~2^16=64K

映射方式:DS(数据段)<<4  +IP===>物理地址(通过恶意修改,加出数据段,会加到别的段)

内存最大范围 1M

保护地址模式:

GDTR-->全局段描述符表寄存器

LDTR-->局部段描述符表寄存器

指向段描述符表的起始地址(内存的地址)

表在内存相当于数组,内存被分为每个8字节

系统编程

DS CS SS寄存器都是16位,前13位即段选择子(全局段描述符表的中的下标,即数组的下标),其后两位为权限(内核00/用户11),最后一位为GDTR/LDTR

保护地址模式扩充了一个寄存器IPE(32位):记录在段中的偏移值

保护模式下分段的地址映射:

GDTR[DS>>3](右边三位去掉,右边三位不是选择子).BaseAddr(段起始地址) +IPE(IPE的值只能取决于段的大小)

映射得到的为线性地址【CRO寄存器的PG位记录了是否开启分页机制】

--》未开启分页--》物理地址

--》启用分页机制后--》虚拟地址(32位数组),32位数组分为10,10,12、

系统编程

CR3寄存器保存页目录的起始地址--》页目录--》{12位控制位(P位页面在物理内存上还是交通平行上,M位是否是脏页即被修改的)--》20位页号(32位系统能够真实映射到的物理内存位4G--》分页每个为4K,故有2^20个页,故页号位20)}

--》页表--》12位控制位--》20位页号(物理内存)

--》12为页里面的偏移值--》2^12=4K--》进程数据

分页的优缺点:

1.分页安全,访问速度快

2.需要多分两个页,页目录和页表,其中只有一点有用,得维护整个页,但是进程数据不止一个页,故这点浪费还是负担得起的。

 

 

 

 

 

本文地址:https://blog.csdn.net/m0_43407388/article/details/107433132