操作系统
文章平均质量分 81
人工智
个人记录博客,不推荐阅读
展开
-
计算机IO系列「一」零拷贝技术
上文我们知道了计算机IO的过程:具体过程:用户进程调用 read 方法,向操作系统发出 I/O 请求,请求读取数据到自己的内存缓冲区中,进程进入阻塞状态; 操作系统收到请求后,进一步将 I/O 请求发送 DMA,然后让 CPU 执行其他任务; DMA 进一步将 I/O 请求发送给磁盘; 磁盘收到 DMA 的 I/O 请求,把数据从磁盘读取到磁盘控制器的缓冲区中,当磁盘控制器的缓冲区被读满后,向 DMA 发起中断信号,告知自己缓冲区已满; DMA 收到磁盘的信号,将磁盘控制器缓冲区中的数.转载 2021-12-24 00:15:15 · 396 阅读 · 0 评论 -
操作系统系列「一」OPERATING SYSTEMS THREE EASY PIECES 《操作系统导论》
OPERATING SYSTEMS THREE EASY PIECES全书中文版:https://github.com/remzi-arpacidusseau/ostep-translations/tree/master/chinese本书作者是美国威斯康星大学计算机系教授(夫妇),美国计算机OS教育领域的名宿,经常在美国各个大学应邀客座。作者坚持开放教材的理念,英文原版在国外盛名日隆,不仅CS学生,湾区技术界的读者也很推崇这本书,评价为“最好的开放式操作系统教材”。内容提要前言..原创 2021-08-01 18:05:09 · 5414 阅读 · 0 评论 -
TCP
背景操作系统通信过程解释一下tcp协议传输控制层面向连接的?利用三次握手来建立连接(是传输控制层做,由内核完成)。保证接受和发送是通畅的,光通没有,要为对方开辟资源,为对方进行服务。 四次分手来分开连接:我要和你断开连接,我知道了,我也想跟你断开,我听到了。开始断开释放资源。 socket:是客户端ip+port+ 服务端ip+port的四元组(socket表)port:0-65535,可靠协议?确认机制保证通畅 发送的数据包是有序的网络层ip+路由表ip和掩码按位.原创 2021-05-30 16:27:44 · 96 阅读 · 1 评论 -
计算机IO系列(二)BIO/NIO/多路复用实现
在前一篇文章中,我们讲了内核态和用户态,我们知道计算机中的涉及硬件操作如网络通信的是调用内核的系统调用来实现的。我们运行一段服务端socket监听程序(典型的阻塞IO场景):我们知道server.accept是阻塞的,如果没有连接连上来就会一直等待不会往下执行。同时我们是道reader.readLIne也是阻塞的,不写入东西也不会往下执行。所以我们new了个线程,可以达到同时监听多个连接的目的。其实网络通信过程中的系统调用:前面两个函数的阻塞的根因是因为内核的accept和recv的原创 2021-05-24 22:48:46 · 815 阅读 · 6 评论 -
CPU分时、中断和上下文切换
准备知识:实时和分时嵌入式操作系统可以分为实时操作系统和分时操作系统两类。我们现实之中使用的绝大多数是分时操作系统,比如windows或者linux。但是比如汽车就必须使用实时操作系统,举一个经常使用的实例,中高档汽车中使用的气囊。当报告车辆碰撞的传感器中断CPU后,操作系统应快速地分配展开气囊的任务,并且不允许任何其他非实时处理进行干扰,晚一秒钟展开气囊比没有气囊的情况更糟糕,这就是一个典型的必须使用硬实时的系统。而最近特斯拉处于风口浪尖,刹车不灵,就是因为刹车辅助系统没有及时开启,因为他使用的原创 2021-05-23 16:27:42 · 2081 阅读 · 0 评论 -
计算机硬件组成
内存主要分为两部分:RAM原创 2021-04-28 23:52:48 · 344 阅读 · 0 评论 -
线程/协程/异步的编程模型(CPU利用率为核心)
最近看了一个b站博主的视频https://www.bilibili.com/video/av64066246/讲到了线程/协程/异步的编程模型,这里做下记录1.线程上篇文章有聊到进程和线程的关系,但是没有涉及到更低层的原理,这里刚好可以将其补充上我们知道进程是组织资源的最小单位,而线程是安排CPU执行的最小单位。引进线程是为了更好地共享资源。我们也知道在多线程编程模型中,由于cpu是分时复用的,所以线程上下文会涉及到很多次在用户态和内核态的上下文切换。操作系统为了保护自己严格控制用户程序的资.原创 2021-04-08 22:59:45 · 528 阅读 · 0 评论 -
关于CPU指标的解释
背景:最近在定位性能问题的时候,用监控发现很多指标看不懂,这里总结一下cpu监控指标UserUser表示:CPU一共花了多少比例的时间运行在用户态空间或者说是用户进程(running user space processes)。典型的用户态空间程序有:Shells、数据库、web服务器……SystemSystem的含义与User相似。System表示:CPU花了多少比例的时间在内核空间运行。分配内存、IO操作、创建子进程……都是内核操作。这也表明,当IO操作频繁时,System参..原创 2021-03-28 16:07:43 · 692 阅读 · 1 评论 -
操作系统中的进程与线程和java中的线程
简介 在传统的操作系统中,进程拥有独立的内存地址空间和一个用于控制的线程。但是,现在的情况更多的情况下要求在同一地址空间下拥有多个线程并发执行。因此线程被引入操作系统。为什么需要线程? 如果非要说是为什么需要线程,还不如说为什么需要进程中还有其它进程。这些进程中包含的其它迷你进程就是线程。 线程之所以说是迷你进程,是因为线程和进程有很多相似之处,比如线程和进程的状态都有运行,就绪,阻塞状态。这几种状态理解起来非常简单,当进程所需的资源没有到位时会是阻塞状态,当进程所需的资源...原创 2020-07-06 23:13:57 · 413 阅读 · 0 评论