个人简介

Echo Blog


江湖无名 安心练剑
  • 操作系统学习-07-02-进程写文件时,进程发生了崩溃,已写入的数据会丢失吗?
    键盘敲入 A 字母时,操作系统期间发生了什么? 键盘可以说是我们最常使用的输入硬件设备了,但身为程序员的你,你知道「键盘敲入A 字母时,操作系统期间发生了什么吗」? 那要想知道这个发生的过程,我们得先了解了解「操作系统是如何管理多种多样的的输入输出设备」的,等了解完这个后,我们再来看看这个问题,你就会发现问题已经被迎刃而解了。 设备控制器 我们的电脑设备可以接非常多的输入输出设备...
    2023-04-03 00:00:00 | Linux
  • 操作系统学习-07-02-进程写文件时,进程发生了崩溃,已写入的数据会丢失吗?
    Q 大概就是,进程写文件(使用缓冲 IO)过程中,写一半的时候,进程发生了崩溃,已写入的数据会丢失吗? 答案,是不会的。 因为进程在执行 write (使用缓冲 IO)系统调用的时候,实际上是将文件数据写到了内核的 page cache,它是文件系统中用于缓存文件数据的缓冲,所以即使进程崩溃了,文件数据还是保留在内核的 page cache,我们读数据的时候,也是从内核的 page...
    2023-04-03 00:00:00 | Linux
  • 操作系统学习-07-01-文件系统全家桶
    大纲 文件系统的基本组成 文件系统是操作系统中负责管理持久数据的子系统,说简单点,就是负责把用户的文件存到磁盘硬件中,因为即使计算机断电了,磁盘里的数据并不会丢失,所以可以持久化的保存文件。 文件系统的基本数据单位是文件,它的目的是对磁盘上的文件进行组织管理,那组织的方式不同,就会形成不同的文件系统。 Linux 最经典的一句话是:「一切皆文件」,不仅普通的文件和目录,就连块设备...
    2023-04-03 00:00:00 | Linux
  • 操作系统学习-06-01-进程调度/页面置换/磁盘调度算法
    进程调度/页面置换/磁盘调度算法 最近,我偷偷潜伏在各大技术群,因为秋招在即,看到不少小伙伴分享的大厂面经。 然后发现,操作系统的知识点考察还是比较多的,大厂就是大厂就爱问基础知识。其中,关于操作系统的「调度算法」考察也算比较频繁。 所以,我这边总结了操作系统的三大调度机制,分别是「进程调度/页面置换/磁盘调度算法」,供大家复习,希望大家在秋招能斩获自己心意的 offer。 进程...
    2023-04-03 00:00:00 | Linux
  • 操作系统学习-05-07-线程崩溃了,进程也会崩溃吗?
    Carsh 很多同学就好奇,为什么 C/C++ 语言里,线程崩溃后,进程也会崩溃,而 Java 语言里却不会呢? 刚好看到朋友(公众号:码海 (opens new window))写了一篇:「美团面试题:为什么线程崩溃崩溃不会导致 JVM 崩溃?」 我觉得写的很好,所以分享给大家一起拜读拜读,本文分以下几节来探讨: 线程崩溃,进程一定会崩溃吗 进程...
    2023-04-03 00:00:00 | Linux
  • 操作系统学习-05-06-一个进程最多可以创建多少个线程?
    接着,来看看读者那个面经题目:一个进程最多可以创建多少个线程? 这个问题跟两个东西有关系: 进程的虚拟内存空间上限,因为创建一个线程,操作系统需要为其分配一个栈空间,如果线程数量越多,所需的栈空间就要越大,那么虚拟内存就会占用的越多。 系统参数限制,虽然 Linux 并没有内核参数来控制单个进程创建的最大线程个数,但是有系统级别的参数来控制整个系统的最...
    2023-04-03 00:00:00 | Linux
  • 操作系统学习-05-05-什么是悲观锁、乐观锁?
    什么是悲观锁、乐观锁? 生活中用到的锁,用途都比较简单粗暴,上锁基本是为了防止外人进来、电动车被偷等等。 但生活中也不是没有 BUG 的,比如加锁的电动车在「广西 - 窃·格瓦拉」面前,锁就是形同虚设,只要他愿意,他就可以轻轻松松地把你电动车给「顺走」,不然打工怎么会是他这辈子不可能的事情呢?牛逼之人,必有牛逼之处。 那在编程世界里,「锁」更是五花八门,多种多样,每种锁的加锁开销以及应...
    2023-04-03 00:00:00 | Linux
  • 操作系统学习-05-04-怎么避免死锁?
    怎么避免死锁? 面试过程中,死锁也是高频的考点,因为如果线上环境真多发生了死锁,那真的出大事了。 这次,我们就来系统地聊聊死锁的问题。 死锁的概念; 模拟死锁问题的产生; 利用工具排查死锁问题; 避免死锁问题的发生; 死锁的概念 在多线程编程中,我们为了防止多线程竞争共享资源而导致数据错乱,都会在操作共享资源之前加上互斥锁,只有成功获得到锁的线程,才能操作共享资源,获取不到锁的线程...
    2023-04-03 00:00:00 | Linux