个人简介

Echo Blog


江湖无名 安心练剑
  • 操作系统学习-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
  • 操作系统学习-05-01-进程、线程基础知识
    进程、线程基础知识 先来看看一则小故事 我们写好的一行行代码,为了让其工作起来,我们还得把它送进城(进程)里,那既然进了城里,那肯定不能胡作非为了。 城里人有城里人的规矩,城中有个专门管辖你们的城管(操作系统),人家让你休息就休息,让你工作就工作,毕竟摊位不多,每个人都要占这个摊位来工作,城里要工作的人多着去了。 所以城管为了公平起见,它使用一种策略(调度)方式,给每个人一个固定的工...
    2023-04-03 00:00:00 | Linux