栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

day07 操作系统面试题

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

day07 操作系统面试题

1.进程和线程的基本概念

进程:进程是系统进行资源分配和调度的一个独立单位,是系统中的并发执行的单位

线程:线程是进程的一个实体,也是cpu调度和分派的基本单位,它是比进程更小的能独立运行的基本单位,有时又被称为轻权进程或轻量级进程。

2.进程和线程的区别?

1.进程是资源分配的最小单位,而线程是cpu调度的最小单位

2.创建进程或撤销进程,系统都要为之分配或回收资源,操作系统的开销远大于创建或撤销线程时的开销;

3.不同进程地址空间相互独立,同一进程内的线程共享同一地址空间。一个进程的线程在另一个进程内是不可见的

4.进程间不会相互影响,而一个线程挂掉将可能导致整个进程挂掉

3.为什么有了进程,还要有线程呢?

进程可以使多个程序并发执行,以提高资源的利用率和系统的吞吐量,但是其带来了一些缺点:

1.进程在同一时间只能干一件事情;

2.进程在执行的过程中如果阻塞,整个进程就会被挂起,即使进程中有些工作不依赖与等待的资源,仍然不会执行。

基于以上的缺点,操作系统引入了比进程粒度更小的线程,作为并发执行的基本单位,从而减少程序在并发执行时所付出的时间和空间开销,提高并发性能。

4.进程的状态转换

进程包括三种状态:就绪态、运行态和阻塞态

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

进程间通信(IPC,InterProcess Communication)是指不同进程之间传播或交换信息。IPC的方式通常由管道(包括无名管道和命名管道)、消息队列、信号量、共享存储、Socket、Streams支持不同主机上的二个进程IPC

6.什么是死锁

死锁,是指多个进程在运行中因争夺资源而造成的一种僵局,当进程处于这种僵持状态时,若无外力作用都将无法向前推进。如下图所示:如果此时有一个线程A,已经持有了锁A,但是试图获取锁B,线程B持有锁B,而试图获取锁A,这种情况下就会产生死锁。

7.产生死锁的原因

由于系统中存在一些不可剥夺资源,而当二个或二个以上进程占有自身资源,并请求对方资源时,会导致每个进程都无法向前推进,这就是死锁。

竞争资源

例如:系统中只有一台打印机,可供进程A使用,假定A已占用了打印机,若B继承要求打印机打印将被阻塞。

系统中的资源可以分为两类:

1. 可剥夺资源:是指某进程在获得这类资源后,该资源可以再被其他进程或系统剥夺, CPU 和主存均属于可剥 夺性资源; 2. 不可剥夺资源,当系统把这类资源分配给某进程后,再不能强⾏收回,只能在进程⽤完后⾃⾏释放,如磁带机、打印机等。 进程推进顺序不当 例如:进程A和进程B互相等待对方的数据 8.死锁产生的必要条件?

1.互斥条件:进程要求对所分配的资源进行排他性控制,即在一段时间内某资源仅为一进程所占。

2.请求和保持条件:当进程因请求资源而堵塞,对已获取的资源保持不放。

3.不剥夺条件:进程已获得的资源在未使用完之前,不能剥夺,只能在使用完时自己释放。

4.环路等待条件:在发生死锁时,必然存在一个进程-资源的环形链。

9.解决死锁的基本方法

1.预防死锁

2.避免死锁

3.检测死锁

4.解除死锁

10.怎么预防死锁?

1.破坏请求条件:一次性分配所有资源,这样就不会再有请求了。

2.破坏请保持的条件:只要有一个资源得不到分配,也不给这个进程分配其他的资源

3.破坏不可剥夺条件:当某进程获得了部分资源,但得不到其他资源,则释放已占有的资源

4.破坏环路等待条件:系统给每类资源赋予一个编号,每一个进程按编号递增的顺序请求资源,释放则相反。

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/886007.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号