总结

我们讨论了实现CPU虚拟化的部分底层机制,及我们统称为直接执行(direct execution)的一组技术。基本的思想十分简单明了:直接在CPU上运行你想运行的代码,但是你先得确保将硬件设置好以便在没有操作系统的协助下去限制进程能做的事。

这些通用的方法也在真实生活中被运用。比如:你们中的有孩子的部分人,或者,总该听说过儿童吧,也许对婴儿防护室:一间将危险物品锁在柜中,插座被掩盖住的房间。在这样准备的房间中,你可以让你的孩子自由的玩耍,因为你明白房间中绝多数的潜在危险都被限制了。

以类似的方式,操作系统通过在启动阶段设置trap处理函数和启动计时器中断将CPU打造成一间“婴儿防护房”,然后让程序运行在这个限制的模式下。由此,操作系统可以确保进程的高效运行,且只有在特权指令或进程占用CPU过久而需要进行进程切换时才需要操作系统干预。

因此我们有了合适的对CPU进行虚拟化的基本机制。但是,还有一个主要的问题没有解决:在一个给定的时间段里,哪一个进程应该被运行?下一章我们学习的专题:调度器,会回答这个问题。

TIPS:有用的重启

在前一部分,我们注意到在协作系统下陷入死循环或者其他类似的情况时唯一的方法就是重启机器。然而你也许会嘲笑这种做法,,但调调查表明重启(或者更通用地,重启部分软件)在构建一个健将的操作系统是是一个非常有用的工具。

特别是,因为能让软件回到已知或被测试过的状态,故重启时十分有用的。重启也会回收超时或溢出的资源(如内存),然而其他方法也许很难做到。最后,重启十分简单。由于这些原因,在大型集群网络服务中,系统管理软件周期性的重启部分机器以重置他们,以便利用上述的优点。

那么,下一次你重启的时候,不在再认为时装模做样了,相反,你正是再用一种经过时间检验的方法去提升计算机系统的性能!

个人小爱好:Operating System: three easy pieces第6章第5节——总结的更多相关文章

  1. 个人小爱好:Operating System: three easy pieces—第6章第3小节问题2#进程间的切换

    问题2#:进程间的切换 直接执行的下一个问题是如何实现进程的切换.进程的切换按理说是挺简单的,对吧?不就是决定哪一个进程应该停止,哪一进程应该开始而已,才多大点事情啊?但,事实上这还真的有点棘手:尤其 ...

  2. 个人小爱好:Operating System:three easy pieces---第6章第4节_担心并发问题?

    担心并发问题? 微妙,上下文切换大约6微妙.而,现在的系统有着级数级别的提升,在2-3GHz的处理起中消耗只有亚微妙级. 但应该注意到,不是所有的系统性能都跟着CPU性能的提升而提升,根据Ouster ...

  3. OS OSTEP (Operating Systems Three Easy pieces 操作系统导论 )

    读<OSTEP>的一点重点记录与感悟 (未完) Chapter-2 第二章 1. 操作系统的设计目标:  抽象.高性能.保护.不间断运行. 抽象:建立一些“抽象”,让操作系统方便和易于使用 ...

  4. book-rev8 Chapter 0 Operating system interfaces

    Chapter 0 第0章 Operating system interfaces 操作系统接口 The job of an operating system is to share a comput ...

  5. Operating System 概述和学习图

    Operating System 概述和学习图 大神绕道,鄙人初入 OS . 一.想知OS,先知计算机系统概述 #图解 #基本指令和中断周期 #直接内存存取(Direct Memory Access, ...

  6. IX-Protected Dataplane Operating System解读

    一.概述 商业操作系统在应用程序每秒钟需要数百万次操作时才能保持高吞吐量和低(尾)延迟,对于最慢的请求只需几百微秒.通常认为对于高性能网络(小信息的高包率.低延迟)的构建,最好都是在内核之外构建用户态 ...

  7. How to Make a Computer Operating System

    How to Make a Computer Operating System 如何制作一个操作系统(翻译版) 原文地址:Github:How to Make a Computer Operating ...

  8. 知其然而所以然:Operating System 概述和学习图

    大神绕道,鄙人初入 OS . 一.想知OS,先知计算机系统概述 #图解 #基本指令和中断周期 #直接内存存取(Direct Memory Access,DMA) I/O模块对存储器发出读命令或者写命令 ...

  9. OSMC Vs. OpenELEC Vs. LibreELEC – Kodi Operating System Comparison

    Kodi's two slim-and-trim kid brothers LibreELEC and OpenELEC were once great solutions for getting t ...

随机推荐

  1. springboot-admin自定义事件通知

    springboot-admin组建已经提供了很多开箱即用的通知器(例如邮件),但在有些业务场景下我们需要做一些企业内部的通知渠道,这就需要我们来自定义通知器. 实现其实很简单,只需要往spring注 ...

  2. Docker入门 - 004 Docker 容器使用

    Docker 客户端 docker 客户端非常简单 ,我们可以直接输入 docker 命令来查看到 Docker 客户端的所有命令选项. docker 可以通过命令 docker command -- ...

  3. Linux内存、性能诊断中vmstat命令的详解

    vmstat命令是最常见的Linux/Unix监控工具,可以展现给定时间间隔的服务器的状态值,包括服务器的CPU使用率,内存使用,虚拟内存 交换情况,IO读写情况.相比top,通过vmstat可以看到 ...

  4. Atitit 如何创新 创新只有在两种条件下发生:自由、效率。

    Atitit 如何创新 创新只有在两种条件下发生:自由.效率. 创新是如何发生的呢? 创新只有在两种条件下发生:自由.效率.在自由的环境下,对效率的追逐等于创新.如果你不自由,你的思想不够开阔,你脑洞 ...

  5. why-the-default-authentication-hadoop-is-unsecured ?

    https://www.learningjournal.guru/article/hadoop/hadoop-security-using-kerberos/ https://stackoverflo ...

  6. (转)创建Windows服务(Windows Services)N种方式总结

    转自:http://www.cnblogs.com/aierong/archive/2012/05/28/2521409.html 最近由于工作需要,写了一些windows服务程序,有一些经验,我现在 ...

  7. JQuery DataTables Selected Row

    获取单行选中的值 $('#MonitoringTypeTable tbody').on('click', 'tr', function () { if ($(this).hasClass('selec ...

  8. 织梦dedecms安全设置详情

    第一.安装的时候数据库的表前缀,最好改一下,不用dedecms默认的前缀dede_,可以改成ljs_,随便一个名称即可. 第二.后台登录开启验证码功能,将默认管理员admin删除,改成一个自己专用的, ...

  9. return在try...except...finally...中的表现

    一直以为return就直接退出函数了,最近遇到一情况,在try中return,并没有什么卵用,还是会去执行finally里的内容,导致不能正确返回想要的数据 一直以为return就会跳出函数,发现原来 ...

  10. Java API获取consumer group最新提交位移的时间

    碰到了有人问起这个问题,目前java consumer没有利用OffsetAndMetadata中的metadata字段记录提交的时间,故直接通过java consumer来查询是不行,我们需要直接读 ...