时间片

一文读懂什么是进程、线程、协程

隐身守侯 提交于 2019-11-29 19:11:59
目录 进程 线程 任务调度 进程与线程的区别 多线程与多核 一对一模型 多对一模型 多对多模型 查看进程与线程 线程的生命周期 协程 协程的目的 协程的特点 协程的原理 协程和线程的比较 进程   我们都知道计算机的核心是CPU,它承担了所有的计算任务;而操作系统是计算机的管理者,它负责任务的调度、资源的分配和管理,统领整个计算机硬件;应用程序则是具有某种功能的程序,程序是运行于操作系统之上的。   进程是一个具有一定独立功能的程序在一个数据集上的一次动态执行的过程,是操作系统进行资源分配和调度的一个独立单位,是应用程序运行的载体。进程是一种抽象的概念,从来没有统一的标准定义。 进程一般由程序、数据集合和进程控制块三部分组成。 程序用于描述进程要完成的功能,是控制进程执行的指令集; 数据集合是程序在执行时所需要的数据和工作区; 程序控制块(Program Control Block,简称PCB),包含进程的描述信息和控制信息,是进程存在的唯一标志。 进程具有的特征: 动态性:进程是程序的一次执行过程,是临时的,有生命期的,是动态产生,动态消亡的; 并发性:任何进程都可以同其他进程一起并发执行; 独立性:进程是系统进行资源分配和调度的一个独立单位; 结构性:进程由程序、数据和进程控制块三部分组成。 线程   在早期的操作系统中并没有线程的概念,进程是能拥有资源和独立运行的最小单位

【操作系统】基础知识整理 & 常见面试题

最后都变了- 提交于 2019-11-29 19:06:45
操作系统 1 操作系统概述 操作系统的四个特性 操作系统的五大功能 2 进程 进程的定义 进程的状态 进程的特性 进程的同步、互斥和通信 a 竞争关系 和 进程互斥 b 协作关系 和 进程同步 c 进程通信 3 线程 线程的定义 线程的性质 线程通信 线程同步和互斥 线程机制的优点: 4 进程 VS. 线程 进程与线程之间的关系 进程与线程之间的区别 多进程与多线程之间的区别 5 处理机调度 用户态和核心态 处理机调度的层次 操作系统的常见进程调度算法 6 存储器管理 7 虚拟存储器 定义 特征 实现方法 页面置换算法(服务于分页请求系统) 常见面试题 1 操作系统概述   操作系统是管理和控制计算机系统中各种硬件和软件资源、合理地组织计算机工作流程的系统软件,是用户与计算机之间的接口。 操作系统的四个特性 并发 :同一段时间内多个程序执行(注意区别并行和并发,前者是同一时刻的多个事件,后者是同一时间段内的多个事件); 共享 :系统中的资源可以被内存中多个并发执行的进线程共同使用; 虚拟 :通过时分复用(如分时系统)以及空分复用(如虚拟内存)技术实现把一个物理实体虚拟为多个; 异步 :系统中的进程是以走走停停的方式执行的,且以一种不可预知的速度推进。   操作系统最基本的特征是并发和共享,两者互为存在条件。 操作系统的五大功能 处理机管理 :处理机分配都是以进程为单位

进程调度

别说谁变了你拦得住时间么 提交于 2019-11-29 12:04:38
进程调度 要想多个进程交替运行,操作系统必须对这些进程进行调度,这个调度也不是随即进行的,而是需要遵循一定的法则,由此就有了进程的调度算法。 一、先来先服务调度算法 先来先服务(FCFS)调度算法是一种最简单的调度算法,该算法既可用于作业调度,也可用于进程调度。FCFS算法比较有利于长作业(进程),而不利于短作业(进程)。由此可知,本算法适合于CPU繁忙型作业,而不利于I/O繁忙型的作业(进程)。 二、短作业优先调度算法 短作业(进程)优先调度算法(SJ/PF)是指对短作业或短进程优先调度的算法,该算法既可用于作业调度,也可用于进程调度。但其对长作业不利;不能保证紧迫性作业(进程)被及时处理;作业的长短只是被估算出来的。 三、时间片轮转法 显然,轮转法只能用来调度分配一些可以抢占的资源。这些可以抢占的资源可以随时被剥夺,而且可以将它们再分配给别的进程。CPU是可抢占资源的一种。但打印机等资源是不可抢占的。由于作业调度是对除了CPU之外的所有系统硬件资源的分配,其中包含有不可抢占资源,所以作业调度不使用轮转法。 在轮转法中,时间片长度的选取非常重要。首先,时间片长度的选择会直接影响到系统的开销和响应时间。如果时间片长度过短,则调度程序抢占处理机的次数增多。这将使进程上下文切换次数也大大增加,从而加重系统开销。反过来,如果时间片长度选择过长,例如

Java学习笔记【保持更新】

◇◆丶佛笑我妖孽 提交于 2019-11-29 08:36:57
主要参考资料:https://www.bilibili.com/video/av56034035; https://www.bilibili.com/video/av61604219 本文仅用于学习,如有侵权,请联系我,一定删除 JAVA基础 第一章:基础常识 常用的DOS命令 JAVA语言概述 语言特性 由C和C++继承了许多成分,变量声明、操作符、参数传递和控制流程等完全相同。 纯粹的面向对象 舍弃了指针(以引用取代)、运算符重载、多重继承等 增加了垃圾回收、泛型编程、类型安全的枚举、不定长参数和自动装/拆箱 易学 分布式 健壮 :丢弃指针,自动回收(免去了程序员忘记回收的问题) 开源社区成熟 解释型 原生多线程 JAVA技术平台 SE:俗称核心JAVA JAVA学习流程 Java是一个统称 包含javase 与Javaee(还有一个几乎没人用的javame) 是Sun公司,也就是现在的Oracle(把Sun给收购了)公司的一门面向对象的开源语言。 javase 是java的一部分,也是基础的基础,主要是用来做桌面程序的,就像我们平时下载用的那些软件,也就是楼上说的那些客户端程序。但是用Java做软件的话,前途不明朗。 jsp 是一种动态的页面,运行于服务器(tomcat、 jboss等),里面可以嵌套有html 或javase、Javascript的代码。

linux 优先级

百般思念 提交于 2019-11-28 22:30:45
为什么要有进程优先级?这似乎不用过多的解释,毕竟自从多任务操作系统诞生以来,进程执行占用cpu的能力就是一个必须要可以人为控制的事情。因为有的进程相对重要,而有的进程则没那么重要。 本文作者: 邹立巍 文章来源: https://linux.cn/article-7325-1.html Linux系统技术专家。目前在腾讯SNG社交网络运营部 计算资源平台组,负责内部私有云平台的建设和架构规划设计。 曾任新浪动态应用平台系统架构师,负责微博、新浪博客等重点业务的内部私有云平台架构设计和运维管理工作。 进程优先级起作用的方式从发明以来基本没有什么变化,无论是只有一个cpu的时代,还是多核cpu时代,都是通过控制进程占用cpu时间的长短来实现的。就是说在同一个调度周期中,优先级高的进程占用的时间长些,而优先级低的进程占用的短些。 从这个角度看,进程优先级其实也跟cgroup的cpu限制一样,都是一种针对cpu占用的QOS机制。我曾经一直很困惑一点,为什么已经有了优先级,还要再设计一个针对cpu的cgroup?得到的答案大概是因为,优先级这个值不能很直观的反馈出资源分配的比例吧? 不过这不重要,实际上从内核目前的进程调度器cfs的角度说,同时实现cpushare方式的cgroup和优先级这两个机制完全是相同的概念,并不会因为增加一个机制而提高什么实现成本。既然如此

CMSIS RTOS2学习笔记day3

巧了我就是萌 提交于 2019-11-28 20:15:42
今天来看下分时调度策略下时间片的管理,需要注意的一个问题是:无论是实时抢占还是分时调度,时间片的更新是一定需要有的。 方便起见,从时间片设置开始介绍:Round-Robin是轮询调度,轮询调度时间是5ms, 然后看到OS_ROBINTOUT是 看到上面的英文可以看到,默认的调度时间为5ms。当然也没什么需要修改的必要。 顺着下来,这个值应该是在一个systemtick中和任务运行时间进行比较.。 这是一个全区遍历,好多任务共用一个,每次切换任务,都会把这个东西复位,重新进行处理。 这次就是来检查运行时间的。如果检查到正在运行的时间已经超过tout,那么就应该切换下一个任务。额…懂啦。上述代码可以看出分配给每个任务运行的时间是,当前ostime加上超时时间(时间片)。那么当系统时间ostime到达这个时间的时候,就可以进行切换了。 这里有一个延时任务的更新,这是专门是任务延时使用的。rt_dec_dly()就是专门针对任务延时的,延时时间到了之后,就放置优先正常队列中。 这里应该是定时器的配置。 到这里,我们的内核之旅就结束啦。下一章总结下这个内核的调度策略。 来源: https://blog.csdn.net/weixin_42060918/article/details/100122844

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

本秂侑毒 提交于 2019-11-28 14:58:56
原文: 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一般都是多核的,同样

python - 进程

流过昼夜 提交于 2019-11-28 11:29:47
一,理论知识 1,什么是进程 进程(Process)是计算机中的程序关于某数据集合上的一次运行活动, 是系统进行资源分配和调度的基本单位 ,是 操作系统 结构的基础。在早期面向进程设计的计算机结构中,进程是程序的基本执行实体;在当代面向线程设计的计算机结构中,进程是线程的容器。程序是指令、数据及其组织形式的描述,进程是程序的实体。 狭义定义:进程是正在运行的程序的实例(an instance of a computer program that is being executed)。 广义定义:进程是一个具有一定独立功能的程序关于某个数据集合的一次运行活动。它是 操作系统 动态执行的 基本单元 ,在传统的 操作系统 中,进程既是基本的 分配单元 ,也是基本的执行单元。 第一,进程是一个实体。每一个进程都有它自己的地址空间,一般情况下,包括文本区域(text region)、数据区域(data region)和堆栈(stack region)。文本区域存储处理器执行的代码;数据区域存储变量和进程执行期间使用的动态分配的内存;堆栈区域存储着活动过程调用的指令和本地变量。 第二,进程是一个“执行中的程序”。程序是一个没有生命的实体,只有处理器赋予程序生命时(操作系统执行之),它才能成为一个活动的实体,我们称其为进程。[3] 进程是操作系统中最基本、重要的概念。是多道程序系统出现后

操作系统

六眼飞鱼酱① 提交于 2019-11-28 08:15:25
文章目录 什么是操作系统 系统调度(分进程和线程) 进程的上下文切换 进程通信 管道 共享内存 信号量 消息队列 socket 死锁 内存管理 什么是内存 相对地址 绝对地址 逻辑地址 物理地址 线性地址 为什么要内存管理 虚拟内存 什么是缓存 缓存替换算法 内存管理方式 什么是操作系统 操作系统是管理和控制计算机硬件与软件资源的计算机程序。 操作系统主要有五大功能:处理机管理(CPU)、进程管理、内存管理、设备管理和文件系统管理。 系统调度(分进程和线程) 引起进程调度的原因有以下几类: (1)正在执行的进程执行完毕。 (2)执行中的进程自己调用阻塞原语将自己阻塞起来进入睡眠状态。 (3)执行中的进程调用了 P 原语操作,从而因资源不足而阻塞;或调用 V 原语操作激活了等待资源的进程队列。 (4)在分时系统中,当一进程用完一个时间片。 (5)就绪队列中某进程的优先级变得高于当前执行进程的优先级,也将引起进程调度。 进程的上下文切换 将CPU硬件状态从一个进程换到另一个进程的过程称为上下文切换,其实就是运行环境的切换。 进程运行时,其硬件状态保存在CPU上的寄存器中。寄存器有:程序计数器、程序状态寄存器、栈指针、通用寄存器、其他控制寄存器的值 进程不运行时,这些寄存器的值保存在进程控制块中;当操作系统要运行一个新的进程时,将进程控制块中相关值送到对应的寄存器中。 进程的内存布局

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

纵饮孤独 提交于 2019-11-28 07:41:46
原文: 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一般都是多核的,同样