个人简介

Echo Blog


江湖无名 安心练剑
  • 操作系统学习-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
  • 操作系统学习-05-03-多线程冲突了怎么办?
    竞争与协作 在单核 CPU 系统里,为了实现多个程序同时运行的假象,操作系统通常以时间片调度的方式,让每个进程执行每次执行一个时间片,时间片用完了,就切换下一个进程运行,由于这个时间片的时间很短,于是就造成了「并发」的现象。 另外,操作系统也为每个进程创建巨大、私有的虚拟内存的假象,这种地址空间的抽象让每个程序好像拥有自己的内存,而实际上操作系统在背后秘密地让多个地址空间「复用」...
    2023-04-03 00:00:00 | Linux
  • 操作系统学习-05-02-进程间通讯
    进程间有哪些通信方式? 每个进程的用户地址空间都是独立的,一般而言是不能互相访问的,但内核空间是每个进程都共享的,所以进程之间要通信必须通过内核。 Linux 内核提供了不少进程间通信的机制,我们来一起瞧瞧有哪些? 管道 如果你学过 Linux 命令,那你肯定很熟悉「|」这个竖线。 $ ps auxf | grep mysql 上面命令行里...
    2023-04-03 00:00:00 | Linux