Java开发校招面试考点汇总第七篇:操作系统和Linux

1、进程和线程以及它们的区别
2、作业和作业调度算法
3、死锁与饥饿
4、互斥与同步
5、临界资源、临界区
6、五位哲学家吃面问题:
7、 死锁产生的条件
8、 处理死锁的方法:
9、管程
10、连续分配
11、非连续分配
12、覆盖与对换
13、虚拟存储器
14、页面置换算法
15、程序的装入、静态链接、动态链接
16、请谈一谈,系统如何提高并发性?
17、Linux

1、进程和线程以及它们的区别
进程的目的是让多个程序并发执行,线程的作用是减少程序并发执行的开销。

在没有线程时,进程是资源分配和系统调度的基本单位,有了线程后进程只是资源分配的基本单位,线程是系统调度的基本单位。
一个程序至少有一个进程,一个进程至少有一个线程,线程依赖于进程而存在;

进程在执行过程中拥有独立的内存单元,而多个线程共享进程的内存。

进程的三个状态:运行、就绪、等待
进程的五个状态:运行、就绪、等待、挂起就绪、挂起等待。挂起状态是将进程从内存中拿出到磁盘中。
线程的三个状态:运行、就绪、等待。线程因为不是资源的拥有单位,所以挂起没有意义。

2、作业和作业调度算法
1、作业和进程的区别
作业是任务本身,进程时执行任务的操作。
2、先来先服务算法
非剥夺式、简单、易于实现
3、最短作业优先算法
非剥夺式、缺点是难以估计作业的实际运行时间
4、最短剩余时间优先算法
剥夺式、是对最短作业优先的改进
5、高响应比优先算法
响应比=作业周转时间/作业运行时间 = 1+ 作业等待时间/作业运行时间
6、优先级调度
可以是剥夺式也可以是非剥夺式
7、时间片轮转调度
在进程/线程的切换上开销较大

3、死锁与饥饿
资源竞争会引起两种问题:死锁和饥饿
饥饿是总有其他进程优先于某一进程,则这个进程一直得不到资源。

4、互斥与同步
进程互斥是指若干进程由于争夺独占型资源而产生竞争制约关系。
进程同步是指为了完成共同任务的并发进程要按照先后顺序运行。
互斥是特殊的同步,即逐个使用独占性资源。

5、临界资源、临界区
一次只能被一个进程使用的资源叫临界资源。
并发进程中对临界资源进行操作的程序段叫临界区
**临界区的调度原则:**互斥使用、有空让进、忙则等待、有限等待、择一而入、算法可行

6、 五位哲学家吃面问题:
避免死锁的方法:
1、 最多允许4位哲学家同时吃面
2、 奇数位的哲学家先拿左边的筷子,偶数位的哲学家先拿右边的筷子
3、 每位哲学家只有拿到两个筷子才吃面,否则就放下筷子

7、 死锁产生的条件
1、 互斥条件:进程互斥的使用临界资源
2、 占有和请求
3、 不剥夺条件
4、 循环等待条件

8、 处理死锁的方法:
1、 预防死锁:破坏死锁产生的四个必要条件(一般不破坏互斥条件)
2、 避免死锁:银行家算法,尝试将资源分配给进程,看剩余资源是否会死锁。
3、 检测和解除死锁:检测出死锁,再解除掉。

9、管程
将各进程的临界区集中起来管理,建立一个秘书程序管理,每次只允许一个进程来访,这个秘书程序就是管程。

10、连续分配
连续分配指程序装入的内存空间是连续的。
连续分配分为:
1、单一连续分配 一个作业进入内存,直到操作完毕才释放内存
2、固定分区分配 将内存空间划分为若干个固定大小的连续存储区,每个存储区的大小可以一样,也可以不一样。容易产生内存碎片。每个区域只装入一道作业。
3、动态分区分配
动态分区分配的分配方法有:首次适应法、最佳适应法、最坏适应法。
缺点是经过一段时间后,会产生大量容量较小的内存,形成内存碎片。
4、 动态重定位分区分配
将内存碎片移动在一起,集中成一个较大的空闲分区,移动的过程就叫紧凑。
紧凑的时机有:立即紧凑、需要时紧凑

11、非连续分配
分页管理方式
分段管理方式
段页式管理方式

具体内容:
分页管理方式:将内存划分成等长的若干区域,每个区域称为一个物理页面(也称为块)。再将用户程序按照物理页面的大小进行划分,称为逻辑页面,每个物理页面存放一个逻辑页面。块间不连续,但快内连续。
页表存放的是物理块号和程序逻辑页号之间的映射。
快表:用来存放最近访问过的部分页表的项

分段管理方式:将用户的作业按逻辑结构划分为若干相互独立的段,每个段占据一段连续的内存空间,各段之间可以不连续。

段页式管理方式:按照分段式管理方式,将用户的作业按逻辑结构划分为若干相互独立的段,再按照分页管理方式将各段划分成固定页面大小。

12、覆盖与对换
覆盖:就是将程序的不同分支放在同一区域。
在这里插入图片描述
对换:是指将暂时不用的某个进程及数据从内存放到外存

13、虚拟存储器
虚拟存储器即使具有请求调入功能和置换功能,把内存和外存结合起来使用,能从逻辑上对内存容量加以扩充的一种存储器系统。

程序有时间局限性和空间局限性,即刚被访问过的数据很可能再被访问,刚被访问的存储单元附近的存储单元也很可能再被访问。
基于局限性原理,一个作业在运行之前,只需要将当前作业运行需要使用的部分装入内存即可。这样就可以在较小的内存中运行较大的程序。

虚拟存储器的实现分为:分页式虚拟存储管理、分段式虚拟存储管理。即将部分页或者部分段先放入内存,其他程序需要的页或者段通过“对换”载入内存中。

14、页面置换算法
先进先出置换、
最佳置换算法(将来永不使用的或者将来最晚使用的页面进行置换,但是该算法无法实现)
最近最久未使用
clock置换。
**抖动:**即刚置换出去的页面又要被置换进来。

15、程序的装入、静态链接、动态链接
程序的装入分为:
编译:将源程序编译成目标程序
链接:将目标程序以及他们所需的库函数链接在一起,形成一个装入模块
装入:将装入模块装入内存

16、请谈一谈,系统如何提高并发性?
1、提高CPU并发计算能力

(1)多进程&多线程

(2)减少进程切换,使用线程,考虑进程绑定CPU

(3)减少使用不必要的锁,考虑无锁编程

2、改进I/O模型

异步I/O

17、Linux
https://download.csdn.net/download/u014138443/11192430

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值