操作系统
1. 进程和线程之间有什么区别?
- 进程是运行中的程序,线程是进程的一个执行序列
- 多进程:操作系统中同时运行的多个程序 ;多线程:在同一个进程中同时运行的多个任务
- 多个线程共享进程的资源
- 进程拥有资源多,线程拥有资源少
- 进程之间切换代价大,线程之间切换代价小
- 链接:进程和线程的区别(阮一峰)
2.进程之间有哪些通信方式?
- 管道: 管道是一种半双工的通信方式,数据只能单向流动,而且只能在具有亲缘关系的进程之间使用。进程的亲缘关系通常是指父子进程关系
- 消息队列:消息队列是消息的链表,存放在内核中。一个消息队列由一个标识符(即队列ID)来标识。
- 信号量: 信号量是一个计数器,可以用来控制多个进程对共享资源的访问。常作为一种锁机制,防止其他进程访问当前进程正在访问的资源。
- 信号: 用于通知接收进程某个事件已经发生
- 共享内存通信: 共享内存是最快的一种 IPC(进程间通信),因为进程是直接对内存进行存取。因为多个进程可以同时操作,所以需要进行同步
- socket:套接口也是一种进程间通信机制,可用于不同机器间的进程通信。
3. Linux 进程调度中有哪些常见的算法以及策略?
- 先来先服务(FCFS)和短作业(进程)优先调度算法
- 高优先权优先调度算法
- 参考资料链接
4. 进程的状态分为哪几种?
- 运行态:该状态表明进程在实际占用CPU
- 就绪态: 该状态下进程可以运行,但因为其他进程正在运行而暂时停止
- 阻塞态: 该状态下进程不能运行,除非某种外部事件的发送
5. 操作系统如何申请以及管理内存的?
6. 线程间的通信方式有哪些?
|