CSAPP

2019-11-07  本文已影响0人  世界上的一道风

进程

进程是操作系统对一个正在运行的程序的一种抽象。
并发运行,则是说一个进程的指令与另一个进程的指令是交错执行的。
一个CPU看上去在并发地执行多个进程, 这是通过处理器在进程间切换实现的。
操作系统实现这种交错执行的机制成为上下文切换。上下文切换,即保存当前进程的上下文,恢复新进程的上下文。

线程

一个进程由多个线程组成,每个线程都运行在进程的上下文中,并共享同样的代码和全局数据。

多线程优势:多线程之间比多进程之间更容易共享数据,而且多线程更高效。

1、进程和线程以及它们的区别

2、进程间的通信的几种方式

3、线程同步的方式

4、什么是死锁?死锁产生的条件?

死锁的处理基本策略和常用方法

解决死锁的基本方法主要有 预防死锁、避免死锁、检测死锁、解除死锁 、鸵鸟策略等。

死锁避免的基本思想

死锁避免的基本思想是动态地检测资源分配状态,以确保循环等待条件不成立,从而确保系统处于安全状态。

所谓安全状态是指:如果系统能按某个顺序为每个进程分配资源(不超过其最大值),那么系统状态是安全的,换句话说就是,如果存在一个安全序列,那么系统处于安全状态。资源分配图算法和银行家算法是两种经典的死锁避免的算法,其可以确保系统始终处于安全状态。其中,资源分配图算法应用场景为每种资源类型只有一个实例(申请边,分配边,需求边,不形成环才允许分配),而银行家算法应用于每种资源类型可以有多个实例的场景。

死锁解除

死锁解除的常用两种方法为进程终止和资源抢占。所谓进程终止是指简单地终止一个或多个进程以打破循环等待,包括两种方式:终止所有死锁进程和一次只终止一个进程直到取消死锁循环为止;所谓资源抢占是指从一个或多个死锁进程那里抢占一个或多个资源,此时必须考虑三个问题:1、选择一个牺牲品;2、回滚:回滚到安全状态;3、 饥饿(在代价因素中加上回滚次数,回滚的越多则越不可能继续被作为牺牲品,避免一个进程总是被回滚)。

5、进程有哪几种状态?

image.png

6、线程有几种状态?

7、分页和分段有什么区别(内存管理)?

8、操作系统中进程调度策略有哪几种?

9、说一说进程同步有哪几种机制

10、什么是虚拟内存?

虚拟内存允许执行进程不必完全在内存中。虚拟内存的基本思想是:每个进程拥有独立的地址空间,这个空间被分为大小相等的多个块,称为页(Page),每个页都是一段连续的地址。
这些页被映射到物理内存,但并不是所有的页都必须在内存中才能运行程序。当程序引用到一部分在物理内存中的地址空间时,由硬件立刻进行必要的映射;当程序引用到一部分不在物理内存中的地址空间时,由操作系统负责将缺失的部分装入物理内存并重新执行失败的命令。。这样,对于进程而言,逻辑上似乎有很大的内存空间,实际上其中一部分对应物理内存上的一块(称为帧,通常页和帧大小相等),还有一些没加载在内存中的对应在硬盘上,如图5所示。

image.png

页面置换算法

虚拟内存的应用与优点

内存的发展历程

1、没有内存抽象(单进程,除去操作系统所用的内存之外,全部给用户程序使用) —> 有内存抽象(多进程,进程独立的地址空间,交换技术(内存大小不可能容纳下所有并发执行的进程)
2、连续内存分配(固定大小分区(多道程序的程度受限),可变分区(首次适应,最佳适应,最差适应),碎片) —> 不连续内存分配(分段,分页,段页式,虚拟内存)

v2-6cbe0ce1ed6a7336de891e9f83ad4269_r.jpg


参考:
版权声明:本文为CSDN博主「书呆子Rico」的原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接及本声明。
https://blog.csdn.net/justloveyou_/article/details/78304294

上一篇 下一篇

猜你喜欢

热点阅读