操作系统——进程

进程和线程

进程

进程是系统进行资源分配和调度的基本单位。

线程

线程是操作系统能够进行运算调度的最小单位。它被包含在进程之中,是进程中的实际运作单位。

区别

1、资源:进程是资源分配的基本单位,但是线程不拥有资源,线程可以访问隶属进程的资源。
2、地址空间和其他资源的共享:进程间相互独立,同一进程的各线程间共享。某进程内的线程在其它进程不可见。
3、通信:线程间可以直接读写进程数据段(如全局变量)来进行通信——需要进程同步和互斥手段的辅助,以保证数据的一致性。进程间通信需要借助IPC,
4、调度和切换:由于创建或撤销进程时,系统都要为之分配或回收资源,如内存空间、I/O 设备等,所付出的开销远大于创建或撤销线程时的开销。类似地,在进行进程切换时,涉及当前执行进程 CPU 环境的保存及新调度进程 CPU 环境的设置,而线程切换时只需保存和设置少量寄存器内容,开销很小。

进程状态

  • 新建态(new):等待操作系统完成创建进程的必要操作。
  • 运行态(running):进程占有处理器正在运行。
  • 就绪态(ready):进程具备运行条件,等待系统分配处理器以便运行。
  • 等待态(wait):又称为阻塞(blocked)态或睡眠(sleep)态,指进程不具备运行条件,正在等待某个事件的完成。
  • 终止态(exit):进入终止态的进程以后不再执行,但依然保留在操作系统中等待善后。
进程五态转换图.png

1、NULL一一新建态:执行1个程序,创建一个子进程。
2、新建态一一就绪态:当操作系统完成了进程创建的必要操作,并且当前系统的性能和内存的容量均允许。
3、运行态一一终止态:当1个进程到达了自然结束点,或是出现了无法克服的错误,或是被操作系统所终结,或是被其他有终止权的进程所终结。
4、终止态一一NULL:完成善后操作。
5、就绪态一一终止态:未在状态转换图中显示,但某些操作系统允许父进程终结子进程。
6、等待态一一终止态:未在状态转换图中显示,但某些操作系统允许父进程终结子进程。
7、运行态一一等待态:等待使用资源或某事件发生,如等待外设传输;等待人工干预。
8、等待态一一就绪态:资源得到满足或某事件己经发生,如外设传输结束;人工干预完成。
9、运行态一一就绪态:运行时间片到,或出现有更高优先权进程。
10、就绪态一一运行态:CPU空闲时被调度选中一个就绪进程执行。

进程调度算法

  • FCFS:先来先服务,也可以称为先进先出
  • 轮转:以一个周期性间隔产生时钟中断,此时当前正在运行的进程被置于就绪队列,基于FCFS选择下一个就绪进程运行。
  • SPN:最短进程优先,下一次选择所需处理时间最短的进程
  • SRT:最短剩余时间优先,总是选择预期剩余时间最短的进程
  • HRRN:最高响应比优先,R=(w+s)/s,其中R表示响应比,w表示已经等待的时间,s表示期待服务的时间
  • 反馈:进程第一次进入系统是放置于RQ0,第一次被强占并返回就绪态时,放入RQ1,以后每次被强占就下降一级。如果进程处于最低等级,则不再降级,反复返回到该队列,直到结束。

例如

进程 到达时间 运行时长
A 0 3
B 2 6
C 4 4
D 6 5
E 8 2
调度算法1.jpg
调度算法2.jpg

你可能感兴趣的:(操作系统——进程)