OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 5726|回复: 11

可以解释一下线程和进程这两个概念么?

[复制链接]

7

主题

22

帖子

0

精华

初级会员

Rank: 2

积分
70
金钱
70
注册时间
2013-4-2
在线时间
0 小时
发表于 2013-6-20 20:13:31 | 显示全部楼层 |阅读模式
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

34

主题

805

帖子

4

精华

论坛大神

Rank: 7Rank: 7Rank: 7

积分
1865
金钱
1865
注册时间
2011-3-29
在线时间
140 小时
发表于 2013-6-20 21:09:41 | 显示全部楼层
业余程序玩家。
回复 支持 反对

使用道具 举报

7

主题

22

帖子

0

精华

初级会员

Rank: 2

积分
70
金钱
70
注册时间
2013-4-2
在线时间
0 小时
 楼主| 发表于 2013-6-20 21:25:03 | 显示全部楼层
回复【2楼】ofourme:
问百度,谢谢~
---------------------------------
这个。。。我当然看过,但是还是理解的比较模糊,所以才来提问。好理解的讲的太浅,讲得深的又涉及太多操作系统的知识,我搞硬件比较多现在试着开始接触软一些的东西
回复 支持 反对

使用道具 举报

13

主题

202

帖子

0

精华

高级会员

Rank: 4

积分
527
金钱
527
注册时间
2012-10-27
在线时间
65 小时
发表于 2013-6-20 22:14:54 | 显示全部楼层
回复【楼主位】76149437@qq.com:
---------------------------------
汇编学的咋样?这是基础
回复 支持 反对

使用道具 举报

34

主题

805

帖子

4

精华

论坛大神

Rank: 7Rank: 7Rank: 7

积分
1865
金钱
1865
注册时间
2011-3-29
在线时间
140 小时
发表于 2013-6-20 22:54:46 | 显示全部楼层
回复【3楼】76149437@qq.com:
---------------------------------

这个涉及到MMU、CPU的特权模式,这些都是特定硬件单元保证的,在非特权模式下运行的软件无法改变。不过其实stm32也有较简单的特权模式控制,你可以了解一下。
单片机上的OS一般都是线程,没有独立的地址空间,也就没有进程的概念了。
业余程序玩家。
回复 支持 反对

使用道具 举报

7

主题

22

帖子

0

精华

初级会员

Rank: 2

积分
70
金钱
70
注册时间
2013-4-2
在线时间
0 小时
 楼主| 发表于 2013-6-21 09:05:05 | 显示全部楼层
回复【4楼】arm51avr:
---------------------------------
没正经学过
回复 支持 反对

使用道具 举报

7

主题

22

帖子

0

精华

初级会员

Rank: 2

积分
70
金钱
70
注册时间
2013-4-2
在线时间
0 小时
 楼主| 发表于 2013-6-21 09:06:51 | 显示全部楼层
回复【5楼】ofourme:
---------------------------------
UCOS系统中所谓的任务,应该属于线程了?独立的地址空间是怎么个独立法?任务有自己的任务栈这算独立么?
回复 支持 反对

使用道具 举报

34

主题

805

帖子

4

精华

论坛大神

Rank: 7Rank: 7Rank: 7

积分
1865
金钱
1865
注册时间
2011-3-29
在线时间
140 小时
发表于 2013-6-21 09:21:21 | 显示全部楼层
已经给你提示了。先去了解mpu,mmu是怎么回事吧。
业余程序玩家。
回复 支持 反对

使用道具 举报

69

主题

216

帖子

0

精华

高级会员

Rank: 4

积分
514
金钱
514
注册时间
2012-3-21
在线时间
0 小时
发表于 2013-6-21 10:37:16 | 显示全部楼层
楼主,我来告诉你。以Linux为例,你用vim写一个Hello.c的程序如下:
#include <stdio.h>
int main()
{
  printf("Hello World !\n");
  return 0;
}

  然后你编译:
$ gcc -Wall Hello.c -o Hello
  并运行:
$ ./Hello

  这时会在终端打印出 Hello World !
  这个Hello文件,即经过编译、汇编、链接后的可执行的二进制文件,在操作系统中运行的过程就是一个进程来完成。也就是说当你敲入 ./Hello 后,OS就出现了一个叫进程的东西,这个叫作进程的里面有数据段、有代码段、有堆栈段、还有PCB(每个进程都有的一个东东,存储了进程相关的标识)。接着当终端打印出  Hello World !后,这个进程就退出了。那些各种段,还有PCB一并消失。这就是一个进程的完整周期,当然,进程的整个生命周期比我说的复杂的多。
  现在你知道什么叫进程了吧?操作系统处理的任何任务都由进程完成,记住是任何任务!无论,你是用播放器欣赏日本爱情动作片,还是用微信勾搭妹子,你对PC的操作都被操作系统转化为进程来完成。进程有很多状态,有僵尸进程、内核空间进程、后台进程,这些你现在不需要知道。

  总结下,你的老板让你做一个项目,它(修饰老板就用“它”,不用“他”)给你有很多资料、工具、经费让你去做项目,这些资料工具经费都归你管,别人不能用。你完成项目的过程就是一个进程。现在问题来了,你一个人做项目是不是太困难了,你需要一个帮手,然后你招了两个小弟,小弟们也和你做同样的项目,只不过他们完成该项目中的一小部分,当然了这些小弟和你共享那些资料、工具、经费。好了,小弟执行任务的过程就叫做--线程。那些资料工具经费叫做--共享资源。
  现在你知道进程和线程的区别了吧。但,这只是皮毛。你有没有想过,为什么要找小弟呀?你项目做不完时把资料工具经费丢给另一个人,让他接着你的做,不就行了?你想过工作的交接有多复杂吗,TNND,交接你工作的人从来不会说你的好,他肯定背地里说你留了一个烂摊子...这种纠结的过程叫做--进程切换。正如人事交接的复杂性,计算机对进程的切换是非常耗费资源的。所以,才有了线程的必要性。
  嵌入式系统中,一般都是用线程解决问题,你知道为什么了吧!

  S:mmu和进程、线程关系不大。
   还有,打了那么多字,把我累的,给个好评的...
回复 支持 反对

使用道具 举报

69

主题

216

帖子

0

精华

高级会员

Rank: 4

积分
514
金钱
514
注册时间
2012-3-21
在线时间
0 小时
发表于 2013-6-21 10:43:15 | 显示全部楼层
另外,楼主,我想说的是,想搞软件,又不想学操作系统,就好比你对你女朋友说:我想和你谈恋爱,但不想和你结婚!那是不可能的。老老实实把操作系统学好
回复 支持 反对

使用道具 举报

7

主题

22

帖子

0

精华

初级会员

Rank: 2

积分
70
金钱
70
注册时间
2013-4-2
在线时间
0 小时
 楼主| 发表于 2013-6-21 11:02:46 | 显示全部楼层
回复【8楼】ofourme:
---------------------------------
好的 谢谢
回复 支持 反对

使用道具 举报

7

主题

22

帖子

0

精华

初级会员

Rank: 2

积分
70
金钱
70
注册时间
2013-4-2
在线时间
0 小时
 楼主| 发表于 2013-6-21 11:08:26 | 显示全部楼层
回复【10楼】servent:
---------------------------------
您写的很不错,也很幽默。这个问题我差不多有了一个基本的概念,深入的话还要补充更多知识,谢谢你
回复 支持 反对

使用道具 举报

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

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2025-7-18 14:44

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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