@@ -293,6 +293,18 @@ IO多路复用(IO Multiplexing)是指单个进程/线程就可以同时处
293
293
- 异步IO(Asynchronous IO):用户线程发出IO请求之后,继续执行,由内核进行数据的读取并放在用户指定的缓冲区内,在IO完成之后通知用户线程直接使用。
294
294
</details >
295
295
296
+ ##### 什么是用户态和内核态?
297
+ <details >
298
+ <summary >展开</summary >
299
+
300
+ 为了限制不同程序的访问能力,防止一些程序访问其它程序的内存数据,CPU划分了用户态和内核态两个权限等级。
301
+
302
+ - 用户态只能受限地访问内存,且不允许访问外围设备,没有占用CPU的能力,CPU资源可以被其它程序获取;
303
+ - 内核态可以访问内存所有数据以及外围设备,也可以进行程序的切换。
304
+
305
+ 所有用户程序都运行在用户态,但有时需要进行一些内核态的操作,比如从硬盘或者键盘读数据,这时就需要进行系统调用,使用** 陷阱指令** ,CPU切换到内核态,执行相应的服务,再切换为用户态并返回系统调用的结果。
306
+ </details >
307
+
296
308
### 什么是死锁?
297
309
298
310
在两个或者多个并发进程中,每个进程持有某种资源而又等待其它进程释放它们现在保持着的资源,在未改变这种状态之前都不能向前推进,称这一组进程产生了死锁(deadlock)。
@@ -342,8 +354,54 @@ IO多路复用(IO Multiplexing)是指单个进程/线程就可以同时处
342
354
- 利用杀死进程:强制杀死某些进程直到死锁解除为止,可以按照优先级进行。
343
355
</details >
344
356
357
+ ### 什么是虚拟内存?
358
+ 每个程序都拥有自己的地址空间,这个地址空间被分成大小相等的页,这些页被映射到物理内存;但不需要所有的页都在物理内存中,当程序引用到不在物理内存中的页时,由操作系统将缺失的部分装入物理内存。这样,对于程序来说,逻辑上似乎有很大的内存空间,只是实际上有一部分是存储在磁盘上,因此叫做虚拟内存。
359
+
360
+ 虚拟内存的优点是让程序可以获得更多的可用内存。
361
+
362
+ ##### 如何进行地址空间到物理内存的映射?
363
+ <details >
364
+ <summary >展开</summary >
365
+
366
+ 内存管理单元(MMU)管理着地址空间和物理内存的转换,其中的页表(Page table)存储着页(程序地址空间)和页框(物理内存空间)的映射表。一个虚拟地址分成两个部分,一部分存储页面号,一部分存储偏移量。
367
+ </details >
368
+
369
+ ### 有哪些页面置换算法?
370
+
371
+
372
+ <details >
373
+ <summary >局部性原理</summary >
374
+
375
+ - 时间上:最近被访问的页在不久的将来还会被访问;
376
+ - 空间上:内存中被访问的页周围的页也很可能被访问。
377
+ </details >
378
+
379
+ <details >
380
+ <summary >什么是颠簸现象</summary >
381
+
382
+ 颠簸本质上是指频繁的页调度行为。进程发生缺页中断时必须置换某一页。然而,其他所有的页都在使用,它置换一个页,但又立刻再次需要这个页。因此会不断产生缺页中断,导致整个系统的效率急剧下降,这种现象称为颠簸。内存颠簸的解决策略包括:
383
+
384
+ - 修改页面置换算法;
385
+ - 降低同时运行的程序的数量;
386
+ - 终止该进程或增加物理内存容量。
387
+ </details >
388
+
389
+ ### 磁盘调度
390
+ 过程:磁头(找到对应的盘面);磁道(一个盘面上的同心圆环,寻道时间);扇区(旋转时间)。为减小寻道时间的调度算法:
391
+
392
+ - 先来先服务
393
+ - 最短寻道时间优先
394
+ - 电梯算法:电梯总是保持一个方向运行,直到该方向没有请求为止,然后改变运行方向。
395
+
345
396
### 参考
346
397
- [ 进程间通信IPC -- 简书] ( https://www.jianshu.com/p/c1015f5ffa74 )
347
398
- [ 面试/笔试第二弹 —— 操作系统面试问题集锦 - CSDN博客] ( https://blog.csdn.net/justloveyou_/article/details/78304294 )
348
399
- [ 线程同步与并发 - - SegmentFault] ( https://segmentfault.com/a/1190000018970361 )
349
- - [ 彻底搞懂epoll高效运行的原理] ( http://baijiahao.baidu.com/s?id=1641172494287388070&wfr=spider&for=pc )
400
+ - [ 彻底搞懂epoll高效运行的原理] ( http://baijiahao.baidu.com/s?id=1641172494287388070&wfr=spider&for=pc )
401
+
402
+ ### 待完成
403
+ - [ ] IPC
404
+ - [ ] 进程同步问题:生产者-消费者问题...
405
+ - [ ] 并发、并行、异步的区别
406
+ - [ ] 银行家算法
407
+ - [ ] 文件与文件系统、文件管理?
0 commit comments