操作系统
Tattoo_Welkin
Just do it !!!
展开
-
操作系统总结之磁盘管理
磁盘存储器具有容量大、存取速度快、支持随机存取的特点,因此被广泛应用于计算机系统中。对于操作系统来说,管理好磁盘的三大要求和目标是: (1)合理有效利用磁盘:采用合理的文件存储空间分配算法,尽量减少磁盘碎片,提高硬盘的利用率; (2)提高磁盘的I/O速度:采用缓存等技术,提供访问速度; (3)提高磁盘可靠性:采用冗余和纠错检错等技术,保证磁盘的数据不会被破坏。1. 外存的组织方...原创 2018-07-08 23:03:30 · 9353 阅读 · 0 评论 -
只说一件事之 Linux 异步 I/O-AIO
文章目录API 函数struct aiocbaio_read的使用实例(aio_write的使用与之类似)aio_suspend 异步阻塞IOlio_listio 同时发起多个异步IO请求深入理解Linux内核异步IO阅读API 函数struct aiocb/* Asynchronous I/O control block. */struct aiocb{ int aio_fil...原创 2019-04-17 14:01:03 · 708 阅读 · 0 评论 -
线程同步的"手段"
文章目录进程的三种状态:运行,就绪,阻塞锁互斥量读写锁自旋锁条件变量屏障异步信号关于信号量1.内核信号量,由内核控制路径使用2.用户态信号量分为两种,一种为POSIX,另一种为 SYSTEM VPOSIX 信号量与SYSTEM V信号量的对比POSIX信号量详解进程的三种状态:运行,就绪,阻塞锁互斥量在访问共享资源前对互斥量进行加锁,在访问完成后释放互斥量.对互斥量进行加锁后,任何其他...原创 2019-03-24 16:50:37 · 628 阅读 · 0 评论 -
进程间通信-内存映射的原理与共享内存
文章目录子进程与父进程信号管道消息队列共享内存子进程与父进程子进程继承父进程的用户号UIDs和用户组号GIDs环境Environment堆栈共享内存打开文件的描述符执行时关闭(Close-on-exec)标志信号(Signal)控制设定进程组号当前工作目录根目录文件方式创建屏蔽字资源限制控制终端子进程独有的进程号PID不同的父进程号自己的文件描述符和目...原创 2019-03-26 22:09:24 · 3340 阅读 · 0 评论 -
[操作系统]虚拟内存机制
文章目录物理和虚拟寻址物理寻址虚拟寻址地址空间虚拟内存作为缓存主存作为磁盘缓存的组织结构页表页命中缺页(其实就是缓存不命中,想想学过的缓存知识)分配页面:程序中malloc是如何工作的?局部性(页的不命中,开销真的很大)虚拟内存作为内存管理的工具简化链接:简化加载:简化共享:简化内存分配:虚拟内存作为内存保护的工具加入高速缓存后的结构TLB PTE的缓存,放在CPU里面,很快,全相联高速缓存(只有...原创 2019-03-23 17:21:06 · 1023 阅读 · 0 评论 -
深入理解计算机链接
文章目录编译驱动程序(其实就是那一套流程)静态链接链接器必须完成两个主要任务:链接器操作的目标文件究竟是什么?符号和符号表(由编译器构造,每一个可重定位目标文件都有一张符号表,作用就是表示每一个符号对应的信息(比如:函数?外部符号?全局符号?))符号表的结构:链接器终于开始工作了1 符号解析(开始链接器的第一个任务)2 重定位可执行目标文件格式(一个典型的ELF可执行文件)如何加载可执行目标文件库...原创 2019-03-18 17:28:06 · 1206 阅读 · 0 评论 -
聊聊计算机缓存
文章目录缓存缓存不命中缓存不命中的几种情况:我们不科普,直接从告诉缓存开始哦!!!最小的缓存:CPU 寄存器先解释一下高速缓存行,组,块的区别:行:行要比块要大,因为行中有有效位和标记位+块(通常行和块互换使用)组:是一个或者多个行块:是一个固定大小的信息包,在高速缓存和主存之间来回传送。缓存块一般是越靠近CPU越小,可能就会以字节为单位进行复制拷贝,越靠近底层越大缓存不...原创 2019-03-18 11:58:12 · 1675 阅读 · 1 评论 -
进程.线程,协程
文章目录异常:异常如何处理(异常向量表):异常分类:Linux系统调用的本质-陷阱(陷入内核)进程线程进程与线程的联系:进程与线程的区别协程协程与进程,线程的区别每次从一条指令过渡到另外一条指令的过程称为控制转移,这样的一个控制转移序列叫做控制流,如果每条指令都是相邻的,这样的过渡就是平滑序列。如果一条指令与另外一条指令不相邻,这样突发性的过渡称为异常,也就是我们这一章要学到的异常控制流(Ex...原创 2019-08-04 14:08:09 · 227 阅读 · 0 评论 -
[Linux操作系统分析]内存分配算法-伙伴和slab
先行阅读:Linux 内存管理机制(内核空间层面分析)内部碎片与外部碎片在内存管理中内部碎片是已经被分配出去(能明确指出属于哪个进程)的内存空间,却不能被利用的内存空间.(就是已经被分配出去的内存空间大于请求所需的内存空间,而导致有些内存自己不使用,别的也不能使用)外部碎片是指还没有分配出去,但是由于大小太小而无法分配给申请空间的新进程的内存空间空闲块。伙伴,别名Buddy(较好的解...转载 2019-03-10 22:15:59 · 2720 阅读 · 0 评论 -
Linux 内存管理机制(内核空间层面分析)
文章目录页区内存页分配接口页的分配页的释放内存字节分配接口kmallocvmalloc不同之处在于,kmalloc分配的是`虚拟地址连续,物理地址也连续`的一片区域,vmalloc分配的是`虚拟地址连续,物理地址不一定连续的一片区域`。管理page的算法-Buddy由来:Buddy 算法是什么?查看自己系统的页面情况Slab 分配器由来:Slab 分配器的作用?Slab 分配器是什么?这里讲到的高...原创 2019-02-22 18:28:12 · 2250 阅读 · 1 评论 -
深入理解 Linux 文件系统
Linux 下一切转载 2019-02-21 23:48:42 · 1902 阅读 · 0 评论 -
Linux中CPU是如何访问到内存的?--MMU最基本原理(转)
什么是MMU?摘自维基百科: 内存管理单元(英语:memory management unit,缩写为MMU),有时称作分页内存管理单元(英语:paged memory management unit,缩写为PMMU)。它是一种负责处理中央处理器(CPU)的内存访问请求的计算机硬件。它的功能包括虚拟地址到物理地址的转换(即虚拟内存管理)[1]、内存保护、中央处理器高速缓存的控制,在较为简单...转载 2019-01-25 19:16:19 · 639 阅读 · 1 评论 -
linux 内核源码 fork 解读
前言,记得某一次开会的时候,学长学姐就说过让我们去看fork源码,结果一直没有时间去看(其实是懒),这不,正好碰上这次开进程的讲座,就在讲座之前看了一波源码,也算是了了一波自己阅读源码的心愿 。 首先我们得基本了解一下,task_struct 与 thread_info结构是怎么一回事。1. linux中的PCB的实体(task_struct)其实标题已经说的很清楚了。它就是...原创 2018-08-01 17:21:40 · 3823 阅读 · 4 评论 -
操作系统总结之文件管理
一:主要内容:概述文件的逻辑结构 ( 顺序文件,索引文件,索引顺序文件,直接文件和哈希文件 ) 外存分配方式文件目录管理文件存储空间管理文件系统的可靠性和安全性文件系统的数据一致性控制文件管理,由于系统的内存有限并且不能长期保存,故平时总是把它们以文件的形式存放在外存中,需要时再将它们调入内存。如何高效的对文件进行管理是操作系统实现的目标。二:文件和文件系统...原创 2018-07-07 16:11:32 · 41917 阅读 · 14 评论 -
操作系统总结之 输入输出系统(下)
1. 缓冲管理为什么引入缓冲? (不想说了)I/O缓冲方式1. 单缓冲 块设备输入时, 输入到缓冲区的时间为T, OS将数据从缓冲区传到用户区的时间为M, CPU处理这块数据的时间为C; 显然T和C是可以并行的。 2. 双缓冲 为了加快I/O速度提高设备利用率,又引入了双缓冲机制(缓冲对换 Buffer Swapping); 如果C“<”T, 块...原创 2018-07-11 11:30:46 · 1069 阅读 · 0 评论 -
操作系统总结之 输入输出系统(上)
主要内容:1 I/O系统的组成2 I/O 控制方式3 缓冲管理4 设备分配5 设备驱动6 磁盘存取设备管理1. I/O系统的基本功能隐藏物理设备的细节与设备的无关性提高处理机和I/O设备的利用率对I/O设备进行控制确保对设备的正确共享错误处理说明:1,2是为了方便用户使用I/O设备。3,4是用于提高CPU与I/O设备的利用率。5,6是为了用...原创 2018-07-11 10:36:12 · 3809 阅读 · 0 评论 -
操作系统总结之内存管理(除虚拟内存管理)
1 存储器的层次结构CPU 寄存器 寄存器主存 高速缓存 主存 磁盘缓存辅存 磁盘 可移动存储介质寄存器,高速缓存,主存,磁盘缓存属于操作系统存储管理,掉电后其信息不再存在辅存和可移动存储介质 属于设备管理(因此会涉及中断,设备驱动程序和物理设备的运行),存储的信息被长期保存1.1 主存储器和寄存器主存储器 用于保存进程运行时的程序和数据,...转载 2018-07-02 23:14:35 · 2630 阅读 · 0 评论 -
详解缓冲区溢出
文章目录内存对齐内存对齐系数为什么需要内存对齐?段错误的原理缓冲区溢出的原理攻击手段导致缓冲区溢出的常见 C 和 C++ 错误防止缓冲区溢出的一些技术重要选择:静态和动态分配的缓冲区实例研究内存对齐内存对齐系数说道内存对齐,就不得不说内存对齐系数, 对齐系数最简单的设置方法是使用#pragma pack(n) 进行设置为什么需要内存对齐?尽管内存是以字节为单位,但是大部分处理器并不是按...原创 2019-09-27 16:16:33 · 3146 阅读 · 0 评论