[操作系统] - 引论

1.操作系统引论

1.0 计算机系统

计算机系统 = 硬件 + 软件

1.1 计算机硬件结构

1.1.1 CPU

  • 工作基本周期

    • 从内存中提取指令

    • 对指令译码

    • 取操作数

    • 最后执行指令

    • 每个CPU可以执行的指令集是专用的

  • 内部寄存器

    • 通用寄存器
    • 专用寄存器
      • 程序计数器
      • 栈指针
      • PSW(程序状态字)
    • 指令
      • 特权
      • 非特权
  • 处理机执行态

    • 核心态
    • 用户态

1.1.2 储存器

1.1.3 I/O设备

  • 设备
  • 控制器

1.1.4 总线

  • 数据总线
  • 地址总线
  • 控制总线

1.2 计算机软件结构

1.2.1 软件[1]

  • 系统软件:解决某一类应用需要或某个特定问题而设计的程序
  • 应用软件:辅助软件技术人员从事软件开发工作的软件
  • 支撑软件:包括操作系统、编译程序、汇编程序、连接装配程序、DBMS

1.2.2 操作系统

  • 定义

操作系统是控制和管理计算机系统内各种硬件和软件资源,有效地组织多道程序运行的系统软件(或程序集合),是用户与计算机之间的接口。

  • 主要功能

    • 存储管理

      • 内存分配
      • 地址映射:把程序中的逻辑地址映射为物理地址
      • 内存保护:使多道程序间互不干扰
      • 内存扩充:用辅存扩充主存,实现“虚拟存储器
    • 作业和进程管理

      • 作业和进程调度
      • 进程控制
      • 进程通信
    • 设备管理

      • 缓冲区管理:各种设备间、设备-CPU间 I/O速度差异极大,为设备提供缓冲区缓和矛盾
      • 设备分配
      • 设备驱动
      • 设备无关性
    • 文件管理

      • 文件管理功能
      • 文件储存空间管理
      • 文件操作
      • 目录管理
      • 文件读写管理&存取控制
    • 用户接口服务[2]

      • 程序接口-系统调用接口
      • 用户接口
        • 命令行
        • 图形界面

1.3 操作系统分类

1.3.1 远古

1.3.2 批处理系统

  • 定义

将用户提交的作业分批处理,使同一批作业执行过程中一个用户作业结束另一个用户作业开始运行的这种转换工作由专门编制的监督程序来管理。

  • 评价

    • 优点

      系统吞吐量大

      资源利用率高

    • 缺点

      作业的周转时间长

      用户无法实现对作业的控制

    该系统适合处理计算量大的、自动化程度高的成熟的作业。

  • 联机与否分类

    • 联机

      作业输入、计算、输出都由CPU负责。资源利用率低

    • 脱机

      使用卫星机负责外部设备的输入输出。其实质是用快速的输入输出设备代替慢速的设备。

  • 程序执行顺序分类

    • 单道

    各个用户程序也是顺序执行资源独占,使系统资源利用率非常低

    • 多道

    在内存中放多道程序,使它们在管理程序的控制下交替地执行,共享系统中的软硬件资源

    注:所谓交替指 当正运行的程序因某种原因而暂停执行时,CPU就立即转去执行另一道程序。不浪费CPU资源

    特点:宏观上并行、微观上串行

  • 作业流程

1.3.3 分时系统

工作方式

  • 一台主机连接了若干个终端,

  • 每个终端有一个用户在使用,

  • 交互式的向系统提出命令请求

  • 系统接受每个用户的命令,采用时间片轮转方式处理服务请求,并通过交互方式在终端上向用户显示结果

  • 用户根据上步结果发出下道命令

名词解析

  • 并行(parallel):多个事物在微观上同时进行
  • 并发(concurrent):一组在逻辑上相互独立的程序在宏观上同时在同一CPU上执行
  • 分时:若干并发程序对CPU时间的共享
  • 时间片:CPU时间被操作系统划分为若干片段。分时操作系统以时间片为单位,轮流为每个终端用户服务。每次服务一个时间片

评价

  • 优点

    • 人机交互,界面友好

    • 促进计算机的普及应用

    • 便于本地用户间资源共享和交换信息

  • 缺点

    • 无法满足实时响应

    • 不便实现远程用户间的资源共享和信息交换

    • 用户数量受限,对硬件资源要求较高

1.3.4 实时系统

  • 工作方式

    • 硬实时系统

      对各操作时间都有严格约束

    • 软实时系统

      对操作时间限制稍弱一些,可延时完成

  • 应用

    • 导弹发射控制

1.4 操作系统特征

1.4.1 并发

  • 所谓并发性是指为了增强计算机系统的处理能力而采用的一种操作技术:在内存中存放多道作业, 在一个时间段上来看,每一道作业都能不同程度地向前推进。但在任何一个时间点上只能有一道占用CPU。
  • 并发是指两个或多个活动在同一给定的时间间隔中进行。

1.4.2 共享

  • 共享是指计算机系统中的资源可供多个进程共同使用。
  • 支持系统并发性的物质基础是资源共享。资源若不能共享,多任务并发就不能实现;同样,若没有多任务并发,也就无所谓资源共享。
  • 资源共享是操作系统追求的主要目标之一。为了提高计算机系统的资源利用率,更好地共享系统资源,操作系统的各部分功能设计中采用了各种各样的分配调度算法

1.4.3 异步性

  • 也称为不确定性,是指系统中各种事件发生顺序的不可预测性。
  • 多道程序环境下,进程以独立的、不可预知的速度向前推进,即为异步运行方式。
  • “走走停停”
  • 但只要运行环境相同,作业虽经多次运行,都会得到完全相同的结果。

1.4.4 抽象性

  • 复杂事情简单化的有效方式 :

    • CPU到进程的抽象

    • 物理内存到地址空间(虚拟内存)的抽象

    • 磁盘和I/O设备到文件的抽象

    • 用户接口所提供的抽象

  • 抽象对任务的划分:

    • 一个是有关抽象的定义和实现,另一个是应用这些抽象解决相关问题。

1.5 操作系统结构

1.5.1 宏内核

简单来说,就是把很多东西都集成进内核,除了最基本的进程、线程管理、内存管理外,文件系统,驱动,网络协议等等都在内核里面。优点:效率高

缺点:稳定性差,开发过程中的bug经常会导致整个系统挂掉。

典型代表:Linux

1.5.2 微内核

传统上把操作系统的所有程序都放在内核中,其实没有必要,程序代码的规模越大,出错的几率就越大,权限较小,出问题时的影响也小

现代操作系统有一种发展趋势:把实现扩展机器功能的这部分代码向上移入更高层次中,尽可能地使操作系统保持最小的核心——实现最基本的功能,因而称作微内核(microkernel)

微内核所提供的功能,通常都是一些最基本的功能,如进程管理、内存管理、进程间通信、 低级I/O功能等。

微内核并非是一个完整的OS,它只完成内核不得不完成的功能,剩余的诸如文件系统、设备驱动等的内容都被作为系统进程放到了用户态空间。

进程之间基于消息传送(message passing)机制进行数据传递。

优点:超级稳定,出错只会导致相应进程死掉,不会导致整个系统都崩溃

缺点:传输效率低。

典型代表:鸿蒙

1.5.3 混合内核

为解决微内核的通信效率问题,折衷的办法是为了妥协所做出的内核架构——混合内核,混合核心的基本设计理念,是以微内核架构来设计操作系统核心,但在实现上则采用宏内核的作法。它让一些微内核结构运行在用户空间的代码运行在核心空间,这样让核心的运行效率更高些。

典型代表:Windows NT,Mac OS X

1.6 操作系统启动

  1. 硬件检测
  2. 加载引导程序
  3. 初始化内核
  4. 用户登录

  1. 各种软件分层图 ↩︎

  2. 操作系统三种接口在系统中的位置 ↩︎

posted @ 2023-03-09 14:04  LinFeng_Coding  阅读(79)  评论(0编辑  收藏  举报