进程控制块

关于进程与线程

拜拜、爱过 提交于 2019-11-28 06:34:55
“ 进程是资源分配的最小单位,线程是CPU调度的最小单位 ” 一、进程(Process) 1、什么是进程 进程(Process) 是计算机中的程序关于某数据集合上的一次运行活动,是系统进行资源分配和调度的基本单位,是操作系统结构的基础。 在早期面向进程设计的计算机结构中,进程是程序的基本执行实体;在当代面向线程设计的计算机结构中,进程是线程的容器。 程序是指令、数据及其组织形式的描述,进程是程序的实体。 二、线程 1、什么是线程 线程(thread) ,有时被称为轻量级进程(Lightweight Process,LWP), 是程序执行流的最小单元 。一个标准的线程由线程 ID、当前指令指针(PC)、寄存器集合和堆栈组成。 另外,线程是进程中的一个实体,是被系统独立调度和分派的基本单位,线程自己不拥有系统资源,只拥有一点儿在运行中必不可少的资源,但它可与同属一个进程的其它线程共享进程所拥有的全部资源。 一个线程可以创建和撤消另一个线程,同一进程中的多个线程之间可以并发执行。 由于线程之间的相互制约,致使线程在运行中呈现出间断性。 2、线程的基本状态 线程有 就绪 、 阻塞 和 运行 三种基本状态: 就绪状态 是指线程具备运行的所有条件,逻辑上可以运行,在等待处理机 运行状态 是指线程占有处理机正在运行 阻塞状态 是指线程在等待一个事件(如某个信号量),逻辑上不可执行

线程基础

。_饼干妹妹 提交于 2019-11-28 03:39:57
cpu:承担所有计算的任务 操作系统:是计算机的管理者,它负责任务调度,资源分配和管理,统领整个计算机硬件 应用程序:是某种功能的程序,程序运行于操作系统上 进程由: 程序, 数据集合 和 进程控制块 三部分组成 程序:用于描述进程要完成的功能,是控制进程执行的指令集。 数据集合:是程序在执行时所需要的数据和工作区 程序控制块:包含进程的描述信息和控制信息,是进程存在的唯一标识 每个进程有各自独立的一块内存,使得各个进程之间内存地址相互隔离。 进程是操作系统分配资源的最小单位,线程是程序执行的最小单位(线程出现的一个原因是进程间切换开销较大) 各个线程之间共享程序的内存地址(也就是进程所在的内存空间) 一个标准线程:线程ID,当前指令指针(PC),寄存器和堆栈组成 进程:内存空间(代码数据,进程空间,打开的文件)和一个或多个线程组成 进程与线程的资源共享关系 当线程的数量小于处理器的数量时,线程的并发是真正的并发,不同的线程运行在不同的处理器上,当线程的数量大于处理器的数量时,线程的并发会受到一些阻碍,此时不是真正的并发,因为此时至少有一个处理器会运行多个线程 频繁等待的线程:称为IO密集型线程 频繁进行大量计算以至于每次都把所有时间片全部耗尽,很少等待的线程:称为 CPU密集型线程 在优先级调度环境下,线程优先级的改变有三种方式 1.用户指定优先级 2

操作系统详解

时光毁灭记忆、已成空白 提交于 2019-11-28 03:28:29
目录 一 为什么要有操作系统 二 什么是操作系统 三 操作系统与普通软件的区别 四 操作系统发展史 五、操作系统原理 1. 操作系统的资源管理技术 2. 系统调用 3. 操作系统内核 4. 处理器状态: 内核态和用户态 5. 中断(Interupt) 6. 进程 7. 处理器调度 8. 进程的交互 9. 临界区管理 10. 信号量(samaphore)和PV操作 11. 管程 12. 死锁 13. 可变分区存储管理 14. 分页存储管理 15. 分段存储管理 16. 虚拟存储管理 17. 请求段页式虚拟内存管理 18. I/O硬件原理:I/O控制方式 19. I/O软件原理 20. 缓冲技术 21. 驱动调度技术 22. 设备独立性 23. 虚拟设备 24. 文件逻辑结构 25. 文件物理结构 二、Q&A 1. 什么是操作系统?操作系统在计算机系统中的主要作用是什么? 2. 什么是多道程序设计?多道程序设计有什么特点? 3. 计算机操作系统为什么引入进程? 4. 在分时系统中,什么是响应时间?它与哪些因素有关? 5. 解释并发性与并行性 6. 试述存储管理的基本功能。 7. 何谓地址转换(重定向)?哪些方法可以实现地址转换? 8. 什么是文件的共享?介绍文件共享的分类和实现思想。 一 为什么要有操作系统 ( 两本书:现代操作系统、操作系统原理,学好python以后再去研究吧~~)

深入理解并发编程(一):到底什么是线程安全

好久不见. 提交于 2019-11-28 01:10:54
什么是线程安全 维基百科: 线程安全是编程中的术语,指某个函数、函数库在 并发 环境中被调用时,能够正确地处理 多个线程 之间的 共享变量 ,使程序功能正确完成。 我们把这个定义拆解一下,我们需要弄清楚这么几点: 1、并发 2、多线程 3、共享变量 1 并发 提到线程安全,必须要提及的一个词那就是并发,如果没有并发的话,那么也就不存在线程安全问题了。 1.1 什么是并发 并发(Concurrent): 在操作系统中,是指一个时间段中有几个程序都处于已启动运行到运行完毕之间,且这几个程序都是在同一个处理机上运行。 那么,操作系统视如何实现这种并发的呢? 现在我们用到操作系统,无论是Windows、Linux还是MacOS等其实都是多用户多任务分时操作系统。使用这些操作系统的用户是可以“同时”干多件事的。 但是实际上,对于单CPU的计算机来说,在CPU中,同一时间是只能干一件事儿的。为了看起来像是“同时干多件事”, 分时操作系统是把CPU的时间划分成长短基本相同的时间区间,即”时间片”,通过操作系统的管理,把这些时间片依次轮流地分配给各个用户使用 。 如果某个作业在时间片结束之前,整个任务还没有完成,那么该作业就被暂停下来,放弃CPU,等待下一轮循环再继续做.此时CPU又分配给另一个作业去使用。 由于计算机的处理速度很快,只要时间片的间隔取得适当

进程与线程

笑着哭i 提交于 2019-11-28 01:00:26
并行程序的几个基本概念——进程与线程   这问题,估计计算机专业的同学在找研发等工作的时候都会遇到过。前几天某老牌软件厂商的电话面试就提到了这一经典问题,今天招聘会上又有不少同学说在面试的时候被问到这点。在这里我就起个头,大家有啥想法意见等都欢迎回帖交流。 要了解二者的区别与联系,首先得对进程与线程有一个宏观上的了解: 进程,是并发执行的程序在执行过程中分配和管理资源的基本单位,是一个动态概念,竟争计算机系统资源的基本单位。每一个进程都有一个自己的地址空间,即进程空间或(虚空间)。进程空间的大小 只与处理机的位数有关,一个 16 位长处理机的进程空间大小为 216 ,而 32 位处理机的进程空间大小为 232 。进程至少有 5 种基本状态,它们是:初始态,执行态,等待状态,就绪状态,终止状态。 线程,在网络或多用户环境下,一个服务器通常需要接收大量且不确定数量用户的并发请求,为每一个请求都创建一个进程显然是行不通的,——无论是从系统资源开销方面或是响应用户请求的效率方面来看。因此,操作系统中线程的概念便被引进了。线程,是进程的一部分,一个没有线程的进程可以被看作是单线程的。线程有时又被称为轻权进程或轻量级进程,也是 CPU 调度的一个基本单位。 说到这里,我们对进程与线程都有了一个大体上的印象,现在开始说说二者大致的区别:   进程的执行过程是线状的 ,尽管中间会发生中断或暂停

计算机操作系统 - 进程管理

牧云@^-^@ 提交于 2019-11-27 23:54:11
进程与线程 1. 进程 2. 线程 3. 区别 进程状态的切换 进程调度算法 1. 批处理系统 2. 交互式系统 3. 实时系统 进程同步 1. 临界区 2. 同步与互斥 3. 信号量 4. 管程 经典同步问题 1. 读者-写者问题 2. 哲学家进餐问题 进程通信 1. 管道 2. FIFO 3. 消息队列 4. 信号量 5. 共享存储 6. 套接字 进程与线程 1. 进程 进程是资源分配的基本单位。 进程控制块 (Process Control Block, PCB) 描述进程的基本信息和运行状态,所谓的创建进程和撤销进程,都是指对 PCB 的操作。 下图显示了 4 个程序创建了 4 个进程,这 4 个进程可以并发地执行。 2. 线程 线程是独立调度的基本单位。 一个进程中可以有多个线程,它们共享进程资源。 QQ 和浏览器是两个进程,浏览器进程里面有很多线程,例如 HTTP 请求线程、事件响应线程、渲染线程等等,线程的并发执行使得在浏览器中点击一个新链接从而发起 HTTP 请求时,浏览器还可以响应用户的其它事件。 3. 区别 Ⅰ 拥有资源 进程是资源分配的基本单位,但是线程不拥有资源,线程可以访问隶属进程的资源。 Ⅱ 调度 线程是独立调度的基本单位,在同一进程中,线程的切换不会引起进程切换,从一个进程中的线程切换到另一个进程中的线程时,会引起进程切换。 Ⅲ 系统开销

进程的介绍(理论部分)

[亡魂溺海] 提交于 2019-11-27 21:26:09
目录 1.什么是进程 2.进程与程序的区别 3.并发与并行 4.同步\异步and阻塞\非阻塞(重点) 5.进程的创建(了解) 6.进程的终止(了解) 7.进程的层次结构 8.进程的状态 9.进程并发的实现(了解) 1.什么是进程 ​ 进程:正在进行的一个过程或者说一个任务。而负责执行任务则是cpu。 ​ 举例(单核+多道,实现多个进程的并发执行): ​ 小冯在一个时间段内有很多任务要做:python备课的任务,写书的任务,交女朋友的任务,王者荣耀上分的任务,   ​ 但小冯同一时刻只能做一个任务(cpu同一时间只能干一个活),如何才能玩出多个任务并发执行的效果? ​ 小冯备一会课,再去跟嫂子聊聊天,再去打一会王者荣耀....这就保证了每个任务都在进行中. 2.进程与程序的区别 程序仅仅只是一堆代码而已,而进程指的是程序的运行过程。 举例: 想象一位有一手好厨艺的计算机科学家小冯正在为他的女儿元昊烘制生日蛋糕。 他有做生日蛋糕的食谱, 厨房里有所需的原料:面粉、鸡蛋、韭菜,蒜泥等。 在这个比喻中: ​ 做蛋糕的食谱就是程序 (即用适当形式描述的算法) ​ 计算机科学家就是处理器(cpu) ​ 而做蛋糕的各种原料就是输入数据 。 进程就是厨师阅读食谱、取来各种原料以及烘制蛋糕等一系列动作的总和 。 现在假设计算机科学家小冯的儿子alex哭着跑了进来,说: XXXXXXXXXXXXXX

【并发编程必备基础之进程】

放肆的年华 提交于 2019-11-27 21:13:02
原文: http://blog.gqylpy.com/gqy/236 " 目录 1.操作系统背景知识 2.什么是进程 3.进程调度 4.进程的并行与并发 5.同步异步阻塞非阻塞 6.进程的创建与结束 1.操作系统背景知识 顾名思义 ,进程即正在执行的一个过程,进程是对正在运行的程序的一个抽象。进程的概念起源于操作系统,是操作系统最核心的概念,也是操作系统提供的最古老的最重要的抽象概念之一,操作系统的其他所有内容都是围绕进程的概念展开的。 所以想要真正了解进程,应先了解操作系统, 点击进入操作系统介绍 PS:即使可以利用的cpu只有一个(早期的计算机确实如此),也能保证支持(伪)并发的能力。将一个单独的cpu变成多个虚拟的cpu(多道技术:时间多路复用+空间多路复用+硬件上支持分离),如果没有进程的抽象,现代计算机将不复存在。 必备理论基础 1.操作系统的作用: 1)隐藏复杂的硬件接口,提供良好的抽象接口. 2)管理,调度进程,并且将多个进程对硬件的抢夺变得有序 2.多道技术 1)产生背景:针对单核,实现并发 2)空间上的复用:如内存中同时有多道程序 3)时间上的复用:复用一个cpu的时间片,强调:遇到io切,占用cpu的时间过长也切,核心在于切之前将进程的状态保存下载,这样才能保证下次切换回来时能基于上次切走的位置继续运行. PS:现在的cpu一般都是多核的,同样

1.并发编程多进程(理论部分)

蹲街弑〆低调 提交于 2019-11-27 19:31:07
一 什么是进程 ​ 进程:正在进行的一个过程或者说一个任务。而负责执行任务则是cpu。 ​ 举例(单核+多道,实现多个进程的并发执行): ​ 太白金星在一个时间段内有很多任务要做:python备课的任务,写书的任务,交女朋友的任务,王者荣耀上分的任务,   ​ 但太白金星同一时刻只能做一个任务(cpu同一时间只能干一个活),如何才能玩出多个任务并发执行的效果? ​ 太白金星备一会课,再去跟嫂子聊聊天,再去打一会王者荣耀....这就保证了每个任务都在进行中. 二 进程与程序的区别 程序仅仅只是一堆代码而已,而进程指的是程序的运行过程。 举例: 想象一位有一手好厨艺的计算机科学家太白金星正在为他的女儿元昊烘制生日蛋糕。 他有做生日蛋糕的食谱, 厨房里有所需的原料:面粉、鸡蛋、韭菜,蒜泥等。 在这个比喻中: ​ 做蛋糕的食谱就是程序 (即用适当形式描述的算法) ​ 计算机科学家就是处理器(cpu) ​ 而做蛋糕的各种原料就是输入数据 。 进程就是厨师阅读食谱、取来各种原料以及烘制蛋糕等一系列动作的总和 。 现在假设计算机科学家太白金星的儿子alex哭着跑了进来,说: XXXXXXXXXXXXXX 。 科学家太白金星想了想,处理儿子alex蛰伤的任务比给女儿元昊做蛋糕的任务更重要,于是 计算机科学家就记录下他照着食谱做到哪儿了(保存进程的当前状态),然后拿出一本急救手册

进程

一笑奈何 提交于 2019-11-27 19:13:14
进程的特征: 动态性 并发性 独立性 异步性 进程的结构: 组成:程序、数据集合、进程控制块PCB(process control block) pcb:是进程存在的唯一标志。 PCB信息: 进程标识信息:进程的内部和外部标识 处理机状态信息:通用寄存器值、指令计数器值、用户栈指针值 进程调度信息:进程状态、进程优先权、进程调度的其他信息 其他信息:程序及数据地址、进程同步和通讯机制、资源清单、链接指针 PCB的组织: 方式一: 单一队列:所有进程的PCB通过链表组织成为一个单一队列。适用于进程数目不多的系统,如Windows操作系统。 方式二: 表格结构:pcb按进程状态不同,组织成不同的表格:就绪进程表、执行进程表(多机系统中)及阻塞进程表 方式三: PCB按进程状态的不同用链接指针组成不同的队列:就绪进程队列、阻塞进程队列 两状态:执行、未执行 进程获得处理机,进入执行状态:当时间片结束或其他某种原因,进程释放处理机,暂停执行,处于未执行状态。 两状态进程模型:队列形式 未执行:可分为就绪(ready)和阻塞(blocked) 进程的五种状态: 执行状态(Running)占用处理机(单处理机环境中,某一事克仅一个进程占用处理机) 就绪状态(Ready)准备执行 阻塞状态(Blocked)等待某事件发生才能被执行,如等待i/o完成等 新状态(New)进程已经创建,但未被os