Skip to content

Latest commit

 

History

History
646 lines (387 loc) · 19.2 KB

操作系统.md

File metadata and controls

646 lines (387 loc) · 19.2 KB

Computer Operating Systems

前言

https://studentcompetitions.com/posts/10-mooc-websites-to-start-your-free-online-education

64课时(上课56、上机8学时)

  • 教学理论和综合应用相结合

    • 基础课程
    • 考研的课程
    • 应用价值
  • 成绩构成:

    • 期末考试占60%

    • 平时20%,实验10%,10%期中

参考

  • Andrew S. Tanenbaum

    • 现代操作系统
    • 操作系统:设计与实现
  • William Stallings

    • 操作系统精髓与设计原理
  • 汤小丹, 梁红兵

    • 计算机操作系统
  • Orange'S:一个操作系统的实现

  • Linux内核源代码情景分析

  • Linux内核完全注释

  • UNIX环境高级编程(第3版)(圣经)

特点

  • 内容多

    • 涉及计算机各个方面
  • 内容抽象

    • 不易找到直观形象的例子
  • 概念性强

    • 太多的定义
  • 枯燥、授课难度较大

操作系统与学科联系图

操作系统与其他科目关系

规则

  • 随机抽样回答问题
  • 按时完成理论作业以及实际作业
  • 不定期翻转课堂,做好预习

本课程是基于 单核单线程 无硬件多线程的情况下展开的

绪论

  • 什么是操作系统

  • 操作系统的发展与变革

  • 操作系统万花筒

  • 相关硬件知识

  • 初识操作系统

    • 相关概念、层次结构、系统调用…

What is An Operation System

A modern couputer consists of:

  • One or more processors
  • Main memory
  • Disks
  • Printers
  • Verious input/output devices

Managing all these components requires a layer of software - the operating system

Where_the_operating_system_fits_in

通过软件、命令行、程序使用操作系统 Kernel mode: 内核模式,可执行特权指令

The Operating System as an Extended Machine

  • 操作系统

    • 控制应用程序执行的程序

    • 应用程序和计算机硬件间的接口

  • 目标

    • 方便:使计算机更易于使用
    • 有效:允许以更有效的方式使用计算机系统资源
    • 扩展能力:在不妨碍服务的前提下,有效地开发、测试和引入新的系统功能

The Operating System as a Resource Manager

  • 允许多道程序同时执行

  • 管理和保护存储器、I/O设备以及其他资源

  • 多路复用

    • 时间(时间片)
    • 空间(硬盘分区)

操作系统的历史变革

No OS at all

没有操作系统

Simple Batch Systems(简单批处理系统)

An_early_batch_system

1401将卡纸转磁带,7094将磁带数据读出运算输出到另一个磁带,1401将输出磁带结果打印出来

  • 缺点:不交互,不及时,在简单批处理系统,处理器必须等待I / O指令完成才能继续处理

Multiprogramming (多道批处理)

对多个应用程序控制

A_multiprogramming_system_with_three_jobs_in_memory

单道与多道执行对比时序

  • 多道程序设计示例
    • 系统可用内存250MB
    • 示例程序执行属性

多道程序设计示例

Heavy compute: 计算密集型 Heavy IO: IO密集型

单道与多道程序资源占用对比

  • 单道程序设计的系统设备利用率较低, 多道程序设计技术可以显著提高系统设备利用率

吞吐量:单位时间内完成的任务的数量

  • 多道批处理系统——简单批处理系统的改进

    • 内存中同时存放多个作业

    • 多个作业可并发执行

    • 作业调度程序负责作业的调度

  • 多道批处理系统的硬件支持

    • 中断(中断控制器)

    • DMA(Direct Memory Access,直接内存存取)(通道)

    • (排队仲裁器)等

  • 多道批处理系统的特征

    多道性:内存中同时驻留多道程序并发执行,从而有效地提高了资源利用率和系统吞吐量

    调度性:作业调度、进程调度

    无序性:作业的完成顺序与它进入内存的顺序之间无严格的对应关系

    无交互能力

  • 需要解决的基本问题(现代操作系统的功能)

    • 内存管理
    • 处理机管理
    • 作业管理
    • I/O设备管理
      • 防止IO死锁
    • 文件管理
  • 特征

    • 多道性、无序性、调度性
  • 优点

    • 提高了资源利用率和吞吐能力。
  • 缺点

    • 平均周转时间长,没有交互能力

调度算法的评价指标

  • 利用率 $$ 利用率=\frac{工作的时间}{总时间} $$

  • 系统吞吐量 $$ 系统吞吐量=\frac{总共完成了多少到作业}{总时间} $$

  • 周转时间

$$ 周转时间=作业完成时间−作业提交时时间 $$

$$ 平均周转时间=\frac{作业1的周转时间+...+作业n的周转时间}{n} $$

$$ 带权周转时间=\frac{作业周转时间作业}{实际运行时间} $$

$$ 平均带权周转时间=\frac{作业1的带权周转时间+...+作业n的带权周转时间}{n} $$

  • 等待时间

    • 进程/作业等待被服务的时间之和

    $$ 等待时间=周转时间-运行时间 $$

    $$ 平均等待时间=\frac{等待时间}{总数} $$

  • 响应时间

    • 从用户提交请求到首次产生响应所用的时间

操作系统是一组控制和管理计算机硬件和软件资源,合理地对各类作业进行调度,以及方便用户使用的程序的集合

An operating system (OS) is system software that manages computer hardware and software resources and provides common services for computer programs.

分时系统

  • 产生原因

    人机交互、共享主机、方便上机

  • 分时系统

    • 采用多道程序设计技术处理多个交互作业

    • 多个用户共享处理器

    • 多个用户通过不同终端同时访问系统

  • 分时系统的特点

    • 多路性:多个用户分时使用一台计算机。
    • 独立性:独立运行,不混淆,不破坏。
    • 及时性:系统能在很短的时间得到回答。
    • 交互性:能实现人机对话

批处理系统多道系统程序设计与分时的比较

批处理系统多道系统设计 分时
主要目标 充分利用处理器 减小响应时间
响应时间:用户提交作业开始,到系统第一次响应用户请求为止
操作系统指令源 作业控制语言命令
作业提供的命令
终端键入的命令

实时系统

  • 概念

    系统能及时(即时)响应外部事件请求,在规定的时间内完成对该事件的处理,并控制所有实时任务协调一致地运行。

    及时:允许时间内响应

    即时:立刻马上响应

  • 应用领域

    • 航空航天

    • 军事

    • 工业控制

  • 实时系统的分类

    • 软实时系统:要求一定的实时性,产生后果较小
    • 硬实时系统:高要求的实时性
  • 实时系统与分时系统比较

    • 应用领域
    • 响应速度
    • 调度准则
      • 实时系统:优先级

Computer Hardware Review

关于计算机组成原理和体系结构

CPU

CPU Pipelining

(a) A three-stage pipeline.

graph LR
A[Fetch unit] --> B[Decode unit]
B --> C[Execute]
Loading

(b) A superscalar CPU.

graph LR
A[Fetch unit] --> B[Decode unit]
C[Fetch unit] --> D[Decode unit]
B --> E((Holding buffer))
D --> E
E --> F[Execute unit]
E --> G[Execute unit]
E --> H[Execute unit]
Loading

Multithreaded and Multicoe Chips

Multithreaded and Multicore Chips

(a) A quad-core chip with a shared L2 cache. Core左上角黑色为一级缓存,所有core共享一个缓存 (b) A quad-core chip with separate L2 caches.

Memory

![typical memory hierarchy](操作系统.assets/typical memory hierarchy.png)

不同存储介质之间,读写速度不同,但又有频繁的交流,所以需要缓存

缓存要考虑的问题:导入导出的时间和位置

Disks

Structure of a disk drive

IO Devices

![The steps in starting an I/O device and getting an interrupt](操作系统.assets/The steps in starting an IO device and getting an interrupt.png)

Buses

![The structure of a large Pentium system](操作系统.assets/The structure of a large Pentium system.png)

The Operating System Zoo

  • Mainframe operating systems (大型机)

  • Server operating systems(服务器)

  • Multiprocessor operating systems(多处理器)

  • Personal computer operating systems(个人计算机)

  • Handheld operating systems(掌上电脑)

  • Embedded operating systems(嵌入式)

  • Sensor node operating systems(传感器)

  • Real-time operating systems(实时操作系统)

  • Smart card operating systems(智能卡系统)

Operating System Comcepts概念

进程 Process

  • 本质上是一个正在执行的程序

    • 有自己的活动状态
      • 未响应(可能情况):运行错误,等待输入,资源不足
  • OS通过进程表来维护进程

    • 如何维护?进程列表:进程状态,进程资源...

    • 要考虑哪些问题?

进程树

![A process tree](操作系统.assets/A process tree.png)

地址空间 Address Space

  • 一个程序可以使用的地址的集合

  • 思考:

    • 一个进程的地址空间是否可以大于主存自身的空间?可以

      • 64位最大地址空间有 $$ 2^{64}bit = 128GB $$

      • 进程的地址空间大小,不是进程的实际大小(没有被装载进主存的程序会)

      • 地址范围不是真实的,是虚拟地址的范围,有时甚至会超过实际物理内存的大小

    • 若干个进程地址空间之和是否可以大于主存自身的空间?

文件 File

  • 文件系统

  • 目录

  • 路径

    • 绝对路径
    • 相对路径
  • 文件的访问

    • 权限

A file system for a university department

一个文件系统

安全 Security

  • 数据应该受到保护
    • 存储
      • 访问保护、反病毒保护、实体安全保护
    • 处理
    • 传输
      • 完整、机密、认证、非否认(接收方/发送方 检测是否接收/发送)

Shell

操作系统的壳

用户与OS之间的接口

  • Unix:sh、bash
  • Windows:command.exe

系统调用 System Call

  • 可以深入到内核的一个特殊过程调用

  • 系统调用的过程

    • 假设用户在用户态下执行程序,需要系统服务

    • 执行一个系统调用指令

    • 操作系统进行参数检查,找到所需进程,转移控制权

    • 执行系统调用

    • 返回到用户态

The 11 steps in making the system call read

Process Management

操作系统的功能

操作系统应具有五方面的功能:

  1. 处理机(CPU)管理
  2. 存储器(内存)管理
  3. 设备管理(嵌入系统中可能没有)
  4. 文件管理(嵌入系统中可能没有)
  5. 方便用户使用的用户接口,人机接口

处理机管理功能

处理机管理的主要功能 :按照一定的算法把处理机分配给进程(线程),并对其进行有效的管理和控制。

  1. 进程控制

    进程控制的主要功能是为作业创建进程、撤消已结束的进程,以及控制进程在运行过程中的状态转换。

  2. 进程同步

    • 进程同步的主要任务是为多个进程的运行进行协调。

    • 两种协调方式:

      • 进程互斥方式,这是指诸进程(线程)在对临界资源进行访问时,应采用互斥方式;
      • 进程同步方式,指进程相互合作去完成共同的任务时,诸进程之间的协调。
    • 实现进程同步采用信号量机制。

  3. 进程通信

    进程通信——是进程之间的信息交换。

    当相互合作的进程(线程)处于同一计算机系统时,通常在它们之间是采用直接通信方式,即由源进程利用发送命令直接将消息(message)挂到目标进程的消息队列上,以后由目标进程利用接收命令从其消息队列中取出消息。

  4. 调度

    • 在后备队列上等待的每个作业,通常都要经过调度才能执行。

    • 在操作系统中作业运行需经作业调度和进程调度才能执行完成。

      • 作业调度是从后备队列中按照一定的算法,选择出若干个作业,为它们分配其必需的资源,将它们调入内存后,为它们建立进程,插入就绪队列。
      • 进程调度是从进程的就绪队列中选出一新进程,把处理机分配给它,使进程投入执行。
    • 长程(作业队列需要选择作业创建进程),中程(对换(存储器,disk),短程(针对进程可能属于同一个作业,选择若干个进程中选择运行)

存储器管理功能

  • 存储器管理的主要任务:

    为多道程序的运行提供良好的环境,方便用户使用存储器,提高存储器的利用率以及能从逻辑上扩充内存。

  1. 内存分配

    • 内存分配有两种方式:
      • 静态分配方式,每个作业运行之前分配好内存空间,在作业的整个运行期间不再改变。
      • 动态分配方式中,每个作业在运行前或运行中,均可申请新的附加内存空间,以适应程序和数据的动态增涨。
    • 内存分配的机制中应具有这样的结构和功能:
      • 内存分配的数据结构,该结构用于记录内存空间的使用情况。
      • 内存分配功能——为用户程序分配内存空间;
      • 内存回收功能——当用户不再需要的内存时,系统能回收内存的功能。
  2. 内存保护

    • 内存保护的主要任务:

      是确保每道用户程序都只在自己的内存空间内运行,彼此互不干扰。

    • 内存保护机制:

      是设置两个界限寄存器,越界检查都由硬件实现

  3. 地址映射

    地址空间 ——目标程序或装入程序限定的空间,称为“地址空间”。单元的编号称为逻辑地址,又称为相对地址。

    内存空间——由内存中的一系列单元所限定的地址范围称为“内存空间”,其中的地址称为“物理地址”。

    地址映射——运行时,将地址空间中的逻辑地址转换为内存空间中与之对应的物理地址,称为地址映射 。

  4. 内存扩充

    $dir /a agefile.sys #内存的换进换出作为虚拟内存的一部分
    • 借助于虚拟存储技术

      从逻辑上去扩充内存容量,使用户所感觉到的内存容量比实际内存容量大得多;

    • 扩充内存必须具有内存扩充机制:

    (1)请求调入功能。在程序运行过程中,若所需的程序和数据尚未装入内存,可由OS从磁盘中将所需部分调入内存,继续运行。

    (2)置换功能。将内存中的一部分暂时不用的程序和数据调出到磁盘上,然后再将所需调入的部分装入内存。

设备管理功能

  • 设备管理的主要任务:

    是完成用户进程提出的I/O请求

    为用户进程分配其所需的I/O设备

    提高CPU和I/O设备的利用率

    提高I/O速度

    方便用户使用I/O设备

  • 设备管理具有的功能:

  1. 缓冲管理:有效地缓和CPU和1/O设备速度不匹配的矛盾 ,提高CPU的利用率。

    对于不同的系统,可以采用不同的缓冲区机制

  2. 设备分配

    1.设备分配的基本任务,是根据用户进程的I/O请求,按照某种设备分配策略,为之分配其所需的设备。

    2.为了实现设备分配,系统中应设置设备控制表、控制器控制表等数据结构,用于记录设备及控制器的标识符和状态,以供进行设备分配时参考。

    3.不同的设备类型(独占、共享)而采用不同的设备分配方式。

  3. 设备处理

    • 设备处理程序又称为设备驱动程序。
    • 设备处理其基本任务:是用于实现CPU和设备控制器之间的通信,即由CPU向设备控制器发出I/O命令,要求它完成指定的I/O操作;反之由CPU接收从控制器发来的中断请求,并给予迅速的响应和相应的处理。
    • 处理过程 :检查请求的合法性→设备空闲否?→向控制器发I/O命令→启动I/O执行。

文件管理功能

  • 文件管理的主要任务:是对用户文件和系统文件进行管理,以方便用户使用,并保证文件的安全性。

  • 文件管理的主要功能:

  1. 文件存储空间的管理 ——是对诸多文件及文件的存储空间,实施统一的管理。基于数据结构(MCB)对存储空间进行分配和回收的功能。

  2. 目录管理

    为每个文件建立目录项,并对众多的目录项加以有效的组织与管理(例如,按名存取,文件共享 )。

  3. 文件的读/写管理和保护

    1. 文件的读/写管理:是根据用户的请求,从外存中读取数据或将数据写入外存。
    2. 文件保护:即存取控制功能:
      1. 防止未经核准的用户存取文件
      2. 防止冒名顶替存取文件
      3. 防止以不正确的方式使用文件。

用户接口

  1. 命令接口——用户可通过该接口向作业发出命令以控制作业的运行。

    • 联机用户接口:这是为联机用户提供的,它由一组键盘操作命令及命令解释程序所组成。

    • 脱机用户接口:用户用JCL把需要对作业进行的控制和干预,事先写在作业说明书上,然后将作业连同作业说明书一起提供给系统。当系统调度到该作业运行时,再调用命令解释程序,对作业说明书上的命令,逐条地解释执行。该接口即为批处理接口。

  2. 程序接口

    • 该接口是为用户程序在执行中访问系统资源而设置的,是用户程序取得操作系统服务的惟一途径。

    • 它是由一组系统调用组成,每一个系统调用都是一个能完成特定功能的子程序,每当应用程序要求OS提供某种服务(功能)时,便调用具有相应功能的系统调用。

    • 不同的系统其调用形式不同。

  3. 图形接口

    • 图形用户接口采用了图形化的操作界面,用非常容易识别的各种图标(icon)来将系统的各项功能、各种应用程序和文件,直观、逼真地表示出来。用户可用鼠标或通过菜单和对话框,来完成对应用程序和文件的操作。

操作系统的结构

没有一种结构是标准的,没有一种结构是完美的

结构:单体系统、层次结构、微内核、客户机-服务器、虚拟机、Exokernel(外核)