返回信息流背景:
非计算机专业,没有系统性学习过操作系统这门课程,对线程、进程、多核多线程理解不清[em9]
问题:
希望通过串口通信的例子来了解与multithreading、multiprocessing、中断、甚至并行计算的概念
这是一条镜像帖。来源:北邮人论坛 / cpp / #90876同步于 2016/4/2
该镜像源已超过 30 天没有更新,可能在源站已被删除。
CPP机器人发帖
[问题]关于并行,线程以及进程,求解答
yo1995
2016/4/2镜像同步23 回复
订阅后,新回复会通过你的通知中心匿名送达。
9 条回复
实际上串口的底层是有一个具有独立的收/发 buffer 的串口收发器,CPU 不会事无具细的控制串口收发的所有事情。
下图是一个单片机的原理图。
http://microcontroller.com/news/images/1/arm_cortex_stm_block.jpg
PC 机和这种单片机一样,不仅仅有 CPU。
建议露珠把自己当成是计算机专业的学生来学习相关知识
计算机组成原理 微机原理 都会讲到硬件底层知识 从冯诺依曼架构开始讲解各个计算机部件 还记得一开始会讲加法器,减法器,乘法器的逻辑电路,后面是cpu的内部构成ALU等,CPU工作过程,时钟,中断机制, 中断管理器CMU,等等
然后,再去看操作系统,你会对文件系统,设备管理,用户管理,线程进程管理等等
能够对多任务操作系统熟悉,对线程和进程有了解,如果允许,你可以上网去看视频,跟着别人仿写简单的操作系统,并不一定最后要写出来,坚持下来走个过程也是收获很大的
上面两本书基本能够解决露珠的大部分疑惑,然后再看的时候可以同时看看编译原理,这个会告诉你,怎么把自然语言变成机器语言的
这几本书再加上数据库,应该就是计算机专业的基础书籍了吧,嗯还有语言和算法
这些东西如果不自己看书去理解,仅仅靠别人一言两语是很难完全理解懂得的
比如中断有中断号中断向量表,去处理中断的时候,进程间切换,进程怎么由就绪态转换为运行态的?程序的数据又怎么拷贝到内存的?被中断的进程的数据暂存到哪里?用什么保存当前进程运行信息?内存是怎么管理,什么是分页,分段机制,为啥有的电脑三级缓存2M,有的好点的是8M,再贵点的32+M?
……
记得之前暖神写过一个讲程序运行整个过程相关的帖子,忘了在哪个版python 还是java
大晚上睡不着不知道写了个啥,有误的话请大神们轻喷,还有,精华区有之前学长推荐的计算机学习路线建议
【 在 yo1995 的大作中提到: 】
: 背景:
: 非计算机专业,没有系统性学习过操作系统这门课程,对线程、进程、多核多线程理解不清
: 问题:
: ...................
底层的收发实际上由硬件完成的啊,软件只负责发送命令就行了啊,写的时候只要告诉底层的串口控制器buffer里面取数据发送出去,读的时候通过中断告诉CPU来取,CPU不用控制具体的数据传输。换句话说同时收发并不是上层软件控制的,而是底层的串口控制器实现的。