【现代操作系统】1. intro

news/2024/12/22 2:59:00/

@本系列为上海交通大学现代操作系统课程的笔记,仅用于学习过程的记录

什么是操作系统

  • 操作系统有两个职责
    • 对硬件进行管理和抽象
    • 为应用提供服务并进行管理
  • 从硬件角度看
    • 操作系统讲复杂的、具备不同功能的硬件资源纳入统一的管理
    • 操作系统负责将硬件抽象成不依赖具体硬件特性的资源

这里操作系统的核心功能是将有限的、离散的资源高效地抽象为无限的、连续的资源,并将硬件通过易用的接口提供给上层的应用,从而使应用无需关心硬件的具体细节

  • 从软件角度看
    • 操作系统提供了不同层次、不同功能的接口(如系统调用等)以满足应用的需求,还提供了不同类型的访问控制、应用间交互等服务
    • 操作系统还负责对应用声明周期的管理,包括应用的加载、启动、切换、调度、销毁等

狭义的OS:操作系统内核+shell
广义的OS:操作系统内核+操作系统框架

  • 操作系统内核负责对硬件资源的管理和抽象,为操作系统框架提供基础的系统服务
  • 操作系统框架基于操作系统内核提供的服务为不同应用领域提供编程接口与运行环境

历史

  • 批处理操作系统
    通用操作系统:OS/360:首个通用OS,首次将OS与计算机分离
    分时与多任务:Multics/Unix/Linux:现代意义上的OS(分时分批处理/)
    图形界面:Xero Alto/MacOS/Windows(第一个图形化OS,首次使用鼠标/乔布斯方位Xero PARC,买下GUI研究/基于图形化界面的操作系统)

发展

趋势:AIoT

AIoT=AI+IoT+5G+Cloud+…
反应当前时代的变化

  • 趋势
    从封闭到开放,再到封闭
    从专用到通用,再到专用(领域定制化)

概念

操作系统是在硬件和应用之间的软件层

  • OS为应用提供的一些服务
    • 为应用提供计算资源的抽象
    • CPU:进程/线程,数量不受物理CPU的限制
    • 内存:虚拟内存,大小不受物理内存的限制
    • I/O设备:为各种设备统一抽象为文件,提供统一接口
    • 为应用提供线程间的同步
    • 应用可以实现自己的同步原语(如spinlock)
    • OS提供了更高效的同步原语(与线程切换配合,如pthread_mutex)
    • 为应用提供进程间的通信
    • 应用可以利用网络进行进程间通信(如loopback设备)
    • OS提供了更高效的本地通信机制(具有更丰富的寓意,如pipe)
  • OS对应用的管理
    • 生命周期的管理
    • 应用的加载、迁移、销毁等操作
    • 计算资源的分配
    • CPU:线程的调度机制
    • 内存:物理内存的分配
    • I/O设备:设备的服用与分配
    • 安全与隔离
    • 应用程序内部:访问控制机制
    • 应用程序之间:隔离机制,包括错误隔离和性能隔离
  • OS=管理+服务
    • 管理和服务的目标有可能存在冲突
      • 服务的目标:单个应用的运行效率最大化
      • 管理的目标:系统的资源整体利用率最大化
      • 例:单纯强调公平性的调度策略往往资源利用率低
        如细粒度的round-robin导致大量的上下文切换
  • 操作系统的定义
    • 操作系统的核心功能
    • 将有限的、离散的资源,高效的抽象为无限的、连续的资源
    • 从软件角度的定义
    • 硬件资源虚拟化+管理功能可编程
    • 从结构角度的定义
    • 操作系统内核+系统框架
  • 应用与操作系统的交互:系统调用
    • 系统调用概念
    • 应用调用操作系统的机制,实现应用不能实现的功能
    • 使应用调用操作系统的功能就想普通函数调用一样
  • 操作系统的功能:管理
    • 避免一个流氓应用独占所有资源
      • 方法:每10ms发生一个始终中断
      • 决定下一个要运行的任务
      • 方法:可以通过信号等打断当前任务执行
  • 为什么操作系统比较难
    • 深入事情本质:直接管理硬件细节
      好处:实现资源的高效利用,从根本上解决问题,做一个高效程序员
      挑战:需要理解与处理硬件细节,硬件甚至可能出错
    • “把复杂留给自己,把简单留给用户”
    • 锻炼系统架构能力
    • 将复杂问题进行抽象与简化
    • 最好的体现了M.A.L.H原则的使用
    • 计算机科学中30%的原则是从OS中来的
    • 各种问题的交互与相互影响
  • OS的机遇和挑战
    • 新的硬件层出不穷
    • 硬件种类越来越多:如自动驾驶、无人机、各种IoT设备等
    • 硬件互联越来越复杂:如AirDrop、摄像头和驾驶系统等
    • 应用需求日新月异
    • 对时延的要求越来越苛刻,如自动驾驶系统
    • 对资源利用率要求越来越高,如数据中心混部
    • 新的硬件和应用呼唤新的抽象和管理——新的操作系统
  • OS面临的挑战
    • OS的可扩展性(Scale-up)
    • 隔离与性能的Tradeoff
      • 进程间通信速度慢:比函数调用慢16倍
      • 研究者对进程间通信的优化持续了30+年
      • IPC依然可占到30%的程序总运行时间

操作系统接口

操作系统提供了不同层次的接口,主要包括如下三种

系统调用接口

用户态应用向OS请求服务的方法

POSIX接口

由于每个OS提供的系统调用各不相同,为了同一个应用程序在不同OS上的可移植性,逐渐形成了一些可移植OS的接口标准,如POSIX
POSIX:Portable Operating System Interface for uniX,可移植操作系统接口

领域应用接口

在POSIX或操作系统调用的基础上还可以封装面向不同领域的领域应用接口


http://www.ppmy.cn/news/1512187.html

相关文章

【spring boot自动配置】深入探讨 Spring Boot 自动配置:实现与机制

Spring Boot 是现代 Java 开发中的重要工具,它极大地简化了 Spring 应用的配置和管理。其核心特性之一——自动配置(Auto-Configuration),使得开发者能够以最少的配置迅速启动应用。在这篇文章中,我们将深入探讨 Sprin…

bash_01_tar_01_如何创建解压压缩包

1. 压缩 tar -zcvf 命令中的参数分别代表以下含义: tar: 这是 Linux 中用于创建和解压缩归档文件的命令。 -z: 表示使用 gzip 工具进行压缩。 -c: 表示创建新的归档文件。 -v: 表示在压缩过程中显示详细的信息,例如正在压缩的文件名。 -f: 表示指定要创…

flume系列之:flume生产环境sink重要参数理解

flume系列之:flume生产环境sink重要参数理解 sink1.hdfs.maxOpenFilessink1.hdfs.threadsPoolSizesink1.hdfs.rollTimerPoolSizesink1.hdfs.rollCountsink1.hdfs.rollSizesink1.hdfs.rollSizesink1.hdfs.rollIntervalsink1.hdfs.idleTimeoutsink1.hdfs.batchSizesink1.hdfs.wr…

【超入門】用ComfyUI快速套用AnimateDiff工作流生成AI動畫

Git官方下載:https://git-scm.com/downloads 🔰FFmpeg安裝指令:winget install -e --id Gyan.FFmpeg 🔰ComfyUI安裝:https://github.com/comfyanonymous/Com... 🔰Cardos Anime模型下載:https:/…

CSP-CCF 202303-1 田地丈量

一、问题描述 问题描述 西西艾弗岛上散落着 &#x1d45b; 块田地。每块田地可视为平面直角坐标系下的一块矩形区域&#xff0c;由左下角坐标 (&#x1d465;1,&#x1d466;1) 和右上角坐标 (&#x1d465;2,&#x1d466;2) 唯一确定&#xff0c;且满足 &#x1d465;1<&…

SpringBoot依赖之Spring Data Redis 实现HyperLogLog类型

概念 Spring Data Redis (AccessDriver) 依赖名称: Spring Data Redis (AccessDriver)功能描述: Advanced and thread-safe Java Redis client for synchronous, asynchronous, and reactive usage. Supports Cluster, Sentinel, Pipelining, Auto-Reconnect, Codecs and muc…

设计模式 -- 概述

1 基本概述 设计模式&#xff08;Design pattern&#xff09;代表了最佳的实践&#xff0c;通常被有经验的面向对象的软件开发人员所采用。设计模式是软件开发人员在软件开发过程中面临的一般问题的解决方案。 这些解决方案是众多软件开发人员经过相当长的一段时间的试验…

SFP光模块、gt口、PMD、PMA、PCS之间的关系

ZYNQ内部的GT&#xff08;高速收发器&#xff09;接口包含了PCS&#xff08;物理编码子层&#xff09;与PMA&#xff08;物理介质接入层&#xff09;。这两个层在高速数据传输中起着至关重要的作用。 PCS层&#xff08;物理编码子层&#xff09; PCS层位于协调子层&#xff0…