【王道操作系统】第一章:系统概述

138 阅读5分钟

image.png

接口向上层提供的服务:

  1. GUI
  2. 联机接口:交互式接口
  3. 脱机接口:执行批处理文件
  4. 程序接口:系统调用

操作系统四大特征:

  1. 并发性
  2. 共享性【资源共享:系统中的资源可供内存中多个并发执行的进程共同使用】
    • 互斥共享:比如手机只有一个摄像头,当你视频的时候就不能拍照
    • 同时共享:QQ和微信同时发送文件,都需要访问硬盘资源,这时就是交替访问;比如游戏声音+音乐声音
  3. 虚拟
    • 时分复用:在单核CPU上,能够跑多个软件,就用到了时分复用技术,物理上一个CPU,逻辑上多个
    • 空分复用:虚拟存储技术,虚拟地址空间,每个进程都有自己独立的虚拟地址空间,空间总量可能会超过本机,但是本机存储的只有正在使用到的,这就不会出问题,MTU 将虚拟地址映射为实际地址
  4. 异步:操作系统的随机调度性

操作系统发展历程

  1. 手工操作阶段:纸袋机【人工在纸袋上写好东西,然后喂给计算机,然后计算机执行输出对应结果,程序员再去取出】 - 缺点:用户独占、计算机利用率低
  2. 单道批处理:引入了脱机输入输出技术【引入了外围机 + 磁带完成】,外围机可将执行程序存到磁带上,然后有个监督程序从磁带进行读取【加快了输入输出速度】,最后执行完成在输出到另一个磁带上【提高了资源利用率】,但是仅能执行一个程序,资源利用率还是很低,CPU有大量的时间在等待着I/O完成【计算时,输入输出设备全都空闲等待,能不能让程序在执行时,输入设备读取下一个程序】
  3. 多道批处理【操作系统诞生,并发出现,只会在当前并发任务下进行随即调度;新添加的任务不会】 - 极大的提高了CPU的利用率,缺点:无人机交互,无法进行人为干预
  4. 分时操作系统:时间片轮转,解决了人机交互,用户请求可以及时被响应;缺点:不能优先处理紧急任务
  5. 实时操作系统:可以优先处理一些紧急任务,及时、可靠
    • 硬实时操作系统:自动驾驶
    • 软实习操作系统:12306购票

操作系统运行机制

  1. 只有CPU处于内核态,才是操作内核程序,可以执行特权指令
  2. 若CPU处于用户态,那么只能够操作应用程序执行非特权指令
  3. CPU如何知道自己所处的状态:PSW 寄存器
  1. CPU如何进行状态切换的
    • 电脑开机,CPU需要执行初始化程序,此时处于内核态
    • 当一个应用程序要上CPU的时候,操作系统会在允许的情况下,使用一条特权指令释放内核程序的使用权【修改PSW寄存器的值】
    • 此时应用程序就运行在用户态了
    • 如果此时,黑客写了一条特权指令,交给CPU运行
    • CPU会发现该指令是特权指令,然后自己又处于用户态,那么会发生一个中断信号,把CPU的使用权交给内核程序
    • 内核程序针对该中断信号指令也会有对应的处理机制,处理完成后再交给应用程序

image.png

中断

作用

  1. 为了保护操作系统
  2. 实现并发【操作系统对线程的调度中断是前提,中断是操作系统夺回应用程序CPU执行权的唯一途径】

类型

  1. 内中断:由当前执行的指令触发的,再CPU内部触发【终止、陷入、故障三大类】
    • 应用程序执行特权指令 - 终止
    • 代码中的运行时异常【比如 /0】 - 终止
    • 陷入指令【非特权指令】 - 比如 printf 打印【用户态】,而代码底层需要执行 write 指令操作硬件的【内核态操作硬件】,就会使用一个陷入指令让CPU状态切换
    • 程序运行中发生故障,但是操作系统能给修复,比如:缺页故障,操作系统自身发生的异常 故障
  2. 外中断:可能由硬件进行触发,不管CPU啥事【每执行一条指令,就需要检查是否由外中断发生】
    • 时钟中断:相当于分时,到时间了就自动触发状态切换,然后随机调度上CPU【并发】
    • 硬件中断:比如操作系统调用了打印机打印,然后CPU还在运行其他的程序,当打印机完成工作后,需要通知一下操作系统,然后操作系统从等待打印机的资源中挑选一个上打印机打印

实现原理

每种中断都有类型的,每种类型对应的处理机制再一张表中都有存储

系统调用

凡是涉及到共享资源的使用,都会涉及到系统调用,系统调用的目的就是:如果某个线程访问了共享资源,而该共享资源需要互斥进行访问,这时需要操作系统来进行分配,比如:【创建文件、使用打印机等】

分类

  1. 设备管理 - 打印机
  2. 文件管理 - 创建文件
  3. 进程控制 - 创建、阻塞、唤醒
  4. 进程通信 - 一个主机上,多个程序间的通信
  5. 内存管理 - 分配回收内存资源

执行过程

先会传递该系统调用所需要的参数到寄存器,传递完成后进行陷入指令的中断处理,然后根据参数执行不同类型的中断程序

体系结构

大内核与微内核

image.png image.png

5大体系结构对比

image.png

开机过程

image.png

虚拟机

image.png

image.png