注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

刘邓

每天收获一点点-目标:富足

 
 
 

日志

 
 

《操作系统精髓与原理设计第六版》读书笔记(3)  

2012-06-03 10:42:11|  分类: 操作系统类 |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |
第四章 线程,对称多处理(SMP)和微内核
第一部分:线程
1.进程和线程:
资源所有权:进程拥有资源所有权,进程下的线程共享进程资源
执行/调度:一个进程是一个具有执行状态,优先级能被操作系统调度和分配的实体,线程是进程内的并发执行路径。

2.线程优点:
①时间开销是创建新进程的1/10
②终止线程的时间开销小
③线程切换时模式切换开销小
④不需要调用内核进程就可以完成通信。

3.什么时候使用线程:
①前台和后台 ②异步处理(操作线程和备份线程)
③执行速度:多处理器系统中,一个进程的多个线程可以在多个处理机上并行执行,这样即使一个线程发生阻塞,其他线程依然可以运行
④模块化程序设计:涉及多种活动或者多种输入输出的源和目的地程序更易于用线程设计和实现

4.线程状态:
派生——阻塞——接触阻塞——结束
挂起是进程级别的操作,当一个进程被挂起则其所有的线程都将被挂起。

5.线程同步:
同步线程对共享资源的行为。

6.用户级线程:
线程在用户空间运行,内核意识不到多线程的村咋,线程的调度也不是由系统内核实现的,而是由程序员设定的
优点:①因为不需要内核参与调度,则程序员可以为程序量身定做合适的调度算法(轮转调度/基于优先级调度)
  ②因为不许呀内核参与调度,则不需要由用户态——内核态——用户态的转化
  ③用户具有更好的平台无关系(反正调度算法是由程序员实现的)
缺点:①因为不是由内核调度的所以当进程的一个线程被阻塞时,整个进程都将被阻塞
   ②因为不是内核调度的,而处理器分配由内核实现所以没法做到在多处理器上的并行执行
解决方案:
  ①对于问题一将多线程改为多进程(进程开销大,不合适)
  ②jacketing方法:设立特定的jacket线程用来检测系统调用是否阻塞,线程询问jacket线程的服务状态如果服务可用则立即调用,否则就立马切换到其他线程
7.内核级线程:
内核进程为进程及其内部的每个线程维护上下文信息,调度完全由内核基于线程完成
优点:克服了用户级进程的缺点+内核进程自身也可以多线程
缺点:线程切换伴随着状态切换,开销大
PS.用户级的线程比内核级线程的时间开销少一个数量级,故良好的设计(注意良好2字)可以很好的提高系统性能

8.其他:用户级线程和内核级线程的组合,线程和进程的对应关系;1:1,1:m,n:1,n:m

第二部分:对称多处理(SMP)
1.计算机体系结构分类:
SISD 单指令单数据流  SIMD 单指令多数据流 MISD 多指令单数据流(从未被实现过)  MIMD 多指令多数据流
并行处理器:SIMD—MIDI(共享内存的:主/从(主机运行操作系统的内核)和对称多处理(内核线程在多个处理器运行)|分布式内存(集群))

2.对称多处理的设计思考(多操作系统的设计思考,同时对普通程序也是适用的,因为本质上操作系统也是一些进程/线程)
同时的步伐进程或线程——调度——同步——存储管理——可靠性和容错

第三部分:微内核
操作系统的分层模式:下层为上层提供服务,上层使用下层的接口(这个和网络的分层结构还挺像的)
微内核:将最基本的操作系统功能放入内核中,其他的一些辅助功能都在用户模式运行。

优点:一致接口(通过消息传递,不需要区分是内核服务还是用户服务) 可扩展性(在微内核基础上增减)灵活性,可移植性,可靠性(最重要的内核就那么大一点,反复测试保证可靠性)分布式系统支持(同样基于消息传递,当然支持)和面向对象操作系统

第四部分:列举了Windows线程和SMP管理,Solaris线程和SMP管理以及Linux的进程和线程管理。
  评论这张
 
阅读(193)| 评论(0)
推荐 转载

历史上的今天

在LOFTER的更多文章

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2017