操作系统(一)操作系统历史:从标准函数库到云计算
操作系统的发展的推动因素:硬件成本的不断下降(CPU、内存等)、计算机功能和复杂性的不断变化(批处理、多道程序设计、分时、网络等)、操作系统需要维护自身安全(和攻击者"黑客"之间的博弈)
本篇导航
早期的操作系统原型就是一些独立的库函数
状态机操作系统
第一阶段:SOSC——单一操作员单一控制终端
这一阶段被称为单一操作员单一控制终端(SOSC,single operator single console)的操作系统,操作系统本身只由一组标准库函数组成。用户输入命令,操作系统执行对应库函数,"拨一下动一下",操作系统“等”人输入命令。
操作系统:库函数集合
特点:只提供基本功能,满足人机交互。不支持并发和多道程序运行。
缺点:计算机等人,人的动作太慢
第二阶段:纸带编程——批处理操作系统
批处理:.bak的批处理命令用户将要执行的命令打印在纸带上,由工作人员交给计算机一批一批的处理。并由操作系统的“批处理监视器”控制程序的开始和结束。
操作系统:库函数集合(支持程序执行) + 批处理监视器(控制程序执行)
特点:纸带上的命令们被加载到磁带中,操作系统根据顺序“挨个”调用函数执行,将结果写在另一个磁带上,由打印机打印到纸带。
文件概念的产生:为了区分加载到磁带上的多个用户程序,采用文件这个抽象概念进行隔离。
第三阶段:多道批处理操作系统
批处理OS中CPU和IO是串行的,用户指令从磁带读入的时候,IO工作,CPU需要等待IO完成,造成了CPU的浪费。操作系统:内存管理(进程空间隔离和保护)、IO管理(CPU和磁盘操作并发)、CPU调度(多进程并发)、程序执行(库函数+监控)
特点:将多个程序同时加载到内存中执行,CPU和IO并行。
这一阶段同时产生了内存分段管理技术
第四阶段:分时操作系统 & 实时操作系统
分时操作系统
前期操作系统都有一个弊端:用户程序编写在纸带上交给管理员运行,运行结果再由管理员用纸带返回给用户——用户等待周期长,无法及时获知程序执行结果。
特点:多台IO终端同时连在计算机上,计算机在所有连接的终端用户间进行分时。时间到了,就切换到下一个进程。
需要公平的管理CPU时间。
池化、互斥、进程通信等机制相继出现。
分时+多道程序设计,出现了竞争、通信、死锁、保护等新功能,操作系统越来越复杂。
注:多道批处理操作系统的并发主要体现在CPU和IO并发上,分时操作系统的并发就是 CPU和IO并发+多进程并发(分时)
实时操作系统
实时操作系统:系统反应具有时序可预测性的系统。
时序可预测性:所有任务在规定时间内完成。
注:区分“反应快”和“反应可预测”,满足前者的不一定是实时操作系统,但实时操作系统通常具有“反应快”这个特点。即“反应快通常是系统具有时序可预测性的结果”。
软实时系统和硬实时系统:前者系统在规定时间内未响应的结果可承受,比如流水装配线,后者不行,比如导弹防卫系统。
第五阶段:现代操作系统
个人机操作系统,DOS、Windows、UNIX、Linux等开放式主机操作系统出现。用户可以独享一台计算机的功能。硬件成本下降。网络的出现,触发了网络操作系统和分布式操作系统。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· C#/.NET/.NET Core优秀项目和框架2025年2月简报
· 什么是nginx的强缓存和协商缓存
· 一文读懂知识蒸馏
· Manus爆火,是硬核还是营销?