操作系统
操作系统内核相关原理,偏向原理方面。例如虚拟内存以及进程原理。
JiahongWu
追求卓越的程序员。
展开
-
拥塞控制算法
TCP拥塞控制算法的目的可以简单概括为:公平竞争、充分利用网络带宽、降低网络延时、优化用户体验,然而就目前而言要实现这些目标就难免有权衡和取舍。算法分类基于丢包策略的传统拥塞控制算法的几个迭代版本,如图所示:与此同时还有一类算法是基于RTT延时策略来进行控制的,但是这类算法在发包速率上可能不够激进,竞争性能不如其他算法,因此在共享网络带宽时有失公平性,但是算法速率曲线却是很平滑基于链路容量的拥塞控制:实时测量网络带宽和时延,认为网络上报文总量大于带宽时延乘积时出现了拥塞,如 BBR。基于学习的原创 2020-11-18 16:09:56 · 1229 阅读 · 0 评论 -
Linux虚拟内存与分页存储管理
虚拟存储器作为现代操作系统中存储器管理的一项重要技术,实现了内存扩充功能。**但该功能并非是从物理上实际地扩大内存的容量,而是从逻辑上实现对内存容量的扩充,让用户所感觉到的内存容量比实际内存容量大得多。**于是便可以让比内存空间更大的程序运行,或者让更多的用户程序并发运行。这样既满足了用户的需要,又改善了系统的性能。虚拟内存是操作系统物理内存和进程之间的中间层,它为进程隐藏了物理内存这一概念,为进程提供了更加简洁和易用的接口以及更加复杂的功能。我们可以将虚拟内存看作是在磁盘上一片空间,当这片空间中的一原创 2020-11-14 15:56:44 · 804 阅读 · 0 评论 -
Select、Poll、Epoll详解
同步异步与阻塞非阻塞用户空间和内核空间操作系统为了支持多个应用同时运行,需要保证不同进程之间相对独立(一个进程的崩溃不会影响其他的进程 , 恶意进程不能直接读取和修改其他进程运行时的代码和数据)。 因此操作系统内核需要拥有高于普通进程的权限, 以此来调度和管理用户的应用程序。于是内存空间被划分为两部分,一部分为内核空间,一部分为用户空间,内核空间存储的代码和数据具有更高级别的权限。内存访问的相关硬件在程序执行期间会进行访问控制( Access Control),使得用户空间的程序不能直接读写内核空间的原创 2020-08-30 16:54:33 · 1427 阅读 · 2 评论 -
Linux Socket接口使用方法
Linux内核net/socket.c定义了一套socket的操作api。图1展示了socket层所处与TCP/IP协议栈之上和应用层之下。socket()函数socket函数对应于普通文件的打开操作。普通文件的打开操作返回一个文件描述字,而**socket()**用于创建一个socket描述符(socket descriptor),它唯一标识一个socket。这个socket描述字跟文件描述字一样,后续的操作都有用到它,把它作为参数,通过它来进行一些读写操作。int socket(int doma原创 2020-08-28 00:43:42 · 816 阅读 · 0 评论 -
Linux内存管理方式
本质上是一种内存的划分方法分页存储管理这种方式中,将用户程序的地址空间,注意,是用户程序的地址空间分为若干个固定大小的区域,成为“页”或“页面”。我们可以知道,这也页其实是不存在的,只是一种划分内存空间的方法。也就是说,这种方式将用户的程序**“肢解”**了,分成很多个小的部分,每个部分称为一个“页”。逻辑地址将逻辑地址的前n位作为页号,后面32-n位作为页内偏移量。页内碎片由于进程的最后一页经常装不满一个块,从而形成了不可利用的碎片,称之为**“页内碎片”**。页表作用:实现页号到.原创 2020-08-19 23:23:55 · 253 阅读 · 0 评论 -
Linux编辑利器-Vim
在大学时代,Vim 的大名就已如雷贯耳,但由于它陡峭的学习曲线,一直望而却步。等真正开始学习之后,发现并没有想象中的复杂,也没有所谓的瓶颈,只要在实际写代码中强迫自己使用就可以了,无形中就会形成习惯。 ——GeekPlux三种模式正常模式以 vim 打开一个档案就直接进入一般模式了(这是默认的模式)。正常模式可以使用快捷键。编辑模式按下i, I, o, O, a, A, r, R等任何一个字母之后才会进入编辑模式, 一般来说按i即可.原创 2020-07-25 20:39:56 · 134 阅读 · 0 评论 -
Linux简单命令与Shell
Linux目录结构及解释查看命令行执行完位置:echo $BASH命令记录mkdirmkdir命令 用来创建目录。语法:mkdir (选项)(参数)主要选项:-m<目标属性>或–mode<目标属性>建立目录的同时设置目录的权限;-p或–parents 若所要建立目录的上层目录目前尚未建立,则会一并建立上层目录;参数:指定要创建的目录列表,多个目录之间用空格隔开。创建多层目录:mkdir a/b/c/dchmodchmod命令用来变更文件或目录原创 2020-07-25 20:38:15 · 96 阅读 · 0 评论