操作系统学习第一天,进程与线程

本文详细解释了进程的概念,它是运行中的程序实例,以及线程作为程序执行最小单位的角色。讨论了单核和多核CPU下并发与并行的区别,涉及进程间通信和线程的五种状态。
摘要由CSDN通过智能技术生成

进程

        计算机硬盘中存放着许多程序,如音乐播放器、游戏、浏览器等等。程序是静态的,本身是不会执行的,而当一个程序需要执行时,程序就会被CPU加载到内存中执行,变成一个进程。比如,当我打开音乐播放器时,硬盘中存放音乐播放器的代码就会被传输到内存中执行,后台就会多了一个进程。所以进程就是正在运行的程序的实例。进程也是操作系统进行调度和资源分配的基本单位。

        CPU可以调用多个程序加载到内存中运行,这意味着在内存中可以同时存在多个进程,对于每一个进程,在其内部都有独立的内存空间。进程大部分时间都是在内部访问,而进程之间的通信就需要进程间通信(IPC)。每个进程会认为自己是独占内存的,所以不需要关心其他进程的位置。每个进程通常有一个程序计数器,来记录当前程序执行到哪里了,一个执行流就是一个线程,如果有多个执行流那么就会有多个线程。

线程

        线程是程序执行的最小单位。线程是存在于进程中的,一个进程可以有多个线程,每个线程共享所属进程的资源,不同的线程在同一进程中会共享地址空间和全局变量等等。

        线程状态有5个阶段:新建状态(new)、就绪状态(runnable)、运行状态(running)、阻塞状态(blocked)、死亡状态(dead)。

        新建状态(new):当线程被创建时,此时在新建状态。

        就绪状态(runnable):当线程准备完毕,等待CPU的到来时,此时为就绪状态。

        运行状态(running):当CPU服务于当前线程时,此时为运行状态。

        阻塞状态(blocked):例如,当线程向内存中发送请求,等待回复时,为避免CPU空转,CPU此时会转头执行其他线程,此时为阻塞状态,当再次准备完毕后,会进入就绪状态。

        死亡状态(dead):当退出run()方法时,线程就会自然死亡,处于终止或死亡状态,也就结束了生命周期。

并发与并行

        以单核CPU为例,此时在一个进程中有多个线程需要执行,但是此时只有一个CPU可用,那么CPU会通过时间片轮转的方式不停的上下文切换,也就是在多个线程之间不断的来回提供资源,由于切换的时间非常快速,所以多个线程看起来像是在同时执行,这就叫做并发。

        以多核CPU为例,假设一个CPU有6个内核,那么这6个内核可以同时执行6个线程,可以真正的让多个线程同时执行,而不是看起来像在同时执行

        在实际运行中,往往线程的数量会远大于CPU数量,那么此时CPU会在内核中为线程提供各自的虚拟CPU,每个线程会认为自己是独占CPU。

  • 5
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值