本文基于 Linux-2.6.26 版本 什么是进程调度 一般来说,在操作系统中会运行多个进程(几个到几千个不等),但一台计算机的 CPU 资源是有限的,如 8 核的 CPU 只能同时运行 8 个进程。...为了解决这个问题,Linux 实现了 组调度 这个功能。那么什么是 组调度 呢? 组调度 的实质是:调度时候不再以进程作为调度实体,而是以 进程组 作为调度实体。...如下图所示: cgroup 相关的知识点可以参考文章:《cgroup介绍》 和 《cgroup实现原理》 在 Linux 系统启动时,会创建一个根进程组 init_task_group。...在分析之前,为了对 完全公平调度算法 有个大体了解,建议先看看这篇文章:《Linux完全公平调度算法 》。 1. 进程组 在 Linux 内核中,使用 task_group 结构表示一个进程组。...Linux 调度的时候,就是从上而下(从根进程组开始)地筛选出最优的进程进行运行。 2.
想一想,进程调度其实是一个非常复杂的问题,想使用一种算法来实现良好的进程调度是不可能的,Linux内核实现了好几种调度算法。...SCHED_FIFO 1 #define SCHED_RR 2 #define SCHED_BATCH 3 #define SCHED_IDLE 5 #define SCHED_DEADLINE 6 Linux
每当我们操作文本编辑器的时候,要快速让文本编辑器处于运行状态,在我们没有操作文本编辑器的时候,应该尽量让视频剪辑器运行 这就是进程调度解决的问题,这也是衡量一个操作系统的优秀与否的一个重要指标 本篇文章讲解Linux...很明显,这一部分需要具体的调度算法来实现,Linux将调度算法的实现抽象成调度类 在滴答定时器的中断处理中,通过调度类去实现相应的计算,然后判断current进程是否需要被抢占,如果需要被抢占,那么就在...current进程设置需要重新调度的标志,如下图所示: 实时上,Linux内核的调度类不仅仅只有一个,因为内核同时实现了多种调度算法,但是我们这里强调总体框架,暂不讨论这里细节问题 到此,进程切换的第一步设置
6 、图解快速搭建Linux集群 6.1 集群概念 根据百度的解释: 集群是一组相互独立的、通过高速网络互联的计算机,它们构成了一个组,并以单一系统的模式加以管理。
最好具备一些Linux编程的基础,比如,如何打开一个文件;如何读写一个文件;如何关闭一个文件等等。 什么是Page Cache? Page Cache到底是属于内核还是属于用户?...怎么观察Page Cache 在Linux上直接查看Page Cache的方式: /proc/meminfo free /proc/vmstat 命令 内容其实是一致的。
之前我写过有关 Linux 文件系统源码分析的文章,但从源码角度分析文件系统略显枯燥(对新手不友好),所以这次主要通过图文的方式来讲解 Linux 文件系统的原理,而不用陷入源代码的深渊之中。...在 Linux 内核中,每个数据块定义为 4KB 的大小,所以一个 128GB 的硬盘可以分为 33554432 个数据块,内核就是以数据块的编号来对硬盘进行读写操作的。...为了让用户在使用上更方便和直观,Linux 内核抽象出两个概念来管理硬盘中的数据:文件(File) 和 目录(Directory)。 文件:用于保存数据。...四、总结 本文通过 MINIX 这种简单的文件系统来介绍怎么设计一个文件系统,虽然 Linux 系统有多种文件系统,但其基本思想都是怎么有效地管理硬盘的数据。
如下图所示: 但由于 Linux 内核有个名为 内存页反向映射 的功能,所以内存整理就变得简单起来。 接下来,我们将会分析内存碎片整理的原理与实现。...注:本文使用的是 Linux-2.6.36 版本的内存 1. 内存碎片整理时机 当要申请多个地址联系的内存页时,如果申请失败,将会进行内存碎片整理。
概述 本文主要阐述内核(linux-3.12)的文件系统预读设计和实现。
如图获取到安装包地址:https://nodejs.org/dist/v13.11.0/node-v13.11.0-linux-x64.tar.xz 2....安装Node 下载 wget https://nodejs.org/dist/v13.11.0/node-v13.11.0-linux-x64.tar.xz 解压 tar -xvf node-v13.11.0...-linux-x64.tar.xz 进目录 cd node-v13.11.0-linux-x64/bin 测试是否安装成功 ....加软链 添加 node,npm软链 ln -s /www/node-v13.11.0-linux-x64/bin/node /usr/local/bin/node ln -s /www/node-v13.11.0...-linux-x64/bin/npm /usr/local/bin/npm 测试 cd ~ node -v ?
本文使用 Linux-2.6.23 内核作为分析对象。 1. 环形缓冲区(Ring Buffer) 在内核中,管道 使用了环形缓冲区来存储数据。...如下图所示: 在 Linux 内核中,使用了 16 个内存页作为环形缓冲区,所以这个环形缓冲区的大小为 64KB(16 * 4KB)。...管道对象 在 Linux 内核中,管道使用 pipe_inode_info 对象来进行管理。
作者:icoder.long 编辑:良许Linux 链接: https://blog.csdn.net/xulong_08/article/details/81463054 Linux是目前应用最广泛的服务器操作系统...linux不仅可以长时间的运行我们编写的程序代码,还可以安装在各种计算机硬件设备中,如手机、路由器等,Android程序最底层就是运行在linux系统上的。 一、linux的目录结构 ?...)系统管理员安装临时文件系统的安装点 boot 存放用于系统引导时使用的各种文件 tmp (temporary)用于存放各种临时文件 var (variable)用于存放运行时需要改变数据的文件 二、linux...2.4 文件权限操作 linux文件权限的描述格式解读 ?...三、linux系统常用快捷键及符号命令 ? 四、vim编辑器 vi / vim是Linux上最常用的文本编辑器而且功能非常强大。只有命令,没有菜单,下图表示vi命令的各种模式的切换图。 ?
一张图解决你所有Linux命令:
linux下彻底卸载mysql 图解教程 http://blog.itblood.com/completely-uninstall-the-mysql-under-linux-graphic-tutorials.html
那么,当可用内存不足时,Linux 内核是怎么处理的呢? 本文将会介绍,当可用内存不足时,Linux 内核的处理方式。...本文使用 Linux-2.6.23 版本内核。 swap 这个单词是 交换 的意思,顾名思义就是把某些进程所占用的内存交换(写入)到硬盘,然后把内存释放给操作系统,这样操作系统就有更多可用的内存。...为了解决这个问题,Linux 内核引入了 LRU内存淘汰算法,用过 Memcached 或者 Redis 的同学应该都了解过 LRU算法。...在 Linux 内核中,每个 内存区(zone) 都会维护着一个 active_list 和一个 inactive_list。...LRU算法状态流转 我们最后以一张状态流转图来描述 LRU 算法的过程: 三、总结 本文主要介绍了 Linux 内核内存回收过程中使用的 LRU 算法的原理,在下一篇文章中,我们将会介绍 Linux
文章目录 写在前面 Redis概述 Windows安装 Linux安装 写在前面 ---- ? Redis概述 ---- Redis是什么?...session服务器 分布式锁 消息队列(发布订阅系统) 计时器、计数器(浏览量) 排行榜、点赞、签到等应用 Windows安装 ---- 首先官方是不推荐Windows部署的,是由微软维护,所以版本会落后Linux...至此Redis就部署成功了,还是Windows简单(小声bb ) Linux安装 ---- (也可以宝塔一键傻瓜安装 ) 到官网下载最新版本 ? 用Xftp上传文件(/opt目录下) ?
社区版下载. image.png 下载完成后,打开FTP工具,登录进去后,将安装包上传到/root 目录下 (进入应该默认就是这个目录) image.png 解压安装包 tar zxvf mongodb-linux-x86..._64-amazon-4.2.7.tgz image.png 将解压的文件移动到 /usr/local 目录下并重命名为mongodb mv mongodb-linux-x86_64-amazon-4.2.7
而很多时候,如果你对Linux底层的理解不深的话,遇到很多线上性能瓶颈你会觉得狗拿刺猬,无从下手。 我们今天用图解的方式,来深度理解一下在Linux下网络包的接收过程。...本文基于Linux 3.10,源代码参见https://mirrors.edge.kernel.org/pub/linux/kernel/v3.x/,网卡驱动采用Intel的igb网卡举例。...Linux实现的是链路层、网络层和传输层这三层。 在Linux内核实现中,链路层协议靠网卡驱动来实现,内核协议栈来实现网络层和传输层。内核对更上层的应用层提供socket接口来供用户进程访问。...二 Linux启动 Linux驱动,内核协议栈等等模块在具备接收网卡数据包之前,要做很多的准备工作才行。...这块相对比较简单,剩下大部分的戏份都是由Linux内核其它模块来表演了。 首先在开始收包之前,Linux要做许多的准备工作: 1.
Linux 内核一开始提供了 read 与 write 阻塞式操作。...此时,Linux 内核一开始提供了 read 与 write 非阻塞式操作,可以通过socket设置SOCK_NONBLOCK标记 。...从这里可以看出来 socket Linux 2.6.27内核开始支持非阻塞模式。 问题 同理,当出现了很多的客户端连接,比如1000个,那就会触发1000次系统调用。...此时,Linux 内核一开始提供了 select 操作,可以把1000次的系统调用,简化为一次系统调用,轮询发生在内核空间。...再比如Java中的MappedByteBuffer底层在Linux就是mmap。 sendfile: ?
“试着尽量用图示来表示个人对内容的理解,不足之处,还望不吝指教。” 一. CPU 1. cpu与指令集 CPU分为运算器和控制器 CPU指令 特权指令 拥有管...
领取专属 10元无门槛券
手把手带您无忧上云