操作系统-01-概述

操作系统-01-概述

前言

  • 是系统最基本最核心的软件,属于系统软件
  • 控制和管理整个计算机的硬件和软件资源
  • 合理的组织、调度计算机的工作与资源的分配
  • 为用户和其它软件提供方便的接口和环境

mark

1. 基本特征

  1. 并发
  • 并发:两个或多个事件在同一时间间隔内发生,这些事件在宏观上是同时发生的,在微观上是交替发生的, 操作系统的并发性指系统中同时存在着多个运行的程序
  • 并行:两个或多个事件在同一时刻发生
  • 一个单核(CPU)同一时刻只能执行一个程序,因此操作系统会协调多个程序使他们交替进行(这些程序在宏观上是同时发生的,在微观上是交替进行的)
  1. 共享
  • 互斥共享
    同一个时间段只允许一个进程访问资源(摄像头/麦克风)
  • 同时共享
    允许一个时间段多个进程“同时”(宏观上)访问某些资源(微观上是分时共享),比如硬盘读写
  1. 虚拟
  • 虚拟是指把一个物理上的实体变为若干个逻辑上的对应物。物理实体(前者)是实际存在的,而逻辑上对应物(后者)是用户感受到的。
    • 空分复用(虚拟储存技术)
      • 物理4GB内存,用户看来远大于4GB
    • 时分复用(虚拟处理器技术)
      • 一个CPU看上去是几个CPU,多个程序并发运行
  1. 异步
  • 异步是指,在多道程序环境下,允许多个程序并发执行,但由于资源有限,进程的执行不是一贯到底的,是走走停停(等待资源进程阻塞),以不可预知的速度向前推异步性。

2. 发展和分类

mark

  1. 手工操作阶段(IO靠纸带打孔,资源利用率低)

  2. 批处理阶段

    • 单道批处理系统
      引入了脱机输入/输出技术(磁带),通过监督程序(操作系统雏形)控制作业输入输出

      外围机负责把输入纸带录入磁带

      缓解了人机速度矛盾,提高了资源利用率,但是CPU是串行的,大量CPU时间浪费在I/O等待上

    • 多道批处理系统
      磁带往内存输入多道程序,并发执行,输入、计算、输出互不干扰

      操作系统诞生,引入了中断技术,资源利用率大幅上升,但是缺少人机交互功能,用户响应时间长(用户提交作业之后只能等待作业完成)

  3. 分时操作系统

    • 分时操作系统:计算机以时间片为单位轮流为各个用户/作业服务,各个用户可通过终端与计算机进行交互。
    • 主要优点:用户请求可以被即时响应,解决了人机交互问题。允许多个用户同时使用一台计算机,并且用户对计算机的操作相互独立,感受不到别人的存在。
    • 主要缺点:不能优先处理一些紧急任务。操作系统对各个用户/作业都是完全公平的,循环地为每个用户/作业服务一个时间片,不区分任务的紧急性。
  1. 网络操作系统
    • 网络操作系统:是伴随着计算机网络的发展而诞生的,能把网络中各个计算机有机地结合起来,实现数据传送等功能,实现网络中各种资源的共享(如文件共享)和各台计算机之间的通信。(如: Windows NT就是一种典型的网络操作系统,网站服务器就可以使用)
  1. 分布式操作系统
    • 分布式操作系统:主要特点是分布性和并行性。系统中的各台计算机地位相同,任何工作都可以分布在这些计算机上,由它们并行、协同完成这个任务。
  1. PC操作系统

    • Windows10

    • MacOS

    • Ubuntu

小结:发展历程

mark

3. 运行机制和体系结构

mark

3.1 运行机制

  • 指令

    • 特权指令

      • 内存清零指令
    • 非特权指令

      • 加减乘除运算指令
  • 处理器状态

    • 核心态(目管态)

      • PSW=0,运行执行特权指令
        PSW 程序状态字寄存器,通过标志位标识处理器的运行状态
    • 用户态(目态)

      • PSW=1,只能使用非特权指令
  • 程序

    • 应用程序
      为了安全,运行在用户态

    • 内核程序
      系统管理者,运行在核心态

3.2 体系结构

mark

  • 大内核
    将操作系统的主要功能模块都作为系统内核,运行在核心态
    高性能,但是内核代码庞大难以维护
  • 微内核
    只把基本概念保留在内核
    功能少,功能清晰方便维护,但是需要频繁的在核心态和用户态之间切换,性能低

3.3 OS内核结构

  • 时钟管理

    • 用于计时
    • 通过时钟中断的管理,可以实现进程的切换
  • 中断处理

  • 原语

    • 运行时间短,调用频繁,原子性运行只能一气呵成,不可中断
  • 系统资源管理

    有的操作系统不把这个作为“内核功能”(微内核)

    • 进程管理

    • 储存器管理

    • 设备管理

4. 中断和异常

mark

4.1 概念

  • 发生了中断,就意味着需要操作系统介入,开展管理工作。
  • 由于操作系统的管理工作(比如进程切换、分配I/O设备等)需要使用特权指令,因此CPU要从用户态转为核心态
  • 中断可以使CPU从用户态切换为核心态,使操作系统获得计算机的控制权。有了中断才能实现多道程序并发执行。
  • 中断是CPU从用户态->核心态切换的唯一途径。
  • 核心态->用户态切换只需要执行一个特权指令将PSW设置为0

4.2 中断分类

  • 内中断(异常/例外/陷入)

    信号来源CPU内部,与当前执行的指令有关

    • 自愿中断(指令中断)
      系统调用时使用的访管指令(陷入指令/trap指令)

    • 强迫中断

      • 硬件故障
        缺页错误

      • 软件中断
        除0错误

  • 外中断(狭义中断)

    信号来源CPU外部,与当前执行的指令无关

    • 外设请求
      外设(比如打印机)I/O操作完成发出中断信号
      键盘输入一个字符

    • 人工干预
      用户强制终止一个进程

4.3 中断处理的过程

mark

大致处理过程

  • Step 1:执行完每个指令之后, CPU都要检查当前是否有外部中断信号
  • Step 2:如果检测到外部中断信号,则需要保护被中断进程的CPU环境(如程序状态字Psw、程序计数器PC、各种通用寄存器)
  • Step 3:根据中断信号类型转入相应的中断处理程序(进入核心态)
  • Step 4:恢复原进程的CPU环境并退出中断,返回原进程继续往下执行

5. 系统调用

mark

5.1 概念

  • “系统调用”是操作系统提供给应用程序(程序员/编程人员)使用的接口,可以理解为一种可供应用程序调用的特殊函数,应用程序可以发出系统调用请求来获得操作系统的服务
  • 应用程序通过系统调用请求操作系统的服务。 系统中的各种共享资源都由操作系统统一掌管,因此在用户程序中,凡是与资源有关的操作(如存储分配、1/0操作、文件管理等) ,都必须通过系统调用的方式向操作系统提出服务请求,由操作系统代为完成。
  • 这样可以保证系统的稳定性和安全性,防止用户进行非法操作。
  • 系统调用相关的处理需要在核心态下完成。

5.2 系统调用和库函数的区别

mark

5.3 系统调用过程

mark

参考书籍:《王道考研计算机操作系统》

参考博客https://mubu.com/doc/Cd-Y4YOfkh#

https://blog.csdn.net/weixin_43914604/article/details/104415990

打赏
  • 版权声明: 本博客所有文章除特别声明外,均采用 Apache License 2.0 许可协议。转载请注明出处!
  • © 2019-2022 Zhuuu
  • PV: UV:

请我喝杯咖啡吧~

支付宝
微信