我们之前介绍了 基础数据结构和算法 、计算机网络 ,接下来我们介绍 操作系统 基础知识。
基础数据结构和算法、计算机网络回顾如下:
不怎么清楚的可以去瞅瞅。
操作系统简介
操作系统(operating system,简称OS)是管理计算机硬件与软件资源的计算机程序。
操作系统需要处理如管理与配置内存、决定系统资源供需的优先次序、控制输入设备与输出设备、操作网络与管理文件系统等基本事务。
操作系统也提供一个让用户与系统交互的操作界面。
操作系统的型态非常多样,不同机器安装的操作系统可从简单到复杂,可从非智能手机的嵌入式系统到超级电脑的大型操作系统。
许多操作系统制造者对它涵盖范畴的定义也不尽一致,例如有些操作系统整合了图形用户界面,而有些仅使用命令行界面,而将图形用户界面视为一种非必要的应用程序。
操作系统理论在计算机科学中,为历史悠久而又活跃的分支;而操作系统的设计与实现则是软件工业的基础与内核。
现代操作系统由一个或多个处理器、主存、打印机、键盘、鼠标、显示器、网络接口以及各种输入/输出设备构成。
计算机操作系统是一个复杂的系统。
我们一般常见的操作系统主要有 Windows、Linux、FreeBSD 或 OS X ,这种带有图形界面的操作系统被称为 图形用户界面(Graphical User Interface, GUI),
而基于文本、命令行的通常称为 Shell。
下面是我们所要探讨的操作系统的部件
操作系统所处的位置图
这是一个操作系统的简化图,最下面的是硬件,硬件包括芯片、电路板、磁盘、键盘、显示器等我们上面提到的设备,在硬件之上是软件。
大部分计算机有两种运行模式:内核态 和 用户态,软件中最基础的部分是操作系统,它运行在 内核态 中,内核态也称为 管态 和 核心态,它们都是操作系统的运行状态,只不过是不同的叫法而已。
操作系统具有硬件的访问权,可以执行机器能够运行的任何指令。软件的其余部分运行在 用户态 下。
用户接口程序(shell 或者 GUI)处于用户态中,并且它们位于用户态的最低层,允许用户运行其他程序,例如 Web 浏览器、电子邮件阅读器、音乐播放器等。
而且,越靠近用户态的应用程序越容易编写,如果你不喜欢某个电子邮件阅读器你可以重新写一个或者换一个,但你不能自行写一个操作系统或者是中断处理程序。
这个程序由硬件保护,防止外部对其进行修改。
计算机组件
操作系统与运行操作系统的内核硬件关系密切。操作系统扩展了计算机指令集并管理计算机的资源。
因此,操作系统因此必须足够了解硬件的运行,这里我们先简要介绍一下现代计算机中的计算机硬件。
简单个人计算机组件图
中央处理器(CPU)
中央处理器(central processing unit,简称CPU)作为计算机系统的运算和控制核心,是信息处理、程序运行的最终执行单元。
CPU 是计算机的大脑,它主要和内存进行交互,从内存中提取指令并执行它。
一个 CPU 的执行周期是从内存中提取第一条指令、解码并决定它的类型和操作数,执行,然后再提取、解码执行后续的指令。重复该循环直到程序运行完毕。
在计算机体系结构中,CPU 是对计算机的所有硬件资源(如存储器、输入输出单元) 进行控制调配、执行通用运算的核心硬件单元。
CPU 是计算机的运算和控制核心。计算机系统中所有软件层的操作,最终都将通过指令集映射为CPU的操作。
中央处理器(CPU)图解
内存
计算机中第二个主要的组件就是内存。
理想情况下,内存应该非常快速(比执行一条指令要快,从而不会拖慢 CPU 执行效率),而且足够大且便宜,但是目前的技术手段无法满足三者的需求。
于是采用了不同的处理方式,存储器系统采用一种分层次的结构
存储层次结构图
顶层的存储器速度最高,但是容量最小,成本非常高,层级结构越向下,其访问效率越慢,容量越大,但是造价也就越便宜。
我们逐一介绍一下上面的寄存器、高速缓存、主存、磁盘
1、寄存器
存储器的顶层是 CPU 中的寄存器,它们用和 CPU 一样的材料制成,所以和 CPU 一样快。
程序必须在软件中自行管理这些寄存器(即决定如何使用它们)。
寄存器图
2、高速缓存
位于寄存器下面的是高速缓存,它多数由硬件控制。
高速缓存储是存在于主存与CPU之间的一级存储器, 由静态存储芯片(SRAM)组成,容量比较小但速度比主存高得多, 接近于CPU的速度。
其原始意义是指存取速度比一般随机存取记忆体(RAM)来得快的一种RAM,一般而言它不像系统主记忆体那样使用DRAM技术,而使用昂贵但较快速的SRAM技术,也有快取记忆体的名称。
在计算机存储系统的层次结构中,是介于中央处理器和主存储器之间的高速小容量存储器。它和主存储器一起构成一级的存储器。高速缓存和主存储器之间信息的调度和传送是由硬件自动进行的。
高速缓存最重要的技术指标是它的命中率。
3、主存
在上面的层次结构中再下一层是主存,这是内存系统的主力军,主存通常叫做 RAM,由于 1950 年代和 1960 年代的计算机使用微小的可磁化铁氧体磁芯作为主存储器,
因此旧时有时将其称为核心存储器。所有不能再高速缓存中得到满足的内存访问请求都会转往主存中。
主存储器一般采用半导体存储器,与辅助存储器相比有容量小、读写速度快、价格高等特点。
计算机中的主存储器主要由存储体、控制线路、地址寄存器、数据寄存器和地址译码电路五部分组成,如下图所示:
其中,存储体是存储单元的集合,用来存放数据;地址译码驱动电路包含译码器和驱动器两部分,
译码器将地址总线输入的地址码转换成与之对应的译码输出线上的有效电平,以表示选中了某一存储单元,然后由驱动器提供驱动电流去驱动相应的读写电路,
完成对被选中存储单元的读写操作;I/O和读写电路包括读出放大器、写入电路和读写控制电路,用以完成被选中存储单元中各位的读出和写入操作。
4、磁盘
下一个层次是磁盘(硬盘),磁盘同 RAM 相比,每个二进制位的成本低了两个数量级,而且经常也有两个数量级大的容量。
磁盘唯一的问题是随机访问数据时间大约慢了三个数量级。磁盘访问慢的原因是因为磁盘的构造不同
磁盘驱动器的构造
一个磁盘
(如一个 1T 的机械硬盘)由多个盘片
(如下图中的 0 号盘片)叠加而成。
盘片的表面涂有磁性物质
,这些磁性物质用来记录二进制数据。因为正反两面都可涂上磁性物质,故一个盘片可能会有两个盘面。
每个盘片被划分为一个个磁道,每个磁道又划分为一个个扇区, 其中,最内侧磁道
上的扇区
面积最小,因此数据密度最大。如下图:
每个盘面对应一个磁头。所有的磁头都是连在同一个磁臂上的,因此所有磁头只能“共进退”。
所有盘面中相对位置相同的磁道组成柱面
。如下图,
I/O 设备
I/O 就是”输入/输出“(Input/Output)
I/O设备就是可以将数据输入到计算机,或者可以接收计算机输出数据的外设,属于计算机中的硬件部分。
IO设备按照使用特征分类:
- 人机交互类外部设备(数据传输速度慢)
- 存储设备(数据传输数据快)
- 网络通信设备(数据传输速度介于上述二者之间,在于网络设备情况)