1、进程间通讯方式?进程间调度方法?
a、共享内存(最有用的)
多个进程可以访问同一内存空间,但是需要依靠同步操作,互斥锁和信号量等
b、消息队列
是在消息的传输过程中保存消息的容器,有读权限和写权限。
c、信号
信号是一种比较复杂的通信方式,用于通知接收进程某个事件已经发生。
d、信号量
是一个计数器,可以控制多个进程对共享资源的访问。
e、套接字
用于网络中不同机器之间的进程通信。
f、普通管道
半双工的通信方式,可以允许无亲缘关系进程间通信
进程调度方法:
1) 先来先服务调度算法
2)短作业优先调度算法
3)优先权调度算法
4)高响应比优先调度算法
5)基于时间片的轮转调度算法
6)多级反馈队列调度算法
2、线程间通信方式?
a、锁机制:互斥锁、条件变量、读写锁
互斥锁提供了排他性,读写锁允许多个线程同时读共享数据,但是不能同时写。条件变量以原子方式阻塞进程,知道某个特定条件为真。
b、信号量机制 (无名线程信号量,命名线程信号量)
c、信号机制
线程间通信目的只要用于线程同步。
3、操作系统的组成?
进程管理、存储管理、设备管理、文件管理、程序接口、用户界面。
4、用户状态转为系统状态条件:
系统调用;异常;外围设备中断。
5、64位系统和32位系统区别:
寻址能力不同,运算速度不同
6、进程和线程区别?
a、调度:线程作为调度和分配的基本单位,进程作为拥有资源的基本单位
b、并发性:不仅进程间可以并发,线程也可以。
c、进程是拥有资源的独立了单位,线程基本不用有资源,
d、系统开销,在创建和撤销进程中,系统都要分配和回收资源,开销过大
7、换页方法
FIFO、LRU、OPT等
8、哲学家进餐问题的无死锁算法
原理:只有哲学家两只筷子可用时,才可以进餐。
方法:利用AND信号量机制,将一段代码需要的临界资源,要么一次性给它,要么一个都不给,不会出现死锁,当某些资源不够时,由于等待队列,满足FIFO的要求,不会出现饥饿情形。
利用信号量保护机制,通过mutex对eat()之前的取筷子进行保护,使之成为一个原子操作,可以防止死锁。
9、操作系统内存管理
分区管理,分页管理,分段管理,段页式管理
10、临界区、互斥量、信号量、事件的区别
临界区:通过对多线程的串行化来访问公共资源,速度快,适合控制数据的访问。在任何时刻,都只让一个线程对共享资源访问,如果有多个想访问,那么就会被挂起。
互斥量:采用互斥对象机制,只拥有互斥对象的线程才有访问公共资源的权限,保证公共资源不会被多个线程访问。
信号量:允许多个线程同一时刻访问统一资源,但是限定最大线程数目。
事件:通过通知操作来保持县城同步,方便实现对多个线程的优先级比较操作。