进程调度

美团后台开发工程师一面知识点总结

非 Y 不嫁゛ 提交于 2020-01-04 14:46:33
正向代理和反向代理的区别? 正向代理和反向代理的本质都是代为收发请求和响应。 正向代理是一个位于客户端和目标服务器之间的代理服务器。为了从原始服务器取得内容,客户端向代理服务器发送一个请求,并且指定目标服务器,之后代理向目标服务器转交并且将获得的内容返回给客户端。 正向代理的情况下客户端必须要进行一些特别的设置才能使用。 反向代理正好相反。 对于客户端来说,反向代理就好像目标服务器,并且客户端不需要进行任何设置。 客户端向反向代理发送请求,接着反向代理判断请求走向何处,并将请求转交给客户端,使得这些内容就好似他自己一样,因此客户端并不会感知到反向代理后面的服务,也不需要客户端做任何设置,只需要把反向代理服务器当成真正的服务器就好了。 正向代理隐藏了客户端。(访问谷歌的梯子) 反向代理隐藏了服务器。(负载均衡,访问内网服务器) 参考资料: 反向代理为何叫反向代理? 进程,线程,协程? 进程 进程指一个正在执行的程序,是系统资源分配的最小单位,一个进程一般由以下几部分组成: 程序代码(称为文本段或者代码段) 当前的活动(包括程序计数器,寄存器的内容) 数据段(包括全局变量) 栈(包括函数参数,返回地址和局部变量等临时参数) 堆(进程运行期间动态分配的内存) 进程的特点: 动态性:进程由创建而产生,由调度而执行,因得不到资源而暂停执行,由撤销而消亡。 并发性

kubeadm实现的高可用

本小妞迷上赌 提交于 2020-01-02 23:48:23
安装部署k8s_v1.11 K8s简介 1.背景介绍   云计算飞速发展     - IaaS     - PaaS     - SaaS   Docker技术突飞猛进     - 一次构建,到处运行     - 容器的快速轻量     - 完整的生态环境 2.什么是kubernetes   首先,他是一个全新的基于容器技术的分布式架构领先方案。Kubernetes(k8s)是Google开源的容器集群管理系统(谷歌内部:Borg)。在Docker技术的基础上,为容器化的应用提供部署运行、资源调度、服务发现和动态伸缩等一系列完整功能,提高了大规模容器集群管理的便捷性。   Kubernetes是一个完备的分布式系统支撑平台,具有完备的集群管理能力,多扩多层次的安全防护和准入机制、多租户应用支撑能力、透明的服务注册和发现机制、內建智能负载均衡器、强大的故障发现和自我修复能力、服务滚动升级和在线扩容能力、可扩展的资源自动调度机制以及多粒度的资源配额管理能力。同时Kubernetes提供完善的管理工具,涵盖了包括开发、部署测试、运维监控在内的各个环节。 Kubernetes中,Service是分布式集群架构的核心,一个Service对象拥有如下关键特征: • 拥有一个唯一指定的名字 • 拥有一个虚拟IP(Cluster IP、Service IP、或VIP)和端口号 •

处理机调度

丶灬走出姿态 提交于 2020-01-01 13:45:35
1 处理机的二级调度 宏观上:作业调度 微观上:进程调度 2 作业调度 2.1作业调度的功能 作业调度的主要任务是完成作业从后备状态到执行状态和从执行状态到完成状态的转变。 作业调度功能: 1.记录已进入系统的各作业的情况(JCB,Job Control Block); 2.按一定的调度算法,从后备作业中选择一个或几个作业进入系统内存; 3.为被选中的作业创建进程,并且为其申请系统资源; 4.作业结束后作善后处理工作。 2.2 作业控制块(JCB,Job Control Block) 每个作业进入系统时由系统为其建立一个作业控制块JCB(Job Control Block),它是存放作业控制和管理信息的数据结构,主要信息见下图。 2.3 调度性能的衡量 作业调度算法规定了从后备作业中选择作业进入系统内存的原则,这些原则的性能如何,就是本节所讨论的问题。 一、确定调度算法时应考虑的因素 1.应与系统的整体设计目标一致 2.考虑系统中各种资源的负载均匀 3.保证作业的执行 4.对一些专用资源的使用特性的考虑 二、调度性能的衡量 通常采用平均周转时间和带权平均周转时间 作业的周转时间: ti = tci-tsi ti:作业周转时间 tci:作业完成时间 tsi: 作业提交时间 2.4 先来先服务调度算法和短作业优先调度算法 先来先服务调度算法:

浅析线程进程相关的知识点

只谈情不闲聊 提交于 2020-01-01 03:56:39
1.线程、进程 1.1 概念 进程 :引入:为了程序能够并发执行,且为了对并发执行的程序加以描述和控制,引入了进程的概念。   (1)进程是程序的一次执行。   (2)进程是一个程序及其数据在处理机上顺序执行时所发生的活动。   (3)进程是程序在一个数据集合上运行的过程,它是系统进行资源分配和调度的一个独立单位。   (4)进程是作为能够拥有资源和独立运行的基本单位。 线程 : 引入:在操作系统中引入线程,是为了减少程序并发执行时锁付出的空间开销,使OS具有更好的并发性。1.2 1.2 线程与进程进行比较   线程具有许多传统进程所具有的特征,所以又称为轻量级进程或进程元,相应的把进程称为重量级的进程,传统进程相当于只有一个线程的任务,在引入了新城的操作系统中,通常一个进程都拥有若干个线程,至少也有一个线程。   相同点:   (1)调度:   (2)并发性:在引入了线程的操作系统中,进程之间或一个线程中的多个线程之间都可以并发执行。   (3)拥有资源:不论是传统的操作系统还是引入了线程的操作系统,进程都可以拥有资源,是系统中拥有资源的有个基本单位。   (4)系统开销:在某些操作系统中,线程的切换、同步和通信都无需操作系统内核的干预。   不同点 :   (1)调度:在传统操作系统中,进程是拥有资源的基本和独立调度、分派的基本单位,在引入了线程的操作系统中

并发技术、进程、线程和锁拾遗

点点圈 提交于 2020-01-01 00:48:07
并发技术、进程、线程和锁拾遗 Part1. 多任务 计算机发展起初,CPU 资源十分昂贵,如果让 CPU 只能运行一个程序那么当 CPU 空闲下来(例如等待 I/O 时),CPU 资源就会被浪费,为了使 CPU 资源得到更好的利用,先驱编写了一个监控程序,如果发现某个程序暂时无需使用 CPU 时,监控程序就把另外的正在等待 CPU 资源的程序启动起来,以充分利用 CPU资源。这种方法称为 - 多道程序(Multiprogramming) 对于多道程序,最大的弊端是各程序之间不区分轻重缓急,对于用户交互式的程序来说,对 CPU 计算时间的需求并不多,但是对于响应速度却有比较高的要求。而对于计算类程序来说则相反,对响应速度要求低,但需要长时间的 CPU 计算。想象一个场景:我在同时在浏览网页和听音乐,我们希望浏览器能够快速响应,同时也希望音乐不停,这时候 多道程序 就没法达到我们的要求了。 于是人们改进了 多道程序 ,使得每个程序运行一段时间之后,都主动让出 CPU 资源,这样每个程序在一段时间内都有机会运行一小段时间。这样像浏览器这样的交互式程序就能够快速地被处理,同时计算类程序也不会受到很大影响。这种程序协作方式被称为 分时系统(Time-Sharing System) 。 在分时系统的帮助下,我们可以边用浏览器边听歌了。 但是 如果某个程序出现了错误,导致了死循环

python实现进程调度算法

耗尽温柔 提交于 2019-12-30 14:22:30
python实现进程调度算法 先来先服务,短作业优先,静态高优先级优先,动态高优先级优先,时间片轮转法 import random import copy class PCB : """表示一个进程块""" def __init__ ( self , pid , priority , in_time , need_time ) : # 初始化进程 self . pid = pid # 进程pid self . priority = priority # 进程优先级 self . dy_priority = priority # 进程动态优先级 self . alter_time = 999 # 进程优先级上次修改时间 self . in_time = in_time # 进程进入内存时间 self . start_time = 999 # 进程开始运行时间 self . need_time = need_time # 进程需要运行时间 self . cpu_time = 0 # 进程已运行(服务)时间 self . remain_time = need_time # 进程剩余运行时间 self . out_time = 999 # 进程运行结束时间 self . turn_time = 999 # 进程周转时间 self . Wturn_time = 999 # 进程带权周转时间

操作系统知识体系复习总结总结

纵然是瞬间 提交于 2019-12-28 21:23:23
说明:本篇只为复习大纲,并未详细说明。 第一章 操作系统引论 统的目标:有效性(提高资源利用率和系统吞吐量)、方便性、可扩充性、开放性。 有效性 和 方便性 是操作系统最重要两个目标。 操作系统的作用: (1) OS作为用户与计算机硬件系统之间的接口 (2) OS作为计算机系统资源的管理者(处理器、存储器、I/O设备、数据程序) (3) OS实现了对计算机资源的抽象(在硬件上覆盖I/O设备、文件和窗口管理软件,即虚拟机) OS的发展过程:无操作系统的计算机系统→单道批处理系统→多道批处理系统→分时系统→实时系统→微机操作系统 操作系统的基本特征: (1) 并发性(两个或多个事件在 同一时间间隔内 发生;进入进程和线程) (2) 共享性(系统中资源可供内存中多个并发执行的进程(线程)共同使用, 方式为互斥共享方式和同时访问方式 ) (3) 虚拟性(通过某种技术把一个物理实体变为若干个逻辑上的对应物。方式: 时分复用技术和空分复用技术 ) (4) 异步性(进程以不可预知的速度向前推进,多道程序设计固有的特点) OS的主要功能: (1) 处理机管理(进程管理)功能;(主要包括创建和撤销进程、协调诸进程的运行、实现进程间信息交换、把处理机分配给进程。进程同步机制功能是协调多个进程的运行, 分为竞争和协作两种方式 ,实现进程同步常用的及时是 信号量机制 。调度包括 作业调度和进程调度 两步。

操作系统——进程调度之短进程优先

…衆ロ難τιáo~ 提交于 2019-12-28 21:22:44
1、什么是进程调度   无论是在批处理系统还是分时系统中,用户进程数一般都多于处理机数、这将导致它们互相争夺处理机。另外,系统进程也同样需要使用处理机。 这就要求进程调度程序按一定的策略,动态地把处理机分配给处于就绪队列中的某一个进程,以使之执行。     2、处理机调度分类 高级、中级和低级调度作业从提交开始直到完成,往往要经历下述三级调度: 高级调度:(High-Level Scheduling)又称为 作业调度 ,它决定把后备进程调入内存运行; 低级调度:(Low-Level Scheduling)又称为 进程调度 ,它决定把就绪队列的某进程获得CPU; 中级调度:(Intermediate-Level Scheduling)又称为在虚拟存储器中引入, 在内、外存对换区进行进程对换 。 3、短进程优先 最短CPU运行期优先调度算法 (SCBF--Shortest CPU Burst First) 该算法 从就绪队列中选出下一个“CPU执行期最短”的进程,为之分配处理机 。 例如,在就绪队列中有四个进程P1、P2、P3和P4,它们的下一个执行 期分别是16、12、4和3个单位时间,执行情况如下图: P1、P2、P3和P4的周转时间分别为35、19、7、3,平均周转时间为16。 该算法虽可获得较好的调度性能,但难以准确地知道下一个CPU执行期,而只能根据每一个进程的执行历史来预测

03-处理机调度

一个人想着一个人 提交于 2019-12-28 04:29:23
处理机调度 基本概念 调度分类 高级调度(作业调度) 中级调度(内存调度) 低级调度(进程调度) 进程调度 时机 方式 切换与调度 调度算法评价指标 CPU利用率 系统吞吐量 周转时间 等待时间 响应时间 调度算法 基本概念 当有一堆任务要处理,但由于资源有限,这些事务无法同时处理。这就需要确定 某种规则 来 决定 处理这些任务的 顺序 ,这就是“调度”研究的问题。 在多道程序系统中,进程的数量往往是多于处理机的个数的,这样不可能同时并行地处理各个进程。 处理机调度 ,就是从就绪队列中 按照一定的算法选择一个进程 并 将处理机分配给它 运行,以实现进程的并发行。 调度分类 高级调度(作业调度) 由于内存空间有限,有时无法将用户提交的作业全部放入内存,因此就需要确定某种规则来决定将作业调入内存的顺序。 高级调度(作业调度) 。按一定的原则从外存上处于后备队列的作业中挑选一个(或多个)作业,给它们分配内存等必要资源,并 建立相应的进程(建立PCB) ,以使它们 获得竞争多处理机的权利 。 高级调度是外存与内存之间的调度。每个作业只调入一次,调出一次。 作业调入时会建立相应的PCB,作业调出时才撤销PCB 。高级调度主要指调入的问题,因为只有调入的时机需要操作系统来确定,但调出的时机必然是作业运行结束才调出。 中级调度(内存调度) 引入了虚拟存储技术之后

操作系统知识点梳理

我与影子孤独终老i 提交于 2019-12-27 14:35:43
进程和线程的区别联系 进程和线程的关系: (1)一个线程只能属于一个进程,而一个进程可以有多个线程,但至少有一个线程。 (2)资源分配给进程,同一进程的所有线程共享该进程的所有资源。 (3)线程在执行过程中,需要协作同步。不同进程的线程间要利用消息通信的办法实现同步。 (4)线程是指进程内的一个执行单元,也是进程内的可调度实体。 线程与进程的区别: (1)线程作为调度和分配的基本单位,进程作为拥有资源的基本单位。 (2)系统在运行的时候会为每个进程分配不同的内存空间;而对线程而言,除了CPU外,系统不会为线程分配内存(线程所使用的资源来自其所属进程的资源),线程组之间只能共享资源。 (3)在操作系统中能同时运行多个进程(程序);而在同一个进程(程序)中有多个线程同时执行(通过CPU调度,在每个时间片中只有一个线程执行) (4)每个进程都有独立的代码和数据空间(程序上下文),程序之间的切换会有较大的开销;线程可以看做轻量级的进程,同一类线程共享代码和数据空间,每个线程都有自己独立的运行栈和程序计数器(PC),线程之间切换的开销小。 线程调度 线程调度:按照特定机制为多个线程分配CPU的使用权。 有两种调度模型: 分时调度:所有线程平分cpu的时间片,轮流占用CPU 抢占式调度:根据优先级占用CPU 调度算法:根据系统的资源分配策略所规定的资源分配算法 (1)时间片轮转法