无聊的八股文,呜呜呜!
操作系统
-
操作系统的组成,功能?
文件管理模块:文件的存储位置的管理、文件权限的管理等。
进程控制模块:进程通信、管理控制、死锁处理等。
设备管理模块:设备分配、虚拟设备等。
内存管理模块:管理内存、内存分配、内存保护和共享等。
处理器管理模块:管理CPU。 -
进程、线程的概念以及区别?
进程:一次程序执行的过程。 线程:轻量级的进程,一个进程中可以有多个线程。 区别:
(1) 进程是资源分配的最小单元,线程是资源调度的最小单元
(2) 进程拥有系统资源,所有线程共享进程的资源
(3) 创建一个进程需要资源的分配和回收,而创建线程不需要 -
进程间的通信方式?
(1) 管程,一个进程向其写程序,一个进程从中读取程序,是一个先进先出的结构,在linux可以用mkfifo创建管道,管道的生命周期为进程的开始与结束。
(2) 消息队列,消息队列是信息的链表,具有写权限的程序可以发送消息,具有读权限的程序可以接受程序。如果不释放消息队列或关机,消息队列会一直存在。
(3) 共享内存,两个进程的一块内存都映射到同一块物理内存,多个进程就可以访问同一内存空间了。
(4) 信号量,为了防止多个进程操作同一内存空间,使用计数器来控制进程的访问。控制信号量通常有两种操作,P信号量减一,V信号量加一。
(5) 信号,进程之间的异常通信,比如在Linux中使用kill命令终止程序
(6) socket,不同主机进程之间的通信 -
线程间的通信方式?
(1) 共享全局变量
(2) 使用监听器
(3) 使用消息完成通信,一个发消息,一个收消息 -
进程有哪几种状态,之间的转换?
(1) 就绪态,执行态,阻塞态
(2) 之间的转换
5.1 就绪-执行,CPU来了
5.2 执行-就绪,时间片完毕,等待下一次
5.3 执行-阻塞,需要IO输入
5.4 阻塞-就绪,IO输入有了 -
进程调度策略
短作业优先、先来先服务、时间片轮转、高相应比优先 -
什么是死锁,产生死锁的四个必要条件,如何预防死锁? 死锁:多个进程因资源竞争而陷入一种互相等待的过程。
四个必要条件: 互斥条件(一个资源只能一个进程使用),占用且等待,不可抢占,循环等待
预防死锁:银行家算法,当一个进程申请使用资源时,系统试探性的分给他资源,然后判断系统是否安全,如果安全分配,不安全不分配。 -
页面置换算法
先进先出置换算法(FIFO):队列结构,每次替换都是入队出队的操作
最近最久未使用算法(LRU):FIFO算法优化,如果当前页面存在队列中,把这个页面移动到队尾。
最不常用置换算法(LFU)统计每个页面使用的次数,替换出现次数最少的页面
最佳页面置换算法(OPT)每次替换到未来最远需要的页面(理论最佳算法,实际不能用)
计算机组成原理
-
冯诺依曼机的体系结构
计算器、存储器、控制器、输入设备、输出设备 -
cpu一个指令周期的流程是什么
取指令:将一条指令从主存中放入指令寄存器当中。
指令译码阶段:对指令进行拆分和解释
执行指令:完成指令的操纵
访存取数:访问主存读取操作
结果写回阶段:将运算结果写回到某种存储形式