1操作系统基础

本文详细介绍了操作系统的概念、功能和目标,包括其并发、共享、虚拟和异步四大特征。阐述了操作系统的演进历程,从手工操作到批处理、分时、实时系统等。还探讨了操作系统的运行机制,如中断、异常以及系统调用的作用和过程。最后,讨论了操作系统的内核和体系结构,以及中断的分类和处理流程。
摘要由CSDN通过智能技术生成


前言

次文章为观看王道考研课程(操作系统)的笔记
视频链接:https://www.bilibili.com/video/BV1YE411D7nH?spm_id_from=333.337.search-card.all.click

1.1 操作系统的概念,功能和目标

1.1.1概念

O S \color{red}OS OS是指:

  • 控制和管理整个计算机硬件和软件资源,并合理地组织调度计算机的工作和资源分配
  • 以提供给用户和其它软件方便的接口和环境
  • 是计算机最基本的 系统软件 \color{red}系统软件 系统软件

1.1.2操作系统的功能和目标

作为系统的管理者

  • 提供的功能:
    1. 文件管理 2. 存储器管理 3. 处理机管理 4. 设备管理
  • 目标:安全高效

作为用户和计算机硬件之间的接口

  • 提供的功能

    1. 命令接口(允许用户 直接 \color{red}直接 直接使用)
      ​ 联机命令接口:用户说一句,系统做一句
      ​ 脱机命令接口:用户说一堆,系统做一堆

    2. 程序接口(允许用户通过程序 间接 \color{red}间接 间接使用)
      ​ 由一组 系统调用 \color{red}系统调用 系统调用组成(程序接口=系统调用=广义指令)

    3. GUI(图形化界面)

  • 目标:方便用户使用

作为最接近硬件的层次

需要提供的功能和目标:实现对硬件机器的扩展

没有任何软件支持的计算机称为 裸机 \color{red}裸机 裸机。在裸机上安装操作系统,可以提供资源管理的功能和方便用户的服务功能,将裸机改造成功能更强、使用更方便的机器

通常把覆盖了软件的机器称为 扩充机器 \color{red}扩充机器 扩充机器,又称为 虚拟机 \color{red}虚拟机 虚拟机

1.2 操作系统的四个特征

1.2.1并发

并发 \color{red}并发 并发:指的是两个或多个事件在同一时间间隔发生。这些事件 宏观上是同时发生 \color{red}宏观上是同时发生 宏观上是同时发生的,但 微观上是交替发生 \color{red}微观上是交替发生 微观上是交替发生的, 操作系统的并发性 \color{red}操作系统的并发性 操作系统的并发性指的是计算机中同时存在着多个运行着的程序
易混淆概念—— 并行 \color{red}并行 并行:指两个或多个事件在同一时刻同时发生

1.2.2共享

共享 \color{red}共享 共享即资源共享,是指系统中的资源可供内存中多个并发执行的进程共同使用
两种资源共享方式

  • 互斥共享方式:系统中的某些资源,虽然可以提供给多个进程使用,但 一个时间段内只允许一个进程访问该资源 \color{red}一个时间段内只允许一个进程访问该资源 一个时间段内只允许一个进程访问该资源
    例:使用 Q Q QQ QQ视频和微信视频,同一时间段摄像头只会分配给其中一个进程

  • 同时共享方式:系统内的某些资源。 允许一个时间段内由多个进 程 ′ ′ 同 时 ′ ′ 对他们进行访问 \color{red}允许一个时间段内由多个进程''同时''对他们进行访问 允许一个时间段内由多个进′′′′对他们进行访问
    所谓的“同时”往往是宏观上的,而在微观上,这些进程可能是交替地对该资源进行访问(即分时共享)
    例:使用 Q Q QQ QQ发送文件A,同时使用微信发送文件B。宏观上看,两边都是在同时读取并发送文件,说明两个进程都在访问硬盘资源,从中读取数据,微观上看,两个进程是交替访问硬盘的。

并发和共享互为存在条件

1.2.3虚拟

虚拟 \color{red}虚拟 虚拟是指把一个物理上的实体变为若干个逻辑上的对应物。物理实体是实际存在的,而逻辑上的对应物是用户感受到的

虚拟技术

  • 空分复用技术(如虚拟存储器技术)
  • 时分复用技术(如虚拟处理机)

没有并发性就谈不上虚拟性

1.2.4异步

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

1.3 O S OS OS的发展和分类

1.3.1 手工操作阶段

主要缺点:用户独占全机、人机速度矛盾导致资源利用率极低

1.3.2 批处理阶段–单道批处理系统

引入 脱机技术 / 输出技术 \color{red}脱机技术/输出技术 脱机技术/输出技术(用磁带完成),并 监督程序 \color{red}监督程序 监督程序负责控制作业的输入、输出
主要优点:缓解了一定程度的人机速度矛盾,资源利用率有所提升
主要缺点: 内存中仅能有一道程序运行 \color{red}内存中仅能有一道程序运行 内存中仅能有一道程序运行,只有该程序运行结束后才能调入下一道程序。 C P U 有大量的时间是在空闲等待 I / O 完成 \color{red}CPU有大量的时间是在空闲等待I/O完成 CPU有大量的时间是在空闲等待I/O完成。资源利用率依然很低。

1.3.3 批处理阶段–多道批处理系统

每次往内存中输入多道程序
操作系统正式诞生,并引入了中断技术,由操作系统负责管理这些程序的运行。各个程序并发执行
主要优点:多道程序 并发 \color{red}并发 并发执行, 共享 \color{red}共享 共享计算机资源。 资源利用率大幅度提升 \color{red}资源利用率大幅度提升 资源利用率大幅度提升,CPU和其它资源保持“忙碌”状态,系统吞吐量增大。
主要缺点:用户响应时间长, 没有人机交互功能 \color{red}没有人机交互功能 没有人机交互功能(用户提交自己的作业后就只能等待计算机处理完成,中间不能控制自己的作业执行)

1.3.4 分时操作系统

计算机以 时间片 \color{red}时间片 时间片为单位 轮流为各个用户 / 作业服务 \color{red}轮流为各个用户/作业服务 轮流为各个用户/作业服务,各个用户可以通过终端与计算机进行交互。
主要优点:用户请求可以被即时响应, 解决了人机交互问题 \color{red}解决了人机交互问题 解决了人机交互问题。允许多个用户同时使用一台计算机,并且用户对计算机的操作相互独立,感受不到别人的存在。
主要缺点: 不能优先处理一些紧急任务 \color{red}不能优先处理一些紧急任务 不能优先处理一些紧急任务。操作系统对各个用户/作业是完全公平的,循环地为每个用户/作业服务一个时间片,不区分任务地紧急性。

1.3.5 实时操作系统

主要优点:能够优先相应一些紧急任务,某些紧急任务不需要时间片排队。
在实时操作系统地控制下,计算机系统接收到外部信号后及时进行处理,并且 要在严格地时限内处理完事件 \color{red}要在严格地时限内处理完事件 要在严格地时限内处理完事件,实时操作系统的主要特点是 及时性和可靠性 \color{red}及时性和可靠性 及时性和可靠性
分类:

  • 硬实时系统:必须在绝对严格的规定时间内完成处理 例:导弹控制系统,自动驾驶系统
  • 软实时系统:能够接受偶尔违反时间规定 例:12306火车订票系统

1.3.6 其它操作系统

  1. 网络操作系统:是伴随着计算机网络的发展而诞生的,能够把网络中各个计算机有机地结合起来,实现数据传送等功能, 实现网络中各种资源的共享(如文件共享)和各台计算机之间的通信 \color{red}实现网络中各种资源的共享(如文件共享)和各台计算机之间的通信 实现网络中各种资源的共享(如文件共享)和各台计算机之间的通信。(如 W i n d o w s   N T Windows\ NT Windows NT就是一种典型的网络操作系统,网站服务器就可以使用)
  2. 分布式操作系统:主要特点是 分布性和并行性 \color{red}分布性和并行性 分布性和并行性。系统中的各台计算机地位相同, 任何工作都可以在这些计算机上由他们并行 \color{red}任何工作都可以在这些计算机上由他们并行 任何工作都可以在这些计算机上由他们并行 协同完成这个任务 \color{red}协同完成这个任务 协同完成这个任务
  3. 个人计算机操作系统:如 W i n d o w s   X P ,   M a c O S Windows\ XP,\ MacOS Windows XP, MacOS,方便个人使用

1.4 OS的运行机制和体系结构

1.4.1 预备知识:指令

简单来说,指令就是处理器(CPU)能识别、执行的最基本的命令

1.4.2 运行机制

两种指令

  • 特权指令:不允许用户程序使用 如:内存清零指令
  • 非特权指令:运行用户程序使用 如:加法指令

CPU判断当前是否可以执行特权指令的方法

两种处理器状态

  • 用户态(目态)此时CPU只能执行非特权指令
  • 核心态(管态)特权指令、非特权指令都可以执行

(用程序状态字寄存器( P S W PSW PSW)中的某标志位来识别当前处理器处于什么状态, 如0为用户态,1为核心态)
两种程序

  • 内核程序 :操作系统的内核程序是系统的管理者,既可以执行特权指令,也可以执行非特权指令,运行在核心态
  • 应用程序 :为了保证系统程序能安全运行,普通应用程序只能执行非特权指令,运行在用户态

1.4.3 操作系统内核

内核 \color{red}内核 内核是计算机上配置的底层 软件 \color{red}软件 软件,是操作系统最基本,最核心的部分,实现操作系统内核功能的那些程序就是 内核程序 \color{red}内核程序 内核程序

操作系统内核 { 时钟管理   实现计时功能 中断处理   负责实现中断机制 原语 { 是一种特使的程序 处于操作系统的最底层,是最接近硬件的部分 这种程序的运行具有 原子性 − 运行不可中断,一气呵成 运行时间短,调用频繁 对系统资源进行管理的功能 { 进程管理 存储器管理 设备管理 操作系统内核 \begin{cases} 时钟管理\ \ \ 实现计时功能\\ 中断处理\ \ \ 负责实现中断机制\\原语\begin{cases}是一种特使的程序\\处于操作系统的最底层,是最接近硬件的部分\\这种程序的运行具有{\color{red}{原子性}}-运行不可中断,一气呵成\\运行时间短,调用频繁\end{cases}\\对系统资源进行管理的功能\begin{cases}进程管理\\存储器管理\\设备管理\end{cases} \end{cases} 操作系统内核 时钟管理   实现计时功能中断处理   负责实现中断机制原语 是一种特使的程序处于操作系统的最底层,是最接近硬件的部分这种程序的运行具有原子性运行不可中断,一气呵成运行时间短,调用频繁对系统资源进行管理的功能 进程管理存储器管理设备管理

时间管理,中断处理,原语三者与硬件关联密切
对系统资源进行管理的功能:有的操作系统不把这部分功能归为”内核功能“,也就是说,不同的操作系统,对内核功能的划分可能并不一样。

1.4.4 操作系统的体系结构

操作系统的体系结构 { 大内核 { 将操作系统的主要功能模块都作为系统内核 , 运行在核心态 优点:高性能 缺点:内核代码庞大,结构混乱,难以维护 微内核 { 只把最基本的功能保留在内核 优点:内核功能少,结构清晰,方便维护 缺点:需要频繁的在核心态和用户态之间切换,性能低 操作系统的体系结构 \begin{cases}大内核\begin{cases}将操作系统的主要功能模块都作为系统内核,运行在核心态\\优点:高性能\\缺点:内核代码庞大,结构混乱,难以维护\end{cases}\\微内核\begin{cases}只把最基本的功能保留在内核\\优点:内核功能少,结构清晰,方便维护\\缺点:需要频繁的在核心态和用户态之间切换,性能低\end{cases} \end{cases} 操作系统的体系结构 大内核 将操作系统的主要功能模块都作为系统内核,运行在核心态优点:高性能缺点:内核代码庞大,结构混乱,难以维护微内核 只把最基本的功能保留在内核优点:内核功能少,结构清晰,方便维护缺点:需要频繁的在核心态和用户态之间切换,性能低

1.5 中断和异常

1.5.1 中断机制的诞生

为了解决系统资源利用率低的问题,人们发明了操作系统(作为计算机的管理者),引如中断机制,实现了多道程序并发执行。
本质:发生中断 \color{red}本质:发生中断 本质:发生中断就意味着 需要操作系统介入,开展管理工作 \color{red}需要操作系统介入,开展管理工作 需要操作系统介入,开展管理工作

1.5.2 中断的概念和作用

  1. 当中断发生时,CPU立即进入 核心态 \color{red}核心态 核心态
  2. 当中断发生后,当前运行的进程暂停运行,并由操作系统内核对中断进行处理
  3. 对于不同的中断信号,会进行不同的处理

发生了中断,就意味着需要操作系统的介入,开展管理工作,由于操作系统的管理工作(比如进程切换、分配I/O设备等)需要使用特权指令,因此CPU要从用户态转为核心态。 中断 \color{red}中断 中断可以时CPU从 用户态切换为核心态,使操作系统获得计算机的控制权 \color{red}用户态切换为核心态,使操作系统获得计算机的控制权 用户态切换为核心态,使操作系统获得计算机的控制权。有了中断,才能实现多道程序的并发执行。
用户态、核心态的装换实现方式:
用户态 − > 核心态 \color{red}用户态->核心态 用户态>核心态“是通过 中断 \color{red}中断 中断实现的,并且 中断 \color{red}中断 中断 唯一 \color{red}唯一 唯一途径
核心态 − > 用户态 \color{red}核心态->用户态 核心态>用户态“的切换时通过 执行一个特权指令 \color{red}执行一个特权指令 执行一个特权指令,将撤程序状态字( P S W PSW PSW)的标志位设置位”用户态“

1.5.3 中断的分类

中断 ( 广义的中断 ) { 内中断 ( 也称异常、例外、陷入 ) { 自愿中断 − − 指令中断 ( 如系统调用时使用的访管指令 ( 又叫陷入指令、 t r a p 指令 ) ) 强迫中断 ( { 硬件故障 ( 如缺页 ) 软件中断 ( 如整除 0 ) 外中断 ( 中断 ( 狭义上的中断 ) ) { 外设请求 ( 如: I / O 操作完成发出的中断信号 ) 人工干预 ( 如:用户强行终止一个进程 ) 中断(广义的中断)\begin{cases}内中断(也称异常、例外、陷入)\begin{cases}自愿中断--指令中断(如系统调用时使用的访管指令(又叫陷入指令、trap指令))\\强迫中断(\begin{cases}硬件故障(如缺页)\\软件中断(如整除0)\end{cases}\end{cases}\\外中断(中断(狭义上的中断))\begin{cases}外设请求(如:I/O操作完成发出的中断信号)\\人工干预(如:用户强行终止一个进程)\end{cases} \end{cases} 中断(广义的中断) 内中断(也称异常、例外、陷入) 自愿中断指令中断(如系统调用时使用的访管指令(又叫陷入指令、trap指令))强迫中断({硬件故障(如缺页)软件中断(如整除0)外中断(中断(狭义上的中断)){外设请求(如:I/O操作完成发出的中断信号)人工干预(如:用户强行终止一个进程)
内中断:信号来源:CPU 内部 \color{red}内部 内部,与当前执行的指令 有关 \color{red}有关 有关
外中断:信号来源:CPU 外部 \color{red}外部 外部,与当前执行的指令 无关 \color{red}无关 无关

另一种分类方式
中断 ( 广义的中断 ) { 内中断 { 陷阱、陷入 ( t r a p )     有意而为之的异常,如系统调用 故障 ( f a u l t )     由错误条件引起的,可能被故障处理程序修复,如缺页 终止 ( a b o r t )     不可修复的致命错误造成的结果,终止处理程序不再将控制返回给引发终止的应用程序,如整除 0 外中断 { I / O 中断请求 人工干预 中断(广义的中断)\begin{cases}内中断\begin{cases}陷阱、陷入(trap)\ \ \ \ 有意而为之的异常,如系统调用\\故障(fault)\ \ \ \ 由错误条件引起的,可能被故障处理程序修复,如缺页\\终止(abort)\ \ \ \ 不可修复的致命错误造成的结果,终止处理程序不再将控制返回给引发终止的应用程序,如整除0\end{cases}\\外中断\begin{cases}I/O中断请求\\人工干预\end{cases} \end{cases} 中断(广义的中断) 内中断 陷阱、陷入(trap)    有意而为之的异常,如系统调用故障(fault)    由错误条件引起的,可能被故障处理程序修复,如缺页终止(abort)    不可修复的致命错误造成的结果,终止处理程序不再将控制返回给引发终止的应用程序,如整除0外中断{I/O中断请求人工干预

1.5.4 外中断的处理过程

  1. 执行完每个指令后,CPU都要检查当前是否有外部中断信号
  2. 如果检测到外部中断信号,则需要保护被中断进程的CPU环境(如程序状态字 P W S PWS PWS、程序计数器 P C PC PC、各种通用寄存器)
  3. 根据中断信号类型转入相应的中断处理程序
  4. 恢复原进程的CPU环境并退出中断,返回原进程继续往下执行

1.6 系统调用

1.6.1 什么是系统调用,有何作用?

”系统调用“是操作系统提供给应用程序(程序员/编程人员)使用的接口,可以理解为一种可提供应用程序调用的特殊函数,应用程序可以发出系统调用请求来获得操作系统的服务。

应用程序通过 系统调用 \color{red}系统调用 系统调用请求操作系统服务。系统中各种共享资源都由操作系统统一掌管,因此在用户程序中,凡是与资源有关的操作(如存储分配、I/O操作、文件管理等),都需要通过系统调用的方式向操作系统提出请求,由操作系统代为完成,这样 可以保证系统的稳定性和安全性 \color{red}可以保证系统的稳定性和安全性 可以保证系统的稳定性和安全性,防止用户进行非法操作

系统调用 ( 按功能分类 ) { 设备管理    完成设备的 请求 / 释放 / 启动 等功能 文件管理   完成文件的 读 / 写 / 创建 / 删除 等功能 进程控制    完成进程的 创建 / 撤销 / 阻塞 / 唤醒 等功能 进程通信    完成进程之间的 消息传递 / 信号传递 等功能 内存管理    完成内存的 分配 / 回收 等功能 系统调用(按功能分类)\begin{cases}设备管理\ \ \ \ 完成设备的\ 请求/释放/启动\ 等功能\\文件管理 \ \ \ 完成文件的\ 读/写/创建/删除\ 等功能\\进程控制\ \ \ \ 完成进程的\ 创建/撤销/阻塞/唤醒\ 等功能\\进程通信\ \ \ \ 完成进程之间的\ 消息传递/信号传递\ 等功能\\内存管理\ \ \ \ 完成内存的\ 分配/回收\ 等功能\end{cases} 系统调用(按功能分类) 设备管理    完成设备的 请求/释放/启动 等功能文件管理   完成文件的 //创建/删除 等功能进程控制    完成进程的 创建/撤销/阻塞/唤醒 等功能进程通信    完成进程之间的 消息传递/信号传递 等功能内存管理    完成内存的 分配/回收 等功能

系统调用相关处理涉及到对系统资源的管理、对进程的控制,这些功能需要执行一些 特权指令 \color{red}特权指令 特权指令才能完成,因此 系统调用的相关处理 \color{red}系统调用的相关处理 系统调用的相关处理需要在 核心态 \color{red}核心态 核心态下进行。

1.6.2 系统调用和库函数的区别

普通应用程序 可直接进行系统调用,也可以使用库函数。 有的库函数涉及系统调用,有的不涉及 编程语言 向上提供库函数。有时会将系统调用封装成库函数。 以隐藏系统调用的一些细节,使上层系统调用更加方便。 操作系统 向上提供系统调用 裸机 \begin{array}{|c|l|} \hline 普通应用程序&可直接进行系统调用,也可以使用库函数。\\&有的库函数涉及系统调用,有的不涉及\\ \hline 编程语言&向上提供库函数。有时会将系统调用封装成库函数。\\&以隐藏系统调用的一些细节,使上层系统调用更加方便。\\ \hline 操作系统&向上提供系统调用\\ \hline裸机\\\hline \end{array} 普通应用程序编程语言操作系统裸机可直接进行系统调用,也可以使用库函数。有的库函数涉及系统调用,有的不涉及向上提供库函数。有时会将系统调用封装成库函数。以隐藏系统调用的一些细节,使上层系统调用更加方便。向上提供系统调用

不涉及系统调用的库函数:如”取绝对值“的函数
涉及系统调用的库函数:如”创建一个新文件“的函数

1.6.3 系统调用背后的过程

传递系统调用参数 -> 执行陷入命令( 用户态 \color{red}用户态 用户态) -> 执行系统调用相应服务程序( 核心态 \color{red}核心态 核心态) -> 返回用户程序
注意:

  1. 陷入指令 \color{red}陷入指令 陷入指令是在 用户态 \color{red}用户态 用户态执行的,执行陷入指令之后立即引发一个 内中断 \color{red}内中断 内中断,从而CPU 进入核心态 \color{red}进入核心态 进入核心态
  2. 发出系统调用请求 \color{red}发出系统调用请求 发出系统调用请求是在 用户态 \color{red}用户态 用户态,而 对系统调用的相应处理 \color{red}对系统调用的相应处理 对系统调用的相应处理 核心态 \color{red}核心态 核心态下进行
  3. 陷入指令是唯一一个只能在用户态执行,不能在核心态执行的指令
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值