进程调度

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

牧云@^-^@ 提交于 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: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一般都是多核的,同样

【线程理论篇】

☆樱花仙子☆ 提交于 2019-11-27 20:44:23
" 一、线程概念的引入背景 1. 进程 之前的博客 已经整理了操作系统中进程的概念,程序并不能单独运行,只有将程序装载到内存中,系统为它分配资源才能运行,而这种执行的程序就称之为进程。程序和进程的区别就在于:程序是指令的集合,它是进程运行的静态描述文本;进程是程序的一次执行活动,属于动态概念。在多道编程中,我们允许多个程序同时加载到内存中,在操作系统的调度下,可以实现并发地执行。正是这样的设计,大大提高了CPU的利用率。进程的出现让每个用户感觉到自己独享CPU,因此,进程就是为了在CPU上实现多道编程而提出的。 2. 有了进程为什么还要有线程 进程有很多优点,它提供了多道编程,让我们感觉我们每个人都拥有自己的cpu和其它资源,可以提高计算机的利用率。很多人就不理解了,既然进程那么优秀,为什么还有线程呢?其实,仔细观察就会发现进程还有很多缺陷的,主要体现在以下两点: 进程只能在同一时间处理一件任务,如果想在同一时间处理两件任务,进程就无能为力了. 进程在执行过程中如果遇到阻塞,例如等待i/o,整个进程就会挂起,即便进程中有些工作不依赖之例,也将无法执行. 3. 线程的出现 60年代,在OS中能拥有资源和独立运行的基本单位是进程,然后随着计算机技术的发展,进程出现了很多弊端。一是由于进程是资源拥有者,创建、撤销、切换进程存在较大的时间开销,因此需要引入 轻型进程; 二是由于SMP

【线程理论篇】

帅比萌擦擦* 提交于 2019-11-27 20:24:32
原文: http://blog.gqylpy.com/gqy/231 " 一、线程概念的引入背景 1. 进程 之前的博客 已经整理了操作系统中进程的概念,程序并不能单独运行,只有将程序装载到内存中,系统为它分配资源才能运行,而这种执行的程序就称之为进程。程序和进程的区别就在于:程序是指令的集合,它是进程运行的静态描述文本;进程是程序的一次执行活动,属于动态概念。在多道编程中,我们允许多个程序同时加载到内存中,在操作系统的调度下,可以实现并发地执行。正是这样的设计,大大提高了CPU的利用率。进程的出现让每个用户感觉到自己独享CPU,因此,进程就是为了在CPU上实现多道编程而提出的。 2. 有了进程为什么还要有线程 进程有很多优点,它提供了多道编程,让我们感觉我们每个人都拥有自己的cpu和其它资源,可以提高计算机的利用率。很多人就不理解了,既然进程那么优秀,为什么还有线程呢?其实,仔细观察就会发现进程还有很多缺陷的,主要体现在以下两点: 进程只能在同一时间处理一件任务,如果想在同一时间处理两件任务,进程就无能为力了. 进程在执行过程中如果遇到阻塞,例如等待i/o,整个进程就会挂起,即便进程中有些工作不依赖之例,也将无法执行. 3. 线程的出现 60年代,在OS中能拥有资源和独立运行的基本单位是进程,然后随着计算机技术的发展,进程出现了很多弊端。一是由于进程是资源拥有者,创建、撤销

【Kubernetes】基本概念和术语

試著忘記壹切 提交于 2019-11-27 20:14:32
目录 Master Node Pod Label(标签) Replication Controller(RC) Deployment Horizontal Pod Autoscaler(HPA) Service(服务) Volume(存储卷) Persistent Volume Namespace(命名空间) Annotation(注解) 原文: http://blog.gqylpy.com/gqy/393 "> 命令小结 1.创建 kubectl create -f mysql-xx.yaml 2.查基本信息 kubectl get xx <name> # xx可以为:rc/rs/pods/deployments/nodes/svc/services/namespaces 可指定 <name> 查询某一个 node/deploy 的基本信息 3.查看详细信息 kubectl describe xx <name> # xx可以为:node/deploy等 # 可指定 <name> 查询某一个 node/deploy 的详细信息 4.指定命名空间 namespace 查询: kubectl get xx -n "namespace" # 或如下 kubectl get xx --namespace="namespace" @ Kubernets 中的大部分概念如 Node 、 Pod

kubernetes容器编排系统介绍

柔情痞子 提交于 2019-11-27 19:59:13
版权声明:本文由turboxu原创文章,转载请注明出处: 文章原文链接: https://www.qcloud.com/community/article/152 来源:腾云阁 https://www.qcloud.com/community Kubernetes作为容器编排生态圈中重要一员,是Google大规模容器管理系统borg的开源版本实现,吸收借鉴了google过去十年间在生产环境上所学到的经验与教训。 Kubernetes提供应用部署、维护、 扩展机制等功能,利用Kubernetes能方便地管理跨机器运行容器化的应用。当前Kubernetes支持GCE、vShpere、CoreOS、OpenShift、Azure等平台,除此之外,也可以直接运行在物理机上.kubernetes是一个开放的容器调度管理平台,不限定任何一种言语,支持java/C++/go/python等各类应用程序 。 kubernetes是一个完备的分布式系统支持平台,支持多层安全防护、准入机制、多租户应用支撑、透明的服务注册、服务发现、内建负载均衡、强大的故障发现和自我修复机制、服务滚动升级和在线扩容、可扩展的资源自动调度机制、多粒度的资源配额管理能力,完善的管理工具,包括开发、测试、部署、运维监控,一站式的完备的分布式系统开发和支撑平台。 一. 系统架构

为什么要进行处理机调度?

有些话、适合烂在心里 提交于 2019-11-27 16:35:18
在多道程序系统中,进程的数量往往多于处理机的个数,进程争用处理机的情况就在所难免。 处理机调度是对处理机进行分配,就是从就绪队列中,按照一定的算法(公平、 高效)选择一个进程并将处理机分配给它运行,以实现进程并发地执行。 处理机调度是多道程序操作系统的基础,它是操作系统设计的核心问题。 来源: https://www.cnblogs.com/littleswan/p/11370362.html

【并发编程必备基础之进程】 -- 2019-08-17 00:04:39

有些话、适合烂在心里 提交于 2019-11-27 14:10:51
原文: 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一般都是多核的,同样

【并发编程必备基础之进程】 -- 2019-08-16 23:57:27

老子叫甜甜 提交于 2019-11-27 14:10:25
原文: 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一般都是多核的,同样

【线程理论篇】 -- 2019-08-16 20:58:32

时光怂恿深爱的人放手 提交于 2019-11-27 13:49:50
原文: http://blog.gqylpy.com/gqy/231 " 一、线程概念的引入背景 1. 进程 之前的博客 已经整理了操作系统中进程的概念,程序并不能单独运行,只有将程序装载到内存中,系统为它分配资源才能运行,而这种执行的程序就称之为进程。程序和进程的区别就在于:程序是指令的集合,它是进程运行的静态描述文本;进程是程序的一次执行活动,属于动态概念。在多道编程中,我们允许多个程序同时加载到内存中,在操作系统的调度下,可以实现并发地执行。正是这样的设计,大大提高了CPU的利用率。进程的出现让每个用户感觉到自己独享CPU,因此,进程就是为了在CPU上实现多道编程而提出的。 2. 有了进程为什么还要有线程 进程有很多优点,它提供了多道编程,让我们感觉我们每个人都拥有自己的cpu和其它资源,可以提高计算机的利用率。很多人就不理解了,既然进程那么优秀,为什么还有线程呢?其实,仔细观察就会发现进程还有很多缺陷的,主要体现在以下两点: 进程只能在同一时间处理一件任务,如果想在同一时间处理两件任务,进程就无能为力了. 进程在执行过程中如果遇到阻塞,例如等待i/o,整个进程就会挂起,即便进程中有些工作不依赖之例,也将无法执行. 3. 线程的出现 60年代,在OS中能拥有资源和独立运行的基本单位是进程,然后随着计算机技术的发展,进程出现了很多弊端。一是由于进程是资源拥有者,创建、撤销