总结

我们讨论了实现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. jquery监测文本框变化

    $("#mobile").on('keyup paste blur', function () {            var mobile = $(this).val();   ...

  2. JavaScript 同步异步示意图

  3. 最完整苹果IOS个人开发账号升级方法-个人开发账号升级为公司开发者账号常见误区

    1:背景交代 大概晚上10点钟之后在知乎上看到很多人聊审核被拒PLA1.2,主要电商和金融类APP被拒很多.主要原因是 1:发布的APP与改账号关联度很低.(说白苹果怀疑你是山寨APP,不是优质的AP ...

  4. mysql多实例配置下,用脚本启动mysql时,出现Please read "Security" section of the manual to find out how to run mysqld as root!

    [root@localhost 3308]# mysqld stop170414 0:35:28 [Note] --secure-file-priv is set to NULL. Operation ...

  5. SQL DDL 数据定义语句

    前言 DDL(Data Definition Language)语句:数据定义语句,这些语句定义了不同的数据段.数据库.表.列.索引等数据库对象.常用的语句关键字主要包括 create.drop.al ...

  6. myBase7 激活方法

    一.引言: 之前使用过一段时间的myBase,那时候发现还不太美观,所以弃用了一段时间,最近看到有myBase7出来,使用了一下感觉还可以,但是只能试用一个月,不过还好找到了破解的方法. 二.破解步骤 ...

  7. java maven通过SMTP发送QQ邮件的完全步骤

    1.首先打开QQ邮箱的SMTP服务,因为QQ邮箱对于一般的用户都是默认关闭SMTP服务的. 找到SMTP服务的选项,可以看到此处默认是关闭的,点击开启,然后腾讯会进行一些身份验证,身份验证通过以后,腾 ...

  8. c语言搜索子字符串

    c字符串功能练习: 获取一行字符串,然后,在这行字符串中搜索是否包含一个小字符串 #include <cstdio> #include <cstring> #define N ...

  9. SQL Server 2016新特性:Query Store

    使用Query Store监控性能 SQL Server Query Store特性可以让你看到查询计划选择和性能.简化了性能调优,可以快速的发现因为查询计划的选择导致的性能的差别.Query Sto ...

  10. Java编程的逻辑 (95) - Java 8的日期和时间API

    ​本系列文章经补充和完善,已修订整理成书<Java编程的逻辑>,由机械工业出版社华章分社出版,于2018年1月上市热销,读者好评如潮!各大网店和书店有售,欢迎购买,京东自营链接:http: ...