进程线程
并发执行(concurrent)
是指多段程序在一个时间内交错执行。
是为了增强计算机系统的处理能力和提高资源利用率所采取的操作系统技术。进程(process):并发执行的程序在执行过程中分配和管理资源的最小基本单元。
2.1 程序控制块(PCB:process control block):是进程的物理描述(静态描述)。
- 描述信息:pid等。
- 控制信息:pstate,priority等。
- 资源管理信息:有关寄存器的信息、使用输入输出设备的信息、有关文件系统的信息等。
- CPU现场保护结构
2.2 进程上下文(context):进程的进程指令和数据在相关寄存器与堆栈中的内容。
- 是进程调度中的一个概念。
- 包含与进程有关的各种寄存器的值、正文段(代码集)、数据集及堆栈值与部分PCB结构。
- 当进程上下文切换时,上下文会被保存在改进程的PCB中。
2.3 进程大小与处理及位数有关,16位进程大小为2^16。进程互斥
3.1 临界区(critical section or critical region): 不允许多个并发进程交叉执行的一段程序。
3.2 互斥:一组并发进程中的一个或多个程序段,因共享某一共有资源而导致他们必须以一个不允许交叉执行的单位执行。
3.3 信号量(semaphore): 信号量是一个整数,在信号量大于等于零时代表可供并发进程使用的资源数,小与零时则表示正在等待使用临界区的进程数。用于实现进程的互斥。
- PV原语:Passeren(Pass),Verhoog(Increment)
- P:-v :
进程的同步:把异步环境的一组并发因直接制约而互相发送消息而进行相互合作、互相等待,是的各进程按一定的速度执行的过程。为了解决进程互斥影响执行速度的问题。
例如:计算与打印,计算一个打印一个的效率远远高于计算结束后打印。
4.1 生产者消费者问题://mutex:公共信号量 //avail:生产者信号量,可用的空得缓冲区数量 //full:消费者信号量,产品数量 deposit(data): begin P(avail) P(mutex) 送数据入缓冲区某单元 V(full) V(mutex) end remove(data): begin P(full) P(mutex) 取缓冲区中某单元数据 V(avail) V(mutex) end
进程通信(comunication): 进程间传送数据。可以是控制信息也可以是大量的数据。
5.1 消息缓冲机制send(m): begin 向系统申请一个消息缓冲区 P(mutex) 将发送区消息m送入新申请的消息缓冲区 把消息缓冲区挂入接收进程的消息队列 V(mutex) V(SM) end receive(m): begin P(SM) P(mutex) 摘下消息队列中的消息n 将消息n从缓冲区复制到接收区 释放缓冲区 V(mutex) end
- 死锁(DeadLock):共享资源不足造成并发进程都不能正常进行。
- 线程(Thread)
- 线程是进程内的一段程序的基本调度单位。是进程的一次执行路线。
- 进程是系统分配资源的基本单位。
- 为了提高CPU的执行效率,减少因为程序等待带来的CPU空转以及其他计算机软硬件资源的浪费。
- 主要解决相同程序的多次执行问题。
- 线程不是进程的上下文,进程的上下文包含线程。