文章 44
浏览 11238
分页寻址

分页寻址

文章借鉴 内存寻址之分页机制 与 内存分页、寻址方式那些事 写在前面 分页与分段机制 分段机制是Intel CPU一直保持的机制,而分页机制在80x86的计算机中是一种可选的机制,但只有在保护模式下才存在这种机制,也就是说保护模式下才存在分页寻址的机制,但保护模式不一定开启分页寻址机制. 内存碎片化问题: 进程A进来,向os申请了200的内存空间,于是os把0~199分配给A 进程B进来,向os申请了5的内存空间,os把200~204分配给它 进程C进来,向os申请了100的内存空间,os把205~304分配给它 这个时候进程B运行完了,把200-204还给os但是很长时间以后,只要系统中的出现的进程的大小>5的话,200-204这段空间都不会被分配出去(只要A和C不退出)。过了一段更长的时间,内存中就会出现许许多多200-204这样不能被利用的碎片 分页的原因 解决内存碎片化问题,分页机制将虚拟内存空间和物理内存空间划分为同样大小的单位-页面,并以页面作为最小分配单位,然后将内存按照页为单位进行内存分配,这样一段内存空间就可以属于很多进程.内存在虚拟中为连续的,物理中离散....

报数游戏

报数游戏

线性表实验

多项式求和

多项式求和

因为参加了CCF的认证考试,加之这假期事情比较少,所以决定静下心来学习几个算法,按照CSP网站上的题目去做,第二道题便是多项式求和。以前在数据结构课上,便了解过多项式求和利用的是栈这个数据结构。不过一直以来遇到需要自己实现的数据结构,我便有点犯怵。不过这次既然决定学习了,所以便决定解决这个问题。 要求如下: ‘+’、‘-’、‘x’、‘/’ 分别表示加减乘除四个基本操作 ‘(’、‘)’分别表示左右括号 要求计算最后结果 思路 分别需要两个栈来分别存放,操作数和操作码。 将多项式作为字符串进行输入。 之后遍历字符串,遇到操作数直接进栈,遇到操作码则较为复杂。 遇到操作码,需要和栈顶存放的操作码进行比较,若高于栈顶操作码,说明之后的出栈的顺序不会影响操作码的计算结果,操作码直接进栈即可。(因为出栈时是后入栈的先出栈,也先计算) 若低于栈顶操作码,则需要将栈顶操作码出栈,操作数出栈两次将结果进行计算,之后再将结果入栈。 若遍历结束,也即遇到'\0'符号,若这是操作码栈中不为空,则需依次出栈计算结果。直到操作码栈为空。 C/C++代码: #include <iostream>....

关键路径

关键路径

基于Python和C实现