随笔分类 -  操作系统

深入剖析Linux IO原理和几种零拷贝机制的实现(转)
摘要:作者:零壹技术栈链接:https://zhuanlan.zhihu.com/p/83398714来源:知乎著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。 前言 零拷贝(Zero-copy)技术指在计算机执行操作时,CPU 不需要先将数据从一个内存区域复制到另一个内存区域,从而可 阅读全文

posted @ 2021-05-31 14:50 wsw_seu 阅读(112) 评论(0) 推荐(0) 编辑

硬盘LBA 和CHS的关系(转)
摘要:磁头数 × 磁道(柱面)数 × 每道扇区数 × 每扇区字节数 l 磁头(head)数:每个盘片一般有上下两面,分别对应1个磁头,共2个磁头;l 磁道(track)数:磁道是从盘片外圈往内圈编号0磁道,1磁道...,靠近主轴的同心圆用于停靠磁头,不存储数据;l 柱面(cylinder)数:同磁道数量; 阅读全文

posted @ 2019-03-20 16:14 wsw_seu 阅读(1682) 评论(0) 推荐(0) 编辑

银行家算法
摘要:死锁避免——银行家算法的应用背景 要想说银行家,首先得说死锁问题,因为银行家算法就是为了死锁避免提出的。那么,什么是死锁?简单的举个例子:俩人吃饺子,一个人手里拿着酱油,一个人手里拿着醋,拿酱油的对拿着醋的人说:“你把醋给我,我就把酱油给你”;拿醋的对拿着酱油的人说:“不,你把酱油给我,我把醋给你。 阅读全文

posted @ 2019-03-16 10:08 wsw_seu 阅读(378) 评论(0) 推荐(0) 编辑

GDT,LDT,GDTR,LDTR (转 侵删)
摘要:一、引入 保护模式下的段寄存器 由 16位的选择器 与 64位的段描述符寄存器 构成 段描述符寄存器: 存储段描述符 选择器:存储段描述符的索引 段寄存器(16位选择子,64为隐藏信息) 段寄存器(16位选择子,64为隐藏信息) 原先实模式下的各个段寄存器作为保护模式下的段选择器,80486中有6个 阅读全文

posted @ 2019-03-14 14:37 wsw_seu 阅读(882) 评论(0) 推荐(0) 编辑

Lamport面包店算法详解(转 侵删)
摘要:范例1: boolean choosing[n];表示进程是否在取号 int number[n];记录每个进程取到的号码 这些数据结构分别初始化为false和0,为了方便,定义如下符号: 若a<c或a==c和b<d同时成立,(a,b)<(c,d) do{ choosing[i] = true; nu 阅读全文

posted @ 2019-03-14 14:24 wsw_seu 阅读(3142) 评论(0) 推荐(0) 编辑

peterson算法(软件互斥 转)
摘要:1. 背景 首先,看个例子,进程P1,P2共用一个变量COUNT,初始值为0 1. 背景 首先,看个例子,进程P1,P2共用一个变量COUNT,初始值为0 因为P1,P2两个进程的执行顺序是随机的,可能顺序执行也可能是并发的,由图可见,不同的执行顺序,COUNT的值会不同,这是不允许的。 像这种情况 阅读全文

posted @ 2019-03-14 14:05 wsw_seu 阅读(2067) 评论(0) 推荐(0) 编辑

段选择子与段描述符结构(转)
摘要:段描述符和段选择子我想 C 语言你应该是学了很久了,那么我来定义一个数组。 // 一个 QWORD 是一个 8 字节的整数QWORD gdt[1024];很明显,这是一个能容纳 1024 个元素的数组。现在我来定义: gdt 数组中的每个元素都是一个段描述符数组的索引号是段选择子这个 gdt 数组被 阅读全文

posted @ 2019-03-13 10:15 wsw_seu 阅读(697) 评论(0) 推荐(0) 编辑

寄存器
摘要:ebp和esp是32位的SP,BPesp是堆栈指针ebp是基址指针ESP与SP的关系就象AX与AL,AH的关系.32位CPU所含有的寄存器有:4个数据寄存器(EAX、EBX、ECX和EDX)2个变址和指针寄存器(ESI和EDI) 2个指针寄存器(ESP和EBP)6个段寄存器(ES、CS、SS、DS、 阅读全文

posted @ 2019-03-12 16:50 wsw_seu 阅读(265) 评论(0) 推荐(0) 编辑

段寄存器
摘要:段寄存器是因为对内存的分段管理而设置的。 计算机需要对内存分段,以分配给不同的程序使用(类似于硬盘分页)。在描述内存分段时,需要有如下段的信息: 1.段的大小; 2.段的起始地址; 3.段的管理属性(禁止写入/禁止执行/系统专用等)。 需要用8个字节(64位)存储这些信息,但段寄存器只有16位,因此 阅读全文

posted @ 2019-03-08 21:01 wsw_seu 阅读(465) 评论(0) 推荐(0) 编辑

操作系统笔记
摘要: 阅读全文

posted @ 2019-03-05 16:38 wsw_seu 阅读(89) 评论(0) 推荐(0) 编辑

intelx86为何从0xFFFF0处执行
摘要:第一条指令的地址 在用户按下计算机电源开关之后,CPU会自动的将其CS寄存器设定为0xFFFF,将其IP寄存器设定为0x0000。由于CS:IP指出了下一条指令的地址[1],因此CPU会跳到0xFFFF:0x0000处进行执行。为什么是这个地址而不是其它地址呢?这其实是一个很巧妙的设计。 我们知道, 阅读全文

posted @ 2019-03-05 12:25 wsw_seu 阅读(1211) 评论(1) 推荐(1) 编辑

调度器简介,以及Linux的调度策略(转)
摘要:进程是操作系统虚拟出来的概念,用来组织计算机中的任务。但随着进程被赋予越来越多的任务,进程好像有了真实的生命,它从诞生就随着CPU时间执行,直到最终消失。不过,进程的生命都得到了操作系统内核的关照。就好像疲于照顾几个孩子的母亲内核必须做出决定,如何在进程间分配有限的计算资源,最终让用户获得最佳的使用 阅读全文

posted @ 2018-11-19 19:50 wsw_seu 阅读(251) 评论(0) 推荐(0) 编辑

判断机器是big-endian、little-endian
摘要:联合体union和大小端(big-endian、little-endian):下边示范了一种用途,代表四个含义的四个变量,但是可以用一个int来操作,直接int赋值,无论内存访问(指针大小的整数倍,访问才有效率),还是时间复杂度(一次和四次的区别,而且这四次有三次都是不整齐的地址),都会低一些。 1 #include 2 union var{ 3 char c[4];... 阅读全文

posted @ 2018-04-25 18:59 wsw_seu 阅读(236) 评论(0) 推荐(0) 编辑

程序、进程、线程概念简介
摘要:程序:完成特定功能的一系列有序指令的集合可执行文件代码段+数据段 进程:程序的一次动态执行过程代码段+数据段+堆栈段+PCB(进程控制块) 进程:动态的,短暂的,堆栈段+PCB 程序:数据段、永久的一个进程只能对应一个程序,一个程序可以对应多个进程 线程:是一个进程内部的控制序列。 进程与线程的区别 阅读全文

posted @ 2018-03-02 11:18 wsw_seu 阅读(865) 评论(0) 推荐(0) 编辑

常用进程调度算法(转)
摘要:首先了解一下作业与进程的区别: 一个进程是一个程序对某个数据集的执行过程,是分配资源的基本单位。作业是用户需要计算机完成的某项任务,是要求计算机所做工作的集合。一个作业的完成要经过作业提交、作业收容、作业执行和作业完成4个阶段。而进程是对已提交完毕的程序所执行过程的描述,是资源分配的基本单位。其主要 阅读全文

posted @ 2018-01-20 10:40 wsw_seu 阅读(203) 评论(0) 推荐(0) 编辑

系统调用全过程
摘要:系统调用(SYSTEM_CALL) OS内核中都有一组实现系统调用功能的过程,系统调用就是对上述过程的调用。编程人员利用系统调用,向OS提出服务请求,由OS代为完成。一般情况下进程是不能存取系统内核的。它不能存取内核使用的内存段也不能调用内核函数,CPU的硬件保证了这一点,只有系统调用是一个例外。 阅读全文

posted @ 2018-01-14 16:42 wsw_seu 阅读(380) 评论(0) 推荐(0) 编辑

ELF文件格式内容
摘要:在计算机科学中,是一种用于二进制文件、可执行文件、目标代码、共享库和核心转储格式文件。 ELF文件组成部分 ELF文件由4部分组成,分别是ELF头(ELF header)、程序头表(Program header table)、节(Section)和节头表(Section header table)。 阅读全文

posted @ 2018-01-14 09:54 wsw_seu 阅读(224) 评论(0) 推荐(0) 编辑

栈和堆的区别(转 知乎)
摘要:①管理方式:栈由编译器自动管理;堆由程序员控制,使用方便,但易产生内存泄露。 ②生长方向:栈向低地址扩展(即”向下生长”),是连续的内存区域;堆向高地址扩展(即”向上生长”),是不连续的内存区域。这是由于系统用链表来存储空闲内存地址,自然不连续,而链表从低地址向高地址遍历。 ③空间大小:栈顶地址和栈 阅读全文

posted @ 2018-01-12 15:43 wsw_seu 阅读(396) 评论(0) 推荐(0) 编辑

计算机乘法除法原理(原码 转载)
摘要:1.乘法 1.乘法 由于计算机中,所有数值都是用2的N次方来表示的:2^n0+2^n1+2^n2+2^n3+2^n4.....因此x*y,(x)*(2^n0+2^n1+2^n2+2^n3+2^n4)=(x*2^n0)+(x*2^n1)+(x*2^n2)+(x*2^n3)+(x*2^n4)+..... 阅读全文

posted @ 2018-01-10 10:35 wsw_seu 阅读(2432) 评论(0) 推荐(0) 编辑

进程和线程关系及区别
摘要:1.定义 进程是具有一定独立功能的程序关于某个数据集合上的一次运行活动,进程是系统进行资源分配和调度的一个独立单位. 线程是进程的一个实体,是CPU调度和分派的基本单位,它是比进程更小的能独立运行的基本单位.线程自己基本上不拥有系统资源,只拥有一点在运行中必不可少的资源(如程序计数器,一组寄存器和栈 阅读全文

posted @ 2017-12-15 18:20 wsw_seu 阅读(115) 评论(0) 推荐(0) 编辑

导航

< 2025年2月 >
26 27 28 29 30 31 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 1
2 3 4 5 6 7 8
点击右上角即可分享
微信分享提示