主题:
字号:
16
行距:
2.0

第58章 野猪泛滥,和大佬们一起进山打猎[2 / 10]

的方案是分段式管理,把内存划分成若干个大小不等的段,每个段记录起始地址、段长和使用状态,内核在分配和回收时只操作这些段表,不直接碰物理地址。

分配空间时若找到空闲段就标记为已占用,回收空间时则合并相邻的空闲块。

他把这个逻辑写成一段大约三十行的程序,一边写一边在脑子里逐行推演边界情况。

“分配段大小:

寻空闲段其中段长>=大小

若找着:

标该段已占用

返段址

否则:

返空

回”

写完之后他把这一段和引导程序衔接在一起,确认没有语法冲突,然后继续往下写进程管理模块。

进程管理的核心是时间片轮转。

每一道运行中的程序被看作一个进程,内核记录它的状态、寄存器值和程序计数器位置,每个进程获得一个固定长度的时间片,时间片用完之后内核自动切换上下文保存当前进程状态、恢复下一个进程的状态、把中央处理器交给它。

他为此设计了一个进程控制块的结构,包含进程标识、运行状态、寄存器备份、优先级和时间片计数器,并配有相应的调度机制让多个程序像轮流使用机器一样交替运行。

“若时间片满:

存当前

恢复下一进程

转继续

止”

他写到设备驱动部分的时候,天已经黑透了。

键盘的输入中断、显示器的输出缓冲、磁盘的读写控制,每一块都需要单独的接口定义和状态机逻辑。

他没有把所有的驱动一次性写完,而是先搭了一个基础的设备抽象层,把每种设备的操作抽象成统一的“读”“写”“控制”三个入口,具体的实现留到后续填充。

这样将来接入任何新设备都不会影响到上层应用程序的执行。

第一版完整的系统内核手稿写完的时候,时钟已经指向下午五点。

他把手稿从头到尾通读了一遍,修改了几处边界条件处理不当的地方,又补了一段异常处理逻辑,确保程序在遇到未定义指令或者内存越界时不会直接死机。

“异常:

停当前

记错误码于日志

转调度”

林北没有立刻把这些代码全部录入机器,而是下个礼拜一上班的时候,跑一趟超算中心,打算使用超级计算机上的仿真环境,把整个内核的架

本章未完,请点击下一页继续阅读!

穿越者纵横动漫世界
龙之宫
魔门败类
惊涛骇浪
带着盗笔烫男人们去穿越
永恒小囡
玄幻:开局吃软饭,出世即儒圣
尧人
乡野风流小医王
弼老耶
谍战:我是螺丝刀,卧底76号
春暖留芳
别看我像金手指,我真只是NPC
诺以浈
你要炉鼎,抓我个横练狂魔干什么
雨木霖霖
垃圾异能不按说明使用它就是s级
孤独老登
快穿:活到大结局
林令滢
开局变萝莉:因为太强只想睡觉
射水鱼
位面快穿,我有一间小杂货店
爱吃橘子的皮皮
阿拉德的不正经救世主
想吃大鱼的猫
列车求生:我知晓下一站信息
葡萄味酸奶
与校花一点不清白,嘴都亲肿了!
山楂煮茶
被灭门后,七位绝色嫂子上门求嫁
流连往返
半城香火半城仙
虾米XL
赶海,鱼货满仓,异瞳娇妻别崇拜
洛爱尘
都市江湖:权势滔天
家有童心
河边茅草屋的秘密
小蚊子
海贼:人为刀俎,我为天龙
开心果人111
我靠避凶天赋苟道长生
路政蕉下客
破产后,上门老公成了我的金主
彼岸无忧
人在奥特:光之国蓝族科学家
多吃肉肉
首长,特种队的龙凤胎长得好像你
颜墨
逢人不说人间事
李肆瞳
我在火葬场当敛容师
向着北方
开局被顶替,我越战越勇
无聊到爆棚了
财阀小甜妻:老公,乖乖宠我
花惊鹊
禁欲大叔的盛世婚宠
花惊鹊
厨神,把师姐们喂成女帝
菠萝披萨
邪道法器?明明是镇族至宝!
法号真水
七零军婚:女特种兵她能一打十
千万富婆
仙岛养鸡:家族靠卖鸡蛋崛起
啸天灵狼
小塔仙缘
七二零零
离婚后,总裁前妻求原谅
杨十三
病秧子早逝?换亲后我旺他全族百年!
半步成诗
打猎捕鱼采山货,养八个弟弟妹妹
不可追
综穿之配角不按照剧情走
短尾泥猫
终快穿:三千世界到处浪
了了清清风明月
综武:能看穿女侠恶念的我无敌了
不可名状的流年碎碎冰
赵庆李观棋
煮熟的来福鸽
三天大,成了绝世剑仙童养夫
青丝白落
重回1982小渔村
米饭的米
公若不弃,愿拜为义父
辣酱热干面
第四天灾从不相信钢铁洪流!
喀秋莎第一可爱
修仙界只有妖女了是吗
月下千早
四合院之扮猪吃老虎
戈壁孤狼夜
青山
会说话的肘子
仙命在我
杜养吾