|
1 |
| -大家好,我是 Guide 哥!很多读者抱怨计算操作系统的知识点比较繁杂,自己也没有多少耐心去看,但是面试的时候又经常会遇到。所以,我带着我整理好的操作系统的常见问题来啦!这篇文章总结了一些我觉得比较重要的操作系统相关的问题比如**进程管理**、**内存管理**、**虚拟内存**等等。 |
| 1 | +大家好,我是 Guide 哥! |
2 | 2 |
|
3 |
| -文章形式通过大部分比较喜欢的面试官和求职者之间的对话形式展开。另外,Guide 哥也只是在大学的时候学习过操作系统,不过基本都忘了,为了写这篇文章这段时间看了很多相关的书籍和博客。如果文中有任何需要补充和完善的地方,你都可以在评论区指出。如果觉得内容不错的话,不要忘记点个在看哦! |
| 3 | +很多读者抱怨计算操作系统的知识点比较繁杂,自己也没有多少耐心去看,但是面试的时候又经常会遇到。所以,我带着我整理好的操作系统的常见问题来啦!这篇文章总结了一些我觉得比较重要的操作系统相关的问题比如**进程管理**、**内存管理**、**虚拟内存**等等。 |
4 | 4 |
|
5 |
| -我个人觉得学好操作系统还是非常有用的,具体可以看我昨天在星球分享的一段话: |
6 |
| - |
7 |
| -<img src="https://my-blog-to-use.oss-cn-beijing.aliyuncs.com/2019-11/image-20200329145912767.png" height="666"/> |
| 5 | +文章形式通过大部分比较喜欢的面试官和求职者之间的对话形式展开。另外,Guide哥 也只是在大学的时候学习过操作系统,不过基本都忘了,为了写这篇文章这段时间看了很多相关的书籍和博客。如果文中有任何需要补充和完善的地方,你都可以在 issue 中指出! |
8 | 6 |
|
9 | 7 | 这篇文章只是对一些操作系统比较重要概念的一个概览,深入学习的话,建议大家还是老老实实地去看书。另外, 这篇文章的很多内容参考了《现代操作系统》第三版这本书,非常感谢。
|
10 | 8 |
|
| 9 | +开始本文的内容之前,我们先聊聊为什么要学习操作系统。 |
| 10 | + |
| 11 | +- **从对个人能力方面提升来说** :操作系统中的很多思想、很多经典的算法,你都可以在我们日常开发使用的各种工具或者框架中找到它们的影子。比如说我们开发的系统使用的缓存(比如 Redis)和操作系统的高速缓存就很像。CPU 中的高速缓存有很多种,不过大部分都是为了解决 CPU 处理速度和内存处理速度不对等的问题。我们还可以把内存可以看作外存的高速缓存,程序运行的时候我们把外存的数据复制到内存,由于内存的处理速度远远高于外存,这样提高了处理速度。同样地,我们使用的 Redis 缓存就是为了解决程序处理速度和访问常规关系型数据库速度不对等的问题。高速缓存一般会按照局部性原理(2-8 原则)根据相应的淘汰算法保证缓存中的数据是经常会被访问的。我们平常使用的 Redis 缓存很多时候也会按照 2-8 原则去做,很多淘汰算法都和操作系统中的类似。既说了 2-8 原则,那就不得不提命中率了,这是所有缓存概念都通用的。简单来说也就是你要访问的数据有多少能直接在缓存中直接找到。命中率高的话,一般表明你的缓存设计比较合理,系统处理速度也相对较快。 |
| 12 | +- **从面试角度来说** :尤其是校招,对于操作系统方面知识的考察是非常非常多的。 |
11 | 13 |
|
| 14 | +**简单来说,学习操作系统能够提高自己思考的深度以及对技术的理解力,并且,操作系统方面的知识也是面试必备。** |
| 15 | + |
| 16 | +关于如何学习操作系统,可以看这篇回答:[https://www.zhihu.com/question/270998611/answer/1640198217](https://www.zhihu.com/question/270998611/answer/1640198217)。 |
12 | 17 |
|
13 | 18 | ## 一 操作系统基础
|
14 | 19 |
|
|
35 | 40 |
|
36 | 41 | 🙋 **我** :介绍系统调用之前,我们先来了解一下用户态和系统态。
|
37 | 42 |
|
38 |
| - |
39 |
| - |
40 | 43 | 根据进程访问资源的特点,我们可以把进程在系统上的运行分为两个级别:
|
41 | 44 |
|
42 | 45 | 1. 用户态(user mode) : 用户态运行的进程可以直接读取用户程序的数据。
|
|
171 | 174 |
|
172 | 175 | 🙋 **我** :谢谢面试官!刚刚把这个给忘记了~
|
173 | 176 |
|
174 |
| -<img src="https://my-blog-to-use.oss-cn-beijing.aliyuncs.com/2019-11/6af89bc8gw1f8txoxc2asj20k00k0mxv.jpg" alt="这就很尴尬了_尴尬表情" height="200" width="200"/> |
175 |
| - |
176 | 177 | ### 3.3 快表和多级页表
|
177 | 178 |
|
178 | 179 | 👨💻**面试官** : 页表管理机制中有两个很重要的概念:快表和多级页表,这两个东西分别解决了页表管理中很重要的两个问题。你给我简单介绍一下吧!
|
|
211 | 212 |
|
212 | 213 | 🙋 **我** :
|
213 | 214 |
|
214 |
| -<img src="https://my-blog-to-use.oss-cn-beijing.aliyuncs.com/2019-11/de80a5ably1gcuslckpygg208c08cwfu.gif" height="200" width="200"></img> |
215 |
| - |
216 | 215 | 1. **共同点** :
|
217 | 216 | - 分页机制和分段机制都是为了提高内存利用率,较少内存碎片。
|
218 | 217 | - 页和段都是离散存储的,所以两者都是离散分配内存的方式。但是,每个页和段中的内存是连续的。
|
|
232 | 231 |
|
233 | 232 | 🙋 **我** :这部分我真不清楚!
|
234 | 233 |
|
235 |
| -<img src="https://my-blog-to-use.oss-cn-beijing.aliyuncs.com/2019-11/a9cf8ef6ly1fhqpdipcyfj20ce0b4wex.jpg .jpeg" height="300px" /> |
236 |
| - |
237 | 234 | 于是面试完之后我默默去查阅了相关文档!留下了没有技术的泪水。。。
|
238 | 235 |
|
239 | 236 | > 这部分内容参考了 Microsoft 官网的介绍,地址:<https://msdn.microsoft.com/zh-cn/library/windows/hardware/hh439648(v=vs.85).aspx>
|
|
0 commit comments