操作系统---操作系统分类 & 发展历程 & 核心特征

自我意识的多元宇宙 2026-04-29 21:17:29

一、操作系统发展历程

1. 手工操作时代(无操作系统)
背景:早期计算机,无系统、无软件
操作方式:人工插接线、拨开关、纸带打孔输入程序
缺点:
全程人工干预,效率极低
计算机高速运行,人工慢速,人机矛盾极度严重
一人独占整台机器,资源浪费
2. 单道批处理系统
什么是批处理:把多个作业(程序 + 数据 + 指令)打包成一批,交给计算机自动依次运行。单道:内存中同一时刻只驻留一道程序,跑完一个再换下一个。
工作流程:
操作员收集一批任务 → 输入磁带 → 计算机自动逐个执行 → 输出结果
优点:减少人工插拔,解放部分人力
缺点:
CPU 经常空闲:程序进行 I/O(读磁盘、打印)时,CPU 只能干等
内存利用率低,同一时间只跑一个程序
3. 多道批处理系统(现代 OS 雏形)
多道:内存中同时存放多个独立程序。
核心原理:
当一个程序做I/O 阻塞(等待读写)时,CPU 立刻切换执行另一个就绪程序,不让 CPU 闲着。
关键特点:
多道程序并发驻留内存
自动调度、无需人工干预
资源利用率大幅提升(CPU、内存、外设都被利用)
缺点:无交互界面,用户提交任务后只能等结果,不能中途操作。
4. 分时操作系统
为了解决无法人机交互诞生。
核心思想:时间片轮转
把 CPU 时间切成极小的时间片(如 10ms),轮流分给多个联机用户。
宏观:多个用户感觉自己独占一台电脑
微观:CPU 快速切换执行每个人的任务
特点:
人机交互式操作
多路用户同时在线
公平轮转、响应及时
代表:早期 Unix、Linux 服务器版
5. 实时操作系统 RTOS
核心目标:严格按时限完成任务,不能延迟
分类:
硬实时:必须绝对准时,迟到就出事故(航天、军工、汽车自动驾驶、工业控制)
软实时:允许轻微延迟(直播、视频会议)
特点:高可靠、高响应、优先级抢占,不追求资源利用率,优先保时间
代表:鸿蒙实时内核、FreeRTOS、VxWorks
6. 通用操作系统
现在我们用的都是:多道批处理 + 分时 结合
代表:Windows、macOS、桌面版 Linux
既能后台批量跑任务,又能前台多窗口交互。


二、操作系统五大分类

批处理操作系统:批量处理、无交互、追求资源利用率
分时操作系统:时间片轮转、多用户交互、公平响应
实时操作系统:强时限、高可靠、工业 / 嵌入式
网络操作系统:管理网络资源、服务器 / 局域网(Windows Server、Linux 服务器)
分布式操作系统:多台机器协同成一个整体,统一调度资源(云计算底层)


三、操作系统四大基本特征

1. 并发(最核心)
定义:宏观上同时进行,微观上交替执行
操作系统最根本特征,没有并发就不需要复杂 OS
区分:
并发:一个 CPU 快速切换,看起来同时跑
并行:多个 CPU 核心,真正同时各自跑一个程序
2. 共享
定义:系统资源(CPU、内存、硬盘、打印机)被多个进程共同使用
两种共享方式:
互斥共享:同一时刻只能一个进程用(打印机、摄像头)
同时访问共享:可同时读(硬盘文件、缓存)
3. 虚拟
把物理资源逻辑上放大、抽象
例子:
虚拟内存:物理内存很小,虚拟内存让程序拥有超大连续地址空间
虚拟 CPU:一个物理 CPU 时间片轮转,虚拟出多个逻辑 CPU 给进程
4. 异步
进程以不可预知的速度向前推进
什么时候就绪、什么时候 I/O 完成都是不确定的
OS 要做的就是:在异步环境下,保证程序正确执行、数据不出错


四、用户态 & 内核态 详细精讲(底层核心)

1. 为什么要分两种状态?
为了安全隔离:
普通应用程序不能随便操作硬件、改内核数据
防止恶意软件、bug 程序破坏整个系统
2. 定义
用户态:应用程序运行的状态,权限低,不能直接访问硬件、不能操作内核资源
微信、浏览器、游戏都跑在用户态
内核态:操作系统内核运行状态,最高权限,可以操作 CPU、内存、磁盘、所有硬件
3. 怎么从用户态进入内核态?
唯一合法方式:系统调用流程:应用程序(用户态)→ 发起系统调用 → 陷入内核 → 切换为内核态 → 内核完成硬件操作 → 返回用户态
4. 常见触发内核态的场景
读写文件
申请内存
网络收发数据
键盘鼠标中断
进程创建、销毁


五、本节核心总结

发展路线:手工操作 → 单道批处理 → 多道批处理 → 分时系统 → 实时 / 通用 OS
四大特征:并发、共享、虚拟、异步(并发是基础)
并发是交替,并行是真同时;多道批处理提升资源利用率,分时实现人机交互
用户态权限低,内核态权限最高;用户态只能通过系统调用进入内核态

...全文
28 1 打赏 收藏 转发到动态 举报
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
  • 打赏
  • 举报
回复

同学们可以背诵以一下本节的核心总结

本PDF电子书包含上下两册,共1576页,带目录,高清非扫描版本。 作者: 毛德操 胡希明 丛书名: Linux内核源代码情景分析 出版社:浙江大学出版社 目录 第1章 预备知识 1.1 Linux内核简介. 1.2 Intel X86 CPU系列的寻址方式 1.3 i386的页式内存管理机制 1.4 Linux内核源代码中的C语言代码 1.5 Linux内核源代码中的汇编语言代码 第2章 存储管理 2.1 Linux内存管理的基本框架 2.2 地址映射的全过程 2.3 几个重要的数据结构和函数 2.4 越界访问 2.5 用户堆栈的扩展 2.6 物理页面的使用和周转 2.7 物理页面的分配 2.8 页面的定期换出 2.9 页面的换入 2.10 内核缓冲区的管理 2.11 外部设备存储空间的地址映射 2.12 系统调用brk() 2.13 系统调用mmap() 第3章 中断、异常和系统调用 3.1 X86 CPU对中断的硬件支持 3.2 中断向量表IDT的初始化 3.3 中断请求队列的初始化 3.4 中断的响应和服务 3.5 软中断与Bottom Half 3.6 页面异常的进入和返回 3.7 时钟中断 3.8 系统调用 3.9 系统调用号与跳转表 第4章 进程与进程调度 4.1 进程四要素 4.2 进程三部曲:创建、执行与消亡 4.3 系统调用fork()、vfork()与clone() 4.4 系统调用execve() 4.5 系统调用exit()与wait4() 4.6 进程的调度与切换 4.7 强制性调度 4.8 系统调用nanosleep()和pause() 4.9 内核中的互斥操作 第5章 文件系统 5.1 概述 5.2 从路径名到目标节点 5.3 访问权限与文件安全性 5.4 文件系统的安装和拆卸 5.5 文件的打开与关闭 5.6 文件的写与读 5.7 其他文件操作 5.8 特殊文件系统/proc 第6章 传统的Unix进程间通信 6.1 概述 6.2 管道和系统调用pipe() 6.3 命名管道 6.4 信号 6.5 系统调用ptrace()和进程跟踪 6.6 报文传递 6.7 共享内存 6.8 信号量 第7章基于socket的进程间通信 7.1系统调用socket() 7.2函数sys—socket()——创建插口 7.3函数sys—bind()——指定插口地址 7.4函数sys—listen()——设定server插口 7.5函数sys—accept()——接受连接请求 7.6函数sys—connect()——请求连接 7.7报文的接收与发送 7.8插口的关闭 7.9其他 第8章设备驱动 8.1概述 8.2系统调用mknod() 8.3可安装模块 8.4PCI总线 8.5块设备的驱动 8.6字符设备驱动概述 8.7终端设备与汉字信息处理 8.8控制台的驱动 8.9通用串行外部总线USB 8.10系统调用select()以及异步输入/输出 8.11设备文件系统devfs 第9章多处理器SMP系统结构 9.1概述 9.2SMP结构中的互斥问题 9.3高速缓存与内存的一致性 9.4SMP结构中的中断机制 9.5SMP结构中的进程调度 9.6SMP系统的引导 第10章系统引导和初始化 10.1系统引导过程概述 10.2系统初始化(第一阶段) 10.3系统初始化(第二阶段) 10.4系统初始化(第三阶段) 10.5系统的关闭和重引导

151

社区成员

发帖
与我相关
我的任务
社区描述
这里专为新疆政法学院的探索者而建,英雄不问出处。起跑线是起点,热忱与坚持为加速器,无论bug缠身的项目,还是攻克的算法顿悟,每滴汗水皆被珍藏。执炬前行,终将照亮彼此峰顶,我们携手同行。
课程设计笔记经验分享 高校 新疆·图木舒克市
社区管理员
  • 雲中203
  • SHAO060706
  • 三叶草.
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

英雄不问出处

试试用AI创作助手写篇文章吧