5006|7

5

帖子

0

TA的资源

一粒金砂(初级)

楼主
 

一个简洁、能力有限的系统内核 [复制链接]

学C已有4年之久,为了不让自己的能力一直停留在某个低级的阶段,提升系统级的能力,更好的理解操作系统内核的工作原理,本质。自己动手写了个简单的OS内核(虽然简单,但是对于初学者应该能看好几天了;-))。该内核支持轮询调度,支持信号量。目前只能跑在ARM内核上,对于有想从事嵌入式开发并深入了解系统调度,线程切换等原理的同学们应该是一份不错的材料。非常希望能帮助到想学习内核的人。

欢迎大家 star ,提交 issue, patch,也可以给我发邮件 gimcuan@gmail.com      ;-)

源代码镜像: https://soloing.org/pub/totoro
git 仓库地址:https://github.com/gilarus/totoro

最新回复

我一个大循环,如果被强制中断去运行别的函数了,还能再切回来吗?也就是说,每个任务有自己的堆栈吗?另外,优先级安排是按什么策略  详情 回复 发表于 2017-10-9 12:30
点赞 关注

回复
举报

732

帖子

2

TA的资源

纯净的硅(中级)

沙发
 
操作系统的“轮询调度”概念是我第一次听到的,挨个询问线程是否需要运行么  我知道优先级调度、时间片轮转什么的,给我们讲讲你的“轮询调度”法吧
 
个人签名亚里士缺德
 

回复

12

帖子

0

TA的资源

一粒金砂(中级)

板凳
 
估计LZ将时间片轮转笔误成非OS的后台分时“轮询”了.......
 
 
 

回复

5

帖子

0

TA的资源

一粒金砂(初级)

4
 
看代码看代码
 
 
 

回复

116

帖子

0

TA的资源

版主

5
 
我一个大循环,如果被强制中断去运行别的函数了,还能再切回来吗?也就是说,每个任务有自己的堆栈吗?另外,优先级安排是按什么策略
 
 
 

回复

5

帖子

0

TA的资源

一粒金砂(初级)

6
 
自己的线程上下文是最基本的啦,肯定有的咯; 看代码,这只是一个很简单的玩具内核,没有什么先进的调度算法。仅供初学者参考使用
 
 
 

回复

5

帖子

0

TA的资源

一粒金砂(初级)

7
 
提供了两个测试模块,一个是同级线程轮询调度,另一个是两个不同优先级,高优先级的线程自己挂起,等待低优先级的线程把自己唤醒(信号量)
 
 
 

回复

5

帖子

0

TA的资源

一粒金砂(初级)

8
 
每个任务有自己的上下文。更具体的自己看代码。
 
 
 

回复
您需要登录后才可以回帖 登录 | 注册

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/10 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2025 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表