进程、线程、以及它们之间的区别与联系

本文深入探讨了进程和线程的概念,从进程的动态特性、并发特征、进程控制块等方面阐述了进程的定义与类型。线程作为程序执行的最小单元,具有轻量级、并发执行、共享进程资源等特点。同时,文章对比了进程与线程的联系和区别,指出线程能提高并发执行效率,但线程间的资源竞争和同步增加了复杂性。
摘要由CSDN通过智能技术生成

进程、线程、以及它们之间的区别与联系

一、进程简介

1.1 进程概念的引入

计算机中,CPU是最宝贵的资源,为了提高CPU的利用率,引入了多道程序设计的概念。当内存中多个程序存在时,如果不对人们熟悉的“程序”的概念加以扩充,就无法刻画多个程序共同运行时系统呈现出的特征。

多道程序设计:是指允许多个作业(程序)同时进入计算机系统的内存并启动交替计算的方法。

也就是说,内存中多个相互独立的程序均处于开始和结束之间。

从宏观上看是并行的,多道程序都处于运行过程中,但尚未运行结束;

从微观角度上看是串行的,各道程序轮流的占用CPU交替的执行。

引入多道程序设计技术可以提高CPU的利用率,充分发挥计算机硬部件的并行性。

多道程序系统中,程序具有:并行、制约以及动态的特征。程序概念难以便是和反映系统中的情况,所以引入了进程这一概念。

1.2 程序是什么

说起进程,就不得不说下程序。先看定义:程序是指令和数据的有序集合,其本身没有任何运行的含义,是一个静态的概念。系统实际上是出于不断变化的状态中,程序不能反映这种动态性。

而进程则是在处理机上的一次执行过程,它是一个动态的概念。这个不难理解,其实进程是包含程序的,进程的执行离不开程序,进程中的文本区域就是代码区,也就是程序。

1.3 进程是什么

1.3.1 进程的概念

进程的定义: 进程是据有独立功能的程序在某个数据集合上的一次运行活动,也是操作系统进行资源分配和保护的基本单位。

在早期面向进程设计的计算机结构中,进程是程序的基本执行实体;在当代面向线程设计的计算机结构中,进程是线程的容器。程序是指令、数据及其组织形式的描述,进程是程序的实体。

从原理角度上看:进程是支持程序执行的一种系统机制,它对处理器上运行程序的活动规律进行抽象。

从实现角度看:进程是一种数据结构,用来准确的刻画运行程序的状态和系统动态变化状况。

简单的来讲进程的概念主要有两点第一,进程是一个实体。每一个进程都有它自己的地址空间,一般情况下,包括文本区域(text region)、数据区域(data region)和堆栈(stack region)。文本区域存储处理器执行的代码;数据区域存储变量和进程执行期间使用的动态分配的内存;堆栈区域存储着活动过程调用的指令和本地变量。第二,进程是一个 “执行中的程序”。程序是一个没有生命的实体,只有处理器赋予程序生命时,它才能成为一个活动的实体,我们称其为进程。

1.3.2 进程的类型

  • 系统进程:操作系统用来管理资源的进程,当系统进程处于运行态时,CPU处于管态,系统之间的关系由操作系统负责。
  • 用户进程:操作系统可以独立执行的的用户程序段,当用户进程处于运行态时,CPU处于目态,用户进程之间的关系由用户负责。

1.3.3 进程控制块

  • 进程的三个组成部分

a. 程序

b. 数据

c. 进程控制块(PCB):为了管理和控制进程,系统在创建每个进程时,都为其开辟一个专用的存储区,用以记录它在系统中的动态特性。系统根据存储区的信息对进程实施控制管理。进程任务完成后,系统收回该存储区,进程随之消亡,这一存储区就是进程控制块

PCB随着进程的创建而建立,撤销而消亡。系统根据PCB感知一个进程的存在,PCB是进程存在的唯一物理标识(这一点可以类比作业控制块JCB)

  • 进程控制块的内容

PCB在不同的语言中,可能用不同的数据结构表示。为了系统管理和控

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值