当前位置: 移动技术网 > IT编程>网页制作>HTML > 系统编程

系统编程

2020年07月20日  | 移动技术网IT编程  | 我要评论

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

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

其中控制器和运算器组成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

如对本文有疑问, 点击进行留言回复!!

相关文章:

验证码:
移动技术网