进程控制块

Linux之进程概念

感情迁移 提交于 2019-12-01 06:56:34
 1.什么是进程   通俗来说,进程就是运行中的程序     从操作系统角度来说, 进程就是操作系统对进程的描述信息。   这个能 具象化进程 的描述信息叫 进程控制块PCB ,Linux下这个描述结构叫 struct task_struct    进程是程序的基本执行实体,也是系统进行资源的分配和调度的基本单位。 2.进程包含的主要信息   操作系统能通过task_struct运行程序,是因为task_struct里面包含:   内存指针,标识符pid ,文件状态信息,进程状态 ,上下文数据,程序计数器, 进程优先级 ...   内存指针: 程序和数据运行起来后被加载到内存中的位置   标识符pid: 唯一标识系统中的各个进程   上下文数据: 进程执行时的状态和资源   程序计数器: 保存程序切换时的位置     3.进程的状态   运行 : 占有CPU,并在CPU上运行   就绪: 已经具备运行条件,但由于没有空闲CPU,而暂时不能运行   阻塞: 因等待某一事件而暂时不能运行     4.特殊状态的进程    1.僵尸进程: 处于僵尸状态的进程   僵尸进程如何产生?有什么危害?如何避免?   子进程先于父进程退出,为了保存退出原因,因此子程序资源不会被完全释放,操作系统检验到子进程退出,这时候通知父进程,这时候父进程可以获取子进程退出原因,允许操作系统释放资源

1-1 进程理论

若如初见. 提交于 2019-12-01 06:41:57
一 什么是进程 进程:正在进行的一个过程或者说一个任务。而负责执行任务则是cpu。 二 进程与程序的区别 程序仅仅只是一堆代码而已,而进程指的是程序的运行过程。 举例: 想象一位有一手好厨艺的计算机科学家egon正在为他的女儿元昊烘制生日蛋糕。 他有做生日蛋糕的食谱, 厨房里有所需的原料:面粉、鸡蛋、韭菜,蒜泥等。 在这个比喻中: 做蛋糕的食谱就是程序 (即用适当形式描述的算法) 计算机科学家就是处理器(cpu) 而做蛋糕的各种原料就是输入数据 。 进程就是厨师阅读食谱、取来各种原料以及烘制蛋糕等一系列动作的总和 。 现在假设计算机科学家egon的儿子alex哭着跑了进来,说:Hey, Dad, my head got stung by a bee. 科学家egon想了想,处理儿子alex蛰伤的任务比给女儿元昊做蛋糕的任务更重要,于是 计算机科学家就记录下他照着食谱做到哪儿了(保存进程的当前状态),然后拿出一本急救手册,按照其中的指示处理蛰伤。这里,我们看到处理机从一个进程(做蛋糕)切换到另一个高优先级的进程(实施医疗救治),每个进程拥有各自的程序(食谱和急救手册)。当蜜蜂蛰伤处理完之后,这位计算机科学家又回来做蛋糕,从他 离开时的那一步继续做下去。 需要强调的是:同一个程序执行两次,那也是两个进程,比如打开暴风影音,虽然都是同一个软件,但是一个可以播放苍井空,一个可以播放饭岛爱。

进程上下文与中断上下文

对着背影说爱祢 提交于 2019-12-01 06:39:45
进程上下文与中断上下文 https://www.cnblogs.com/alantu2018/p/8461094.html 有进程上下文切换 也有 模式切换 不通的切换的损耗是不一样的 上下文切换时 堆栈信息 寄存器信息 用户信息都得切换 其实代价还是很高的. 1、前言   最近在学习linux内核方面的知识,经常会看到用户空间与内核空间及进程上下文与中断上下文。看着很熟悉,半天又说不出到底是怎么回事,有什么区别。看书过程经常被感觉欺骗,似懂非懂的感觉,很是不爽,今天好好结合书和网上的资料总结一下,加深理解。 2、用户空间与内核空间      我们知道现在操作系统都是采用虚拟存储器,那么对32位操作系统而言,它的寻址空间(虚拟存储空间)为4G(2的32次方)。操心系统的核心是内核,独立于普通的应用程序,可以访问受保护的内存空间,也有访问底层硬件设备的所有权限。为了保证用户进程不能直接操作内核,保证内核的安全,操心系统将虚拟空间划分为两部分,一部分为内核空间,一部分为用户空间。针对linux操作系统而言,将最高的1G字节(从虚拟地址0xC0000000到0xFFFFFFFF),供内核使用,称为内核空间,而将较低的3G字节(从虚拟地址0x00000000到0xBFFFFFFF),供各个进程使用,称为用户空间。每个进程可以通过系统调用进入内核,因此,Linux内核由系统内的所有进程共享

进程 线程

两盒软妹~` 提交于 2019-11-30 09:24:56
进程:系统分配资源的最小单位。 线程:程序执行的最小单位。 联系:一个进程由一个或多个线程组成,线程是一个进程中代码的不同执行路线。进程=线程1+线程2+…… 进程: 1.进程是一个具有一定独立功能的程序在一个数据集上的一次动态执行的过程,是操作系统进行资源分配和调度的一个独立单位,是应用程序运行的载体。 2.进程是一种抽象的概念,从来没有统一的标准定义。进程一般由程序,数据集合和进程控制块三部分组成。 3.程序用于描述进程要完成的功能,是控制进程执行的指令集;数据集合是程序在执行时所需要的数据和工作区;程序控制块包含进程的描述信息和控制信息是进程存在的唯一标志 4.进程具有的特征: 动态性:进程是程序的一次执行过程,是临时的,有生命期的,是动态产生,动态消亡的; 并发性:任何进程都可以同其他进行一起并发执行; 独立性:进程是系统进行资源分配和调度的一个独立单位; 结构性:进程由程序,数据和进程控制块三部分组成 线程: 1.线程是程序执行中一个单一的顺序控制流程,是程序执行流的最小单元,是处理器调度和分派的基本单位。 2.一个进程可以有一个或多个线程,各个线程之间共享程序的内存空间(也就是所在进程的内存空间)。 3.一个标准的线程由线程ID,当前指令指针PC,寄存器和堆栈组 成。而进程由内存空间(代码,数据,进程空间,打开的文件)和一个或多个线程组成。   进程与线程的区别 1.

基于进程的并发

笑着哭i 提交于 2019-11-30 07:44:41
基于进程的并发 一、什么是进程 进程指的是应用的执行实例,比如,双击桌面上的Internet浏览器图标就会开启一个运行该浏览器的进程。 二、进程与程序的区别 程序仅仅只是一堆代码而已,而进程指的是程序的运行过程。 进程一般由程序、数据集、进程控制块三部分组成。 举个例子:一位厨师正在做蛋糕,他有做蛋糕的食谱和所需的原料,做到一半的时候这位厨师的儿子玩耍受伤了,于是这位厨师放下手头工作并记录他按照食谱做到哪儿了(保存进程的当前状态),然后拿出一本急救手册,按照其中的指示处理伤口。当伤口处理完之后,这位厨师又回来做蛋糕,从他离开时的那一步继续做下去。 在这个例子中:做蛋糕的食谱相当于程序,厨师就是处理器cpu,而做蛋糕的所需原料就是数据集,进程就是厨师阅读食谱、取来各种原料以及烘制蛋糕等一系列动作的总和。 三、并发与并行 无论是并行还是并发,在用户看来都是同时运行的,不管是进程还是线程,都只是一个任务而已,真是干活的是cpu,cpu来做这些任务,而一个cpu同一时刻只能执行一个任务。 并发是指系统具有处理多个任务(动作)的能力,是伪并行,即看起来是用时运行。单个cpu+多道技术就可以实现并发,其实并行也属于并发。 并行是指系统具有同时处理多个任务(动作)的能力,是同时运行,只有具备多个cpu才能实现并行。 单核下,可以利用多道技术。多个核中的每个核也都可以利用多道技术。 有四个核

python之路——进程

情到浓时终转凉″ 提交于 2019-11-30 07:35:22
python之路——进程 阅读目录 理论知识 操作系统背景知识 什么是进程 进程调度 进程的并发与并行 同步\异步\阻塞\非阻塞 进程的创建与结束 在python程序中的进程操作 multiprocess模块 进程的创建和multiprocess.Process 进程同步控制 —— 锁 进程间通信 —— 队列 进程间的数据共享 —— multiprocess.Manager] 进程池和multiprocess.Pool 理论知识 操作系统背景知识 顾名思义,进程即正在执行的一个过程。进程是对正在运行程序的一个抽象。 进程的概念起源于操作系统,是操作系统最核心的概念,也是操作系统提供的最古老也是最重要的抽象概念之一。操作系统的其他所有内容都是围绕进程的概念展开的。 所以想要真正了解进程,必须事先了解操作系统,点击进入 PS:即使可以利用的cpu只有一个(早期的计算机确实如此),也能保证支持(伪)并发的能力。将一个单独的cpu变成多个虚拟的cpu(多道技术:时间多路复用和空间多路复用+硬件上支持隔离),没有进程的抽象,现代计算机将不复存在。 必备的理论基础: #一 操作系统的作用: 1:隐藏丑陋复杂的硬件接口,提供良好的抽象接口 2:管理、调度进程,并且将多个进程对硬件的竞争变得有序 #二 多道技术: 1.产生背景:针对单核,实现并发 ps: 现在的主机一般是多核

进程和线程的区别

瘦欲@ 提交于 2019-11-30 03:05:35
原文链接: 进程、线程与处理器的调度 (1)进程的概念(Dijkstra) 进程 是可并发执行的程序在某个数据集合上的一次计算活动,也是操作系统进行资源分配和调度的基本单位。 (2)进程与程序的联系与区别 ① 程序是指令的有序集合,其本身没有任何运行的含义,是一个静态的概念。而进程是程序在处理机上的一次执行过程,它是一个动态的概念。 ② 程序可以作为一种软件资料长期存在,而进程是有一定生命期的。程序是永久的,进程是暂时的。 注:程序可看作一个菜谱,而进程则是按照菜谱进行烹调的过程。 ③ 进程和程序组成不同:进程是由程序、数据和进程控制块三部分组成的。 ④ 进程与程序的对应关系:通过多次执行,一个程序可对应多个进程;通过调用关系,一个进程可包括多个程序。 (3)进程的特征 动态性:进程是程序的执行,同时进程有生命周期。 并发性:多个进程可同存于内存中,能在一段时间内同时执行。 独立性:资源分配和调度的基本单位。 制约性:并发进程间存在制约关系,造成程序执行速度不可预测性,必须对进程的并发执行次序、相对执行速度加以协调。 结构特征:进程由程序块 、数据块、进程控制块三部分组成。 进程的三种基本状态: (1)运行态(running) 当进程得到处理机,其执行程序正在处理机上运行时的状态称为运行状态。 在单CPU系统中,任何时刻最多只有一个进程处于运行状态。在多CPU系统中

操作系统——线程与进程的区别与联系?什么是线程安全?

风格不统一 提交于 2019-11-29 21:58:23
什么是进程: 1、进程就是执行中的一段程序,也就是说,一旦程序被加载到了内存并准备执行时,它就是一个进程; 2、进程具有文本、数据、堆栈片段以及它自己的资源。资源可以是文件,对象句柄,设备,信号量,互斥量,管道等等; 3、操作系统管理进程以及它的资源,有大量信息与进程有关,这些信息保存在一个称作进程控制块的数据结构中;操作系统就是用这个进程控制块来管理进程以及它的资源; 4、当创建了一个进程的时候,就分配了一个进程空间。文本片段通过一个可执行映像初始化; 什么是线程: 1、线程是一种轻量级进程。与进程相比,线程给操作系统带来的创建、维护和管理负担要轻,因为与线程相关的信息非常少; 2、线程没有地址空间,线程包含在进程的地址空间中;线程文本包含在它的进程的文本片段中;进程拥有的资源线程都可以使用; 3、一个进程里面可以有多个线程,这些线程共享进程的资源; 两者的区别: 1、相同点: 第一:都有上下文内容; 第二:都可以发生上下文切换(发生三种状态的相互转换,运行,阻塞,就绪); 第三:都可以实现并发执行; 2、不同点: 第一:线程是一种轻量级进程; 第二:线程没有自己的线程空间,线程包含在进程的进程空间中; 第三:一个进程可以包含一个或多个线程; 线程安全: 多个线程共享进程的资源,当多个线程都执行一段代码,但是这一段代码会用到一个全局变量并会修改这个全局变量,所以这个时候会出现问题

20170327_请说出线程与进程的区别与联系

时光总嘲笑我的痴心妄想 提交于 2019-11-29 21:53:48
20170327_请说出线程与进程的区别与联系 1、 线程与进程的概念: 进程的概念: (1)进程, 是并发执行的程序在执行过程中分配和管理操作系统资源的基本单位 ,是一个动态的概念,它是竞争计算机系统资源的基本单位。 (2)每一个进程都有自己的地址空间,即 进程空间 , 而进程空间的大小只与处理机的位数有关 。一个16位长的处理机的进程空间大小是216字节,32位长的处理机的进程空间大小是232字节。 (3) 进程有五个基本状态,分别是:初始状态、就绪状态、执行状态、阻塞状态、终止状态。 线程的概念: (1) 在多用户情况下,一个服务器通常需要接收大量的且不确定数量的用户的并发请求 , 操作系统为每一个请求都建立一个进程显然是行不通的(无论是从系统资源的开销方面,还是响应用户请求的效率方面来看) 。因此,操作系统中线程的概念便被引出来了。 (2) 线程,是进程的一部分 ,一个没有线程的进程可以被看作是单线程的。线程,有时候又被称之为轻量级进程, 它也是CPU调度的一个基本单位。 2、 线程与进程的区别与联系 : (1) 进程的执行过程是线状的 ,尽管 中间会发生中断或暂停 ,但是该进程所拥有的系统资源只为该线状的执行过程服务。 一旦发生进程的上下文切换,这些资源都是要被保护起来的 。这是进程在宏观上的执行过程。 (2)进程又可以划分为单线程进程和多线程进程两种。顾名思义,

python之路——进程

流过昼夜 提交于 2019-11-29 21:33:31
阅读目录 理论知识 操作系统背景知识 什么是进程 进程调度 进程的并发与并行 同步\异步\阻塞\非阻塞 进程的创建与结束 在python程序中的进程操作 multiprocess模块 进程的创建和multiprocess.Process 进程同步控制 —— 锁 进程间通信 —— 队列 进程间的数据共享 —— multiprocess.Manager 进程池和multiprocess.Pool 回到顶部 理论知识 操作系统背景知识 回到顶部 顾名思义,进程即正在执行的一个过程。进程是对正在运行程序的一个抽象。 进程的概念起源于操作系统,是操作系统最核心的概念,也是操作系统提供的最古老也是最重要的抽象概念之一。操作系统的其他所有内容都是围绕进程的概念展开的。 所以想要真正了解进程,必须事先了解操作系统, 点击进入 PS:即使可以利用的cpu只有一个(早期的计算机确实如此),也能保证支持(伪)并发的能力。将一个单独的cpu变成多个虚拟的cpu(多道技术:时间多路复用和空间多路复用+硬件上支持隔离),没有进程的抽象,现代计算机将不复存在。 必备的理论基础: #一 操作系统的作用: 1:隐藏丑陋复杂的硬件接口,提供良好的抽象接口 2:管理、调度进程,并且将多个进程对硬件的竞争变得有序 #二 多道技术: 1.产生背景:针对单核,实现并发 ps: 现在的主机一般是多核,那么每个核都会利用多道技术