当前位置: 首页 > news >正文

【现代操作系统】1. intro

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

什么是操作系统

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

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

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

狭义的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或操作系统调用的基础上还可以封装面向不同领域的领域应用接口

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • Java中的主要设计模式
  • ubuntu18.04下安装nvidia3090显卡驱动
  • 数据结构----栈
  • C语言指针详解-上
  • (七)Activiti-modeler中文支持
  • 『Z-Workshop』 The Graph workshop mini hackathon活动
  • IBERT 眼图机制
  • 使用Poi-tl对word模板生成动态报告
  • 利用 Python 的包管理和动态属性获取(`__init__.py` 文件和 `getattr` 函数)特性来实现工厂方法模式
  • RHEL8 配置epel源
  • 深入探讨C语言中的高级指针操作
  • 生产环境中MapReduce的最佳实践
  • 微信小程序在不同移动设备上的差异导致原因
  • Startup-SBOM:一款针对RPM和APT数据库的逆向安全工具
  • Jenkins使用Publish Over SSH插件远程部署程序到阿里云服务器
  • android百种动画侧滑库、步骤视图、TextView效果、社交、搜房、K线图等源码
  • AWS实战 - 利用IAM对S3做访问控制
  • JS变量作用域
  • LeetCode算法系列_0891_子序列宽度之和
  • SQLServer之创建显式事务
  • Windows Containers 大冒险: 容器网络
  • XForms - 更强大的Form
  • 分类模型——Logistics Regression
  • 机器学习中为什么要做归一化normalization
  • 悄悄地说一个bug
  • 推荐一个React的管理后台框架
  • 协程
  • 一份游戏开发学习路线
  • Unity3D - 异步加载游戏场景与异步加载游戏资源进度条 ...
  • ​Linux·i2c驱动架构​
  • # 学号 2017-2018-20172309 《程序设计与数据结构》实验三报告
  • #NOIP 2014# day.1 T2 联合权值
  • (3)(3.5) 遥测无线电区域条例
  • (办公)springboot配置aop处理请求.
  • (第二周)效能测试
  • (四)软件性能测试
  • (一) 初入MySQL 【认识和部署】
  • (一)十分简易快速 自己训练样本 opencv级联haar分类器 车牌识别
  • (原创)Stanford Machine Learning (by Andrew NG) --- (week 9) Anomaly DetectionRecommender Systems...
  • (转) RFS+AutoItLibrary测试web对话框
  • (转)es进行聚合操作时提示Fielddata is disabled on text fields by default
  • (转)memcache、redis缓存
  • ***监测系统的构建(chkrootkit )
  • **《Linux/Unix系统编程手册》读书笔记24章**
  • .aanva
  • .bat批处理(八):各种形式的变量%0、%i、%%i、var、%var%、!var!的含义和区别
  • .Net IOC框架入门之一 Unity
  • .Net+SQL Server企业应用性能优化笔记4——精确查找瓶颈
  • /etc/shadow字段详解
  • @ConfigurationProperties注解对数据的自动封装
  • @RequestBody与@ModelAttribute
  • [20171101]rman to destination.txt
  • [ACM独立出版]2024年虚拟现实、图像和信号处理国际学术会议(ICVISP 2024)
  • [AHOI2009]中国象棋 DP,递推,组合数
  • [AIGC codze] Kafka 的 rebalance 机制