操作系统AND计组面试题

无聊的八股文,呜呜呜!

操作系统

  1. 操作系统的组成,功能?
    文件管理模块:文件的存储位置的管理、文件权限的管理等。
    进程控制模块:进程通信、管理控制、死锁处理等。
    设备管理模块:设备分配、虚拟设备等。
    内存管理模块:管理内存、内存分配、内存保护和共享等。
    处理器管理模块:管理CPU。

  2. 进程、线程的概念以及区别?
    进程:一次程序执行的过程。 线程:轻量级的进程,一个进程中可以有多个线程。 区别:
    (1) 进程是资源分配的最小单元,线程是资源调度的最小单元
    (2) 进程拥有系统资源,所有线程共享进程的资源
    (3) 创建一个进程需要资源的分配和回收,而创建线程不需要

  3. 进程间的通信方式?
    (1) 管程,一个进程向其写程序,一个进程从中读取程序,是一个先进先出的结构,在linux可以用mkfifo创建管道,管道的生命周期为进程的开始与结束。
    (2) 消息队列,消息队列是信息的链表,具有写权限的程序可以发送消息,具有读权限的程序可以接受程序。如果不释放消息队列或关机,消息队列会一直存在。
    (3) 共享内存,两个进程的一块内存都映射到同一块物理内存,多个进程就可以访问同一内存空间了。
    (4) 信号量,为了防止多个进程操作同一内存空间,使用计数器来控制进程的访问。控制信号量通常有两种操作,P信号量减一,V信号量加一。
    (5) 信号,进程之间的异常通信,比如在Linux中使用kill命令终止程序
    (6) socket,不同主机进程之间的通信

  4. 线程间的通信方式?
    (1) 共享全局变量
    (2) 使用监听器
    (3) 使用消息完成通信,一个发消息,一个收消息

  5. 进程有哪几种状态,之间的转换?
    (1) 就绪态,执行态,阻塞态
    (2) 之间的转换
    5.1 就绪-执行,CPU来了
    5.2 执行-就绪,时间片完毕,等待下一次
    5.3 执行-阻塞,需要IO输入
    5.4 阻塞-就绪,IO输入有了

  6. 进程调度策略
    短作业优先、先来先服务、时间片轮转、高相应比优先

  7. 什么是死锁,产生死锁的四个必要条件,如何预防死锁? 死锁:多个进程因资源竞争而陷入一种互相等待的过程。
    四个必要条件: 互斥条件(一个资源只能一个进程使用),占用且等待,不可抢占,循环等待
    预防死锁:银行家算法,当一个进程申请使用资源时,系统试探性的分给他资源,然后判断系统是否安全,如果安全分配,不安全不分配。

  8. 页面置换算法
    先进先出置换算法(FIFO):队列结构,每次替换都是入队出队的操作
    最近最久未使用算法(LRU):FIFO算法优化,如果当前页面存在队列中,把这个页面移动到队尾。
    最不常用置换算法(LFU)统计每个页面使用的次数,替换出现次数最少的页面
    最佳页面置换算法(OPT)每次替换到未来最远需要的页面(理论最佳算法,实际不能用)

计算机组成原理

  1. 冯诺依曼机的体系结构
    计算器、存储器、控制器、输入设备、输出设备

  2. cpu一个指令周期的流程是什么
    取指令:将一条指令从主存中放入指令寄存器当中。
    指令译码阶段:对指令进行拆分和解释
    执行指令:完成指令的操纵
    访存取数:访问主存读取操作
    结果写回阶段:将运算结果写回到某种存储形式