进程,线程

1.进程

什么是进程?

程序是存储在物理介质上的一组指令集合,当这些指令被读入内存并执行时,这个正在执行的程序就是进程。进程是对正在运行程序的抽象。作为操作系统进行资源分配的单位,进程可以申请资源和拥有系统资源,它是一个活动的实体。因此进程不只是程序代码,还包括当前活动。这些活动是通过给定进程状态的所有相关信息来定义的,这些状态信息包括程序计数器、内存基地址、CPU寄存器的内容等,它们将被操作系统存储到一个数据结构或结构体内。

进程的特征

  • 动态性
    进程的本质是程序的一次执行过程,进程是动态产生,动态消亡的,这也是进程与程序的一个区别,程序可以作为一种软件资料被长期存储的,而进程是有一定生命周期的。

  • 并发性
    即任何进程都可与其他进程一起并发执行

  • 独立性
    进程是一个能独立运行的基本单位,同时也是系统分配资源和调度的独立单位。

  • 异步性
    由于进程间的相互制约,导致进程具有执行的间断性,因此进程间都将按照其各自独立的、不可预知的方式来执行。

进程的具体描述

处理器上的程序是由操作指令和数据两部分构成的,也就是说,正在执行的程序其实是由操作指令和数据两部分实现的,于是操作指令和数据也就组成了进程的实体。然而,操作指令和数据都是静态的,它们在程序编码时就已经被固化,并不能满足程序在执行过程中的动态变化,所以进程需要一个数据结构来描述其当前的状态、自身特性,以及对资源的占用情况和调度信息等,这个数据结构被称为进程控制块(Process Control Block,PCB)。因此,一个进程是由进程控制块、程序段、数据段三部分组成的。

进程在内存中的形态

函数在内存中是使用活动记录及活动记录栈来描述函数和跟踪函数的,当函数换成进程时,也有类似的东西来描述内存中的进程。
程序在执行时需要包含一个或多个堆栈,以跟踪过程调用和参数传递的消息。进程在内存中的活动是用进程上下文(Process Context)来描述的(因此多个进程间的交替运行才被称作上下文切换)。在操作系统中,进程上下文是由用户级上下文、系统上下文和寄存器上下文三部分构成的。进程上下文的准确定义——操作系统中进程物理试题(即程序段和数据段)和支持进程运行的环境合称为进程上下文。

2.线程

线程产生的原因
由于对程序的并发行的要求,如果使用进程来进行并发程序设计,首先,进程的时空开销很大,如果以进程为单位进行上下文切换,由于每个进程都需要重新分配存储空间,所以频繁的切换就会导致消耗大量的处理器时间,同时也限制了系统中并发进程的总数。另外,由于每次通信均需要在进程之间或者进程与操作系统之间进行大量的信息传递,这样大量而频繁的进程间通信和切换严重影响了并行的程度,无法满足高速计算机的实时性要求。这时,计算机大佬们开始考虑将进程的两个属性(资源拥有者和调度单位)进行拆分,然后在赋予不同的实体,于是便产生了线程(thread)的概念。线程出现后,进程将仅仅是一种资源的拥有者,实际的处理器调度和运行单位则是线程。

什么是线程

线程是进程内的一个执行单位,是被系统独立调度和分派的基本单位。线程本身不拥有系统资源,只拥有在运行中必不可少的一点资源,但它可与同属于一个进程的其他线程共享进程所拥有的全部资源。从结构上看,线程由线程ID、程序计数器、寄存器集合及堆栈组成(是不是很像进程的结构)。一个线程会与同属于一个进程的其他线程共享进程代码段、数据段和其他操作系统资源。一个线程可以创建和撤销另外一个线程,同一进程中的多个线程之间可以并发执行。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值