Java开发技术面试考点--操作系统

操作系统

❤1、操作系统概论

1、CentOS 和 Linux的关系?
Linux是一个广义的范围,但通常指的是Linux内核。CentOS是GNU/Linux众多发行版的一种,他使用Linux内核外加一整套的界面,组成一个完整的可供使用的操作系统。
2、64位和32位的区别?
64位和32位的最根本区别在于cpu一次可处理的指令长度

❤2、进程的描述与控制

1、怎么杀死进程?
先使用命令ps 让计算机罗列出所有进程的ID 然后使用命令kill ID 或者在程序运行时,按快捷键Ctrl+z
2、线程,进程区别
进程:是程序运行的实例,是系统进行资源分配和调度的一个独立单位,它包括独立的地址空间,资源以及1个或多个线程。
线程:可以看成是轻量级的进程,是CPU调度和分派的基本单位。
3、系统线程数量上限是多少?
对于32位的linux系统,一个进程的地址空间是4GB,其中用户态能访问3GB左右,一个线程的默认栈是10M,心算可知一个进程能同时开启300个线程,因此300左右是上限,因为进程其他部分也同样需要,数据段代码段堆动态库
至于64为则更多
4、进程和线程的区别是什么?
5、解释一下LINUX下线程,GDI类。
LINUX实现的就是基于核心轻量级进程的”一对一”线程模型,一个线程实体对应一个核心轻量级进程,而线程之间的管理在核外函数库中实现。 GDI类为图像设备编程接口类库。

❤3、输入输出系统

1、socket编程,BIO,NIO,epoll?
BIO是同步阻塞IO,NIO是同步非阻塞IO,AIO是异步非阻塞IO;三种IO方式相比较而言,BIO是一个客户端对应一个线程,NIO是多个客户端对应一个线程,服务器端和客户端均使用缓冲区的方式进行读写,AIO是简化的NIO;

❤4、存储器管理

1、什么是页式存储?
页式存储是指存储的时候以页面作为基本的存储单位,一个大的作业分存在N个页里,当执行作业的时候不需要同事加载所有的页,而是用到哪些加载哪些,页式存储让资源的效率更高
2、操作系统里的内存碎片你怎么理解,有什么解决办法?
内存碎片通常分为内部碎片和外部碎片:
1. 内部碎片是由于采用固定大小的内存分区,当一个进程不能完全使用分给它的固定内存区域时就会产生内部碎片,通常内部碎片难以完全避免;
2.外部碎片是由于某些未分配的连续内存区域太小,以至于不能满足任意进程的内存分配请求,从而不能被进程利用的内存区域。
现在普遍采取的内存分配方式是段页式内存分配。将内存分为不同的段,再将每一段分成固定大小的页。通过页表机制,使段内的页可以不必连续处于同一内存区域。

❤5、处理机调度与死锁

1、什么情况下会发生死锁,解决策略有哪些?
死锁发生的四个必要条件是: 1.资源互斥使用。 2.多个进程保持一定的资源,但又请求新的资源。 3.资源不可被剥夺。 4.多个进程循环等待。 一般死锁的应对策略有: 1.死锁预防。如进程需要的所有资源,在一开始就全部申请好得到之后再开始执行。 2.死锁避免。如进程每次申请申请资源的时候,根据一定的算法,去看该请求可能不可能造成死锁,如果可能,就不给它分配该资源。 3.死锁处理。破坏四个必要条件的其中一个,比如kill掉一个进程。 4.死锁忽略。不管死锁,由用户自行处理,比如重启电脑。一般的系统其实都采取这种策略
2、系统CPU比较高是什么原因?
CPU占用使用率其实就是你运行的程序占用的CPU资源,表示你的机器在某个时间点的运行程序的情况。使用率越高,说明你的机器在这个时间上运行了很多程序,反之较少。使用率的高低与你的CPU强弱有直接关系。现代分时多任务操作系统对 CPU 都是分时间片使用的:比如A进程占用10ms,然后B进程占用30ms,然后空闲60ms,再又是A进程占10ms,B进程占30ms,空闲60ms;如果在一段时间内都是如此,那么这段时间内的占用率为40%。CPU对线程的响应并不是连续的,通常会在一段时间后自动中断线程。未响应的线程增加,就会不断加大CPU的占用。cpu使用率高的原因有很多,但是一般都是由于病毒木马或开机启动项过多所致。高CPU使用率也可能表明应用程序的调整或设计不良。优化应用程序可以降低CPU的使用率。
3、系统如何提高并发性?
1.物理层增加网络宽带,域名解析分发多台服务器
2…操作系统层,多线程多核编程,epoll,事件驱动框架,异步消息机制
3.业务层,优化数据库查询redis缓存

你可能感兴趣的:(Java开发技术面试考点--操作系统)