操作系统之进程(Processes)和线程(Threads)

要搞明白进程与线程的概念及两者区别,先要了解程序。

程序Program

A program is an executive file.
程序(如firefoc.exe)一个保存在磁盘中的可执行文件,包含代码或一组处理器指令。
程序是使用高级语言编写而成,但电脑只理解二进制代码,所以程序必须转换成二进制代码, 而这是编译器(compiler)的工作。
在这里插入图片描述

要执行一个程序,就先要将它加载到内存RAM(random access memory),还需要程序运行所需要的资源,比如寄存器、计数器、堆栈指针、堆、内存页等。这些资源是由操作系统管理的。
这是操作系统的工作。它会帮助将可执行程序加载到RAM并分配资源。程序就可以运行。

进程

在我们“碰”一个程序之前,他只是一个程序,但我们运行它之后,它就变成了进程。即,进程可以被认为是一个正在执行的程序。一个程序可以有多个进程。
每个进程都有自己独立的内存地址空间。这意味着当一个进程发生故障时,其他进程会继续运行。(Chrome是每一个tab都有自己的进程而闻名的。
在这里插入图片描述

线程

线程实际上是一个(正在执行的)进程的基本执行单元。 一个进程中至少有一个线程,称为主线程,往往有多个线程。而每个线程都有自己的资源,但他们共享内存地址空间,可以使用该共享内存空间在线程之间进行通信。但是一个行为不当的线程可能会导致整个进程中断。

在这里插入图片描述

操作系统如何在CPU上运行线程或进程?

通过上下文切换(context switch)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值