操作系统与计算机体系结构概述

一、硬件系统

硬件系统指组成计算机基本结构的 5 个部分:运算器、控制器、存储器以及输入设备和输出设备。
运算器和控制器通常集成在一个芯片上,成为中央处理器(CPU)。CPU 是执行程序时进行运算和控制的装置,它直接控制着计算机各个部件的工作,是硬件系统的核心。
存储器是存放系统中运行的程序和数据的部件。
输入输出设备(外围设备)是用于实现计算机系统与外界信息交换的各种硬件设备。
硬件是操作系统存在的物质基础。硬件层提供给操作系统的接口是机器的指令系统。操作系统的程序使用指令系统提供的机器指令所具有的功能,实现对硬件的直接管理和控制

指令集

CPU的架构是根据其内部微指令集的不同划分的
精简指令集 (RISC)
 这种 CPU 的设计中,微指令集较为精简,每个指令的运行时间都很短,完成的动作也很单纯,指令的执行效能较佳; 但是若要做复杂的事情,就要由多个指令来完成。常见的 RISC 微指令集 CPU 主要例如甲骨文 (Oracle) 公司的 SPARC 系列、 IBM 公司的 Power Architecture (包括 PowerPC) 系列、与安谋公司 (ARM Holdings) 的 ARM CPU 系列等。常使用的各厂牌手机、PDA、导航系统、网络设备(交换器、路由器等)等,几乎都是使用 ARM 架构的 CPU。
复杂指令集 (CISC) 
与 RISC 不同,CISC 在微指令集的每个小指令可以执行一些较低阶的硬件操作,指令数目多而且复杂, 每条指令的长度并不相同。因为指令执行较为复杂所以每条指令花费的时间较长, 但每条个别指令可以处理的工作较为丰富。常见的 CISC 微指令集 CPU 主要有 AMD、Intel、VIA 等的 x86 架构的 CPU。由于 AMD、 Intel、 VIA 所开发出来的 x86 架构 CPU 被大量使用于个人计算机(Personal computer)用途上, 因此个人计算机常被称为 x86 架构的计算机。那为何称为 x86 架构呢? 这是因为最早的那颗 Intel 发展出来的 CPU 代号称为 8086,后来依此架构又开发出 80286, 80386..., 因此这种架构的 CPU 就被称为 x86 架构了。在 2003 年以前由 Intel 所开发的 x86 架构 CPU 由 8 位升级到 16、32 位,后来 AMD 依此架构修改新一代的 CPU 为 64 位, 为了区别两者的差异,因此个人计算机 CPU 又被统称为 x86_64架构。

存储器(主存 辅存 即 内存 外存)

存储器按存储层次分可以分为三类,分别是寄存器、内存和外存。寄存器位于CPU内,主存又称内存,辅存即硬盘。仔细划分的话,主存还可以分为高速缓存、主存、磁盘缓存。层次越往上,存储介质访问速度越快,价格越贵。

  (1)寄存器

  寄存器位于CPU内,是CPU的组成部分。它是计算机系统内CPU访问速度最快的存储部件,完全能与CPU协调工作。不过价格太贵,只能做得很小。寄存器是用来存放系统最常访问的数据,如,指令寄存器用来存放从内存读到的正在执行的指令,程序计数器存放下一条指令所在单元的地址。其本质就是用来存放供CPU最频繁访问的一批数据。寄存器就是为了解决CPU访问主存速度过慢的问题。通常,CPU从主存读取数据,放入寄存器内,以便频繁访问。

  (2)内存

CPU可以通过指令直接存取主存中的数据,所以CPU对主存的访问速度也很快,不过这个速度也远低于CPU的执行速度。为了解决这个问题,引入了寄存器和高速缓存。高速缓存也是属于内存,不过它与通常的主存的实现形式不同,一般由静态存储芯片(SRAM)组成,访问速度比主存高得多, 接近于CPU的速度。而主存通常使用动态MOS随机读写存储器DRAM组成。高速缓存的作用就是存放主存中一些经常被访问的信息。磁盘缓存的本质就是主存划分的一个小区域,为了减少CPU透过I/O读取磁盘机的次数,提升磁盘I/O的效率,用一块区域来储存存取较频繁的磁盘内容。

二、软件系统

操作系统

操作系统是靠近硬件的软件层,其功能是直接控制和管理系统资源。操作系统与其他系统软件一起向用户提供了一个良好的工作环境,用户无需了解许多与硬件和系统软件的细节,就能方便的使用计算机。操作系统的核心层直接参考硬件规格写成, 所以同一个操作系统程序不能够在不一样的硬件架构下运作。例如 Windows 8.1 不能直接在 ARM 架构 (手机与平板硬件) 的计算机下运作,但是目前有的windows可以在arm架构下运行。

系统调用可以理解为内核提供的系统函数 比如fork之类的 称为应用层api。内核会根据这些系统函数继续调用其内部的内核层函数api。内核提供给上层两种接口,一个是操作接口一个是编程接口
两种接口的区别在于使用系统调用的方式不同。

接口

编程接口就是一组系统调用 即用户直接调用系统函数:
应用软件(C,C++等高级语言调用库函数比如printf时 )->系统调用(实际上该printf函数会调用内核提供的系统函数write 称为应用层API)->内核(系统函数write会继续调用内核内部函数sys_wirte 称为内核层Api )->硬件(通过内核层api去调动驱动 从而调用硬件)
操作接口有命令接口(在终端下输入命令 通过系统软件命令行式shelll(比如linux下的bash,csh windows下的cmd.exe等等把命令翻译成系统调用)和图形界面接口(windows下面的某个操作  Ubuntu下面的某个操作通过系统软件图形界面shell如CDE、GNOME、KDE、 XFCE等等翻译成系统调用):
操作接口(比如在终端输入某个命令行式shell会把它翻译成系统调用 或者某个鼠标操作图形界面式shell会把它翻译成系统调用 )->系统调用(调用内核提供的系统函数)->内核(系统函数write会继续调用内核内部函数sys_wirte 称为内核层Api)->硬件

在调用C语言的如printf函数时,在linux下会继续调用内核提供的系统函数write (在windows内核是write_file函数),在不同系统上编译时编译器会自动调用系统函数与标准库函数对应,运行二进制可执行文件时调用的也是该系统的系统函数。
用系统函数直接操作时能做的东西更多,比如用c语言的fopen函数创建文件时,不能制定文件的权限 而系统函数可以。再比如用C语言的写文件函数 write 时要先经过内核缓冲区,缓冲区内数据达到一定条件以后再用系统函数sys_write往文件里写每次sys_write写都是一次性的写,所以用系统函数write直接写更快。

shell

shell就是一个软件,这个软件的作用就就是翻译用户的命令或者操作成系统调用。
一:图形界面shell(Graphical User Interface shell 即 GUI shell)
例如:应用最为广泛的 Windows Explorer (微软的windows系列操作系统),还有广为人知的 Linux shell,其中linuxshell 包括 X window manager (BlackBox和FluxBox),以及功能更强大的CDE、GNOME、KDE、 XFCE。
二:命令行式shell(Command Line Interface shell ,即CLI shell)
例如:bash / sh / ksh / csh(Unix/linux 系统)
(MS-DOS系统)
cmd.exe/ 命令提示字符(Windows NT 系统)
Windows PowerShell(支援 .NET Framework 技术的 Windows NT 系统)
传统意义上的shell指的是命令行式的shell。文字操作系统与外部最主要的接口就叫做shell。shell是操作系统最外面的一层。shell管理你与操作系统之间的交互:等待你输入,向操作系统解释你的输入,并且处理各种各样的输出结果。可以以交互方式(从键盘输入,并且可以立即得到响应)或者以shell script(非交互)方式执行。shell script是放在文件中的一串shell和操作系统命令,它们可以被重复使用。本质上,shell script是命令行命令简单的组合到一个文件里面。

三、操作系统

从操作系统的设计目标及其功能,通常把操作系统分为 3 类:批处理操作系统、分时操作系统和实时操作系统。

批处理系统
        单道批处理系统:在单道系统的内存中,除了操作系统的程序外只能存放一道用户作业
        多道批处理系统:多道系统的技术核心是实现了处理机与设备的并行工作,在多道系统中操作系统必须实现有限资源在多个程序间的合理分配,并尽可能地提高系统资源的使用效率。
分时系统
        所谓分时,就是把处理机的时间分成若干小的时间片,把每个时间片轮流分配给各个程序。时间片的长短由系统确定。主要设计目标:1、 及时响应用户请求,所以响应时间是分时系统的衡量指标。2、 提高资源利用率。分时操作系统主要用于小型机、工作站和高档微型机。UNIX 就是一个分时系统。
实时系统
        实时操作系统可分为两类:实时控制系统和实时信息处理系统。主要设计目标:实时响应及处理能力高、高可靠性、安全性。实时操作系统也可以连接多个终端,各个终端也可以与系统发生交互,但是它与分时系统不同,其差别主要体现在以下 3 个方面:
(1) 目标不同。
分时系统:通用性较强的计算机系统;
实时系统:提供一种特殊用途的专用计算机系统。
(2) 交互能力不同。
分时系统具有较强的交互会话能力,可以运行任何用户程序,可以应用户的不同请求给予响应。
实时系统中的应用程序是预先设计好的,只能响应预先约定好的用户请求。
(3) 响应时间不同。
分时系统:以人能就接受的程度来确定响应时间,通常是秒数量级;
实时系统:以控制过程或信息处理过程所能容忍的延迟来确定,通常是毫秒或微秒数量级。
(4)可靠性不同。

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值