操作系统简单介绍

简要说明

观点:

• 资源分析视角

    ■ 系统管理员

• 工作负载分析视角

    ■ 应用开发者

工作负载分析

• 检查施加的工作负载以及应用程序的响应方式

• 目标

    ■ 请求:施加的工作负载

    ■ 延迟:应用程序的响应时间

    ■ 完成:寻找错误

• 指标

    ■ 吞吐量

    ■ 延迟

资源分析

• 从系统资源开始分析:CPU、内存、硬盘、网络接口、总线和互联

    ■ 包括

• 性能问题调查

• 关注利用率

    ■ 需求 - 供应

操作系统背景

术语(1)

• 操作系统:安装在系统上的软件和文件,使其能够引导和执行程序。它包括内核、管理工具和系统库。

• 内核:管理系统的程序,根据内核模型,包括硬件设备、内存和CPU调度。它在允许直接访问硬件的特权CPU模式下运行,称为内核模式。

• 进程:用于执行程序的操作系统抽象和环境。程序在用户模式下运行,通过系统调用或陷入内核来访问内核模式(例如,执行设备I/O)。

• 线程:可安排在CPU上运行的可执行上下文。内核有多个线程,进程包含一个或多个。

• 任务:Linux中可运行的实体,可以指一个进程(具有单个线程)、来自多线程进程的线程或内核线程。

• 主存储器:系统的物理内存(例如,RAM)。

• 虚拟内存:支持多任务和超额订阅的主内存抽象。它实际上是一个无限的资源。

• 内核空间:为内核准备的虚拟内存地址空间。

• 用户空间:为进程准备的虚拟内存地址空间。

• 用户区:用户级程序和库(/usr/bin,/usr/lib...)。

• 上下文切换:从运行一个线程或进程切换到另一个。这是内核CPU调度器的正常功能,并涉及将运行中的CPU寄存器集(线程上下文)切换到一个新集。

• 模式切换:在内核模式和用户模式之间切换。

• 系统调用(syscall):用户程序请求内核执行特权操作的一种明确定义的协议,包括设备I/O。

• 处理器:不要与进程混淆,处理器是包含一个或多个核心的物理芯片。

内核

• 包括Linux和BSD在内的类Unix操作系统都有一个单一的内核,负责管理:

    ■ CPU调度,

    ■ 内存,

    ■ 文件系统,

    ■ 网络协议,

    ■ 系统设备(硬盘,网络接口等)。

内核与用户模式

• 内核在一种特殊的CPU模式下运行,称为内核模式

    ■ 允许完全访问设备并执行特权指令

    ■ 裁决设备访问以支持多任务处理,防止进程和用户访问彼此的数据,除非明确允许。

• 用户程序(进程)在用户模式下运行 

    ■ 它们通过系统调用向内核请求特权操作,例如用于I/O。

• 模式切换会带来开销(CPU周期)

任务

• 进程是用于执行用户级程序的环境

    ■ 由它们的进程ID(PID)标识

    ■ 包括一个内存地址空间、文件描述符、线程栈和寄存器

    ■ 包含一个或多个线程 : 线程是由栈、寄存器和一个指令指针(也叫程序计数器)组成的可执行上下文

• 由内核进行多任务处理,通常支持在单个系统上执行数千个任务

进程环境

• 进程地址空间中的数据

    ■ 数据、文本、堆

    ■ 每个线程的一个用户栈

• 内核中的元数据(上下文)

    ■ 进程ID(PID)

    ■ 所有者的用户ID(UID)

    ■ 一组文件描述符

    ■ 每个线程的一个内核栈和优先级

系统调用

• 系统调用请求内核执行特权系统例程

    ■ 有数百个可用的系统调用,但内核维护者尽量减少数量,以保持内核简单

• 操作系统包括一个C标准库,为许多常见的系统调用提供更易用的接口

中断

• 中断是向处理器发出的一个信号,表明需要处理的某个事件已经发生。

    ■ 中断处理器的当前执行来处理它。

    ■ 运行一个中断服务例程(ISR)来处理该事件。

• 外部中断生成的异步中断。

• 软件指令生成的同步中断。

• 栈是一个用于临时数据的内存存储区域,组织为后进先出(LIFO)列表。

• 用于存储比适合在CPU寄存器集中的数据不那么重要的数据。

• 用于函数调用:栈帧。

    ■ 当调用一个函数时,返回地址和寄存器被保存到栈中。

    ■ 用于向函数传递参数。

    ■ 当被调用的函数完成后,恢复寄存器,执行权传递给调用函数。

• 栈跟踪:当前执行函数的调用路径。

    ■ 检查线程栈中所有栈帧的保存的返回地址。

调度器

• 通过在它们之间划分执行时间,允许多个进程同时运行。

• 时间共享系统

• 抢占允许高优先级用户层线程中断内核并执行。

虚拟内存

• 分页

• 进程交换

文件系统

• 数据以文件和目录的形式的组织

• 内核通过使用虚拟文件系统(VFS)支持多种文件系统类型和实例

I/O堆栈

• 从用户级软件到存储设备的路径

• 缓存

    ■ 历史上,磁盘I/O具有高延迟

    ■ 软件堆栈的许多层试图通过缓存读取和缓冲写入来避免这一点

软件中的缓存

• 由于磁盘I/O历来具有高延迟,软件堆栈的许多层都试图通过缓存读取和缓冲写入来避免它

    ■ 例如,缓冲区缓存是主内存的一个区域,存储着最近使用的磁盘块

    ■ 冷缓存和热缓存

网络堆栈

• 一套内置网络协议的堆栈,允许系统通过网络通信并参与分布式系统环境

• 用户级应用程序通过被称为套接字的可编程端点访问网络

• 连接到网络的物理设备是网络接口,通常提供在网络接口卡(NIC)上

内核比较

哪个内核最快?

• 简短答案:Linux!

• Linux

    ■ 在性能改进方面进行了大量工作

    ■ 应用程序和驱动程序支持

    ■ 广泛使用

    ■ 大社区发现并报告性能问题

    ■ TOP500超级计算机几乎100%使用它

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值