操作系统复习(updating)

2023-07-31,,

操作系统复习updating

1、进程和线程的区别是什么?

1)调度:进程是操作系统资源分配的基本单位,而线程是处理器任务调度和执行的基本单位

2)拥有资源:不论是传统操作系统还是设有线程的操作系统,进程都是拥有资源的基本单位,而线程不拥有系统资源,但是线程可以访问其隶属的进程的系统资源。

3)并发性:在引入线程的操作系统中,不仅进程可以并发执行,线程也可以并发执行

4)系统开销:由于创建和撤销进程的时候,系统都要为之分配或回收资源,因此操作系统所付出的开销要远大于撤销或创建线程的开销

5)地址空间和其他资源:进程的而地址空间之间互相独立,同一进程的各线程间共享进程的资源,某进程内的线程对于其他进程不可见

6)通信方向:进程间通信需要进程同步和互斥手段的辅助,而线程之间可以直接读/写进程数据段(如全局变量)来通信。

2、什么是分段和分页内存管理?它们之间的区别和优缺点是什么?

3、物理内存和虚拟内存的区别是什么?

物理内存:当打开程序的时候,系统会将这些程序加载到内存上。

虚拟内存:虚拟的不是物理内存,而是代表物理内存形式存储的功能,物理内存的运行程序的功能是无法用虚拟内存来完成的。

物理内存和虚拟内存的关系:当运行程序过多的时候,物理内存不够用的时候,系统会将一部分硬盘空间当内存使用,这部分空间就是虚拟内存。

每个线程会获得4GB的空间(32位系统)

4、什么是协程?

5、进程间通信的方式有哪些?

    管道pipe:管道是一种半双工的通信方式,数据只能单向流动,而且只能在具有亲缘关系的进程间使用。进程的亲缘关系通常是指父子进程关系。
    命名管道FIFO:有名管道也是半双工的通信方式,但是它允许无亲缘关系进程间的通信。
    消息队列MessageQueue:消息队列是由消息的链表,存放在内核中并由消息队列标识符标识。消息队列克服了信号传递信息少、管道只能承载无格式字节流以及缓冲区大小受限等缺点。
    共享存储SharedMemory:共享内存就是映射一段能被其他进程所访问的内存,这段共享内存由一个进程创建,但多个进程都可以访问。共享内存是最快的 IPC 方式,它是针对其他进程间通信方式运行效率低而专门设计的。它往往与其他通信机制,如信号量,配合使用,来实现进程间的同步和通信。
    信号量Semaphore:信号量是一个计数器,可以用来控制多个进程对共享资源的访问。它常作为一种锁机制,防止某进程正在访问共享资源时,其他进程也访问该资源。因此,主要作为进程间以及同一进程内不同线程之间的同步手段。
    套接字Socket:套解口也是一种进程间通信机制,与其他通信机制不同的是,它可用于不同及其间的进程通信。
    信号 ( sinal ) : 信号是一种比较复杂的通信方式,用于通知接收进程某个事件已经发生。

6、死锁产生的原因?如何解决死锁?有哪些死锁算法?

死锁的概念:所谓死锁,是指多个进程因竞争自愿而造成的一种僵局(互相等待),若无外力作用,这些进程都将无法向前推进。

在操作系统中,死锁出现是指:若干进程因竞争资源而无限等待其他进程释放已占有的资源

6.1、死锁产生的原因:

系统资源的竞争:注意,只有不可剥夺资源的竞争才可能产生死锁,对可剥夺资源的竞争是不会引起死锁的。
进程推进顺序非法:进程在运行过程中,请求和释放资源的顺序不当,也同样会导致死锁
死锁产生的必要条件:
互斥条件
不剥夺条件
请求并保持条件
循环等待条件

6.2、 如何解决死锁?

为使系统不发生死锁,必须设法破坏产生死锁的4个必要条件之一,或允许死锁产生,但是当死锁发生时能检测出死锁,并有能力实现恢复。

破坏互斥条件
破坏不剥夺条件
破坏请求并保持条件:采用预先静态分配法
破坏循环等待条件:顺序资源分配法,给系统中的资源编号,规定每个进程必须按照编号递增的顺序请求资源,同类资源一次申请完。


1)资源剥夺法:挂起某些死锁线程,并抢占它的资源,将这些资源分配给其他的死锁进程。但因防止被挂起的进程长时间得不到资源而处于资源匮乏的状态。

2)撤销进程法:强制撤销部分甚至全部死锁进程并剥夺这些进程的资源。撤销的原则可以按进程优先级和撤销进程代价的高低进行。

3)进程回退法:让一个或多个进程回退到足以回避死锁的地步,进程回退时资源释放资源而非被剥夺。

6.3、银行家算法、系统有序分配算法、死锁检测算法、资源分配图化简法。

银行家算法是著名的死锁避免算法:

进程运行之前先声明对各种资源的最大需求量,当进程在执行中继续申请资源的时候,先测试该进程已占用的资源数与本次申请的资源数之和是否超过该进程声明的最大需求量。若超过则拒绝分配资源,若未超过则再次测试系统现存的资源能否满足该进程尚需的最大资源量,若能满足则按照当前的申请量分配资源,否则也要推迟分配。

7、用户态和核心态(区别、切换方式)

8、操作系统分配的进程空间是怎样的?线程能共享哪些?

操作系统复习(updating)的相关教程结束。

《操作系统复习(updating).doc》

下载本文的Word格式文档,以方便收藏与打印。