计算机操作系统(1):基本概念

操作系统

概述

操作系统定义

  • 没有公认的精确定义
  • 是一个控制程序
    • 一个系统软件
    • 控制程序执行结果、防止错误和计算机的不当使用
    • 执行用户程序,给用户程序提供各种服务
    • 方便使用
  • 是一个资源管理器
    • 应用程序与硬件间的中间层
    • 管理各种软硬件资源,提供访问资源的高效手段
    • 解决资源的访问冲突,确保资源公平使用

操作系统下接CPU、磁盘、内存;上接进程、文件、地址空间。

操作系统内核特征

并发

  • 并发是指宏观上在一段时间内能同时运行多个程序,而并行则指同一时刻能运行多个指令。
  • 并行需要硬件支持,如多流水线、多核处理器或者分布式计算系统。
  • 操作系统通过引入进程和线程,使得程序能够并发运行。

共享

  • 共享是指系统中的资源可以被多个并发进程共同使用。
  • 同时访问(宏观)
  • 互斥共享(微观),互斥共享的资源称为临界资源,例如打印机等,在同一时间只允许一个进程访问,需要用同步机制来实现对临界资源的访问。

虚拟

  • 虚拟技术把一个物理实体转换为多个逻辑实体。主要有两种虚拟技术:时分复用技术和空分复用技术。
  • 多个进程能在同一个处理器上并发执行使用了时分复用技术,让每个进程轮流占有处理器,每次只执行一小个时间片并快速切换。
  • 虚拟内存使用了空分复用技术,它将物理内存抽象为地址空间,每个进程都有各自的地址空间。地址空间的页被映射到物理内存,地址空间的页并不需要全部在物理内存中,当使用到一个没有在物理内存的页时,执行页面置换算法,将该页置换到内存中。

异步

  • 程序的执行不是一贯到底,而是走走停停,以不可预知的速度推进
  • 只要运行环境相同,OS要保证程序运行的结果也相同

基本功能

进程管理

进程控制、进程同步、进程通信、死锁处理、处理机调度等。

内存管理

内存分配、地址映射、内存保护与共享、虚拟内存等。

文件管理

文件存储空间的管理、目录管理、文件读写管理和保护等。

设备管理

完成用户的 I/O 请求,方便用户使用各种设备,并提高设备的利用率。

主要包括缓冲管理、设备分配、设备处理、虛拟设备等。

为什么学习操作系统

学习操作系统的设计与实现

windows:封闭式系统

linux:开放式系统

操作系统演变

单用户系统

问题:昂贵组件的低利用率

批处理系统

多程序系统

保持多个工作在内存中,并且在各工作间复用CPU

分时

定时中断用于工作时对CPU的复用

个人计算机

效率已不是关注点,易用性为重点

分布式计算

高可用性与可靠性

操作系统结构

大内核结构

大内核是将操作系统功能作为一个紧密结合的整体放到内核。

由于各模块共享信息,因此有很高的性能。

微内核结构

因为分层结构里面层次过多,效率低下。

尽可能将内核功能迁移到用户空间

用户模块间通信使用消息传递

好处:灵活、安全

缺点:性能。需要频繁在用户态与核心态之间切换

外核结构

让内核分配机器的物理资源给多个应用程序,并让每个程序控制如何使用资源。类似于虚拟机的结构

书籍推荐

  1. 操作系统概念(第7版 Abraham Silberschatz)
  2. 操作系统精髓与设计原理(第7版 William Stallings)

启动、中断、异常、系统调用

中断分类

外中断

由 CPU 执行指令以外的事件引起,如 I/O 完成中断,表示设备输入/输出处理已经完成,处理器能够发送下一个输入/输出请求。

此外还有时钟中断、控制台中断等。

异常

由 CPU 执行指令的内部事件引起,如非法操作码、地址越界、算术溢出等。

陷入

在用户程序中使用系统调用。

BIOS

计算机系统的启动过程:

CPU加电之后如何启动,在内存当中有一段ROM,有一些数据。

1551342146180

BIOS功能

为系统启动提供服务

  • 基本输入输出程序:以中断调用的方式提供基本的IO功能
  • 系统设置信息(硬盘启动、光盘启动等)
  • 开机自检
  • 系统自启动程序

BIOS将加载程序加载进来,将操作系统的代码和数据加载到内存。

系统启动流程

BIOS:固化在主板上的程序,包括系统设置、自检、系统自启动程序

1551342567879

  • CPU加电稳定后,在ROM中读第一条指令
    • CPU初始状态为16位实模式
  • BIOS初始化
    • 硬件自检POST,检测内存、显卡等工作状态,进行设备初始化
    • 执行系统BIOS,进行系统自检,检测即插即用设备
    • 更新CMOS中的扩展系统配置数据ESCD
  • 主引导记录记录MBR格式
    • 启动代码
    • 硬盘分区表
    • 结束标志
  • 分区引导扇区
    • 跳转指令,跳转到启动代码,与平台相关
    • 文件卷头
    • 启动代码,跳转到加载程序
    • 结束代码
  • 加载程序

1551342910109

参考