跳到主要内容

概述

操作系统是整个计算机系统软硬件资源的管理者。根本上OS抽象和虚拟化了硬件资源,并为上层软件和用户提供接口的一个平台。

软硬件在逻辑上是等效的。操作系统和高级编程语言的出现,只是简化了对硬件的管理和利用。本质没有改变。

OS的必要性

操作系统基于两个目的产生:

  1. 安全:防止硬件被失控的应用程序滥用
  2. 简易:向应用程序提供简单一致的机制来控制复杂的低级硬件设备
讲个故事

这个社会就是一个巨大的操作系统,每一个人都是一个进程。社会是人的运行时。 社会管理着整个世界软硬件接口。硬件是指自然环境、物质。 你作为一个进程打球需要去球馆,睡觉需要房子吧,出行需要汽车吧。你也可以调用别的进程提供的接口(比如你去饭店吃饭,需要调用厨师那个进程给你炒菜吧)。 这就是封装的魅力。 如果没有厨师这个职业,没有出租车司机,甚至这个社会都不存在, 那么你要吃饭都得自己做(不便捷),还没有厨师专业(你做的不好吃,甚至有毒,把你自己给杀死了)。

所以我们再理解马克思说的人的本质属性是社会关系这个意思。你在与别人交往的过程,就是不停的调用别的进程的服务。或者是社会的服务。

我们可以清晰的感受到,一切调用对象的封装,都是基于安全性和便捷性考虑的。 操作系统作为一个封装自然也不例外。

但同时操作系统在管理和调用硬件资源中,会加快整个多任务的处理。在上面的故事中,我们假设一个场景:如果你去了餐厅,但是还需要等你的女朋友(菜要等你女朋友来点)。但等待的过程中,出来了另一批人。那么厨师会先给别人炒菜,而不会和你一起等待你的女朋友。

南向虚拟化管理

理解

操作系统的出现不在对上层暴露内部操作。因此他可以把所有的物理资源全部虚拟化,达到资源利用的最优解。(银行有现金10个亿,任何储蓄账户都可以提,但这些储蓄账户实际存钱的总数远远大于10个亿,这就是虚拟化带来的好处,而作为储蓄主,免去你学习自己去用你的钱投资理财的成本(不够便捷)和投资会亏的风险(不够安全),银行还会每个月给你利息)。

操作系统为实现安全和简易采用的思路:抽象虚拟化。因此OS又被称为虚拟机。

  1. 在任务管理中,通过异步的方式虚拟化了CPU。实现了从多任务批处理到分时的跨越。
    1. 进程控制和调度
    2. 进程同步
    3. 进程通信
  2. 在内存管理中,采用虚拟内存的方式,每个进程都拥有个自的内存空间,实现安全。
    1. 内存分配和回收
    2. 内存保护
    3. 地址映射机制和虚拟内存
  3. 在设备管理中,采用虚拟设备的方式。具体在后文讲到,便捷。
    1. 缓冲管理:缓冲区机制有效缓解CPU和IO运行速度差
    2. 设备分配
    3. 设备处理程序:实现CPU和设备管理器之间的通信,由CPU向设备控制器发出IO指令,要求它完成IO操作;由CPU接收来自控制器发出的中断请求,并迅速响应和处理。
  4. 在文件管理中,文件本身就是对IO设备的虚拟化,便捷。
    1. 文件存储空间管理
    2. 目录管理
    3. 文件的读写管理和保护
四大特征

并发、共享、异步、虚拟。并发和共享是最基本的特征,是互为存在条件。无并发则没有共享问题。无共享则无法并发执行

  1. 资源是共享的.
  2. 任务是并发的.
  3. 资源共享需要异步实现.
  4. 并发需要虚拟化实现.

北向接口

  1. 命令接口:用户接口
    1. 交互式:GUI图形接口、CLI命令接口
    2. 脱机:批处理命令接口*.bat
  2. 程序接口: 系统调用。操作系统提供给应用程序使用的接口,可以理解为一种可供应用程序调用的特殊函数,应用程序可以通过系统调用来请求获得操作系统内核的服务。操作系统内核对共享资源进行统一管理,并向上提供系统调用,用户进程想要使用打印机这种共享资源,只能通过系统调用向操作系统内核发出请求,内核进行协调处理
备注

比如: 操作系统给进程提供的是虚拟化后的内存空间. C/C++指针打印出来的地址是虚拟内存地址.

虚拟机

Virtual OS & VMM/Hypervisor

  1. 直接用在硬件上,直接分配和控制物理资源,在安装guest OS时,VMM要在原本的硬盘上自行分配存储空间,类似于外核的分配方式,分配未经抽象的物理硬件,性能好,虚拟机数量更多,不需要竞争资源,VMM运行在最高特权级,可以之行最高特权的指令。可迁移性差

  2. 运行在宿主OS上,对物理资源依赖Host OSGuestOS拥有自己的虚拟磁盘,该盘实际上是HostOS文件系统中的一个大文件,GuestOS分配到的内存是虚拟内存,性能差,HostOS本身需要使用物理资源,HostOS上运行的其他进程也需要物理资源,部分运行在内核态,部分运行在核心态,GuestOS发出的系统调用回被VMM截获,转化为VMM对HostOS的系统调用。可迁移性好

Loading Comments...