码迷,mamicode.com
首页 > 其他好文 > 详细

操作系统学习笔记

时间:2015-01-10 17:50:31      阅读:279      评论:0      收藏:0      [点我收藏+]

标签:

进程、线程概念

进程:一个进程就是一个正在执行的程序的实例。

进程转换:

进程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马上分配给新到达的作业(抢占式)。

 多级队列算法运作过程示例:

 

假设系统中有3个反馈队列Q1,Q2,Q3,时间片分别为2,4,8。

 

现在有3个作业J1,J2,J3分别在时间 0 ,1,3时刻到达。而它们所需要的CPU时间分别是3,2,1个时间片。

 

1、时刻0 J1到达。于是进入到队列1 , 运行1个时间片 , 时间片还未到,此时J2到达。

 

2、时刻1 J2到达。 由于时间片仍然由J1掌控,于是等待。 J1在运行了1个时间片后,已经完成了在Q1中的2个时间片的限制,于是J1置于Q2等待被调度。现在处理机分配给J2。

 

3、时刻2 J1进入Q2等待调度,J2获得CPU开始运行。

 

4、时刻3 J3到达,由于J2的时间片未到,故J3在Q1等待调度,J1也在Q2等待调度。

 

5、时刻4 J2处理完成,由于J3,J1都在等待调度,但是J3所在的队列比J1所在的队列的优先级要高,于是J3被调度,J1继续在Q2等待。

 

6、时刻5 J3经过1个时间片,完成。

 

7、时刻6 由于Q1已经空闲,于是开始调度Q2中的作业,则J1得到处理器开始运行。 J1再经过一个时间片,完成了任务。于是整个调度过程结束。
 
 
周转时间为作业完成时刻减去作业到达的时刻:作业完成时刻-作业到达时刻
平均周转时间就是用周转时间总时间除以作业个数:所有作业的周转时间/作业总数
甘特图:一种时间表示
技术分享
 
 

用户空间建立的线程包和内核建立的线程包区别图

技术分享

 

临界区:每个进程中访问临界资源的那段代码称为临界区(Critical Section)(临界资源是一次仅允许一个进程使用的共享资源)。每次只准许一个进程进入临界区,进入后不允许其他进程进入。不论是硬件临界资源,还是软件临界资源,多个进程必须互斥地对它进行访问。

操作系统学习笔记

标签:

原文地址:http://www.cnblogs.com/sunniest/p/4215183.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!