总结得真不错,而且文字很有趣呵,又当作家的潜质。<br /> 超线程那个,如果我没有记错的话,好像是这样:虽然是一个CPU核,当支持多个超线程的时候,该CPU会有对应数量的线程上下文相关的一些寄存器。这样在线程切换时代价很小。并且该CPU支持这些线程几乎同时运行。<br /> <br /> 关于进程优先级,我一直有个疑问。内核中数值越小,优先级就越高。可应用编程,数值越大,优先级越高。为啥要不一致呢?
<div class="quote"><span class="q"><b>GFree_Wind</b>: 总结得真不错,而且文字很有趣呵,又当作家的潜质。<br /> 超线程那个,如果我没有记错的话,好像是这样:虽然是一个CPU核,当支持多个超线程的时候,该CPU会有对应数.....</span></div>别着急,我也不想写一个完整宏大的进程调度的文章了,就想到哪,写到哪了,准备写个优先级 nice 等应用编程和内核对应分析的博文。
very good!<br /> 期待大作!
<div class="quote"><span class="q"><b>Bean_lee</b>: 别着急,我也不想写一个完整宏大的进程调度的文章了,就想到哪,写到哪了,准备写个优先级 nice 等应用编程和内核对应分析的博文。.....</span></div>看来你最近学习积累了不少东西啊。<br /> <br /> 现在看的东西,平时用的上吗?有没有学以致用的机会呢?
<div class="quote"><span class="q"><b>GFree_Wind</b>: 看来你最近学习积累了不少东西啊。<br /> <br /> 现在看的东西,平时用的上吗?有没有学以致用的机会呢?.....</span></div>你真是说到我的苦恼之处了,我看的这些东西,真的平时用不上,没有学以致用的机会,所以自己很苦恼啊。
<div class="quote"><span class="q"><b>Bean_lee</b>: 你真是说到我的苦恼之处了,我看的这些东西,真的平时用不上,没有学以致用的机会,所以自己很苦恼啊。.....</span></div>我猜也是。<br /> 所以有的东西看到一定程度,就很难坚持下去。<br /> 因为用不到。
<div class="quote"><span class="q"><b>GFree_Wind</b>: 我猜也是。<br /> 所以有的东西看到一定程度,就很难坚持下去。<br /> 因为用不到。.....</span></div>呵呵 你有啥渡我出苦海的办法吗?<br /> 我也想搞点有用的,哪怕是写个小游戏,写个小工具之类的。
<div class="quote"><span class="q"><b>Bean_lee</b>: 呵呵 你有啥渡我出苦海的办法吗?<br /> 我也想搞点有用的,哪怕是写个小游戏,写个小工具之类的。.....</span></div>那就写个小工具吧:)<br /> <br /> 其实写一个测试工具我觉得就不错。我现在有个需求,你看看你有什么想法?我经常要处理不同的协议。有时候搭环境太麻烦了。<br /> 所以希望有一个测试工具,可以模拟流量。如http,ftp,sip,tcp,udp等等。<br /> <br /> 我前几天只写了一点。你看看有什么好的想法。关键是设计。
<div class="quote"><span class="q"><b>GFree_Wind</b>: 那就写个小工具吧:)<br /> <br /> 其实写一个测试工具我觉得就不错。我现在有个需求,你看看你有什么想法?我经常要处理不同的协议。有时候搭环境太麻烦了。<br /> 所以希望有一个.....</span></div>说来不怕你笑话,我对网络协议这块不太熟。<br /> 模拟流量是个什么需求啊,就是一个发各种协议的包的工具吗?<br /> 我希望你能带着我做点有意思的项目,提高提高自己的能力和眼界。
<div class="quote"><span class="q"><b>Bean_lee</b>: 说来不怕你笑话,我对网络协议这块不太熟。<br /> 模拟流量是个什么需求啊,就是一个发各种协议的包的工具吗?<br /> 我希望你能带着我做点有意思的项目,提高提高自己的能力.....</span></div>对。就是发各种协议的数据包。不过要同时有client和server。<br /> 必须可以做到以下几点<br /> 1. client和server的行为可控。<br /> 1)发包速度<br /> 2)发包的顺序和行为等<br /> 2. 数据包内容可定义;<br /> 3. 配置要灵活。<br /> <br /> 我的想法是payload和行为都是由配置文件指定。你有什么IM吗?有空通过IM聊
<div class="quote"><span class="q"><b>GFree_Wind</b>: 对。就是发各种协议的数据包。不过要同时有client和server。<br /> 必须可以做到以下几点<br /> 1. client和server的行为可控。<br /> 1)发包速度<br /> 2)发包的顺序和行为等<br /> 2.....</span></div>QQ 187293875
<div class="quote"><span class="q"><b>Bean_lee</b>: QQ 187293875.....</span></div>明天加你。
<div class="quote"><span class="q"><b>GFree_Wind</b>: 对。就是发各种协议的数据包。不过要同时有client和server。<br /> 必须可以做到以下几点<br /> 1. client和server的行为可控。<br /> 1)发包速度<br /> 2)发包的顺序和行为等<br /> 2.....</span></div>另外我知道有个tool 叫tcpreplay,好像可以发包。速度啥的都能控制
<div class="quote"><span class="q"><b>Bean_lee</b>: 另外我知道有个tool 叫tcpreplay,好像可以发包。速度啥的都能控制.....</span></div>是的。这个工具我用过。<br /> <br /> 这个需要事先抓好包,有一个现成的packet trace。然后修改mac地址,将包重发。<br /> 这个跟我的需求不一致。因为不支持自定义数据包。
<div class="quote"><span class="q"><b>Bean_lee</b>: 呵呵 你有啥渡我出苦海的办法吗?<br /> 我也想搞点有用的,哪怕是写个小游戏,写个小工具之类的。.....</span></div>如果不是平时工作所需,可以少花点时间在特别细节的地方。以了解整体的设计思路为主。<br /> <br /> scheduling算法我仅仅了解O(1)调度,还是从LKD里了解的那么一点。<br /> <br /> 后来我写数据批量同步的lock-free算法就是受O(1)调度启发的。
这……要逆天了,哈哈……<br /> <br /> 其实我的LMOS是每个CPU一个运行队列,外加一个所有CPU共享的运行队列,其实是一组不同状态的队列,这一组中包含一个运行队列。
<div class="quote"><span class="q"><b>lmnos</b>: 这……要逆天了,哈哈……<br /> <br /> 其实我的LMOS是每个CPU一个运行队列,外加一个所有CPU共享的运行队列,其实是一组不同状态的队列,这一组中包含一个运行队列。.....</span></div>呵呵,逆天是啥意思,你发现错误了吗,我也是在学习中,有错误请不吝赐教。
<div class="quote"><span class="q"><b>lmnos</b>: 这……要逆天了,哈哈……<br /> <br /> 其实我的LMOS是每个CPU一个运行队列,外加一个所有CPU共享的运行队列,其实是一组不同状态的队列,这一组中包含一个运行队列。.....</span></div>个人觉得RT进程不妨共享一个队列,普通进程per cpu run queue。<br /> RT进程从CPU之间倒来倒去太麻烦
<div class="quote"><span class="q"><b>Bean_lee</b>: 个人觉得RT进程不妨共享一个队列,普通进程per cpu run queue。<br /> RT进程从CPU之间倒来倒去太麻烦.....</span></div>嗯 嗯 我的LMOS暂不支持RT进程
简单的说下x86的超线程技术吧,一个CPU核包一套执行部件,和一组用于保存临时执行状态的寄存器,基于这样的观察,一条指令的执行常常需要等等待外部总线或设备的数据和状态(由于那些总线和设备比CPU慢很多要同步),这时执行部件就空闲了,于是人们就想到,搞两套用于保存临时执行状态的寄存器(多了可能不好)一旦在同步时执行部件空闲时就切换到另一执行环境,这种切换是硬件做的,于是就形成了多线程,并且每个线程有自己的本地APIC部件。
<div class="quote"><span class="q"><b>Bean_lee</b>: 呵呵,逆天是啥意思,你发现错误了吗,我也是在学习中,有错误请不吝赐教。.....</span></div>呵呵 不是错误,我是说你这样的技术宅要逆开了。<img src="/image/face/3.gif" >