因为随着程序越来越大, 手动放卡纸程序的时间比程序运行时间还长, 为了让程序可以自动运行, 诞生了操作系统, 简称 OS , 其实也是程序

但是它有操作硬件的特殊权限, 可以运行和管理其他程序

计算机 操作系统

此时可以一次给 计算机多个程序.
等一个程序执行完成后, 自动执行下一个程序, 这个叫做 批处理

随着 设备种类的增加, 程序员不仅要考虑代码, 还要考虑代码和不同设备的交互
程序员需要了解所有硬件情况.

操作系统来处理 软件和 硬件之间的连接, 具体的讲, 就是操作系统提供API来抽象硬件, 叫 “设备驱动程序”
程序员可以用标准化机制, 和 输入输出硬件(I/O) 交互
例如 程序只需要调用 print(highscore) , 操作系统会处理 输出到纸上的具体细节
后来 CPU非常快, 经常在等待其他设备处理数据, 就是说, 计算机中最昂贵的部分在闲着, 其他设备在忙

计算机 操作系统
诞生了操作系统的, 等程序运行至其他设备时, 让这个程序在CPU中休眠, 执行下一个程序, 直到上一个程序执行返回,然后标记并安排继续执行.
给一个CPU配置多个 读卡器, 打印机, 磁带驱动器, 共享一个CPU时间, 操作系统的这种能力叫做 多任务处理
问题是: 多个程序会争内存, 于是给每个程序配置专用的内存模块

计算机 操作系统

计算机 操作系统
计算机 操作系统
计算机 操作系统
问题是: A可能会分配到非连续的内存
真正的程序可能会分配到内存的 数十个位置

计算机 操作系统
这种虚拟内存可以假定程序总数从地址0 开始
而实际的物理地址, 被操作系统隐藏和抽象了, 一层新的抽象

计算机 操作系统
计算机 操作系统
计算机 操作系统
计算机 操作系统
计算机 操作系统

计算机 操作系统

计算机 操作系统

计算机 操作系统
这样 每个程序的内存就会被独立出来, 避免影响到其他程序, 这个叫 内存保护
防止恶意软件也很有用
例如, 我们不希望其他程序读写邮件程序的内存
Atlas 有 虚拟内存 和 内存保护 , 是第一台支持这些功能的计算机
一台计算机可以同时供多人使用, 避免一个人占满计算机的资源, 提供 分时操作系统解决方案. 每个用户只能用一小部分资源.
后来出现了一个很大的操作系统, 占用了一半的内存, 体量达到1M
于是有了新的操作系统 Unix:
把操作系统分成两部分, 首先是操作系统的 核心功能, 如内存管理, 多任务和输入/输出处理, 这叫"内核"
第二部分是一堆有用的工具, 如 程序和运行库.
紧凑的内核意味着功能没有那么全面
Unix,没有错误恢复代码,如果发生错误, 就让内核"恐慌(panic)" , 当用它时, 机器就会崩溃, 这个就是 内核恐慌. 然后重启电脑…
内核崩溃,无法恢复, 就会调用panic函数.
使得 Unix流行起来, 甚至有了文字处理器.
随着电脑价格下降, 个人电脑开始普及, 需要更为简洁的微操作系统, 如 微软的磁盘操作系统(MS-DOS) 只有160K

相关文章: