北航OS课程笔记--一、绪论

部分内容参考王道,一些名词与北航课件有少量出入。
欢迎指正。

绪论

操作系统定义

操作系统是一组管理计算机硬件资源的软件集合,它:

  • 提供一个计算机用户与计算机硬件系统之间的接口,使计算机系统更易于使用
  • 有效控制和管理计算机系统中的各种硬件和软件资源
  • 合理地组织计算机系统的工作流程,以改善系统性能。

image-20240317232210113image-20240317232242029

操作系统功能

向上层提供方便易用的服务。

image-20240317205426617

作为最接近硬件的层次,操作系统需要实现对硬件机器的拓展。

操作系统简史

  1. 手工操作阶段:纸带机

    主要缺点:用户独占全机,人际速度矛盾导致资源利用率很低。

  2. 批处理阶段(单道)

    • 把用户提交的作业成批送入计算机,由作业调度程序自动选择作业运行。
    • 目的:缩短作业之间的交换时间;减少处理机的空闲等待,提高系统效率
    • 联机批处理:作业的输入、输出由CPU来处理–>高速主机与慢速外设
    • 脱机批处理:输入、输出脱离主机控制,增加一台专门用于与输入输出设备打交道的卫星机。
    • 缺点:每次主机内存中仅存放一道作业,每当它运行期间发出输入/输出请求后,CPU便处于等待IO完成的状态,使得CPU空闲。
  3. 批处理阶段(多道):

    • 每次往内存中读入多道程序,并允许它们交替在CPU中运行。

    • 操作系统正式诞生,用于支持多道程序并发运行。

      image-20240317211714455

    • 优点:系统吞吐量大,资源利用率高;

    • 缺点:平均周转时间长;没有人机交互功能,无法调试程序,无法在运行过程中输入参数。

  4. 分时操作系统:

    • 把处理机的运行时间分成很短的时间片,按时间片轮流把处理机分配给各联机作业使用。
    • 多个用户分享使用同一台计算机;多个程序分时共享硬件和软件资源。
    • 用户请求可以被及时响应,解决了人机交互问题。
    • 主要缺点:不能优先处理紧急任务。
  5. 实时操作系统:

    • 计算机系统接收到外部信号后及时进行处理,并且要在严格的时限内处理完事件
    • 及时性和可靠性
  6. 操作系统的网络化(略)

  7. 分布式操作系统(略)

操作系统的特征

  • 并发

    • 并发是指一个处理器同时处理多个任务。在同一时刻只能有一条指令执行,但多个进程指令被快速的轮换执行,使得在宏观上具有多个进程同时执行的效果。

      单核CPU同一时刻只能执行一个程序,各个程序只能并发地执行。

    • 并行是指多个处理器或者是多核的处理器同时处理多个不同的任务。

      多核CPU同一时刻可以执行多个程序,各个程序可以并行地执行。

    • 并发是逻辑上的同时发生(simultaneous),而并行是物理上的同时发生。

  • 共享

    • 共享即资源共享,指系统中的资源可供内存中多个并发执行的进程共同使用。

    • 两种共享方式:

      • 互斥共享方式:系统中的某些资源在一个时间段内只允许一个进程访问该资源

      • 同时共享方式:系统中的某些资源,允许一个时间段内由多个进程“同时”对它们进行访问。

        “同时”往往是宏观上的,微观上是交替访问资源,即分时共享。

  • 虚拟

    • 把一个物理上的实体变为若干个逻辑上的对应物。
  • 异步性

    • 在多道程序环境下,允许多个程序并发执行;但由于资源有限,进程的执行不是一贯到底的,而是走走停停,以不可预知的速度向前推进,这就是进程的异步性。

并发和共享是最基本的两个特征,且它们互为存在条件。

操作系统的运行机制

  • 内核程序&应用程序

    • 应用程序:建立在操作系统上的程序
    • 内核程序组成了操作系统内核(简称内核
  • 特权指令&非特权指令

    • 特权指令:如“内存清零指令”等,只能由操作系统内核来使用;内核程序中可能存在。
    • 非特权指令:与上相反。应用程序中只有非特权指令。
  • 内核态&用户态

    • CPU处于内核态时,说明正在运行内核程序,此时可以执行特权指令
    • CPU处于用户态时,说明正在进行应用程序,此时只能执行非特权指令
  • 内核态与用户态的切换:

    • 刚开机时为内核态。
    • 开机完成后,操作系统内核程序能用一条特权指令,将PSW的标志位设为“用户态”
    • 操作系统内核让出CPU,应用程序在“用户态”运行。
    • 当应用程序中有特权指令,但CPU处于用户态时,会引发一个中断信号
    • CPU检测到中断信号后,会变为内核态,并停止运行当前的应用程序,转而对引发中断的时间进行处理。

    image-20240317215849753

中断和异常

名词上略有差异。以下为王道版本:

中断是让操作系统内核夺回CPU使用权的唯一途径。

  • 内中断(即异常):与当前执行的指令有关,中断信号来源于CPU内部
    • 例1:用户态下试图执行特权指令
    • 例2:执行除法指令时除数为0
    • 例3:应用程序想请求操作系统内核的服务,执行“陷入指令”(trap),引发一个内部中断信号。(陷入指令不是特权指令)
  • 外中断(即狭义中断):与当前执行的指令无关,中断信号来源于CPU外部
    • 例1:时钟中断,由时钟部件发来中断信号,用以实现程序并发运行
    • 例2:I/O中断,当输入输出任务完成时,向CPU发送中断信号。

内中断=异常,引发原因:

  • 陷入(trap),陷入指令引发
  • 故障(fault),由错误条件引起,可能被内核程序修复;内核程序修复故障后会把CPU使用权还给应用程序。例如:缺页故障。
  • 终止(abort),由致命错误引起,内核程序无法修复,一般会直接终止应用程序。例如上面的例1、例2

以下为你航版本:

异步异常=中断,可能随时发生,与处理器正在执行的内容无关。

同步异常:某一特定指令执行的结果。具体见下图。

image-20240317224857341

中断后进入内核线程处理中断。

系统调用

操作系统作为用户和系统之间的接口,需要向上提供一些简单易用的服务,主要包括命令接口和程序接口。其中程序接口由一组系统调用组成。

系统调用是操作系统提供给应用程序使用的接口,可以理解为一种可供应用程序调用的特殊函数;

应用程序可以通过系统调用来请求获得操作系统内核的服务。

系统调用的过程:

  1. 传参
  2. Trap
  3. 由操作系统内核程序处理系统调用请求
  4. 返回应用程序

操作系统体系结构

image-20240317232503579

以上两部分的划分,引出了两种操作系统的体系结构:大内核和微内核(常考)

微内核结构:只包含中断处理、进程通信、基本调度等。

image-20240317232603561

image-20240317232628528

关于效率:CPU状态转换是有成本的,频繁转换会降低系统性能→

  • 微内核性能低
  • 优点:结构清晰方便维护、可移植性好、适应分布式系统。

典型大内核:Linux UNIX

典型微内核:Windows

分层结构,模块化结构,外核结构:王道课有,PPT涉及不多。

不同层次的接口

ISA, ABI, API 的含义以及联系

一个操作系统中编译好的程序,在另一个ABI兼容的操作系统中无需重新编译就能运行。

posted @   qiuer0121  阅读(54)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· CSnakes vs Python.NET:高效嵌入与灵活互通的跨语言方案对比
· DeepSeek “源神”启动!「GitHub 热点速览」
· 我与微信审核的“相爱相杀”看个人小程序副业
· Plotly.NET 一个为 .NET 打造的强大开源交互式图表库
· 上周热点回顾(2.17-2.23)
点击右上角即可分享
微信分享提示