随笔分类 -  Linux

摘要:一、共享存储型多处理机模型 共享存储型多处理机模型有两种: 均匀存储器存取(Uniform-Memory-Access,简称UMA)模型 (一致存储器访问结构) 非均匀存储器存取(Nonuniform-Memory-Access,简称NUMA)模型 (非一致存储器访问结构) 二、UMA模型和NUMA 阅读全文
posted @ 2021-09-10 16:36 Mr-xxx 阅读(1849) 评论(0) 推荐(0)
摘要:一、阻塞 VS 挂起 阻塞与挂起都是进程的状态,但他们有一些相似之处,也有一些区别,下面先对他们进行概述,再进行比较 阻塞:正在执行的进程由于发生某时间(如I/O请求、申请缓冲区失败等)暂时无法继续执行。此时引起进程调度,OS把处理机分配给另一个就绪进程,而让受阻进程处于暂停状态,一般将这种状态称为 阅读全文
posted @ 2021-09-08 20:25 Mr-xxx 阅读(1182) 评论(1) 推荐(0)
摘要:一、OOM机制简介 Linux下面有个特性叫OOM killer(Out Of Memory killer),这个东西会在系统内存耗尽的情况下跳出来,选择性的干掉一些进程以求释放一些内存。相信广大从事Linux服务端编程的农民工兄弟们或多或少遇到过(人在江湖漂,哪有不挨刀啊)。典型的情况是:某天机器 阅读全文
posted @ 2021-09-05 16:35 Mr-xxx 阅读(10159) 评论(0) 推荐(0)
摘要:一、前言 在单核时代,大家所编写的程序都是单进程/单线程程序。随着计算机硬件技术的发展,进入了多核时代后,为了降低响应时间,重复充分利用多核cpu的资源,使用多进程编程的手段逐渐被人们接受和掌握。然而因为创建一个进程代价比较大,多线程编程的手段也就逐渐被人们认可和喜爱了。 记得在我刚刚学习线程进程的 阅读全文
posted @ 2021-09-03 16:12 Mr-xxx 阅读(160) 评论(0) 推荐(0)
摘要:一、中央处理器 1.1 简介 早期CPU由运算器和控制器组成,称为中央处理机。随着ULSI技术的发展,CPU芯片外部增加了一些逻辑功能部件,CPU越来越复杂,因此CPU基本部分有了运算器、cache、控制器三大部分,称为中央处理器。 1.2 CPU具有的功能 指令控制:由于程序是一个指令序列,这些指 阅读全文
posted @ 2021-08-28 20:22 Mr-xxx 阅读(2133) 评论(0) 推荐(0)
摘要:一、简介 which 查看可执行文件的位置 whereis 配合数据库查看文件的位置​ locate 配合数据库查看文件位置 find 实际搜寻硬盘查询文件名称 (find也可以根据文件大小-size 时间-atime 正则表达式-regex) 二、which 语法: [root @redhat~] 阅读全文
posted @ 2021-08-28 11:24 Mr-xxx 阅读(1051) 评论(0) 推荐(0)
摘要:本节我们将从linux启动的第一个进程说起,以及后面第一个进程是如何启动1号进程,然后启动2号进程。然后系统中所有的进程关系图做个简单的介绍 一、0号进程 0号进程,通常也被称为idle进程,或者也称为swapper进程。 0号进程是linux启动的第一个进程,它的task_struct的comm字 阅读全文
posted @ 2021-08-25 22:49 Mr-xxx 阅读(2836) 评论(0) 推荐(0)
摘要:一、引言 Linux Namespaces机制提供一种资源隔离方案。 PID,IPC,Network等系统资源不再是全局性的,而是属于特定的Namespace。每个Namespace里面的资源对其他Namespace都是透明的。要创建新的Namespace,只需要在调用clone时指定相应的flag 阅读全文
posted @ 2021-08-25 21:58 Mr-xxx 阅读(902) 评论(0) 推荐(0)
摘要:一、简介 调度算法是指:根据系统的资源分配策略所规定的资源分配算法。常见的进程调度算法有: 1.先来先去服务 2.时间片轮转法 3.多级反馈队列算法 4.最短进程优先 5.最短剩余时间优先 6.最高响应比优先 7.多级反馈队列调度算法 二、先来先去服务 先来先去服务调度算法是一种最简单的调度算法,也 阅读全文
posted @ 2021-08-22 11:32 Mr-xxx 阅读(437) 评论(0) 推荐(0)
摘要:一、计算机寄存器分类简介 32位CPU所含有的寄存器有: 4个数据寄存器(EAX、EBX、ECX和EDX) 2个变址寄存器(ESI和EDI) 2个指针寄存器(ESP和EBP) 6个段寄存器(ES、CS、SS、DS、FS和GS) 1个指令指针寄存器(EIP) 1个标志寄存器(EFlags) 二、数据寄 阅读全文
posted @ 2021-08-21 20:35 Mr-xxx 阅读(3739) 评论(0) 推荐(0)
摘要:一、前言 1.1 简介 Linux把物理内存划分为三个层次来管理: 层次 描述 存储节点(Node) CPU被划分为多个节点(node), 内存则被分簇, 每个CPU对应一个本地物理内存, 即一个CPU-node对应一个内存簇bank,即每个内存簇被认为是一个节点 管理区(Zone) 每个物理内存节 阅读全文
posted @ 2021-08-18 15:41 Mr-xxx 阅读(1048) 评论(0) 推荐(0)
摘要:一、前言 “自动根据CPU数目设置进程个数和绑定CPU亲缘性”。当时笔者对CPU亲缘性没有任何概念,当时作者只是下意识的打开了google并输入CPU亲缘性(CPU Affinity)简单了做了个了解。 后来,在笔者参加实际工作以后,就碰到了这么两个问题。 问题一:如何在SMP的系统中,保证某个特定 阅读全文
posted @ 2021-08-17 20:32 Mr-xxx 阅读(814) 评论(0) 推荐(0)
摘要:一、硬中断 由与系统相连的外设(比如网卡、硬盘)自动产生的。主要是用来通知操作系统系统外设状态的变化。比如当网卡收到数据包的时候,就会发出一个中断。我们通常所说的中断指的是硬中断(hardirq)。 硬中断是外部设备对CPU的中断; 硬中断是由硬件产生的,比如,像磁盘,网卡,键盘,时钟等。每个设备或 阅读全文
posted @ 2021-08-17 17:19 Mr-xxx 阅读(1417) 评论(0) 推荐(0)
摘要:一、概述 内存描述符的结构体——mm_struct,抽象的来描述linux下进程的地址空间的所有的信息。 一个进程的虚拟地址空间主要由两个数据结来描述。一个是最高层次的:mm_struct,一个是较高层次的:vm_area_structs。最高层次的mm_struct结构描述了一个进程的整个虚拟地址 阅读全文
posted @ 2021-08-16 21:26 Mr-xxx 阅读(1286) 评论(0) 推荐(0)
摘要:一、简介 进程上下文和中断上下文是操作系统中很重要的两个概念,这两个概念在操作系统课程中不断被提及,是最经常接触、看上去很懂但又说不清楚到底怎么回事。造成这种局面的原因,可能是原来接触到的操作系统课程的教学总停留在一种浅层次的理论层面上,没有深入去研究。 处理器总处于以下状态中的一种: 1、内核态, 阅读全文
posted @ 2021-08-16 19:46 Mr-xxx 阅读(664) 评论(0) 推荐(0)
摘要:一、SPARC SPARC(Scalable Processor ARChitecture,可扩展处理器架构)是国际上流行的RISC处理器体系架构之一, SPARC如今已发展成为一个开放的标准,任何机构或个人均可研究或开发基于SPARC架构的产品,而无需交纳版权费。SPARC 处理器架构具备精简指令 阅读全文
posted @ 2021-08-16 17:16 Mr-xxx 阅读(1142) 评论(0) 推荐(0)
摘要:一、什么是原子操作? 所谓原子操作,就是"不可中断的一个或一系列操作" 。 1.1 硬件级的原子操作 在单处理器系统(UniProcessor)中,能够在单条指令中完成的操作都可以认为是" 原子操作",因为中断只能发生于指令之间。这也是某些CPU指令系统中引入了test_and_set、test_a 阅读全文
posted @ 2021-08-16 17:09 Mr-xxx 阅读(1727) 评论(0) 推荐(0)
摘要:一、管程 1.1 简介 管程可以视为一个线程安全的数据结构,其内部提供了互斥与同步操作,向外提供访问共享数据的专用接口(接口被称为管程的过程),通过管程提供的接口即可达成共享数据的保护与线程间同步。 使用管程,可以简化线程间互斥、同步的编码复杂度(否则需自己控制互斥、同步机制,并保证正确),可以集中 阅读全文
posted @ 2021-08-15 10:35 Mr-xxx 阅读(703) 评论(0) 推荐(0)
摘要:一、简介 1.1 POSIX AIO POSIX AIO是一个用户级实现,它在多个线程中执行正常的阻塞I/O,因此给出了I/O异步的错觉.这样做的主要原因是: 它适用于任何文件系统 它(基本上)在任何操作系统上工作(请记住,gnu的libc是可移植的) 它适用于启用了缓冲的文件(即没有设置O_DIR 阅读全文
posted @ 2021-08-10 21:34 Mr-xxx 阅读(713) 评论(0) 推荐(0)
摘要:一、介绍 .plt的作用是一个跳板,保存了某个符号在重定位表中的偏移量(用来第一次查找某个符号)和对应的.got.plt的对应的地址 .rel.dyn重定向表,在程序启动时就需要重定位完成。 .rel.plt保存了重定位表的信息,可以使用lazy的连接方式 .got据说是保存了elf文件本身的各个符 阅读全文
posted @ 2021-07-29 17:02 Mr-xxx 阅读(894) 评论(0) 推荐(0)