一进程、线程
1)进程和线程的区别
进程:运行程序的封装,是系统进行资源调度和分配的基本单位,实现了操作系统的并发
线程:进程的子任务,是CPU进行调度和分配的基本单位,保证了程序的实时性,实现了进程内部的并发
一个程序至少有一个进程,一个进程至少有一个线程,线程依赖进程而存在
进程在执行的过程中拥有独立的内存单元,多个线程共享进程的内存;
调度和切换:线程的上下文切换比进程快的多
进程的特征
结构性:进程包括程序、数据、进程控制块组成
独立性:进程是系统进行资源调度和分配的基本单位
动态性:进程是程序一次执行的过程
并发性:多个进程可以并发的执行
2)进程之间的通信方式
不同的进程之间传播或者交换信息
管道、系统IPC(信号量、消息对列、共享存储)、Socket
2.1)管道:普通管道、流管道和命名管道
普通管道:半双工的,只能单向传输;并且只能在父子进程间进行通信
流管道:可以双向传输
命名管道:可以在不相关的进程之间进行通信
2.2)
信号:通知接收进程某种事件已经发生
信号量:计数器,控制多个进程对共享资源的访问;防止一个进程访问共享资源时,另一个进程对共享资源的访问。是在不同的进程之间,或者同一进程不同的线程之间的锁机制
消息对列:消息的链表,存放在内核中,并有****消息对列标识符标识。具有写权限的进程可以根据规则向对列中添加信息,具有读权限的进程可以按照规则向消息队列中读取信息
共享内存:允许多个进程对同一内存空间的访问。其他进程可以看到另个进程在共享内存中数据的更新;依赖同步机制,互斥锁,信号量等等
2.3)Socket
网络中不同机器之间的通信
3)同步方式
3.1)线程之间的同步方式
临界区
互斥量
信号量
事件
3.2)进程之间的同步方式(了解即可)
原子操作、信号量机制、会合、分布式系统
4)状态
4.1)进程之间的状态
运行:
就绪:
阻塞态:
4.2) 线程之间的状态
新建 运行 就绪 阻塞 等待 结束
5)进程的调度方式有几种
先来先服务
优先级
基于时间片轮转
多级反馈
二 死锁
1)死锁产生的原因
两个或多个并发进程中
2)死锁产生的四个必要条件
3)死锁避免算法