第一章-计算机系统概述

WanXing2022年7月30日大约 6 分钟

1.1 操作系统的基本概念open in new window

系统软件,控制计算机硬件和软件资源

操作系统的特征:最主要的是并发和共享

(1)并发:分时交替。单处理机同时只能运行一个进程

(2)共享:系统资源可供多个并发的进程同时使用,同步互斥

(3)虚拟:物理实体->逻辑事物

(4)异步:多个程序执行速度不可预知,但结果一定

操作系统的功能:处理机管理,存储器管理,文件管理,设备管理

操作系统的接口:命令接口(联机:交互式,脱机:批处理),系统调用(程序接口,给编程人员的接口)

库函数来使用系统调用

1.2 操作系统的发展和分类

发展流程:手工操作阶段->批处理阶段->分时系统->实时系统->PC操作系统

批处理系统:将一批作业进入内存,交给操作系统处理,用户脱机。优点:资源利用率高,缺点:无交互能力

  • 单道批处理系统:内存中始终保持一道作业。如果程序运行时发出io请求,那CPU就要等待低速的io

  • 多道批处理系统:允许多个程序同时进入内存,在CPU中交替运行。一个程序io的同时,CPU可以转而执行其他程序。但是用户不知道程序的运行情况,不能和计算机交互,只能通过提前写好的用户说明书来调试

分时操作系统:处理器的运行时间分成很短的时间片,轮流分配给各作业。多个用户共享一台主机,交互互不干扰

实时操作系统:订票、银行,严格及时

1.3 操作系统的运行环境

1.操作系统运行机制

CPU有两种状态:用户态时,只能执行非特权指令,内核态可以执行特权指令

操作系统内核包括:

  • 时钟管理:计时,时间片轮转调度切换进程
  • 中断机制
  • 原语:不可被中断的原子进程
  • 系统控制的数据结构(进程管理,存储器管理,设备管理),与硬件关系不紧密

用户态到内核态切换需要通过中断或异常,反过来则需要中断返回指令。

进程从用户态->内核态需要访管指令,中断处理程序在内核态运行。

2.中断和异常

硬件中断:中断信号来自硬件设备

  • 外中断(中断):来自外部设备,包括io设备中断、外部信号中断、定时器引起的时钟中断
  • 内中断(异常):中断信号来自CPU内部指令执行
    • 故障fault:可恢复的错误,如缺页(通过访存指令产生的异常)
    • 终止abort:不可恢复的错误,如非法指令,除数为0

软中断:通过当前进程中断指令int产生的中断,其实是程序的正常执行

  • 陷入trap:有意的异常,如系统调用(用户态到内核态的切换)

CPU响应中断后,中断处理过程:

  • 中断隐指令(硬件直接实现)做的事:(用户态)
    • 关中断:因为保护中断现场时不能被中断打扰
    • 保存断点:将当前PC值压栈
    • 中断服务程序寻址:将中断向量(中断服务程序的入口地址)放入PC
  • 中断服务程序做的事:(内核态)
    • 保存现场和屏蔽字:通用寄存器的值
    • 开中断:为了中断嵌套,接受新的中断
    • 执行中断服务程序
    • 关中断:保证恢复现场时不能被打扰
    • 恢复现场和屏蔽字
    • 开中断
    • 中断返回

3.系统调用

程序调用操作系统提供的功能包括设备管理、文件管理、进程控制、进程通信、内存管理。

用户程序通过int 0x80命令产生软中断,然后通过trap陷入指令发起系统调用,把CPU使用权主动交给内核,即用户态到内核态。此时,寄存器eax中会存放系统调用号,根据系统调用号查找系统调用表sys_call_table中对应的系统调用服务程序入口地址。内核处理完后,再把CPU使用权还给用户程序

1.4 操作系统的体系结构

分层法

将操作系统分成若干层次,0为硬件(最底层),n为用户接口

每层只能调用相邻的更低层的服务

模块化

将操作系统按功能划分为多个模块,各模块之间通过接口通信

大内核与微内核

大内核:操作系统主要模块都作为整体运行在内核态。

  • 性能高,但是增加系统服务时需要修改内核,接口复杂

微内核:内核态只有最基本的功能(进程管理等)

  • 微内核基于用户/服务器模式,只有微内核运行在内核态,其他模块在用户态
  • 可靠性高,但需要频繁切换,性能差

1.5 程序运行环境

进程的内存映像与地址空间

一个程序从硬盘调入内存就构成了进程的内存映像

内存映像从上到下(高地址到低地址):

  • 栈:用来实现哈函数调用
  • 堆:存放动态分配的变量
  • 数据段:全局变量和静态变量
  • 代码段:程序的二进制代码

程序调入内存后,数据段和代码段大小固定

此外,还有进程控制块PCB存放在系统区

1.6 操作系统引导过程

  • CPU执行ROM中的boot程序,将BIOS程序(基本输入输出系统)的第一条指令放入指令寄存器,开始执行BIOS
  • BIOS硬件自检,通过遍历方式寻找带有主引导记录的系统硬盘
  • 加载主引导记录MBR,根据标识符找到引导硬盘
  • 加载硬盘分区表,MBR找到哪个硬盘分区含有操作系统
  • (加载硬盘活动分区,分区引导记录PBR,启动管理器。。。)
  • 加载操作系统到内存中的系统区,属于RAM

1.7 虚拟机

两种虚拟化方法

1.第一类虚拟机

虚拟机作为用户态的进程,当执行内核态指令时,陷入虚拟机管理程序。虚拟机管理程序检查该指令是否是虚拟机的操作系统执行的,是则正确执行

2.第二类虚拟机

虚拟机的操作系统称为客户操作系统,安装虚拟机的底层硬件上的操作系统是宿主操作系统

虚拟机管理程序伪装成完整的计算机,有虚拟设备,虚拟磁盘

Loading...