操作系统-第一章-概述

时间:2024-03-10 11:14:13

1.1 操作系统的概念、功能和目标

概念

操作系统(Operating System,OS)是指 控制和管理整个计算机系统的硬件和软件资源,并合理地组织调度计算机的工作和资源的分配,为用户和其他软件提供方便的接口和环境 的程序集合。它是计算机系统中最基本的系统软件

功能和目标

①操作系统是系统资源的管理者

②向上提供方便易用的服务

③是最接近硬件的一层软件


①操作系统是系统资源的管理者(管理功能)

作为系统资源的管理者,其目标是安全、高效,提供的功能有:

  • 处理机管理
    • 管理处理机的分配与运行,解决冲突问题,可以理解为对进程的管理
    • 进程管理:进程控制、进程同步、进程通信、死锁处理、处理机调度
  • 存储器管理
    • 为了提高多道程序运行效率,方便用户使用
    • 内存分配、地址映射、内存保护、共享和内存扩充
  • 文件管理
    • 操作系统负责管理文件的系统称为文件系统
    • 文件存储空间的管理、目录管理、文件读写管理和保护
  • 设备管理
    • 完成用户的IO请求,方便用户使用设备,提高设备的利用率
    • 缓冲管理、设备分配、设备处理、虚拟设备

②向上提供方便易用的服务(接口功能)

操作系统为用户和软件提供服务,通过提供接口来完成:

  • 命令接口
    • 联机控制方式:交互式命令接口,适用于分时或者实时系统,就像人与机器对话一样。(用户说一句,系统跟着做一句)
    • 脱机控制方式:批处理命令接口,提交一组作业,系统进行处理,用户不能干预作业的运行。(用户说一堆,系统跟着做一堆)
  • 程序接口
    • 由一组系统调用命令组成(也称作系统调用或者广义指令)
    • 可以在程序中进行系统调用来使用程序接口。普通用户不能直接使用程序接口,只能通过程序代码间接使用。

此外还有GUI图形用户界面,可以说 命令接口和GUI是直接给用户使用的,而程序接口是给软件或是程序员使用的。


③是最接近硬件的一层软件(扩充机器)

作为最接近硬件的一层软件,操作系统需要实现对硬件机器的扩展,将CPU、内存、磁盘、显示器、键盘等硬件合理地组织起来,让各种硬件能够相互协调配合,实现更多更复杂的功能。

  • 通常把覆盖了软件的机器成为扩充机器,又称之为虚拟机

1.2 操作系统的特征

四个基本特征:并发共享、虚拟、异步

并发

并发:指两个或者多个事件在同一时间间隔内发生。
并行:指两个或者多个事件在同一时刻同时发生。

  • 并发使得系统具有处理和调度多个程序同时执行的能力
  • 操作系统的并发是通过分时实现的

操作系统就是伴随着“多道程序技术”出现而出现的。因此,操作系统和程序并发是一起诞生的。

重要考点:

  • 单核CPU同一时刻只能执行一个程序,各个程序只能并发地执行
    • 对于单处理机来说,宏观上程序是并发的,微观上程序是交替执行的
  • 多核CPU同一时刻可以同时执行多个程序,多个程序可以并行地执行

共享

共享:即资源共享,是指系统中的资源可供内存中多个并发执行的进程共同使用。

有两种资源共享方式:

  • 互斥共享方式
    • 一个时间段只允许一个进程对资源进行访问,例如打印机,磁带
    • 这种资源称作:临界资源或者独占资源
  • 同时访问方式
    • 一个时间段内允许多个进程对资源进行访问,例如磁盘资源

并发和共享的关系(互为存在条件)

并发性指计算机系统中同时存在着多个运行着的程序。

共享性是指系统中的资源可供内存中多个并发执行的进程共同使用。

如果失去并发性,则系统中只有一个程序正在运行,则共享性失去存在的意义;

如果失去共享性,则两个程序不能同时访问硬盘资源,就无法实现同时发送文件,也就无法并发。

虚拟

虚拟:指把一个物理上的实体变为若干个逻辑上的对应物。物理实体是实际存在的,而逻辑上对应物是用户感受到的。

一个物理上的实体变为若干逻辑上的对应物,这种技术也被称为虚拟技术,可分为:

  • 时分复用技术
    • 如虚拟处理器:采用多道程序并发的方式,让每个终端用户感觉到有多个处理器
  • 空分复用技术
    • 如虚拟存储器:将物理存储变为虚拟存储器,逻辑上扩充存储器用

并发和虚拟的关系

如果失去了并发性,则一个时间段内系统中只需运行一道程序,那么就失去了实现虚拟性的意义了。因此,没有并发性,就谈不上虚拟性。

异步

异步:在多道程序环境下,允许多个程序并发执行,但由于资源有限,进程的执行不是一贯到底的,多道程序走走停停,进程以不可预知的速度向前进

并发和异步的关系

只有系统拥有并发性,才有可能导致异步性。


小结:并发和共享互为存在条件,没有并发和共享,就谈不上虚拟和异步,因此并发共享是操作系统的两个最基本的特征


1.3 操作系统的发展与分类


  1. 手工操作阶段

程序的装入、运行、结果的输出都需要人为的干预

缺点:资源利用率低、CPU利用不充分、人机速度矛盾


  1. 批处理阶段

为了解决人机矛盾以及CPU和I/O设备之间速度不匹配的矛盾

单道批处理系统(引入脱机输入输出技术)

内存中始终保存一道作业,作业成批进行

特点:

  • 自动性:一批作业自动执行不需要人工干预
  • 顺序性:各道作业依次执行
  • 单道性:仅有一道程序执行

优点:

缓解了一定程度的人机速度矛盾,资源利用率有所提升

缺点:

  • 高速CPU等待I/O设备的完成,资源利用率依然很低
  • 内存中仅能有一道程序运行,只有该程序运行结束之后才能调入下一道程序

多道批处理系统(操作系统开始出现)

多道批处理系统的产生标志着操作系统正式诞生。

允许多个程序在CPU中交替运行,程序共享各种硬件和软件资源。

特点:

  • 多道:计算机中同时存放多道相互独立的程序
  • 宏观上并行:多道程序都会开始运行,但都没有运行完毕
  • 微观上串行:多道程序轮流占有CPU,交替执行

优点:

  • 资源利用率高
  • 多道程序并发执行,共享计算机资源
  • CPU和其他资源更能保持“忙碌”状态,系统吞吐量增大

缺点:

  • 设计复杂,要考虑各种资源调度问题
  • 响应时间过长,没有人机交互功能

  1. 分时操作系统

计算机以时间片为单位轮流为各个用户/作业服务,各个用户可通过终端与计算机进行交互。
主要优点:

  • 用户请求可以被即时响应,解决了人机交互问题
  • 允许多个终端用户同时使用一台计算机,并且用户对计算机的操作相互独立,互不干扰。

主要缺点:

  • 不能优先处理一些紧急任务
  • 操作系统对各个用户/作业都是完全公平的,循环地为每个用户/作业服务一个时间片,不区分任务的紧急性。

  1. 实时操作系统

保证在规定时间内完成某项任务。

主要优点:能够优先响应一些紧急任务,某些紧急任务不需时间片排队。

硬实时系统:必须在绝对严格的规定时间内完成处理,如导弹控制,自动驾驶

软实时系统:能接受偶尔违反时间规定,如12306订票

主要特点是及时性和可靠性。


其他几种操作系统

  • 网络操作系统:是伴随着计算机网络的发展而诞生的,能把网络中各个计算机有机地结合起来,实现数据传送等功能,实现网络中各种资源的共享(如文件共享)和各台计算机之间的通信。(如:Windows NT 就是一种典型的网络操作系统,网站服务器就可以使用)
  • 分布式操作系统:主要特点是分布性和并行性。系统中的任意两台计算机之间没有主从之分,相互交换信息,并行工作、协同完成任务。
  • 个人计算机操作系统:如Windows XP、MacOS,方便个人使用,广泛应用于文字处理、电子表格、游戏等。

1.4 操作系统的运行机制

两种指令:

指令就是处理器CPU能识别、执行的最基本命令,指二进制机器指令。

  • 特权指令:如内存清零指令
  • 非特权指令:如普通的运算指令

两种程序:

  • 应用程序
    • 用户自编的程序
    • 为了保证系统能安全运行,普通应用程序只能执行非特权指令,运行在用户态
  • 内核程序
    • 很多内核程序组成了操作系统内核,简称内核Kernel
    • 是系统的管理者,可以执行特权指令和非特权指令,运行在核心态

两种处理器状态:核心态(内核态)和用户态

  • 处于内核态时,说明此时正在运行的是内核程序,此时可以执行特权指令
  • 处于用户态时,说明此时正在运行的是应用程序,此时只能执行非特权指令

状态切换:

内核态→用户态:执行修改程序状态字寄存器PSW的特权指令

内核态→用户态:由中断引起,硬件自动完成


内核

时钟管理:操作系统对用户提供标准时间,根据时钟对进程进行管理,实现进程切换。

中断机制:初衷是为了提高多道程序运行环境中的CPU利用率,保护和恢复中断现场的信息,转移控制权到相关程序。

原语:处于系统的最底层,是最接近硬件的部分,运行具有原子性,即只能一气呵成,运行时间短、调用频繁。

大内核:

  • 将操作系统的主要功能模块都作为系统内核,运行在核心态
  • 优点:各个管理模块之间共享信息,能够有效利用相互之间的有效特效,有性能优势
  • 缺点:内核代码庞大,层次交互关系复杂,层次接口难以定义,难以维护

微内核:

  • 只把最基本的功能保留在内核
  • 优点:内核功能少,有效的分离内核与服务、服务与服务,结构清晰,方便维护
  • 缺点:需要频繁地在核心态和用户态之间切换,性能低

1.5 中断和异常

为了进行核心态和用户态的切换,引入了中断机制。

中断是让操作系统内核夺回CPU使用权的唯一途径。

内中断(异常):

  • trap、fault、abort
  • 与当前执行的指令有关,中断信号来源于CPU内部
  • 异常不能被屏蔽

外中断(中断):

  • 时钟中断、I/O中断请求
  • 与当前执行的指令无关,中断信号来源于CPU外部

基本实现原理:

  • 检查中断信号
    • 内中断:CPU在执行指令时会检查是否有异常发生
    • 外中断:在每个指令周期末尾,CPU都会检查是否有外中断信号需要处理
  • 找中断处理程序
    • 不同的中断信号,需要用不同的中断处理程序来处理。
    • 当CPU检测到中断信号后,会根据中断信号的类型去查询“中断向量表”,以此来找到相应的中断处理程序在内存中的存放位置。

1.6 系统调用

操作系统作为用户和计算机硬件之间的接口,需要向上提供一些简单易用的服务。主要包括命令接口和程序接口。其中,程序接口由一组系统调用组成。

“系统调用”是操作系统提供给应用程序(程序员/编程人员)使用的接口,可以理解为一种可供应用程序调用的特殊函数,应用程序可以通过系统调用来请求获得操作系统内核的服务。

系统调用按功能可分为:

  • 设备管理:完成设备的请求/释放/启动等功能
  • 文件管理:完成文件的读/写/创建/删除等功能
  • 进程控制:完成进程的创建/撤销/阻塞/唤醒等功能
  • 进程通信:完成进程之间的消息传递/信号传递等功能
  • 内存管理:完成内存的分配/回收等功能