操作系统与应用(第四版知识梳理) CH1 INTRODUCTION

CH1 INTRODUCTION

1.1 什么是操作系统

操作系统的定义

操作系统(Operating System)是管理软硬件资源、控制程序执行,改善人机界面,合理组织计算机工作流程和为用户使用计算机提供良好运行环境的一种系统软件

作为扩展机器的操作系统

  • – 操作系统的作用就是提供给用户的一个扩展的机器或者虚拟的机器等价物,这样就比基本的硬件要易于编程。

  • – 对程序员隐匿硬件真相,并且提供一个简洁的可以读写的命名文件视图,毫无疑问,这种程序就是操作系统。

  • – 操作系统给出的抽象都比基本的硬件要简单和易于使用。

  • – 这种概念是一个自上而下的观点

作为资源管理器的操作系统

  • – 自底向上的观点则认为,操作系统是管理复杂系统的所有部分的。

  • – 操作系统的任务就是在多个竞争资源的程序之间,为处理器、存储器以及I/O设备提供有序的、受控的分配。

  • – 简而言之,这种观点认为操作系统其主要任务就是记录下谁在使用哪个资源、批准资源请求、统计使用情况以及协调来自不同程序和用户的请求冲突。

  • – 资源管理有两种方式:按时间和按空间

作为用户与计算机硬件之间的接口

  • – 改造硬件设施,屏蔽使用细节,方便用户使用

  • – 提供原语或广义指令,扩展机器的指令系统

  • – 合理组织计算机的工作流程,协调各个部件有效工作,为用户提供一个良好的运行环境

    用户接口:
    (1) 命令方式;
    (2) 系统调用方式;
    (3) 图形、窗口方式

操作系统的作用

  1. 硬件抽象,屏蔽底层硬件差异

  2. 应用集成,提供通用方法工具

  3. 高级管理,维护环境稳定安全

1.2 操作系统历史

  • 操作系统出现与发展的本质目的

    – 充分利用硬件,提供更好的服务
    

  • 基本的硬件发展历程

    – 大型机时代——PC机时代——后PC时代

1.3 操作系统大观

• 大型机操作系统

  • 操作系统的高端是针对大型机的,这些房间大小般的计算机仍然可以在大型公司的数据中心找到。大型机也被用于高端的Web服务器(大型电子商务站点的服务器)以及b2b(business-to-business)事务的服务器。

  • 大型机的操作系统主要面向同时处理许多作业,而这些作业绝大部分都需要海量的I/O。它们一般提供三种服务:批处理、事务处理和分时

• 服务器操作系统

  • 它们运行与服务器上,这些服务器可能是大型的个人计算机、工作站,甚或是大型机。

  • 它们通过网络同时为多个用户服务,并且允许用户共享硬件和软件资源。

  • 服务器可以提供打印服务、文件服务或者Web服务。Internet提供商运行许多服务器以支持他们的客户,Web站点使用服务器贮存网页以及处理呼入(incoming)请求。

  • 典型的服务器操作系统有UNIX和Windows 2000。Linux也在服务器领域逐渐普及

• 多处理机操作系统

  • 在一个系统中连接多个CPU,这些系统称为并行计算机、多计算机系统或者多处理机系统,这取决于如何连接以及共享哪些设备。

  • 它们需要特殊的操作系统,不过通常都采用服务器操作系统的变种,加上有关通信和连通性方面的特性。

• 个人计算机操作系统

  • 它们的任务就是为单个用户提供良好的界面。他们广泛用于字处理、电子表格和Internet访问。

  • 一般的例子有Windows 9x/Me/2000/XP、Macintosh操作系统以及Linux。

  • 个人计算机操作系统是如此的众所周知,几乎无需再作介绍。事实上,许多人甚至不知道还有其他类型的操作系统。

• 实时操作系统

  • 这些系统的特征就是把时间作为一个关键参数。通常它们必须符合严格的时间界限。

  • 如果动作确定必须在确定的时刻(或者在一个确定的范围内)发生,如不满足将会引起灾难性的后果,这就是硬实时系统(hard real-time system)。

  • 另外一种实时系统是软实时系统(soft real-time system),在这种系统中,偶尔错过时间界限是可以接受的,只造成系统性能下降而不会带来严重恶果。数字音频或者多媒体系统就属于此列。

  • VxWork和QNX是著名的实时操作系统。

• 嵌入式操作系统

  • 嵌入式系统运行于控制设备的计算机上,而这些计算机通常并不被认为是计算机,例如电视机、微波炉和移动电话。

  • 它们通常具有实时系统的特征,不过同时由于受到尺寸、内存以及能量限制而使得它们更为特殊。

  • 这种操作系统的例子有PalmOS和Windows CE (Consumer Electronics)。

• 智能卡操作系统

  • 最小的操作系统运行于智能卡(SmartCard)上。智能卡是一种信用卡大小的、包含CPU芯片的设备。它们有着非常苛刻的处理能力和内存约束。

  • 很多智能卡只能处理单个功能,例如电子支付,不过其他的可以处理多个功能。

  • 通常这些系统都是专利系统

1.4 计算机硬件回顾

在这里插入图片描述

CPU

在这里插入图片描述
在这里插入图片描述

存储器

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

I/O设备

在这里插入图片描述

中断

  • 是指CPU在正常运行程序时,由于内部/外部事件或由程序预先安排的事件,引起CPU中断正在运行的程序,而转到为内部/外部事件或为预先安排的事件服务的程序中去,服务完毕,再返回去执行暂时中断的
    程序。

  • 中断分硬件中断和软件中断两种。中断为计算机的硬件设备和软件"部件"提供了一种相互交流的途径,这就是它的作用

DMA

  • DMA(Direct Memory Access),即直接存储器存取,是一种快速传送数据的机制。数据传递可以从I/O设备到内存,从内存到
    I/O设备或从一段内存到另一段内存。

  • 利用它进行数据传送时不需要CPU的参与。每台电脑主机板上都有DMA控制器,通常计算机对其编程,并用一个适配器上的ROM(如软盘驱动控制器上的ROM)来储存程序,这些程序控制DMA传送数据。一旦控制器初始化完成,数据开始传送,DMA就可以脱离CPU,独立完成数据传送。

在这里插入图片描述

总线

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

操作系统的功能

  • 处理机管理:完成处理机资源的分配调度等功能。包括:进程控制、进程同步、进程通信、调度等。

  • 存储管理:提高利用率、方便用户使用、提供足够的存储空间、方便进程并发运行。包括:存储分配与回收、存储保护、地址映射、内存扩充(覆盖、交换和虚拟存储)等。

  • 设备管理:方便设备使用、提高CPU与I/O设备利用率。包括:设备操作、设备独立性、设备分配与回收、缓冲区管理等。

  • 信息管理:解决软件资源的存储、共享、保密和保护。包括:文件存储空间管理、目录管理、文件的读写管理和存取控制、软件管理等。

  • 用户接口:提供一个友好的用户访问操作系统的接口。操作系统向上提供两种接口:系统命令、编程接口。

操作系统的特征

并发(concurrency)

多个事件在同一时间段内发生。操作系统是一个并发系统,各进程间的并发,系统与应用间的并发。操作系统要完成这些并发过程的管理。

注:并行(parallel)是指在同一时刻发生。

  • 在多道程序处理时,宏观上并发,微观上交替
    执行(在单处理器情况下)。

  • 程序的静态实体是可执行文件,而动态实体是
    进程(或称作任务),并发指的是进程。

共享(sharing)

多个进程共享有限的计算机系统资源。操作系统要对系统资源进行合理分配和使用。资源在一个时间段内交替被多个进程所用。

  • 互斥共享(如音频设备):资源分配后
    到释放前,不能被其他进程所用。

  • 同时访问(如可重入代码,磁盘文件)

  • 资源分配难以达到最优化

虚拟(virtual)

一个物理实体映射为若干个对应的逻辑实体-分时或分空间。虚拟是操作系统管理系统资源的重要手段,可提高资源利用率。

  • CPU--每个用户(进程)的“虚处理机”

  • 存储器--每个进程都占有的地址空间(指令+数据+堆栈)

  • 显示设备--多窗口或虚拟终端(virtual terminal)

异步性(asynchronism)

也称不确定性,指进程的执行顺序和执行时间的不确定性。

  • 进程的运行速度不可预知:分时系统中,多个进程并发执行,“时走时停”,不可预知每个进程的运行推进快慢

  • 判据:无论快慢,应该结果相同--通过进程互斥和同步手段来保证

  • 难以重现系统在某个时刻的状态(包括重现运行中的错误)

  • 性能保证:实时系统与分时系统相似,但通过资源预留以保证性能

1.5 操作系统概念

进程 Processes

进程基本上就是正在执行的程序。

进程的定义:程序在并发环境中的执行过程

进程和程序是两个完全不同的概念,它们之间的主要区别是:

    1. 程序是静态概念;进程是程序的一次执行过程,
    是动态概念。
    

    2. 进程是一个能独立运行的单位,它作为资源申请
    和调度单位存在;程序是不能作为一个独立运行
    的单位而并发执行的。
    

    3. 程序和进程无一一对应关系
    

    4. 各个进程在并发执行过程中会产生相互 制约的关
    系

每个进程都有其地址空间(address space),从某个最小值(一般为0)到某个最大值的内存位置列表,这是进程可以读写的范围。该地址空间包括可执行程序、程序数据以及它的堆栈。

同样,每个进程还有许多寄存器,包括程序计数器、堆栈指针
和其他硬件寄存器,以及运行该程序的所有其他信息。

进程树

在这里插入图片描述

死锁 Deadlocks

两个或多个进程相互影响时,有时候会使得它们自己陷入无法自拔的僵局。这种情形称为死锁(deadlock)。

在这里插入图片描述

内存管理 Memory Management

每台计算机都有一些主存,用于容纳执行程序。在非常简单的操作系统中,一个时刻只有一个程序在内存中。要运行第二个程序,必须将第一个移去,把第二个放入内存。

更高级的操作系统允许多个程序同时在内存中。为了阻止它们相互妨碍,需要某些保护机制。尽管这些机制必须放在硬件中,但是都是由操作系统来控制。

另一个不同但同样重要的、与内存相关的问题就是进程的地址空间的管理。通常,每个进程都有某些地址可以使用,一般从0到某个最大值。

输入/输出 Input/Output

所有的计算机都由物理设备来获取输入,并产生输出。毕竟,用户不能告诉计算机做什么,也不能得到要求它工作所产生的结果。输入和输出设备有很多,包括键盘、显示器、打印机等等。管理这些设备都取决于操作系统。

因此,每个操作系统都有一个I/O子系统来管理I/O设备。某些I/O软件是设备无关的,也就是说,可以同样地应用于许多或者所有的I/O设备。而其他的则是针对特定的I/O设备,例如设备驱动程序

文件 Files

所有实际操作系统都支持的另一个重要概念就是文件系统。正如前面所提到的,操作系统的一个主要功能就是隐藏磁盘和其他I/O设备的特性,给程序员提供一个合意的、干净的、关于设备无关文件的抽象模型。

显然,需要系统调用来创建文件、删除文件、读文件和写文件。在读文件之前,必须先定位和打开文件,而读完之后,应该关闭它,因此需要提供调用来完成这些事情。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

安全 Security

计算机包含大量的、用户通常希望保密的信息。这些信息可能包括电子邮件、商业计划、传真回复等等。这都要由操作系统来管理系统安全,这样,文件只能由授权用户访问(方法之)。

除了文件保护之外,还有许多其他的安全问题。保护系统不受到人类或者非人类的(比如病毒)的有害入侵就是其中之一

外壳 The Shell

UNIX的命令解释器,也称为外壳(shell)。尽管它不是操作系统的一部分,但是它利用了大量操作系统的特性,因而也很好的说明了系统调用是如何使用的。

同时,它还是终端用户和操作系统之间的主要接口,除非用户使用图形用户界面。

外壳程序有很多,包括sh, csh, ksh和bash。

1.6 系统调用

操作系统和用户程序之间的接口是由一组操作系统提供的系统调用来定义的。

这些接口中的系统调用因操作系统不同而不同(尽管其基本概念上是类似的)。

系统调用是操作系统提供给编程人员的唯一接口。编程人员通过系统调用使用操作系统内核所提供的各种功能。系统调用的执行不同于一般用户程序的执行。系统调用执行是在核心态下执行系统于程序,而用户程序则是在用户态下执行。一般来说,操作系统提供的系统调用越多,功能也就越丰富,系统也就越复杂。

OS核心中都有一组实现系统功能的过程(子程序),系统调用就是对上述过程的调用。因此,系统调用像一个黑箱子那样,对用户屏蔽了操作系统的具体动作而只提供有关的功能。

为了更清楚地了解系统调用的机制,下面简要地介绍read系统调用。它有三个参数:第一个指定文件,第二个指向缓冲区,第三个给出读的字节数。与几乎所有系统调用一样,也是通过调用库函数从C语言来调用的,使用和系统调用同样的名称:read。C语言的调用就像这样:

count = read(fd, buffer, nbytes);

系统调用(和例程调用)将实际读的字节数返回给count。它的值一般和nbytes相同,不过也可能小一些,例如读的时候正好碰到文件结束。

在这里插入图片描述

陷阱

在系统中为控制系统调用服务的机构称为陷阱(trap)处理机构.

与之相应,把由于系统调用引起处理机中断的指令称为陷阱指令(或称访管指令)。

系统调用的主要类型

设备管理:该类系统调用被用来请求和释放有关设备、以及启
动设备操作等。

文件管理:包括对文件的读、写、创建和删除等。

进程控制:进程是一个在功能上独立的程序的一次执行过程。
进程控制的有关系统调用包括进程创建、进程执行、进程撤消、执行等待和执行优先级控制等。

进程通信:该类系统调用被用在进程之间传递消息或信号。

存储管理:包括调查作业占据内存区的大小、获取作业占据内
存区的始址等。

线程管理:包括线程的创建、调度、执行、撤销等
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

1.7 操作系统结构

操作系统的设计原则

    - 可维护性,有三种可能的维护:改错性维
    护、适应性维护、完善性维护。
    

    - 可靠性,包括两方面:正确性、稳健性。
    

    - 可理解性:易于理解,以方便测试、维护
    和交流。
    

    - 性能:有效地使用系统资源,尽可能快地
    响应用户请求。

单体系统

目前为止,最常用的组织形式就是单体结构(整体式系统),
该方法可以加上副标题“大杂烩”。这种结构其实就是没有结
构。这种操作系统就是一堆例程的集合,每个例程都可以随意
地调用其他的例程。

整体式系统

  1. 一个用于激活被请求的服务例程的主程序

  2. 一组用于执行系统调用的服务例程

  3. 一组支持服务例程的实用例程

分层系统

在这里插入图片描述

层次式系统 : THE操作系统结构
优点:功能明确,调用关系清晰(高层对低层单向依赖,调用有序性),有利于保证设计和实现的正确性;低层和高层可分别实现(便于扩充);高层错误不会影响到低层;避免递归调用。
缺点:降低了运行效率。
在这里插入图片描述

虚拟机

虚拟机监控程序(virtual machine monitor)运行于裸机上,具有多道程序功能,为上一层提供了多个虚拟机,如下图所示。

不过,与其它操作系统不同,虚拟机不是具有文件和其他良好特性的扩展机器。相反,虚拟机就是裸机的精确拷贝,包括内核/用户态、I/O、中断和其他所有真正计算机有的东西。

由于每个虚拟机与裸机是相同的,所以每个虚拟机都可以直接在裸机上运行任何可以在该裸机上运行的操作系统。不同的虚拟机可以而且也经常运行不同的操作系统。

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

外核

在最底层的程序称为外核(exokernel),运行于核心态。它的任务就是给虚拟机分配资源,然后确保没有哪个虚拟机试图使用其他虚拟机的资源。每个用户级的虚拟机可以运行其自己的操作系统,就像在VM/370和Pentium的虚拟8086上一样,只不过每个虚拟机都被限制在只能使用它申请并获分配的资源上。

客户机-服务器模型

现代操作系统的一个发展趋势就是采用如下的思想:进一步将代码移到更高层次上,尽可能多地从核心态删除东西,只留下一个最小的微核(microkernel)。通常的方法是由用户进程实现操作系统的大部分功能。

为了获得一个服务,比如读文件块,用户进程(现在称为客户机进程(clients process))将请求发送给服务器进程(server process),然后服务器进程完成工作,并且把结果发送回去。

• 客户/服务器模型:把操作系统分成若干分别完成一组特定功能的服务进程,等待客户提出请求;而系统内核只实现操作系统的基本功能(如:虚拟存储、消息传递)。

• 微内核(micro-kernel):将更多操作系统功能放在核心之外,作为独立的服务进程运行。

在这里插入图片描述
在这里插入图片描述

优点:

    - 良好的扩充性:只需添加支持新功能的服务进程即可。
    

    - 可靠性好:调用关系明确,执行转移不易混乱。

    - 便于网络服务,实现分布式处理:以同样的调用形式,在下层可通过核心中的网络传送到远方服务器上。
    

缺点:

    消息传递比直接调用效率要低一些 (但可以通过提高
    硬件性能来补偿 )
在这里插入图片描述

小结

操作系统可以从两个观点来观察:资源管理器和扩展的机器。

    • 从资源管理器的观点来看,操作系统的任务就是有效地管理系统的不同部分。
    

    • 从扩展的机器的观点来看,系统的任务就是为用户提供虚拟的机器,比使用实际的机器更加方便。
    

    • 操作系统有着很长的历史,从替代操作员那天开始,到现代的多道程序系统。包括早期的批处理系统、多道程序系统和个人计算机系统。

由于操作系统与硬件密切相关,掌握一些计算机硬件的知识有助于理解操作系统。

    • 计算机由处理器、存储器和I/O设备组成。这些部分由总线相连。
    

    • 所有操作系统的基本概念包括进程、存储器管理、I/O管理、文件系统和安全。这些都将在后面的章节中论及。

任何操作系统的核心都是一组系统调用,这些调用知道操作系统实际做些什么。对于UNIX,我们了解了四组系统调用。第一组系统调用是与进程创建和终止有关的。第二组针对文件读写。第三组为目录管理。第四组包含杂项调用。

    • 操作系统的构造有很多方式。最一般的包括整体式系统、层次式系统、虚拟机系统、exokernel以及使用客户机-服务器模型。

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值