首页 > 代码库 > 操作系统学习笔记
操作系统学习笔记
进程、线程概念
进程:一个进程就是一个正在执行的程序的实例。
进程转换:
进程3个状态:运行态,阻塞态,就绪态。
1.进程为等待输入而阻塞。
2.调度程序选择另一个进程。
3.调度程序选择这个进程。
4.出现有效输入。
线程:轻量级进程。
作业调度:
按照某种原则,从后备作业队列中选取作业进入内存,并为作业做好运行前的准备工作以及作业完成后的善后处理工作。
主要调度算法:
First Come First Serve 先来先服务:按到达时间先后排序。
Shorted Job First (nonpreemptive & preemptive ) 最短作业优先:按作业的运行时间排序,由短到长。
Round robin 轮转调度:每个进程执行一个时间片后移到队列末尾,把CPU交给下一个进程。
Priority Scheduling 优先级调度:执行当前实时优先级最高的进程。动态优先级是在创建进程时赋予该进程一个初始优先级,然后其优先级随着进程的执行情况的变化而改变。
Multiple Queues 多级队列:
1.进程在进入待调度的队列等待时,首先进入优先级最高的Q1等待。
2.首先调度优先级高的队列中的进程。若高优先级中队列中已没有调度的进程,则调度次优先级队列中的进程。
3.对于同一个队列中的各个进程,按照时间片轮转法调度。
4.在低优先级的队列中的进程在运行时,又有新到达的作业,那么在运行完这个时间片后,CPU马上分配给新到达的作业(抢占式)。
多级队列算法运作过程示例:
用户空间建立的线程包和内核建立的线程包区别图
临界区:每个进程中访问临界资源的那段代码称为临界区(Critical Section)(临界资源是一次仅允许一个进程使用的共享资源)。每次只准许一个进程进入临界区,进入后不允许其他进程进入。不论是硬件临界资源,还是软件临界资源,多个进程必须互斥地对它进行访问。
操作系统学习笔记