主题:
字号:
16
行距:
2.0

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

状态,内核在分配和回收时只操作这些段表,不直接碰物理地址。

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

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

“分配段大小:

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

若找着:

标该段已占用

返段址

否则:

返空

回”

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

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

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

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

“若时间片满:

存当前

恢复下一进程

转继续

止”

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

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

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

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

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

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

“异常:

停当前

记错误码于日志

转调度”

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

确认仿真结果确认逻辑无死锁、内存无泄漏、时间片切换没有跨周期丢失之后,这套系统才能证明没有问题。

至于眼前的这台计算机,事实上,连一个壳

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

奥特:赛文断腿?那我变奈克瑟斯
我是大魔王哼哼
盗墓:哭啥?不白嫖!管售后的
菜狗头
死后诈尸诅咒,仙门上下悔悔悔
每天一顿饭
我在火葬场当敛容师
向着北方
全民星际求生,开局签到萝莉机娘
浮华未见
抗战:旅长,恭喜发财啊!
于无声处2
综影视:替亡灵完愿
橙堇花开
首长,特种队的龙凤胎长得好像你
颜墨
双生神级武魂,震惊妖帝老婆!
白龙非龙
开挂?谁开的过你们啊!
無涯
村长,收手吧,外面全是套路!
柳溪的步霓裳
我,妖妃,让国家又双叒叕强大了
偶蒜
屠城就能回蓝星?兄弟你早说啊!
皮蛋的蛋皮
穿越荒年,空间粮食装不下了
郑怀夕
玄幻:开局吃软饭,出世即儒圣
尧人
从一条泥鳅走蛟化龙,全世界震惊
菜拌面
后妈恶毒后妈爽,后妈日子过得好
金满满
三角洲:模拟百日,麦晓雯沦陷了
云端的猫
重生2009:我靠投资成首富
是铭仔呀
逃婚后我去了东莞
慧觉本心梦禅
人间正道是沧桑之四海飘零
晓珊迪
全能顶流女星重生,卷疯娱乐圈
金安似锦
神雕:重生尹志平,不当龙骑士
泡泡追泡泡
付费才能修仙?我的宗门全免费
米忽悠看刀
财阀小甜妻:老公,乖乖宠我
花惊鹊
铸盾:军工谍影清剿令
百晓热点
杨九天陈艺
笑傲余生
乡野风流小医王
弼老耶
原神:成了孩子们白月光的老大叔
昆鸣鸟
二爷,您夫人她全家都是上古大妖
盛明堂
全民挖宝,只有我能看到提示
一日三万
我掌一剑
我要赚个小目标
天牢开局:从死囚到儒道文圣
清风摇翠
带崽村姑炸翻军区,高冷首长宠疯了
灯符
小可怜闪婚带娃大叔,三年后成首富
二月里里
综影视:成为女主角攻略计划
山木有兮沐兮
任务流神豪
幼儿园高手
重回1982小渔村
米饭的米
公若不弃,愿拜为义父
辣酱热干面
路明非,成为艾尔登之王吧!
苏三十二
第四天灾从不相信钢铁洪流!
喀秋莎第一可爱
修仙界只有妖女了是吗
月下千早
四合院之扮猪吃老虎
戈壁孤狼夜
青山
会说话的肘子
北海道赛马物语
点旗2009
仙命在我
杜养吾
半岛头号玩咖!
HKDoll
半岛小行星
鸡兔同笼
被夺一切后我成了仙道魁首
盛唐无夜
重生鉴宝:我真没想当专家
眀智