当前位置: 首页 > news >正文

操作系统 - 1. 绪论

目录

        • 操作系统基本概念
          • 概念
          • 特征
          • 功能
        • 操作系统的分类与发展
          • 手工操作
          • 单道批处理系统
          • 多道批处理系统
          • 分时系统
          • 实时系统
        • 操作系统的运行环境
          • CPU 运行模式
          • 中断和异常的处理
          • 系统调用
          • 程序的链接与装入
          • 程序运行时内存映像和地址空间
        • 操作系统的体系结构
        • 操作系统的引导

操作系统基本概念

概念

📌 操作系统是裸机上的第一层软件,是 对硬件功能的首次扩充。引入操作系统的目的是:提供一个用户与计算机系统之间的 接口;有效地 控制和管理 计算机系统中的各种 硬件和软件资源;合理地 组织 计算机系统的 工作流程

特征

1️⃣ 并发性
🔔 注意:
并行:同一时刻            并发:同一时间间隔
并发宏观上看起来是并行。

2️⃣ 共享性
🔔 注意:
❶ 并发和共享是操作系统两个最基本的特征,二者之间 互为存在条件
❷ 有两种共享方式:互斥共享、同时访问
3️⃣ 虚拟性
把一个物理上的实体变为若干个逻辑上的对应物。
时分复用技术:虚拟处理机技术、虚拟设备技术
空分复用技术:虚拟磁盘技术、虚拟存储器技术
4️⃣ 异步性
在多道程序环境中,程序是以 不可预知 的方式运行的。

功能

1️⃣ 处理器管理
2️⃣ 存储器管理
3️⃣ 设备管理
4️⃣ 文件管理
5️⃣ 用户接口
命令接口
联机 命令接口(交互式 命令接口)
脱机 命令接口(批处理 命令接口)
❷ 程序接口 (系统调用)
图形接口
6️⃣ 扩充机器 (虚拟机)

操作系统的分类与发展

手工操作

⭐️ 特点:
❶ 用户独占计算机资源
❷ 资源利用率低
CPU 等待人工操作

单道批处理系统

为了解决 CPU 和 I/O 设备之间速度不匹配的矛盾,引入了 脱机输入输出 方式:
请添加图片描述
采用脱机输入 / 输出方式后,低速 I/O 设备上的数据输入/输出都在外围机的控制下进行,而 CPU 只与高速的输入带及输出带打交道,从而有效地减少了 CPU 等待慢速 输入/输出 设备的时间。
⭐️ 特点:
自动性、顺序性、单道性
😣 缺点:
I/O 操作时, CPU 无事可做。

多道批处理系统

⭐️ 特点:
多道性、宏观上多任务并行、微观上多任务分片串行
😀 优点:
提高了 CPU 、内存 和 I/O 设备 的利用率,因此系统吞吐量得到提高
😣 缺点:
无交互能力

分时系统

⭐️ 特点:
多路性、独立性、及时性 和 交互性

实时系统

⭐️ 特点:
多路性、独立性、及时性、交互性 和 可靠性

操作系统的运行环境

CPU 运行模式

核心态 (管态、系统态) 💻 : 操作系统管理程序执行时机器所处的状态。
特权指令:I/O 指令、设置中断屏蔽指令、清内存指令、存储保护指令 和 设置时钟指令
用户态 (目态) 👧 : 用户程序执行时机器所处的状态。
🔔 注意:
用户程序在目态下使用特权指令引起的中断属于 访管中断

中断和异常的处理

🎇 中断(外中断):系统正常功能的一部分。中断处理完后会继续执行中断前的进程。
💣 异常(内中断):错误引起。
通常异常会引起中断,中断未必是异常引起的。
🔔 注意:
在中断发生后,进入中断处理的程序属于 操作系统程序。
❷ 中断处理需要保存系统所处的状态,即保存 程序状态字 中的内容。
❸ 外部中断处理过程中,程序计数器 的内容由 中断隐指令(硬件) 自动保存,通用寄存器 的内容由 操作系统 保存。

系统调用

🔢 执行系统调用的步骤:
1️⃣ 传递系统调用参数
2️⃣ 执行陷入 (trap) 指令
3️⃣ 执行相应的服务程序
4️⃣ 返回用户态
请添加图片描述

程序的链接与装入

程序由高级语言代码转化为在内存中可被计算机执行的指令主要分为三个步骤:
编译程序 (Compiler) 将用户源代码编译成 CPU 可执行的目标代码,产生若干个目标模块 (Object Module) (即若干程序段)
链接程序 (Linker) 将编译后形成的一组目标模块 (程序段) 以及它们所需要的库函数链接在一起,形成一个完整的装入模块 (Load Module)
程序的链接由三种方式:
❶ 静态链接 ❷ 装入时动态链接 ❸ 运行时动态链接
装入程序 (Loader) 将装入模块装入物理内存(地址重定位)
模块在装入内存时有三种方式:
❶ 绝对装入 ❷ 可重定位装入 (静态重定位) ❸ 动态运行时装入 (动态重定位)
请添加图片描述

程序运行时内存映像和地址空间

🪞 程序的内存映像:装载到内存中的程序代码区称为程序的内存映像。
程序区 : 程序指令
静态存储区:永久数据
❶ 常量区:常量
❷ 静态变量区:全局变量、静态变量
动态存储区:临时数据
❶ 栈区:自动变量(包括函数的形参)
❷ 堆区:动态变量(数组)

操作系统的体系结构

模块组合结构
😀 优点: 效率高
😣 缺点: 结构不清晰、可扩展性差、可适应性差
层次结构
😀 优点: 清晰、可读性、可适应性、可靠性强
😣 缺点: 分层不易
微内核结构
😀 优点: 适用于分布式系统、可靠、灵活、便于维护
😣 缺点: 效率低

操作系统的引导

硬盘通常分为几个区,在安装完一个操作系统或者开机后,需要 让计算机在开机时能识别分区中的系统,这个过程就是 系统引导
激活 CPU 读取 ROM 里的 BIOS 程序。
BIOS 读取 Boot Sequence, 寻找最后两个字节为 55AAH 的 MBR 主引导记录。
DPT (硬盘分区表) 中寻找首字节为 0x80H 的活动分区。
加载活动分区的第一个扇区 PBR (分区引导记录)
Boot Leader (启动管理器) 启动操作系统。(即操作系统初始化)
🔔 注意:
❶ MBR 是磁盘的第一个扇区,它 不属于任何的磁盘分区;而 PBR 位于磁盘活动分区的第一个扇区,即它是由磁盘分区归属的。
存储介质能否用于启动的唯一标志为:第一个扇区最后两个字节是否为 55AAH
❸ 操作系统最终被加载到 RAM
❹ 把硬盘作为启动盘,需要完成:
物理格式化(磁盘扇区的划分、为扇区排序、对已损坏的磁盘或扇区做 “坏” 标记)
对磁盘进行分区
逻辑格式化 (对扇区进行逻辑编号、建立逻辑盘的引导记录、文件分配表、文件目录表 和数据区等)
操作系统的安装

http://www.lryc.cn/news/39556.html

相关文章:

  • 详谈parameterType与resultType的用法
  • 【Linux】进程概念、fork() 函数 (干货满满)
  • 【动态规划】最长上升子序列、最大子数组和题解及代码实现
  • Ajax进阶篇02---跨域与JSONP
  • C 语言编程 — 线程池设计与实现
  • 并发编程要点
  • HDFS黑名单退役服务器
  • 基于stm32智能语音电梯消毒系统
  • FreeRTOS系列第1篇---为什么选择FreeRTOS?
  • 基于.NET Core内置浏览器窗体应用程序界面框架
  • 【数据结构初阶】一文带你学会归并排序(递归非递归)
  • Simulink壁咚(一)——What and How
  • 【PyTorch】Pytorch基础第0章
  • Android学习总结
  • 虚拟机ubuntu安装samba服务
  • 开发板中的内存压力测试,你了解多少?
  • MATLAB | 这些花里胡哨的热图怎么画
  • Java开发的一些编码建议
  • 【YOLOv8/YOLOv7/YOLOv5/YOLOv4/Faster-rcnn系列算法改进NO.59】引入ASPP模块
  • C++STL set/multiset容器 构造和赋值 大小和交换 插入和删除 查找和统计
  • 产品研发项目进度管理软件工具有哪些推荐?整理10款最佳进度管理软件
  • 「ML 实践篇」分类系统:图片数字识别
  • 从大专到测开,上海某字母站大厂的面试题,岗位是测开(25K*16)
  • 【面试题】Python软件工程师能力评估试题(一)
  • Java八股文(Java多线程面试题)
  • 小程序当前页面如何分享别的页面内容呢?
  • 编写Java哪个编译器好
  • 第十六章 Java为什么使用序列化
  • 28岁小公司程序员,无车无房不敢结婚,要不要转行?
  • 出道即封神的ChatGPT,现在怎么样了?