《Java 后端面试经》专栏文章索引:
《Java 后端面试经》Java 基础篇
《Java 后端面试经》Java EE 篇
《Java 后端面试经》数据库篇
《Java 后端面试经》多线程与并发编程篇
《Java 后端面试经》JVM 篇
《Java 后端面试经》操作系统篇
《Java 后端面试经》设计模式篇
《Java 后端面试经》计算机网络篇
《Java 后端面试经》操作系统篇
什么是进程?什么是线程?进程和线程间的区别?
进程是对运行时程序的封装,是系统进行资源调度和分配的的基本单位,实现了操作系统的并发。
线程是进程的子任务,是 CPU 调度的基本单位,用于保证程序的实时性 ,实现进程内部并发。
区别:
- 调度:线程作为调度和分配的基本单位,进程作为拥有资源的基本单位。
- 并发性:不仅进程之间可以并发执行,同一个进程的多个线程之间也可并发执行。
- 拥有资源:进程是拥有资源的一个独立单位,线程不拥有系统资源,但可以访问隶属于进程的资源。
- 系统开销:在创建或撤消进程时,由于系统都要为之分配和回收资源,导致系统的开销明显大于创建或撤消线程时的开销。
进程间通信的方式
- 共享存储器系统:
1.1 基于共享数据结构的通信方式。
1.2 基于共享存储区的通信方式。 - 管道通信系统。
- 消息传递系统:
3.1 直接通信方式,是指发送进程利用 OS 所提供的发送原语,直接把消息发送给目标的进程。
3.2 间接通信方式,是指发送和接收进程,都通过共享中间实体(称为邮箱)的方式进行消息的发送和接收,完成进程间的通信。 - 客户机-服务器系统:
4.1 套接字(Socket)。
4.2 远程过程调用和远程方法调用。
并发和并行有什么区别?
串行在时间上不可能发生重叠,前一个任务结束之后,后一个任务才能开始。
并发:两个或多个事件在同一时间间隔内发生。这些事件宏观上是同时发生的,微观上是交替发生的。
并行:两个或多个事件在同一时刻发生。
同步和异步的区别
同步:指一个进程在执行某个请求的时候,若该请求需要一段时间才能返 回信息,那么这个进程将会一直等待下去,直到收到返回信息才继续执行下去。
异步:指进程不需要一直等下去, 而是继续执行下面的操作,不管其他进程的状态。当有消息返回时系统会通知进程进行处理,这样可以提高执行的效 率。
死锁的产生条件与解决方案
- 互斥使用(资源独占):一个资源每次只能给一个进程使用
- 占有且等待(请求和保持,部分分配):进程在申请新的资源的同时保持对原有资源的占有
- 不可抢占(不可剥夺):资源申请者不能强行的从资源占有者手中夺取资源,资源只能由占有者自愿释放
- 循环等待:存在一个进程等待队列 {P1 , P2 , … , Pn},其中 P1 等待 P2 占有的资源,P2 等待 P3 占有的资源,…,Pn 等待 P1 占有的资源,形成一个进程等待环路。
当死锁产生的时候一定会有这四个条件,有一个条件不成立都不会造成死锁。
产⽣死锁的四个必要条件是:互斥条件、持有并等待条件、不可剥夺条件、循环等待条件。
那么避免死锁问题就只需要破环其中⼀个条件就可以,最常⻅的并且可⾏的就是使⽤资源有序分配法,来破坏循环等待条件。
中断的作用?
- 让操作系统内核强行夺回 CPU 的控制权。
- 使 CPU 从用户态变为内核态。
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
文章由极客之家整理,本文链接:https://www.bmabk.com/index.php/post/5168.html