操作系统概念 -第七版-重要概念的理解-(23-33)

作者:u010833547

23.操作系统用高级语言提高了移植性,汇编编译器优化弥补了高级语言速度慢的缺点,另外通过性能检测程序可以发掘性能瓶颈,采用汇编进行优化。操作系统的性能瓶颈主要是:CPU调度和内存管理器

24.操作系统一般都带有性能监控程序,把执行过程的重要参数记录并写入日志文件,之后分析发现性能瓶颈和错误。

25.操作系统分层少,导致系统功能管理能力低,很容易出错。

26.分层太多,导致系统性能下降,并且层次设计复杂。

27.微内核特点表现为:移植性好,精简容易修改和扩展,客户端和服务端的交互式通过微内核进行交互的。缺点,性能低下。优化手段:把部分层次从用户空间移动到内核空间使微内核具备更多功能紧凑的功能,从而变成单一内核功能。

28.进程不止是运行的程序,而是一个系统分配资源的单位。

29.一、cpu调度采用MRU最近经常使用,二、中级调度采用LRU最近不经常使用,三、作业调度则是按照IO为主和CPU为主两类作业调度,使得资源合理分配。

30.用户线程需要内核线程来提供运行支持,因此CPU的调度单位是内核线程,一个内核线程占用一个CPU的时间片,如果多个线程对于一个内核线程,那么这些线程只能并发的在一个CPU上运行,而不能并行在多核CPU上,Solaris的GREEN THREAD库就是这样的系统。而Linux和Windows采用的是一对一的线程模型,即一个线程对于一个内核线程,这样一个进程的多个用户线程可以并行在多个CPU核心上。

31.而多对多的模型(多个用户线程对应多个内核线程)是两者的折中 ,是多路复用技术,即多个用户线程复用一组内核线程,多核CPU分用这一组内核线程。

32.其中多对一的线程模型又被称为用户级别的线程模型,而一对一和多对多则是内核级别的线程库。

33.linux2.6版本以前的线程库是多对一模型的线程库,所以CPU得不到很好的利用,而2.6版本开始有了NPTL(Native POSIX Thread Library),开始支持一对一的线程模型(内核级别的)。win32API的线程库则是一对一模型的,属于内核级别的。
JAVA的线程库依赖于JVM的宿主,例如jvm运行在linux,则使用NPTL,运行在Windows则采用WIN32API。

34.fork()从父进程的当前代码开始复制一个子进程,如果在子进程调用exec()执行指定其他程序,那么子进程会被指定程序覆盖。
而在线程中调用fork有2种:一、只复制当前线程到子进程中,二、复制整个进程中的所有线程到子进程中。
发表评论

2个评论

  • qq_40235022

    看了很有帮助

    2017-09-14 09:12:51回复

  • u010833547

    回复qq_40235022: 文章只是为书本做了知识索引····想了解其所以然,还得翻阅相关资料。这样做的目的,操作系统太过复杂,每个知识点都写一篇博客太过繁琐,而为知识点做索引好处多,就好比对数据库做索引,而人脑就相当于数据缓存,书本就相当于数据库。

    2017-09-14 09:34:19回复

我要留言×

技术领域:

我要留言×

留言成功,我们将在审核后加至投票列表中!

提示x

操作系统知识库已成功保存至我的图谱现在你可以用它来管理自己的知识内容了

删除图谱提示×

你保存在该图谱下的知识内容也会被删除,建议你先将内容移到其他图谱中。你确定要删除知识图谱及其内容吗?

删除节点提示×

无法删除该知识节点,因该节点下仍保存有相关知识内容!

删除节点提示×

你确定要删除该知识节点吗?