[操作系统]01-操作系统简介

操作系统简介

什么是操作系统?

作为程序员,我们都知道:程序 = 数据结构 + 算法。然而,之所以我们的数据结构能够保存数据,我们的算法能够运行。都离不开另一个程序的帮助——操作系统(Operating System)。

Bridge

如果将硬件和我们所写的软件比作中间隔着一条河的两岸,那么操作系统就是夹在中间的桥梁。每当我们在河东岸的程序需要从硬盘中读取文件时,我们需要执行系统调用(System Calls)来让操作系统到河的西岸帮我们将数据取来。每当我们的程序被其它程序排挤,没法占用CPU资源的时候,又是操作系统为我们的程序安排日程,规划好使用CPU的时间和时长。总而言之,操作系统就是让编程不那么复杂的最重要的因素。

当然,就像你定外卖需要遵从美团或者饿了么提出的协议一样,操作系统也会提供类似的“协议”,我们称之为API(Application Programming Interface)。用户程序必须通过API来利用操作系统所拥有的功能(就像你必须要通过美团APP才能从美团点外卖)。

操作系统提供的功能

通俗的来讲,操作系统会提供三个主要的功能:

  • 虚拟化
  • 并发
  • 持久性
虚拟化 (Virtualization)

所谓虚拟化,就是将物理 (physical) 资源(如处理器、内存等)转换为更通用、更强大且更便捷的虚拟形式 (virutal)。这也是问什么有的时候,我们称操作系统为“虚拟机”(virtual machine)。

从某种程度来讲,虚拟化和银行的运作方式有些类似。我们都知道,由于存款准备金(Deposit Reserve)的存在,银行账面上的钱不一定能代表它真的有那么多钱。

举个例子来讲,如果银行有100元,而存款准备金比率(Reserve Ratio)为10%,那么就说明银行必须保留10%,也就是10元留在银行。而其余的钱可以用作放贷等操作。

这种情况下,假如你去银行贷款90元,又将90元存到银行,之后贷款90的90%,81元。再将贷款得到的81元存到银行……循环往复。到最后,原本只有100元的银行,账面上却是1000元。有兴趣的同学可以记一下下面的公式:

currentMoneySupply = 100
reserveRatio = 0.1
moneyMultiplier = 1 / reserveRatio
totalMoneySupply = currentMoneySupply * reserveRatio

诶?等等,不是说好是操作系统吗?怎么开始讲经济了?其实,虚拟化和存款准备金率的表现形式非常相似。你可以把CPU资源或者RAM的大小想象成是银行里的存款,我们所写的程序就是需要贷款的人。而虚拟化呢,其实就好比是银行存款准备金率的机制一样,只不过这一次准备金率无限接近于0。

对于借贷者来讲,银行告诉他:我们银行有数不尽的钱可以用来贷款。而对于我们所写的程序而言,操作系统告诉它:你有无限多的CPU资源和RAM可以使用。

并发 (Concurrency)

我们平时在用电脑的时候,可以一边工作,一边听音乐,一边下载东西。这都要归功于并发,这一操作系统提供的机制。你很难想象的到如果一台计算机失去了并发的功能会是什么样子:我们甚至连写中文的文章这项任务都没法完成。因为当你打开文本编辑器之后,CPU资源已经被它全部占用了。这也意味着我们的输入法必须等待编辑器结束进程之后才能运行。这才是真正意义上的“鱼和熊掌不可兼得”。多么可怕!

此外,并发是一种表现形式,而不是一种运行方式。它和并行(Parallel)有着本质上的区别。并发关注的是结果:在一段时间内能够运行程序的数量。而并行是一种运行方法:两个程序在同时在同一时间运行。注意到区别了吗?并发允许两个进程先后(轮换)运行,而进程是两个程序一定在同一时间运行。从这里我们也可以看得出来,并发(Concurrency)包含并行(Parallel)

举个例子来讲,我们先一口饭,后喝一口水,再吃一口饭……最终,我们把吃饭和喝水这两件事同时完成了。这,就是并发。

而并行呢?则是我们把饭和水同时放进嘴里,同时完成了吃饭和喝水两件事。这就行并行。

持久性 (Presistency)

操作系统提供的第三个功能就是持久性。如果我们所有的数据只能保存在内存中,一旦系统发生崩溃,那么所有的数据就会丢失。因此,我们需要硬件和软件来持久地存储数据。

所有的硬件都会以I/O设备的形式出现。我们的程序通过调用操作系统提供的API来进行I/O操作。将保存在磁盘的数据比作是饭店里的饭的话,I/O API就是市面上的各种外卖软件,而用户通过外卖软件点外卖这个过程则是程序执行系统调用的过程。

操作系统中管理磁盘的软件通常被成为文件系统(File System)。它负责以可靠和高效的方式,将用户创建的任何文件储存在系统的磁盘上。

总结

操作系统是一个提供用户程序运行平台的一个程序。它通过三个主要的功能来实现这一点:

  • 虚拟化
  • 并发
  • 持久性
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值