博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
遗忘的基础概念——并发、并行、进程、线程
阅读量:5076 次
发布时间:2019-06-12

本文共 1189 字,大约阅读时间需要 3 分钟。

---恢复内容开始---

1、并行与并发(parallelism and concurrency)

并行性和并发性是既相似又有区别的两个概念。

并行性是指两个或多个事件在同一时刻发生。而并发性是指两个或多个事件在同一时间间隔内发生。

 

在多道处理程序环境下,并发性是指在一段时间内宏观上有多个程序在同时执行,但在单处理机系统中,每一时刻却仅能

有一道程序执行,故微观上这些程序只能是分时地交替执行。例如,在1秒钟时间内,0~15ms程序A执行;15~30ms程序B执行;

30~45ms内程序C执行;45~60ms程序D执行,因此可以说,在1秒中时间间隔内,宏观上有四道程序在同时运行,但在微观上,

程序A,B,C,D在分时地交替执行。

 

2、进程与线程

引入进程

  在一个位引入进程的系统中,在属于同一个应用程序的计算程序和I/O程序之间只能是顺序执行,即只有在计算程序执行告一段落后,

才允许I/O程序执行;反之,在程序执行I/O操作时,计算程序也不能执行。但在为计算程序和I/O程序分别建立一个进程(Process)后,

这两个程序便可以并发执行。若对内存中的多个程序都分别建立一个进程,它们就可以并发执行,这样便能极大地提高系统资源利用率,增加

系统的吞吐量。

 

进程的定义

  为了使参与并发执行的每个程序(含数据)都能够独立地运行,在操作系统中必须为之配置一个专门的数据结构,称为进程控制块(Proscess Control Block,PCB)。

系统利用PCB来描述进程的基本情况和活动过程,进而控制和管理进程。这样,由程序段、相关数据段和PCB三部分便构成了进程实体。一般情况下,我们把进程实体

就简称为进程,例如,所谓创建进程,实质上就是创建进程实体的PCB;而撤销进程,实质上是撤销进程的PCB。

 

对于进程的定义,从不同的角度可以有不同的定义,其中较典型的定义有:

1、进程是程序的一次执行

2、进程是一个程序及数据在处理机上顺序执行时所发生的活动。

3、进程是具有独立功能的程序在一个数据集合上运行的过程,它是系统进行资源分配和调度的一个独立单位。

 

线程(Threads)

人们在设计多道程序OS时,引入了进程的概念,从而解决了在单处理机环境下程序并发执行问题。

后来人们又提出了比进程更小的基本单位——线程的概念,试图用它来提高程序并发执行的程度。

 

目前我的理解是:线程是比进程更小的运行单位,一个进程可以被划分为多个线程。在一个支持线程

的系统中,线程是处理器的调度对象。线程作为处理器的调度单位,相当于进程中的一个控制点。由于

进程是资源的分配单位,所以一个进程中的线程共享进程的资源。线程之间的通信要比进程之间的通信

方便。

 

 

 

 

 

 

 

 

 

 

 

---恢复内容结束---

转载于:https://www.cnblogs.com/ManOK/p/10896645.html

你可能感兴趣的文章
第一次冲刺
查看>>
基于范德蒙矩阵的Erasure code技术详解
查看>>
[NOI2018]屠龙勇士
查看>>
动态代理原理
查看>>
定时执行存储过程
查看>>
docker的Docklerfile
查看>>
如何学习嵌入式?嵌入式linux学习方法步骤?4412开发板带你入门
查看>>
moby&linuxkit最小化定制linux发行版
查看>>
【转载自JHBlogs的博客】postman接口自动化,环境变量的用法详解(附postman常用的方法)...
查看>>
一页纸涵盖所有Lua基础知识点
查看>>
IntelliJ IDEA Ultimate使用
查看>>
将Microsoft SQL Server 2000数据库转换成MySQL数据库
查看>>
mac sudo: /etc/sudoers is world writable
查看>>
关于分布式爬虫
查看>>
【bzoj4636】蒟蒻的数列 离散化+线段树
查看>>
学习进度条
查看>>
strupr和strlwr字符串函数的使用
查看>>
自定义view代码
查看>>
JS匿名函数以及arguments.callee的调用
查看>>
拉筋的正确方法
查看>>