进程间通信方式?
- 管道(无名管道、有名管道--FIFO)
- 消息队列(posix--mq_xxx、system--msgxxx)
- 信号量
- 文件记录与上锁
- 共享内存(posix--shm_xxx、system--shmxxx)
- unix域socket
- 信号(kill函数作为进程间发送信号,kill命令就是很好的例子)
线程通信
- 事件
- 临界区
- 互斥量
- 信号量
- 读写锁
- 条件变量
- 自旋锁
- 屏障
操作系统进程(作业)调度算法?
FCFS:先来先服务
下面三种是:需要估计预计的服务时间(不可能直接做到,那是未来的时间)
- SPN:最短进程优先
- SRT:最短剩余时间,指进程执行的剩余时间
- HRRN:最高响应比
反馈:相反,它是计算进程已经执行了的时间(过去的时间)
并发和并行的区别?
内存管理技术?
死锁的发生条件?
- 互斥:一次只有一个进程可以使用一个资源。
- 占用且等待:当一个进程等待其他进程时,继续占有已经分配的资源。
- 不可抢占:不能强行抢占进程已占有的资源。
- 循环等待:存在一个封闭的进程链,使得每个进程至少占有此链中下一个进程所需的一个资源。
死锁的解决方案?
- 死锁预防:限制申请资源顺序,破坏了循环等待条件
- 死锁避免:银行家算法,资源分配拒绝策略,需获知进程所需总资源
- 锁死检测和解除:
分页和分段?
用于虚拟内存的操作系统策略
最优:OPT,是不可能实现的
时钟:CLOCK,最接近OPT的一种,很多系统都使用,性能佳
解释进程与线程?
- 资源分配
- 任务调度
- 实现功能
进程状态模型(五状态模型84、七状态模型89)
关键理解,某状态是什么原因导致状态的装换,转换到那一个状态。
什么是中断?中断的概念?
中断是OS的基本驱动力,实现多道程序的关键点。
CPU响应中断源的中断请求,暂停当前指令执行,保留现场,跳转至中断源对应的中断服务程序ISR,待ISR执行完毕,恢复现场并继续执行。
中断的类型?
- 程序中断:溢出、除零、非法指令等
- 时钟中断:处理器的计时器产生
- IO中断:IO控制器产生
- 硬件失效中断:暂时没遇见,向面试官说明
解释一下os的异常?它一般发生在什么情况下?有什么作用?
异常几乎都是以“中断”的形式产生,但中断并不等同异常。
线程的实现方式?
内核线程、用户线程
POSIX是那种?
我在学习os是研究2.6版本,那时候使用:用户线程
调度算法?
短程调度、中程调度、长程调度
因为涉及并发,会问:锁相关的知识。
mutex在linux系统上如何实现?
给你几个文件,说明白编译链接整个过程?
线程设计模型,列举几个并说明其优缺点?
IO模型(在网络里面回答了)