`
jiagou
  • 浏览: 2533222 次
文章分类
社区版块
存档分类
最新评论

进程、线程、并发执行的概念

 
阅读更多

关于进程、线程、并发执行的概念,我们先来看下面的一段话:

“一般来说,当运行一个应用程序的时候,就启动了一个进程,当然有些会启动多个进程。启动进程的时候,操作系统会为进程分配资源,其中最主要的资源是内存空间,因为程序是在内存中运行的。

进程中,有些程序流程块是可以乱序执行的,并且这个代码块可以同时被多次执行。实际上,这样的代码块就是线程体。线程是进程中乱序执行的代码流程。当多个线程同时运行的时候,这样的执行模式成为并发执行。”



下面我以一个日常生活中简单的例子来说明进程和线程之间的区别和联系:





这副图是一个双向多车道的道路图,假如我们把整条道路看成是一个“进程”的话,那么图中由白色虚线分隔开来的各个车道就是进程中的各个“线程”了。

①这些线程(车道)共享了进程(道路)的公共资源(土地资源)。

②这些线程(车道)必须依赖于进程(道路),也就是说,线程不能脱离于进程而存在(就像离开了道路,车道也就没有意义了)。

③这些线程(车道)之间可以并发执行(各个车道你走你的,我走我的),也可以互相同步(某些车道在交通灯亮时禁止继续前行或转弯,必须等待其它车道的车辆通行完毕)。

④这些线程(车道)之间依靠代码逻辑(交通灯)来控制运行,一旦代码逻辑控制有误(死锁,多个线程同时竞争唯一资源),那么线程将陷入混乱,无序之中。

⑤这些线程(车道)之间谁先运行是未知的,只有在线程刚好被分配到CPU时间片(交通灯变化)的那一刻才能知道

进程五状态:

在五状态进程模型中,进程状态被分成下列五种状态。进程在运行过程中主要是在就绪、运行和阻塞三种状态间进行转换。创建状态和退出状态描述进程创建的过程和进程退出的过程。

1)运行状态(Running):进程占用处理器资源;处于此状态的进程的数目小于等于处理器的数目。在没有其他进程可以执行时(如所有进程都在阻塞状态),通常会自动执行系统的空闲进程。

2)就绪状态(Ready):进程已获得除处理器外的所需资源,等待分配处理器资源;只要分配了处理器进程就可执行。就绪进程可以按多个优先级来划分队列。例如,当一个进程由于时间片用完而进入就绪状态时,排人低优先级队列;当进程由I/O操作完成而进入就绪状态时,排入高优先级队列。

3)阻塞状态(Blocked):当进程由于等待I/O操作或进程同步等条件而暂停运行时,它处于阻塞状态。

4)创建状态(New):进程正在创建过程中,还不能运行。操作系统在创建状态要进行的工作包括分配和建立进程控制块表项、建立资源表格(如打开文件表)并分配资源、加载程序并建立地址空间表等。

5)退出状态(Exit):进程已结束运行,回收除进程控制块之外的其他资源,并让其他进程从进程控制块中收集有关信息(如记帐和将退出代码传递给父进程)。

分享到:
评论

相关推荐

    操作系统实验一 进程控制

    加深对于进程并发执行概念的理解。实践并发进/线程的创建和控制方法。观察和体验进程的动态特性。进一步理解进程生命期期间创建、变换、撤销状态变换的过程。掌握进程控制的方法,了解父子进程间的控制和协作关系。...

    进程与线程 进程与线程

    为了描述程序在并发执行时对系统资源的共享,我们需要一个描述程序执行时动态特征的概念,这就是进程。在本章中,我们将讨论进程概念、进程控制和进程间关糸.

    操作形同实验——进程同步和互斥

    操作形同实验——进程同步和互斥 (1) 通过编写程序实现进程同步和...(2) 了解Windows2000/XP中多线程的并发执行机制,线程间的同步和互斥。 (3) 学习使用Windows2000/XP中基本的同步对象,掌握相应的API函数。

    2进程和线程.xmind

    程序并发执行 间断性 失去封闭性 不可再现性 进程的组织 【进程是一个独立的运行单位, 是OS进行资源分配和调度的基本单位】 进程映像(进程实体) 【静态的】 PCB【进程存在的唯一标志】 进程的管理者...

    92道Java多线程与并发面试题含答案(很全)

    一个进程可以有一个或多个线程,每个线程都执行其自己的任务。 进程(Process):进程是操作系统分配资源(如内存)和调度的单位。一个进程可以包含多个线程,这些线程共享进程的资源。 并发与并行:并发是指多个...

    C++11的多线程并发编程(一)

    学习多线程并发编程首先一定得熟悉并发相关概念,其中包括可执行程序,进程,线程,C++11。 了解基础概念 可执行程序 当在windows系统下,鼠标双击某后缀名.exe软件时,通过后台查看,运行的.exe即为可执行程序;而...

    进程、线程概念回顾1

    (1) 动态性:进程的实质是程序的一次执行过程,有一定的生命期 (2) 并发性:指多个进程实体同存于内存中,能在一段时间内同时运行 (3) 独立性:进程是一个能

    区分python中的进程与线程

    今天整理的文章是给大家梳理Python的进程与线程的区别,没什么代码,希望大家能清楚知道他们的区别,什么情况用线程,什么情况用进程做到...线程是进程中执行运算的最小单位,是进程中的一个实体,是被系统独立调度和分

    Java线程详解.ppt

    正因为进程拥有资源,所以在并发执行进程的时候, 在创建、撤销和切换,系统需要付出较大的开销,因此,系统中设置的进程不能太多, 进程切换的频率也不能过高,这就限制了并发程度的提高。 为了解决这一问题,于是...

    详解C#多线程编程之进程与线程

     简单来说,进程是对资源的抽象,是资源的容器,在传统操作系统中,进程是资源分配的基本单位,而且是执行的基本单位,进程支持并发执行,因为每个进程有独立的数据,独立的堆栈空间。一个程序想要并发执行,开多个...

    Java程序设计案例教程-第8章-多线程编程.pptx

    一个线程可以创建和撤销另一个线程,同一进程中的多个线程之间可以并发执行。 第8页 Java程序设计案例教程-第8章-多线程编程全文共36页,当前为第8页。 Java中的线程 Java运行时系统在许多方面依赖于线程,并且所有...

    Python进程和线程

    多任务的概念1.1 多任务的执行方式1.1.1 并发1.1.2 并行1.2 总结2. 什么是进程3. 创建进程的常用方式3.1 使用multiprocessing创建进程3.2 使用Process子类创建进程3.3 使用进程池Pool创建进程4. 通过队列实现进程间...

    进程管理实验报告

    1、加深对进程概念的理解,明确进程和程序的区别。 2、进一步认识并发执行的实质。 3、分析进程竞争资源现象,学习解决进程互斥的方法。 4、了解Linux系统中进程通信的基本原理。

    操作系统概念归纳总结

    操作系统概念背诵 一、进程管理 1. 进程管理的功能 ① 进程控制 ② 进程同步 ③ 进程通信 ④ 进程(线程)调度 ...16. 引入线程的目的:是为了减少程序并发执行时的时空开销,使操作系统具有更好的并发性。

    操作系统实验二 进程通信机制的应用

    加深对于进程并发执行概念的理解。实践并发进/线程的创 建和控制方法。观察和体验进程的动态特性。进一步理解进程生命期期间创建、变换、撤销状态变换的过程。掌握进程控制的方法,了解父子进程间的控制和协作关系。...

    python进程和线程用法知识点总结

    为此,我们需要先讨论两个概念,一个叫进程,一个叫线程。 概念 进程就是操作系统中执行的一个程序,操作系统以进程为单位分配存储空间,每个进程都有自己的地址空间、数据栈以及其他用于跟踪进程执行的辅助数据,...

    简单理解linux下进程

    创建子进程才能多道程序并发执行,linux初始化的时候会创建swap进程、然后是init进程和一个init进程的兄弟进程,所有的进程(运行的程序)都是从父进程演化出去的,你可以看看proc里的东西,写个程序打印出各个进程...

    linux系统编程之线程.zip

    如果任意一个线程调用了exit或_exit,则整个进程的所有线程都终止,由于从main函数return也相当于调用exit,为了防止新创建的线程还没有得到执行就终止,我们在main函数return之前延时1秒,这只是一种权宜之计,即使...

    并发编程笔记20190526.docx

    1. 什么是进程和线程 3 2. CPU核心数和线程数的关系 3 3. 澄清并行和并发 5 4. 多线程程序需要注意事项 6 二、认识Java里的线程 7 1. Java程序天生就是多线程的 7 2. 线程的启动与中止 7 3. 对Java里的线程再多一...

    python中线程和进程有何区别

    引入进程和线程的概念及区别 threading模块提供的类:  Thread, Lock, Rlock, Condition, [Bounded]Semaphore, Event, Timer, local。 1.什么是进程 计算机程序只不过是磁盘中可执行的二进制(或其他类型)的数据。...

Global site tag (gtag.js) - Google Analytics