一、操作系统导论和结构

引言

出于三个原因,近期有一段时间没怎么写文章了。一、前段时间公司人员变动比较大,工作任务较为繁忙;二、家庭生活中有一些事需要处理;三、最近集中时间学习了一些与 iOS 开发并无直接关系的知识,如:操作系统、数据库系统、计算机组织和结构、设计模式。上述四个方向的知识点,一两个月的时间也知识了解了一些简单的皮毛,没有个一年半载的怕是只能了解各大概。上述四个方向的知识点,设计模式算是整体过了一遍,操作系统的知识看了不少,其它两面也就简单看了一丁点。计划近期抽出一些时间,将之前看的操作系统相关知识整理一下,写作一系列关于操作系统知识的文章。

本篇文章主要讲述一些操作系统的基础知识。

  • 什么是操作系统
  • 操作系统发展过程
  • 操作系统类型
  • 操作系统的操作和功能
  • 操作系统结构
  • 虚拟机

一、什么是操作系统

1.1 操作系统不可或缺

操作系统的最底层是硬件,最上层是用户。如果没有操作系统,程序将无法运行。操作系统作为计算机最底层的软件,是应用程序的基本支撑环境,不可或缺。


计算机系统的四部分

1.2 操作系统目标

操作系统的核心目标是运行程序,其次是为了更高效实用计算机,更方便用户使用计算机。早期是为了高效,目前是为了方便用户使用。

1.3 操作系统定义

目前很难明确定义操作系统。存在两种观点:

  • 1.当你预定一个操作系统时,零售商所给的所有东西就是操作系统。
  • 2.内核才是操作系统。内核是一直运行在计算机上的程序,内核不运行则计算机无法运行。
    观点 1 最大化了操作系统,如内置在操作系统的软件 IE 浏览器实际不应该算是操作系统中的一部分;而观点 2 则细化了操作系统定义,仅仅有内核操作系统不足以运行起来。

1.4 现代计算机系统

主要有三部分组成:一个或多个CPU(也称核)和内存、若干通过总线相连接的设备控制器和 I/O 设备、总线。

CPU从内存中读取指令和数据,并执行指令,也就是运行程序;而各个 I/O 设备则由各自的控制器控制。每个控制器相当于小型化的处理器,只不过该处理器只能负责特定设备的运行。所以CPU和设备控制器可并行运行,并竞争内存。

接下来看看CPU通过设备控制器控制设备的过程。在此之前要知道每个设备控制器都有一个本地缓冲,CPU在内存和缓冲之间传输数据,I/O 控制器从设备到缓存之间传输数据(如图一)。举一个从磁盘读取数据的例子,具体控制过程结合图二。

  • 1.CPU 通过总线发出 I/O 指令给磁盘控制器。
  • 2.此时CPU可以去执行其他进程上的指令,而磁盘控制器在收到指令后从磁盘控制器中读取数据。
  • 3.磁盘将数据传送到磁盘控制器的缓冲区中。
  • 4.磁盘控制器通知 CPU 数据已经读取好了,触发CPU中断。
  • 5.CPU 响应中断,并将控制器缓冲区中的数据读入到内存中。

上述过程中CPU和控制器是可以并行执行的,磁盘控制器在读入数据的同时,CPU可以执行其他指令。


图一

图二

1.5 中断

中断是指当出现需要时,CPU暂时停止当前进程的执行,转而执行处理新情况的中断处理程序。当执行完该中断处理程序后,则重新从刚才停下的位置继续当前进程的执行。

为了区分不同的中断,每个设备有自己的中断号。系统有 0--255 个中断。系统中有一张中断向量表,用于存放 256 个中断的中断服务程序入口地址。每个入口地址对应一段代码,即中断服务程序。中断需要 CPU 的支持,一般 CPU 至少有一个引脚用于接收中断。

二、操作系统发展过程

2.1 人工操作

由用户采用人工操作方式直接使用硬件系统。即由程序员将事先已穿孔(对应程序和数据)的纸带装入纸带输入机,将程序和数据输入到计算机,再启动计算机。程序运行完毕取走结果之后,下一个用户才能使用。

2.2 简单批处理(单道程序设计)

简单批处理系统的核心是一个常驻监控程序,负责调度作业运行,自动从一个运行完的作业切换到下一个作业。

2.3 多道程序设计

当内存中仅有一道程序时,每当程序在运行中发出 I/O 请求后,CPU 将会空闲下来,等待 I/O 操作完成后 CPU 才能继续运行,由此可见 CPU 的利用率显著降低。因此就出现了多道程序设计。在引入多道程序设计技术后,由于内存中同时装有若干道程序,可以交替运行。这样,当正在运行的程序因为 I/O 而暂停执行,系统可调度另一道程序运行,从而使CPU和I/O操作并行,是CPU处于忙碌状态,提高 CPU 利用率。

额外说明下,并行是指两个或者多个作业在同一时刻运行;并发是指两个或多个作业在同一时间间隔内依次运行。随着多核处理器的发展,实际中对并行和并发不做严格区分。

2.4 分时

早期系统作业属于批处理作业,无需人机交互。后来为了实现实时人机交互作业(交互作业要求响应时间短),便出现了分时系统。在一段时间内,每个作业依次轮流运行一个时间片。这样可以使得每个作业都获得较短的响应时间,从而满足交互作业的要求。遵循分时策略的操作系统就是分时系统。单位时间内,每个用户获得一个时间片并运行,这样每个用户会感觉自己独占一台计算机。

三、操作系统类型

大型机系统

大型机系统具有强大的计算和 I/O 能力,如 IBM AIX、IBM z/OS、HP-Unix。

桌面系统

个人计算机。

手持系统

手持设备如手机、平板等。

嵌入式系统

完全嵌入受控器件内部,为特定应用而设计的专用计算机系统。随着单片机的出现而出现。如智能手环。

分布式系统

即把同一个复杂计算分布到不到的设备上进行,但目前真正意义上的分布式系统是不存在的。客户机-服务器系统等只算是分布式系统中的部分实现。

多核/多处理器系统

多处理器系统中有包含多个紧密通信的处理器,一般这些处理器在同一个主板上。多个处理器共享计算机总线、时间、内存和外设等。多处理器系统中,一个芯片有多个核,一个核即为一个处理器(如四核、八核等)。一般不对多处理器系统和多核处理器系统做区分。

多处理器系统分为两类:

  • 对称处理(SMP):每个处理器运行操作系统的相同副本,每个处理器都处于对等地位。 SMP架构实际比较多。
  • 非对称处理(ASMP):各个处理器不对等。一般是一个主处理器和若干个从处理器,主处理器为从处理器安排任务,从处理器可能是专门处理图像的,专门处理网络通信等。ASMP架构相对较少,不适合PC,但是和手机等要求功耗的设备(如高通的骁龙820芯片手机CPU采用 ASMP 架构)。

集群系统

通过专用网络连接一群计算机,把这些计算机虚拟化为一台具有超强计算能的计算机公用户使用。可以看做是分布式处理系统和多处理器系统的折中形成。目前世界上的大多是超级计算机都数据集群系统,如计算能力世界第一的神威太湖之光,由 40960 块 4 核神威 26010 处理器组成。

四、操作和功能

4.1 操作系统操作

双模式、I/O和内存保护、定时器三者是确保操作系统能够运行的关键技术。

a、双模式

为了保证操作系统不受其它故障程序的影响,进而产生系统崩溃的可能。一种常用的办法是引入双重模式,即用户模式和内核模式。内核模式只能运行操作系统的程序。所有的用户应用程序只能在用户模式下运行。 双模式需要CPU的支持,如果CPU有模式位,则可以在操作系统中实现双模式,目前主流的CPU基本都有模式位。双模式允许操作系统不受其它故障应用程序的影响。特权指令是指可能引起崩溃的指令,该指令只能运行在内核模式中。 如果用户程序需要使用特权指令,可以通过系统提供的API调用。

b、I/O保护和内存保护

定义所有I/O指令为特权指令,用户应用程序无法直接访问I/O指令,只能通过系统调用进行I/O操作,从而避免非法I/O操作。

利用基址寄存器和限长寄存器隔离不同程序的内存地址。

c、定时器

如果用户程序死循环或用户程序不调用系统调用,此时操作系统将无法获得CPU并对系统进行管理。解决方法是引入定时器,在一段时间后发生中断,将CPU控制权返回给操作系统。

4.2 操作系统功能

操作系统主要有四个核心功能:进程管理、内存管理、文件管理以及 I/O 设备管理。

五、操作系统结构

5.1 简单结构

早期操作系统规模小,简单且功能有限。所以早期的操作系统称为简单结构或无结构。简单结构导致系统内部比较混乱、不易维护、不适合大规模系统开发。

5.2 层次结构

层次结构中,将操作系统划分为若干层,在底层的基础上构建高层,每层只使用相邻低层次的功能和服务,不能夸层级使用更底层功能和服务。最底层为硬件,最高层为用户层。层析结构优点是:简化了系统设计和实现,便于调试和维护。缺点是:层的定义比较困难,其次是效率比较差,有的服务调用可能跨越多个层级,增加系统开销。iOS 系统就是典型的分层结构。同普遍分层结构不同的是iOS系统允许跨层级调用。



核心系统层提供为上层结构提供最基础的服务如操作系统内核服务、本地认证、安全、加速等;核心服务层为程序提供基础的系统服务,如网络访问、浏览器引擎、定位、文件访问、数据库访问等;媒体层主要提供图像引擎、音频视频引擎框架;可触摸层主要提供用户交互先关的服务如界面控件、事件管理、通知中心、通知中心、地图等。

5.3 微内核结构

随着内核越来越大,越难管理,便产生了微内核,即核内移除尽可能多功能到用户空间。优点是便于扩充内核,便于移植操作系统到新架构系统上,更稳定(更少的代码运行在和心态);缺点是用户空间和内核空间通信的系统开销增加,但是采用消息传递机制可以解决该问题。

5.4 模块化结构

目前大多数系统采用的都是模块化结构。使用面向对象的方法,将每个核心部分拆开,每个模块在需要时被加载到内核。如Solaris模块:


5.5 混合结构

除了上述四种结构之外,也有很多系统采用多种混合结合。如Mac OS 系统。采用了 Mach 微内核和层次化结构。


六、虚拟机

虚拟机是一种通过软件模拟实现,具有完整硬件系统功能,并运行在一个完全隔离环境中的完整计算机系统。虚拟机最大的优点是物理计算机中的每个虚拟机同其他虚拟机隔离,相互之间不会干扰。虚拟机主要有三种实现途径:高级语言虚拟机、工作站虚拟机、服务器虚拟机。

6.1 高级语言虚拟机

高级语言虚拟机运行在操作系统之上,主要功能是提供代码运行的容器,模拟代码执行,使得代码能够跨平台运行。典型的代表是JVM(JAVA VM),它是JAVA语言的解释器。只要根据JVM规格将解释器一直到特定操作系统上,就能运行经过编译的任何Java代码,使得Java语言和平台无关。但是要注意,针对不同的操作系统需要不同的JVM。如下图,运行在操作系统上的JVM,为上层JRE、JDK以及JAVA的各种继承工具屏蔽掉操作系统的影响。


6.2 工作站虚拟机

工作站虚拟机也是运行在操作系统之上,是操作系统中的操作系统,也成 Guest OS。目的是多个操作系统可以同时在一个计算机上使用。宿主操作系统是指安装在硬件上的操作系统;客户操作系统是指安装在操作系统上的操作系统。工作站虚拟机作为一个软件安装在宿主操作系统中,在工作站虚拟机上可以安装一个或多个客户操作系统,从而使得一个计算机上可以使用多个操作系统。如VMWare Station、Virtual Box、Virtual PC 和Parallels Desktop 等。

6.3 服务器虚拟机

服务器虚拟机和前两者不同,它是直接安装在硬件上。目的是把一个物理计算机虚拟化为多个虚拟机,使得多用户、多操作系统在一个物理计算机上并存。如将服务器物理资源抽象成逻辑资源,让一台服务器编程几台甚至上百台相互隔离的服务器虚拟机。有两种常用模式:一虚多和多虚一。一虚多是指将一台服务器虚拟成多台服务器虚拟机。多虚一是指将多个独立的物理服务器虚拟为一个服务器虚拟机。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 205,033评论 6 478
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 87,725评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 151,473评论 0 338
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,846评论 1 277
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,848评论 5 368
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,691评论 1 282
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,053评论 3 399
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,700评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 42,856评论 1 300
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,676评论 2 323
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,787评论 1 333
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,430评论 4 321
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,034评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,990评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,218评论 1 260
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 45,174评论 2 352
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,526评论 2 343

推荐阅读更多精彩内容