您的位置:首页 > 其它

三月的最后一周

2013-06-25 17:23 225 查看
时间很快啊,一周时间又结束了,新的一周又要开始上了,现在继续总结上一周,首先上一周学习的内容是系统编程,这部分自己还是不怎么的熟悉,因为很又很多的计算机专业的知识自己以前没有学过,比如【计算机操作系统】,什么进程、线程、信号量、信号、互斥锁、无名管道、有名管道,此类的东西,都是比较晦涩的,不是很容易的理解,还好的自己对与系统管理这类的东西自己很久以前就想过,所以自己在学习的时候基本上还是按着自己的思路来,现在问题是这些东西的下边,到底是怎么完成的,这就不知道了,看来等以后又时间了还是要看看源码的,只有真正的明白了他是怎么实现的才能更好的进行系统编程。

根据我的理解,所谓进程就是一个资源的集合,它自己的代码段、数据段,堆区、栈区、BSS,这些资源在以前的单任务系统中,就是一台计算机,在以前的单任务计算机中,计算机的内存分配就是按照来分配的,但那是的资源分配没有现在这么的细致,要粗略很多。由此可见,当每个进程有了自己对立的资源集合的时候,就可以互不干扰的完成自己的任务,当很多进程同时运行的时候,就需要相互之间进行一些数据的交换,后者进程信号的同步,以更好的协同完成一项复杂的任务,那么这时候就需要进行进程间的通信了,必然要用到无名管道、有名管道、信号、消息队列,同时,对于有限的资源,有时候不能让两个任务同事去修改它,那这时候就要用到互斥锁、信号量的概念了,尽管如此,进程还有个很大的缺点就是数据之间的共享比较麻烦,不太方便。这时候人们就可虑用线程,在linux中,进程和线程的概念远没有windows中区分的那么明显,在linux中,线程就是一个轻量级的进程,但它没哟自己的资源集合,和自己的共享自己所属的进程的资源,正因为线程是共享自己的所属进程的资源,所以更子线程之间的数据交换是非常的方便的,用我们平常使用的全局变量就能很方便的完成数据的交换。

通过上边的叙述,可能会有一个错误的认识,那就是线程比进程用起来更加的方便,实际情况不是这样的,如果需要在本进程中调用一个可执行程序、或者一个外的shell脚本,这时候线程就能完成了,因为调用的时候需要开启新的资源集合,而线程是和所属进程共享资源集合的,显然他没有自己的资源集合,更不可能给别的外部程序开启资源集合了,那就需要使用进程,fork()函数可以是子进程有自己的资源集合。

阅读(348) | 评论(0) | 转发(0) |

0
上一篇:unix中,程序的的空间分配

下一篇:2410GPIO输出4路频率

相关热门文章

武汉牌九透视眼镜 骰子...

曼联登世界之巅!死忠珠峰 沙...

人生没有那么简单

多個臉部美白的方式

初入職場如何合適提薪水?...

linux 常见服务端口

什么是shell

linux socket的bug??

linux的线程是否受到了保护?...

一个适用于windows和linux的抓...

debian7系统与ATI X2300显卡...

ubuntu sysklogd之配置文件介...

自己用的ubuntu环境搭建(一)...

linux 学习心得

用户输入操作和数据的显示...

给主人留下些什么吧!~~

评论热议
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: