banord,这两天做系统有个小想法不知道有没有用。关于设备驱动方面的,设备缓冲不要只设一个,设计成多级缓冲,比如说*in_buf[n]吧,读设备缓冲先用设备的get_lock的到一个可用的in_buf,而设备本身在写in_buf的时候也要用get_lock得到一个可用锁(这样做的意义在于,想像一下如果buf很大,光取buf数据可能就要浪费很多时间,而这时候设备如果有实时处理要求得不到buf的话要么等待要么会丢失数据,对于一个1ms就可能会响应多个数据包的设备)。不要使用信号量什么的,太费处理时间。
对应lock函数区分中断和非中断调用,中断处理lock的时候用最快速度(不需要临界处理,用其它方式)。对于中断处理要保证至少能得到一把锁可以对in_buf操作(不要在中断等待)。
当然还要free_lock了。
考虑通用性和实时性。
问 这个OS真不错,国产也NB,继续努力