LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
查看: 852|回复: 8

设计与实现一个同步机制的问题

[复制链接]
发表于 2005-4-7 11:00:41 | 显示全部楼层 |阅读模式
应该怎样去设计与实现一个同步机制呢?
帮忙说点具体可行的方案。比如说应该先做什么,了解什么,具备什么等等
要是哪位有关这方面的源代码给我一份,
谢谢   dada199@tom.com
发表于 2005-4-7 11:09:53 | 显示全部楼层
操作系统原理上说得很清楚。建议看《现代操作系统》
回复 支持 反对

使用道具 举报

发表于 2005-4-7 12:06:53 | 显示全部楼层
Post by dada199
应该怎样去设计与实现一个同步机制呢?
帮忙说点具体可行的方案。比如说应该先做什么,了解什么,具备什么等等
要是哪位有关这方面的源代码给我一份,
谢谢   dada199@tom.com

干什么的“同步机制”?电子信号同步?指令同步?进程同步?网络传输同步?数据库同步?...同步?
回复 支持 反对

使用道具 举报

 楼主| 发表于 2005-4-13 13:17:17 | 显示全部楼层
是进程同步, 要设计一个同步机制加进内核的. 还望高手赐教!
回复 支持 反对

使用道具 举报

发表于 2005-4-13 21:27:05 | 显示全部楼层
下策:翻翻操作系统教材,看看有什么理论上可行的同步机制(比如semaphore、monitor、mailbox等)是你的目标系统没有的,就加到目标系统中去。但这样恐怕不能叫“设计”,只能算是“实现”。

中策:利用你的目标系统已有的同步机制实现一个更上层的同步机制,功能相对狭窄,但简单易用,也有一定的意义。

上策:研究分析教科书上所有同步机制的特点和功能,设计一个教科书上没有的、功能也不差的同步机制。那样你就NB了。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2005-4-18 15:30:57 | 显示全部楼层
自己无耻的问一句: 应该怎么样去实现啊? 比如具体流程是什么?  我看了不少书, 觉得还是很抽象啊,搞的自己快要郁闷死了
回复 支持 反对

使用道具 举报

发表于 2005-4-18 15:43:21 | 显示全部楼层
你的目标系统是LINUX吗,那你可能要看一下 Linux内核模块编程,搜索论坛及整个网络,这样的资料还是很多的。

如果你不是要做内核模块而是直接修改内核源代码,那当然是要看看内核源代码了。

上面的方案推荐你用中策,实现起来可能简单一点。另外,可以参考一下 POSIX线程 中的同步机制(条件变量)的实现。

如果你还没有看过《UNIX环境高级编程》中的进程间通信,去看一下可能对你会有启发。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2005-4-18 17:08:33 | 显示全部楼层
我这里有一份关于同步机制设计实现的源代码,可是我看的不太明白, 而且也不能运行通过, 你能不能帮我看看, 写点注释. 调试一下, 谢谢

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x
回复 支持 反对

使用道具 举报

发表于 2005-4-19 11:15:13 | 显示全部楼层
这是别人的作业吧?

代码还是挺清楚的,event.c是这个机制的实现,是要加到内核里去的,只有这个当然不能运行。你把它加到内核里去或者编写内核模块。

mymain.c是验证程序(普通应用程序)。

大意就是用几个系统调用 eventopen, eventclose, eventsig, eventwait, geteventnum 实现同步(mymain.c演示了如何用),基本上是在模仿信号量。

别人的作业可以参考一下,最终还是要自己把相关问题研究清楚,好好搞把,搞出来还是很有意思的。
回复 支持 反对

使用道具 举报

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

本版积分规则

快速回复 返回顶部 返回列表