个人小爱好:Operating System: three easy pieces第6章第5节——总结
总结
我们讨论了实现CPU虚拟化的部分底层机制,及我们统称为直接执行(direct execution)的一组技术。基本的思想十分简单明了:直接在CPU上运行你想运行的代码,但是你先得确保将硬件设置好以便在没有操作系统的协助下去限制进程能做的事。
这些通用的方法也在真实生活中被运用。比如:你们中的有孩子的部分人,或者,总该听说过儿童吧,也许对婴儿防护室:一间将危险物品锁在柜中,插座被掩盖住的房间。在这样准备的房间中,你可以让你的孩子自由的玩耍,因为你明白房间中绝多数的潜在危险都被限制了。
以类似的方式,操作系统通过在启动阶段设置trap处理函数和启动计时器中断将CPU打造成一间“婴儿防护房”,然后让程序运行在这个限制的模式下。由此,操作系统可以确保进程的高效运行,且只有在特权指令或进程占用CPU过久而需要进行进程切换时才需要操作系统干预。
因此我们有了合适的对CPU进行虚拟化的基本机制。但是,还有一个主要的问题没有解决:在一个给定的时间段里,哪一个进程应该被运行?下一章我们学习的专题:调度器,会回答这个问题。
TIPS:有用的重启
在前一部分,我们注意到在协作系统下陷入死循环或者其他类似的情况时唯一的方法就是重启机器。然而你也许会嘲笑这种做法,,但调调查表明重启(或者更通用地,重启部分软件)在构建一个健将的操作系统是是一个非常有用的工具。
特别是,因为能让软件回到已知或被测试过的状态,故重启时十分有用的。重启也会回收超时或溢出的资源(如内存),然而其他方法也许很难做到。最后,重启十分简单。由于这些原因,在大型集群网络服务中,系统管理软件周期性的重启部分机器以重置他们,以便利用上述的优点。
那么,下一次你重启的时候,不在再认为时装模做样了,相反,你正是再用一种经过时间检验的方法去提升计算机系统的性能!
个人小爱好:Operating System: three easy pieces第6章第5节——总结的更多相关文章
- 个人小爱好:Operating System: three easy pieces—第6章第3小节问题2#进程间的切换
问题2#:进程间的切换 直接执行的下一个问题是如何实现进程的切换.进程的切换按理说是挺简单的,对吧?不就是决定哪一个进程应该停止,哪一进程应该开始而已,才多大点事情啊?但,事实上这还真的有点棘手:尤其 ...
- 个人小爱好:Operating System:three easy pieces---第6章第4节_担心并发问题?
担心并发问题? 微妙,上下文切换大约6微妙.而,现在的系统有着级数级别的提升,在2-3GHz的处理起中消耗只有亚微妙级. 但应该注意到,不是所有的系统性能都跟着CPU性能的提升而提升,根据Ouster ...
- OS OSTEP (Operating Systems Three Easy pieces 操作系统导论 )
读<OSTEP>的一点重点记录与感悟 (未完) Chapter-2 第二章 1. 操作系统的设计目标: 抽象.高性能.保护.不间断运行. 抽象:建立一些“抽象”,让操作系统方便和易于使用 ...
- book-rev8 Chapter 0 Operating system interfaces
Chapter 0 第0章 Operating system interfaces 操作系统接口 The job of an operating system is to share a comput ...
- Operating System 概述和学习图
Operating System 概述和学习图 大神绕道,鄙人初入 OS . 一.想知OS,先知计算机系统概述 #图解 #基本指令和中断周期 #直接内存存取(Direct Memory Access, ...
- IX-Protected Dataplane Operating System解读
一.概述 商业操作系统在应用程序每秒钟需要数百万次操作时才能保持高吞吐量和低(尾)延迟,对于最慢的请求只需几百微秒.通常认为对于高性能网络(小信息的高包率.低延迟)的构建,最好都是在内核之外构建用户态 ...
- How to Make a Computer Operating System
How to Make a Computer Operating System 如何制作一个操作系统(翻译版) 原文地址:Github:How to Make a Computer Operating ...
- 知其然而所以然:Operating System 概述和学习图
大神绕道,鄙人初入 OS . 一.想知OS,先知计算机系统概述 #图解 #基本指令和中断周期 #直接内存存取(Direct Memory Access,DMA) I/O模块对存储器发出读命令或者写命令 ...
- 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 ...
随机推荐
- angular 2 - 004 routing 路由
https://angular.io/tutorial/toh-pt5 定义一个模块用来定义路由 src/app/app-routing.module.ts import { NgModule } f ...
- 微信支付 python版
需求: 微信打开商品列表页面-> 点击商品后直接显示付款页面-> 点击付款调用微信支付 说明 微信支付需要你申请了公众号(appid, key - 用于签名), 商户号(mch_id, A ...
- 使用pyenv安装多个Python版本
pyenv是一个便于使用多版本Python环境的工具 pyenv使用shell脚本编写的,只需要下载就可以使用了,不需要root用户,这个我比较喜欢. 具体介绍看网址:https://github.c ...
- 远程FTP下载文件
现在存在以下环境: 远程服务器:192.168.1.107 用户名:dt 密码:dt123 需要从该服务器上下载文件到本地 1.登录(进入到那个目录登录的 ,文件就会被下载到该文件) ftp 192. ...
- [Java] Windows/Linux路径不同时,统一war的最简办法
作者: zyl910 一.缘由 在项目开发时,因为运行环境的不同,导致有时得分别为不同的环境,切换配置参数打不同war包.但手工切换配置文件的话,不仅费时费力,而且容易出错. 有些打包工具支持配置切换 ...
- GPL、BSD、MIT、Mozilla、Apache、LGPL开源协议介绍
BSD开源协议 BSD开源协议是一个给于使用者很大自由的协议.基本上使用者可以”为所欲为”,可以自由的使用,修改源代码,也可以将修改后的代码作为开源或者专有软件再发布. 但”为所欲为”的前提当你发布使 ...
- Linux内存、性能诊断中vmstat命令的详解
vmstat命令是最常见的Linux/Unix监控工具,可以展现给定时间间隔的服务器的状态值,包括服务器的CPU使用率,内存使用,虚拟内存 交换情况,IO读写情况.相比top,通过vmstat可以看到 ...
- [转]Redis cluster failover
今天测试了redis cluster failover 功能,在切换过程中很快,但在failover时有force 与takeover 之分 [RHZYTEST_10:REDIS:6237:M ~] ...
- E-WORK 对接 MTS 系统
E-WORK 目前的 E-WORK 系统主要包含了如下功能: 技能类型的管理 比如说品质检验技能.测试技能(成品测试或半成品测试).组装装配技能(打螺丝.合壳.点胶等).包装技能(封箱. ...
- 强化学习-时序差分算法(TD)和SARAS法
1. 前言 我们前面介绍了第一个Model Free的模型蒙特卡洛算法.蒙特卡罗法在估计价值时使用了完整序列的长期回报.而且蒙特卡洛法有较大的方差,模型不是很稳定.本节我们介绍时序差分法,时序差分法不 ...