xjtuse操作系统第一章笔记

什么是操作系统

本文内容整理自西安交通大学软件学院田丽华老师的课件,仅供学习使用,请勿转载

Operating system is a program that manage the computer hardware. 操作系统是管理计算机硬件的程序

在计算机用户和计算机硬件之间起媒介作用的一种程序

计算机系统部件

xjtuse操作系统第一章笔记

  1. 硬件(Hardware) – provides basic computing resources (CPU, memory, I/O devices).提供基本的运算资源
  2. 操作系统(Operating system) – controls and coordinates the use of the hardware among the various application programs for the various users.在各种应用程序和用户之间控制与协调对硬件的使用
  3. 应用程序(Applications programs) – define the ways in which the system resources are used to solve the computing problems of the users (compilers, database systems, video games, business programs).定义解决用户问题的资源使用方式(编译、数据库、视频游戏、事务程序等)
  4. Users (people, machines, other computers)用户(人、机、其他计算机).

地位

硬件之上的第一层软件,是对硬件的首次扩充,又是其他软件运行的基础

xjtuse操作系统第一章笔记

目标

  • Execute user programs and make solving user problems easier.
    执行用户程序并使用户问题更易解决。
  • Make the computer system convenient to use.
    使计算机系统更易使用。
  • Use the computer hardware in an efficient manner.
    以一种有效率的方式使用硬件。

作用

  1. 计算机硬件、软件资源的管理者
  2. 用户使用计算机硬件、软件的接口
  3. 操作系统是直接与硬件相邻的第一层软件,它是由大量极其复杂的系统程序和众多的数据结构集成的。

对用户——接待员,对系统——管家婆

操作系统的发展过程

  • 第一代 (1946年-1955年): 真空管时代,无操作系统
  • 第二代 (1955年-1965年): 晶体管时代,批处理系统
  • 第三代 (1965年-1980年): 集成电路时代,多道程序设计
  • 第四代 (1980年 - 至今): 大规模和超大规模集成电路时代,分时系统。
  • 现代计算机正向着巨型、微型、并行、分布、网络化和智能化几个方面发展。

Development and Types of OS

  • No operating system 无操作系统
  • Simple Batch Systems 简单批处理系统
  • Multiprogramming Batched Systems 多道程序批处理系统
  • Time-Sharing Systems 分时系统
  • Real -Time Systems 实时系统
  • Embedded SystemS 嵌入式系统
  • Parallel Systems 并行系统
  • Distributed Systems 分布式系统
  • Personal-Computer Systems 个人计算机系统

1. 手工操作

  • 1946 ~ 50年代(真空管)

  • 集中计算(计算中心)

  • 计算机资源昂贵

  • 用户独占全机

第一代计算机:ENIAC

  • 工作方式:人工操作方式,用户是计算机专业人员;

    • 编程语言:机器语言;
    • I/O:纸带或卡片;
  • 缺点:

    • 用户独占全机,独占系统的全部硬件资源,设备利用率很低
    • CPU等待用户:手工装入/卸取纸带或卡片
  • 主要矛盾

    • 人机矛盾:人工操作方式与机器利用率的矛盾
    • CPU与I/O之速度不匹配的矛盾
  • 提高效率的途径

    • 批处理
    • 脱机I/O

脱机I/O方式

I/O工作在外围机/卫星机的控制下完成,或者说是在脱离主机的情况下进行。使用磁带作为输入/输出的中介,这种具体的输入/输出不需要在主计算机上进行的方式称“脱机输入/输出”

xjtuse操作系统第一章笔记

2. 单道批处理系统(simple batch processing)

  • 50年代末 ~ 60年代中(晶体管)
  • 把一批作业以脱机输入方式输入到磁带/磁鼓
  • 利用磁带或磁盘把任务分类编成作业顺序执行
  • 每批作业由专门监督程序(Monitor)自动依次处理
  • 批处理系统解决了高速计算机的运算、处理能力与人工干预之间的速度矛盾,实现了作业自动过渡

运行特征

  • 顺序性:磁带上的各道作业是顺序地进入内存,各作业的完成顺序与他们进入内存的顺序相同
  • 单道性:内存中仅有一道程序运行
  • 自动性

优点

减少了CPU的空闲时间,提高了主机CPU和I/O设备的使用效率,提高了吞吐量

缺点

CPU和I/O设备使用忙闲不均(在等待I/O时CPU停止工作)

3. 多道程序设计(Multiprogrammed Batch Systems)

  • 60年代中 ~ 70年代中(集成电路)
  • 多道:内存中同时存放几个作业,使之都处于执行的开始点和结束点之间
  • 多个作业共享CPU、内存、外设等资源
  • 目的:利用多道批处理提高资源的利用率
  • 多道通过组织作业使得CPU总在执行其中一个作业,从而提高了CPU的利用率

通道和中断

60年代通道和中断技术的出现解决了输入输出等待计算的问题

  • 通道:
    是一种专用部件,负责外部设备与内存之间信息的传输。
  • 中断:
    指主机接到外界的信号(来自CPU外部或内部)时,立即中止原来的工作,转去处理这一外来事件,处理完后,主机又回到原来工作点继续工作。

单道程序与多道程序的比较

  • 单道程序在请求I/O时CPU处于空闲状态
  • 多道程序在一个程序请求I/O时可以运行另外一个程序,只要系统中总是存在可执行的作业,CPU就永远不会因无事可干而闲着。
xjtuse操作系统第一章笔记

多道程序对OS的要求

  • 存储管理(Memory management)– the system must allocate the memory to several jobs.系统必须为若干作业分派空间
  • 调度(CPU scheduling CPU) – the system must choose among several jobs ready to run.系统必须在就绪作业中挑选
  • 设备分配(Allocation of devices.)
  • 系统提供I/O程序(I/O routine supplied by the system.)

多道批处理所用技术

  • 作业调度:作业的现场保存和恢复--上下文切换
  • 资源共享:资源的竞争和同步--互斥(exclusion)和同步(synchronization)机制;
  • 内存使用:提高内存使用效率(为当前由CPU执行的程序提供足够的内存)--覆盖(overlap),交换(swap)和虚拟存储(virtual memory);
  • 内存保护:系统存储区和各应用程序存储区不可冲突;
  • 文件非顺序存放、随机存取

特征

  • 多道性:内存中同时驻留多道程序并发执行,从而有效地提高了资源利用率和系统吞吐量
  • 无序性:作业的完成顺序与它进入内存的顺序之间无严格的对应关系
  • 调度性:作业调度、进程调度

优点

  • 资源利用率高:CPU,内存,I/O设备
  • 系统吞吐量大

缺点

  • 无交互能力,用户响应时间长
  • 作业平均周转时间长

4. 分时系统(time-sharing system)

  • 70年代中期至今
  • 分时是指多个用户分享使用同一台计算机,多个程序分时共享硬件和软件资源
    • 多个用户分时
    • 前台和后台程序(foreground & background)分时

实现方式

  • 多个用户分时:单个用户使用计算机的效率低,因而允许多个应用程序同时在内存中,分别服务于不同的用户。有用户输入时由CPU执行,处理完一次用户输入后程序暂停,等待下一次用户输入--时走时停
  • 前台和后台程序(foreground & background)分时:后台程序不占用终端输入输出,不与用户交互--现在的图形用户界面(GUI),除当前交互的程序(输入焦点)之外,其他程序均作为后台

通常按时间片(time slice)分配:各个程序在CPU上执行的轮换时间

  • 作业直接进入内存
  • 每个作业一次只运行很短的时间
  • 分时技术:把CPU的时间分成若干个大小相等(或不等)的时间单位,称为时间片(如100毫秒),每个终端用户获得CPU(获得一个时间片)后开始运行,当时间片到,该用户程序暂停运行,等待下一次运行。

特点

人机交互性好

共享主机:多个用户同时使用

  • 多路性:众多联机用户可以同时使用同一台计算机;
  • 独占性:各终端用户感觉到自己独占了计算机;
  • 交互性:用户与计算机之间可进行“会话”;
  • 及时性:用户的请求能在很短时间内获得响应

5. 实时系统(Real-Time Systems)

通常作为控制设备在诸如控制科学实验、医学影象系统、工业控制系统以及一些显示系统中应用

严格确定的时间限制

分类

  • 硬实时系统(Hard real-time system)
    • Secondary storage limited or absent, data stored in short-term memory, or read-only memory (ROM)有限的或没有次级存储器,数据存在短期存储器或只读存储器中
    • Conflicts with time-sharing systems, not supported by general-purpose operating systems.同分时系统冲突,通用操作系统不支持
  • 软实时系统(Soft real-time system)
    • Limited utility in industrial control or robotics在工业控制或机器人中有部分应用
    • Useful in applications (multimedia, virtual reality) requiring advanced operating-system features.在需要高级操作系统 功能的应用(多媒体、虚拟现实)中应用

特征

  • 实时时钟管理:提供系统日期和时间、定时和延时等时钟管理功能;
  • 过载保护:缓冲区排队,丢弃某些任务,动态调整任务周期;过载是指进入系统的任务数目超出系统的处理能力;
  • 高度可靠性和安全性--容错能力(如故障自动复位)和冗余备份(双机,关键部件)。

实时系统与批处理系统和分时系统的区别

  1. 专用系统:许多实时系统是专用系统,而批处理与分时系统通常是通用系统。
  2. 实时控制:实时系统用于控制实时过程,要求对外部事件的迅速响应,具有较强的中断处理机构。
  3. 高可靠性:实时系统用于控制重要过程,要求高度可靠,具有较高冗余。如双机系统。
  4. 事件驱动和队列驱动:实时系统的工作方式:接受外部消息,分析消息,调用相应处理程序进行处理。
  5. 可与通用系统结合成通用实时系统:实时处理前台作业,批处理为后台作业。

6. 并行系统(Parallel Systems)

也称多处理机系统 (multi-processor)

提高计算机系统性能有两条途径:

  • 提高各个组成部分的速度
  • 增大处理的并行程度。

特点

  • 紧密通信的、多于一个CPU的多处理器系统
  • 紧偶合系统(Tightly coupled system) - 处理器共享内存和时钟;一般通过共享内存进行通信

优点

  • 增大吞吐量(Increased throughput)
  • 经济(Economical)
  • 提高可靠性(Increased reliability)
  • (有故障时)优雅的降低性能(graceful degradation)
  • (又称)软失效系统(fail-soft systems)

分类

  • 对称多处理器(Symmetric multiprocessing (SMP))
    • Each processor runs an identical copy of the operating system.
      每个处理器运行操作系统的相同副本
    • Many processes can run at once without performance deterioration.许多进程可以立即运行不会降低性能
    • Most modern operating systems support SMP多数现代操作系统支持SMP
  • 非对称多处理器(Asymmetric multiprocessing)
    • Each processor is assigned a specific task; master processor schedules and allocates work to slave processor每个处理器赋予一个特定任务;主处理器为从处理器调度和分配作业
    • More common in extremely large systems常用在非常大的系统中

7. 分布式系统(Distributed Systems)

  • Distribute the computation among several physical processors.计算分布在若干物理处理器上
  • 松散偶合系统(Loosely coupled system ) - 每个处理器有自身的本地存储器;通过各种通信设施,如高速总线、电话线等进行处理器之间的通信
  • 分布式系统具有一个统一的操作系统,它可以把一个大任务划分成很多可以并行执行的子任务,并按一定的策略将它们动态地分配给各个计算机执行,并控制管理各个计算机的资源分配、运行及计算机之间的通信,以协调任务的并行执行。
  • 以上所有的管理工作对用户都是透明的。

优点

  • 资源共享(Resources Sharing)
  • 加快计算 - 共享装载(Computation speed up – load sharing)
  • 可靠(Reliability)
  • 通信(Communications)

7. 网络操作系统(Network Operating System)

网络操作系统是在通常操作系统功能的基础上提供网络通信和网络服务功能的操作系统。网络操作系统为网上计算机进行方便而有效的网络资源共享,提供网络用户所需各种服务的软件和相关规程的集合。

  • 提供文件共享provides file sharing
  • 提供通信机制provides communication scheme
  • 运行独立于网络上的其他计算机runs independently from other computers on the network

功能

​ 1) 通常操作系统的功能:处理机管理、存储器管理、设备管理、文件管理等;
​ 2) 网络通信功能:通过网络协议进行高效、可靠的数据传输;
​ 3) 资源管理:协调各用户使用;
​ 4) 网络服务:文件和设备共享,信息发布;
​ 5) 网络管理:安全管理、故障管理、性能管理等;
​ 6) 互操作:直接控制对方比交换数据更为困难

分布式操作系统与网络操作系统的比较

(1) 耦合程度(从分布式任务管理和调度):
A. 分布式系统是紧密耦合系统:分布式OS是在各机上统一建立的“OS同质”,直接管理CPU、存储器和外设;统一进行全系统的管理;
B. 网络通常容许异种OS互连,各机上各种服务程序需按不同网络协议“协议同质”。
(2) 并行性:
A. 分布式OS可以将一个进程分散在各机上并行执行“进程迁移”;
B. 网络在各机上的进程独立。
(3) 透明性:用户是否知道或指定资源在哪个机器上(如CPU、内存或外设)。
A. 分布式系统的网络资源调度对用户透明,用户不了解所占有资源的位置;
B. 网络操作系统中对网络资源的使用要由用户明确指定;
(4) 健壮性:分布式系统要求更强的容错能力(工作时系统重构)

8. 嵌入式系统(Embedded System)

什么是嵌入式系统?

  • 在各种设备、装置或系统中,完成特定功能的软硬件系统
  • 它们是一个大设备、装置或系统中的一部分,这个大设备、装置或系统可以不是“计算机”
  • 通常工作在反应式或对处理时间有较严格要求环境中
  • 由于它们被嵌入在各种设备、装置或系统中,因此称为嵌入式系统
xjtuse操作系统第一章笔记

特性

  • 完成某一项或有限项功能;不是通用型的;
  • 在性能和实时性方面有严格的限制;
  • 能源、成本和可靠性通常是影响设计的重要因素;
  • 占有资源少、易于连接;
  • 系统功能可针对需求进行裁剪、调整和生成以便满足最终产品的设计要求

9. 个人计算机系统(Personal-Computer Systems)

Personal computers – computer system dedicated to a single user.个人计算机 - 供个人使用的计算机系统

操作系统的功能

  • 处理机管理
  • 存储管理
  • 设备管理
  • 文件管理
  • 用户接口

处理机管理

目标

完成处理机资源分配和调度等功能

功能

  • 进程控制:创建、撤销、挂起、改变运行优先级等--主动改变进程的状态
  • 进程调度: 作业和进程的运行切换,以充分利用处理机资源和提高系统性能
  • 进程同步:协调并发进程之间的推进步骤,以协调资源共享
  • 进程通信: 进程之间的信息交换

存储器管理

存储管理的任务是对要运行的作业分配内存空间,作业运行结束时要收回其所占用的内存空间。操作系统要对每一个作业的内存空间和系统内存空间实施保护

目标

提高内存利用率、方便用户使用、提供足够的存储空间

功能

  • 存储分配与回收
  • 存储保护
  • 地址重定位
  • 内存扩充

设备管理

目标

完成用户的I/O请求,为用户分配I/O设备、提高I/O速度,提高CPU与I/O设备利用率、方便设备使用

功能

  • 缓冲管理
  • 设备分配与回收
  • 设备处理:利用设备驱动程序(通常在内核中)完成对设备的操作。
  • 虚拟设备
  • 设备独立性:提供统一的I/O设备接口,使应用程序独立于物理设备

文件管理

目标

实现外存上的信息资源“按名存取”

功能

  • 文件存储空间管理:如何存放信息,以提高空间利用率
  • 目录管理:文件检索
  • 文件存取控制:文件保护
  • 软件管理:软件的版本、相互依赖关系、安装和拆除等

用户接口

目标

为用户使用计算机系统提供一个友好的访问OS的接口

操作系统提供2类接口

  • 作业级接口:行命令、菜单、或图形化的操作界面(GUI)、语音以及作业控制语言等;“联机”或“脱机”。
  • 程序级接口:供用户程序和系统程序调用操作系统功能,也称系统调用;

现代操作系统的特征

  • 并发(concurrency)

  • 共享(sharing)

  • 虚拟(virtual)

  • 异步性(asynchronism)

并发(concurrency)

  • 多个事件在同一时间段内发生。操作系统是一个并发系统,各进程间的并发,系统与应用间的并发。操作系统要完成这些并发过程的管理。并行(parallel)是指在同一时刻发生。
  • 在多道程序处理时,宏观上并发,微观上交替执行(在单处理器情况下)。
  • 程序的静态实体是可执行文件,而动态实体是进程(或称作任务),并发指的是进程。

共享(sharing)

  • 多个进程共享有限的计算机系统资源。操作系统要对系统资源进行合理分配和使用。资源在一个时间段内交替被多个进程所用。
  • 互斥共享(如音频设备):资源分配后到释放前,不能被其他进程所用。
  • 同时访问(如可重入代码,磁盘文件)
  • 资源分配难以达到最优化

虚拟(virtual)

  • 一个物理实体映射为若干个对应的逻辑实体--分时或分空间。虚拟是操作系统管理系统资源的重要手段,可提高资源利用率。
  • CPU--每个用户(进程)的“虚处理机”
  • 存储器--每个进程都占有的地址空间(指令+数据+堆栈)
  • 显示设备--多窗口或虚拟终端(virtual terminal)

异步性(asynchronism)

  • 也称不确定性,指进程的执行顺序和执行时间的不确定性;
  • 进程的运行速度不可预知:分时系统中,多个进程并发执行,“时走时停”,不可预知每个进程的运行推进快慢
  • 判据:无论快慢,应该结果相同--通过进程互斥和同步手段来保证
  • 难以重现系统在某个时刻的状态(包括重现运行中的错误)
上一篇:【XJTUSE 操作系统学习笔记】第三章 操作系统结构


下一篇:cuda编程 pycuda