操作系统
文章平均质量分 64
很重要
咕噜咕噜崩
理想还是要有的
展开
-
操作系统IO过程与零拷贝
南桥中的DMA控制器是个什么东西?我们曾经在硬件基础知识中讲过:CPU直接从磁盘/网卡中读/写取数据到内核(操作系统)缓冲区【磁盘高速缓存(PageCache)】会降低CPU效率,而这个工作CPU会交给南桥中的DMA控制器完成的。当我们要将磁盘中的文件发送到互联网时,操作系统是怎么做的?我的程序很简单:两个系统调用:syscall.Read(fd int, p []byte)syscall.Write(fd int, p []byte)但这两个系统调用背后发生的事情却不简单:– 两个原创 2021-12-12 17:10:11 · 492 阅读 · 0 评论 -
硬件基础知识
CPU指令架构X桌面端:x86(i386 32位)、x64(x86-64 AMD64 64位)移动端:ARM(32位)、ARM64(64位)南桥从外存中加载数据到内存,实际是由南桥做的,在加载过程中,数据、地址总线是与CPU交替使用的!南桥也是一种新芯片,DMAC是集成在南桥的一个控制器!DMAC以中断机制的方式告知CPU IO完成JVM内存GC机制三种清理算法:标记-清理标记-整理复制E区:Eden 伊甸园 创造新生命的地方S区:Survive 幸存注:每个对象都原创 2021-08-05 13:04:57 · 181 阅读 · 0 评论 -
协程与多路复用IO
协程原创 2021-08-04 23:49:32 · 748 阅读 · 0 评论 -
操作系统中其他
死锁死锁预防释放资源一次性发放资源顺序访问资源死锁避免对文件的基础操作都需要系统调用(特权指令)原创 2021-07-29 20:49:13 · 61 阅读 · 0 评论 -
操作系统的内存
指令运行原理CPU将取来的数据暂时放在寄存器中:虚拟内存程序员是面向虚拟内存进行编程的缺页属于内中断分页/分段内存管理逻辑地址对应物理地址分别是页表和段表进行记录的!!!(记录数据是否在内存中,在的话在内存中哪里?!)【其实数据查找会先去快表中查,没有的话才去页表中查。】快表:是一种特殊的高速缓冲存储器(Cache),内容是页表中的一部分或全部内容。(一般是在已经加载到内存中的数据!!!)分页管理: 在页式存储管理中,将程序的逻辑地址划分为固定大小的页(page),而物理内存划分为同原创 2021-07-29 19:30:02 · 309 阅读 · 0 评论 -
操作系统中的调度
操作系统中的调度中级调度当当前内存无法对某进程分配资源时,会将该进程的资源调到外存,让该进程处于挂起状态【当然,进程的PCB仍然会在内存中!】低级调度【进程调度】 ★★★★★总结高级调度:从后备队列中第一次调度作业分配PCB;作业完成后会被调出,并回收资源。进程调度【低级调度】注意:进程时间片用完,会被进程调度调出总结调度算法不只是进程调度【低级调度】,还适用作业调度【高级调度】。先来先服务(FCFS)短作业优先(SJF)高响应比优先(HRRN)时间片轮转原创 2021-07-29 11:52:53 · 163 阅读 · 0 评论 -
操作系统☞进程/线程
PCB:进程控制块TCB:线程控制块进程的组成多个进程在操作系统中的组织方式进程的特征进程的三种状态初创+终止状态进程控制进程的切换是原语实现【原子性执行(开中断、关中断实现的)】切换指令由操作系统内核程序控制的,属于特权指令(所以需要CPU转换为核心态后进行进程状态切换)进程通信共享存储管道通信消息传递线程内核级线程注意:内核级线程才是系统调度的基本单位...原创 2021-07-28 19:11:08 · 223 阅读 · 0 评论 -
操作系统概述
pc指针指向内存中一条代码,通过数据总线,最终将代码加载到cpu中进行运算。汇编语言汇编语言是一种低级计算机编程语言。C语言等都是高级语言。重排序:编译器和处理器为了提高程序的运行性能,对指令进行重新排序。C语言等高级语言会被重排序,而汇编语言不会。...原创 2021-07-28 13:55:14 · 275 阅读 · 0 评论 -
C语言速成
C语言生成可执行文件过程编译器gcc1、预处理过程(头文件的包涵,去掉注释,宏展开)—#include 预处理过程不做语法检查命令:gcc -E helloworld.c -o helloworld.i2、 编译:编译过程做语法检查 生成汇编语言命令:gcc -S helloworld.i -o helloworld.s3、汇编:将汇编语言生成对应的二进制数据命令:gcc -c helloworld.s -o helloworld.o4、链接:添加对应操作系统可以执行的链接,生成可执行文件.原创 2021-08-08 00:09:05 · 1441 阅读 · 1 评论