操作系统
文章平均质量分 58
菜瓜_牛顿
枪如惊雷,照一身肝胆
展开
-
*cache伪共享
CPU 缓存架构CPU 缓存可以分为一级缓存,二级缓存,三级缓存,每一级缓存中所储存的全部数据都是下一级缓存的一部分。当 CPU 要读取一个数据时,首先从一级缓存中查找,如果没有找到再从二级缓存中查找,如果还是没有就从三级缓存或内存中查找。一般来说,每级缓存的命中率大概都在 80%左右,也就是说全部数据量的 80%都可以在一级缓存中找到,只剩下 20%的总数据量才需要从二级缓存、三级缓存或内存中读取。越靠近 CPU 的缓存越快也越小。所以 L1 缓存很小但很快,紧接着 L2 大一些,也会慢一些,L3原创 2021-08-19 17:31:34 · 307 阅读 · 0 评论 -
*零拷贝
1 用户态和内核态用户态:处于用户态执行时,进程所能访问的内存空间和对象收到限制,其所处于占有的处理器是可被抢占的。 内核态:处于内核态执行时,能访问所有内存空间和对象,且所占有的处理器是不允许被抢占的。2 什么是零拷贝:零拷贝通过尽量避免拷贝操作来缓解 CPU 的压力。。Linux 下常见的零拷贝技术可以分为两大类:一是针对特定场景,去掉不必要的拷贝;二是去优化整个拷贝的过程。由此看来,零拷贝并没有真正做到“0”拷贝,它更多是一种思想。拷贝流程(图 借用网上的)读:进程发起read原创 2020-05-25 17:11:25 · 321 阅读 · 0 评论 -
select poll epoll
1 进程切换一个进程的运行到另一个进程的运行,中间需要经历的切换:1. 保存处理机上下文,包括程序计数器和其他寄存器。 2. 更新PCB(进程控制块)信息, 3. 把进程的PCB移入相应的队列,如就绪、在某事件阻塞等队列。 4. 选择另一个进程执行,并更新其PCB。 5. 更新内存管理的数据结构。 6. 恢复处理机上下文。2 文件描述符:是一个用于表述指向文件的引用的抽象化概念。文件描述符在形式上是一个非负整数。实际上,它是一个索引值,指向内核为每一个进程所维护的该进程打开文件的记录原创 2020-05-25 15:04:33 · 184 阅读 · 0 评论 -
linux 常用命令
1.查看cup使用情况监控cpu的:运行队列,cup使用率,上下文切换每个核运行队列最好不要超过3,保证洗呢进程可以得到资源;cup使用了 user空间65~70%,system在30%,空闲0~5%左右。(1)top其中cpu: %us用户程序占用cpu使用率; %sy 内核程序; %ni 用户程序通过nice调度过程的cpu使用率 ...原创 2018-09-30 17:36:07 · 185 阅读 · 0 评论 -
Linux:grep命令
Linux系统中grep命令是一种强大的文本搜索工具,它能使用正则表达式搜索文本,并把匹 配的行打印出来,它的使用权限是所有用户。grep的工作方式是这样的,它在一个或多个文件中搜索字符串模板。如果模板包括空格,则必须被引用,模板后的所有字符串被看作文件名。搜索的结果被送到标准输出,不影响原文件内容。grep可用于shell脚本,因为grep通过返回一个状态值来说明搜索的状态,如果原创 2017-08-03 22:03:40 · 266 阅读 · 0 评论 -
*页面置换算法
在请求分页存储管理系统中,由于使用了虚拟存储管理技术,使得所有的进程页面不是一次性地全部调入内存,而是部分页面装入。这就有可能出现下面的情况:要访问的页面不在内存,这时系统产生缺页中断。操作系统在处理缺页中断时,要把所需页面从外存调入到内存中。如果这时内存中有空闲块,就可以直接调入该页面;如果这时内存中没有空闲块,就必须先淘汰一个已经在内存中的页面,腾出空间,再把所需的页面装入,即进行页面原创 2017-04-13 11:35:08 · 4565 阅读 · 3 评论 -
内核态与用户态
1.定义内核态和用户态是操作系统的两种运行级别,内核态:一个运行在内核模式的进程可以执行指令集中的任何指令,并且可以访问系统中的任何存储位置,换句话说,当一个进程通过系统调用、中断、异常陷入执行异常代码时,我们就称进程处于内核状态用户态:用户模式中的进程不允许执行特权指令,比如停止处理器、改变模式位、或者发起一个IO操作,运行在用户态的程序不能直接访问操作系统的数据和程序,进程所处的处原创 2017-03-24 21:32:17 · 1218 阅读 · 0 评论 -
物理地址、虚拟地址、逻辑地址、线性地址、虚拟内存
1.物理地址用于内存芯片级的单元寻址,与处理器和CPU连接的地址总线相对应。在实地址模式(因为实模式没有分段或分页机制,Cpu不进行自动地址转换)下,程序员操作的就是物理地址,所谓的物理地址就是物理内存上的32位地址,即物理地址可以直接定位到物理内存上的位置,无论任何操作,最终都必须要得到物理地址才能在物理内存上进行操作.2.虚拟地址操作系统都提供了虚拟内存(virtual mem原创 2017-04-13 15:55:04 · 3094 阅读 · 0 评论 -
动态链接库和静态链接库
1 静态链接库静态链接库:静态链接库中包含了实际执行代码、地址符号表等,是一个或者多个obj文件的打包,如果链接的静态库有错,它会准确找到是哪个obj有错。当我们的应用工程使用静态链接库时,静态链接库需要参与编译,在生成执行文件之前的链接过程中,静态链接库中的全部指令直接链接入可执行文件,因此,在可执行文件生成以后,静态链接库.lib文件即可弃之不用。lib中的指令全部包含在Exe可执原创 2017-04-13 11:04:28 · 327 阅读 · 0 评论 -
临界区和互斥器的区别
1、临界区critical section临界区线程同步在Windows核心编程中被称为关键段线程同步,关键段是一小段代码,它在执行之前需要独占对一些资源的访问权。缺点:能且只能用在一个进程中的多线程同步。可能陷入死锁,因为我们无法为进入关键段的线程设置最大等待时间。 2、互斥器 mutex互斥器(Mutexes)的用途和临界区(critical section原创 2017-04-13 10:16:31 · 2069 阅读 · 0 评论 -
虚拟内存
1、什么是进程(Process)和线程(Thread)?有何区别? 进程是具有一定独立功能的程序关于某个数据集合上的一次运行活动,进程是系统进行资源分配和调度的一个独立单位。线程是进程的一个实体,是CPU调度和分派的基本单位,它是比进程更小的能独立运行的基本单位。线程自己基本上不拥有系统资源,只拥有一点在运行中必不可少的资源(如程序计数器,一组寄存器和栈),但是它可与同属一个进程的其他的转载 2017-04-13 09:02:06 · 409 阅读 · 0 评论 -
Window内存管理方式:页式 段式 段页式
Windows内存管理方式主要分为:页式管理、段式管理和段页式管理首先看一下“基本的存储分配方式”种类: 1. 离散分配方式的出现 由于连续分配方式会形成许多内存碎片,虽可通过“紧凑”功能将碎片合并,但会付出很大开销。于是出现离散分配方式:将一个进程直接分散地装入到许多不相邻的内存分区中。原创 2017-04-12 17:18:45 · 6062 阅读 · 0 评论 -
*进程和线程
1、进程进程是程序的一次执行,是系统进行资源分配的一个基本单元。每个进程都有自己的进程空间(虚空间)进程包括:进程控制块(PCB)、程序、数据、工作区(1)PCB:记录进程的标识、状态和控制信息,是进程的唯一标识,操作系统对进程控制和管理的方式PCB在内存中以表的形式存储,PCB表,标志着进程的存在,操作系统根据系统中是否有该进程的进程控制块PCB而知道该进程存在与否。系统建立原创 2017-04-12 10:59:54 · 368 阅读 · 0 评论