OSTEP第2章 操作系统介绍
文章目录
冯诺依曼计算模型
:处理器从内存中读取
指令,对其解码
、执行
。完成一条指令后继续执行下一条,直到程序最终完成- 操作系统要确保系统易于使用又高效运行,需要
虚拟化
,将物理资源转换为通用易用的虚拟形式,故操作系统有时称为虚拟机
- 操作系统提供
接口
供用户运行程序、访问设备等,它为应用程序提供了标准库
虚拟化cpu
虚拟化cpu
:将单个cpu或其中一部分转换为看似无限数量的cpu,从而让很多程序看似同时运行
虚拟化内存
- 现代机器提供的物理内存模型是一个字节数组,要读写内存必须指定地址
- 程序运行时,指令都在内存中,故每次读取指令都会访问内存
虚拟化内存
:每个进程访问自己的私有虚拟地址空间,操作系统将各进程的虚拟地址空间映射到机器的物理内存上。一个进程使用的内存不影响其他进程的内存
并发
- 并发问题出现在操作系统本身中,也出现在多线程程序中
- 多个进程同时操作一个变量时,该操作可能不止一条指令,即非
原子操作
。一个进程的操作可能被另一个进程打断。
持久性
- 内存是易失设备,持久存储数据需要硬盘
文件系统
:操作系统中管理磁盘的软件- 操作系统不会为每个应用程序创建专用的虚拟磁盘,相反,它假设所有程序共享磁盘中的信息
- 操作系统底层和磁盘的交互很复杂,而它对应用程序提供更简单的系统调用来操作硬件,故操作系统有时候被视为标准库
设计目标
- 操作系统做的事:获取物理资源并虚拟化、处理并发、持久性地存储文件
- 操作系统的目标:抽象、高性能、隔离、可靠性
简单历史
早期操作系统:只是一些库
批处理
:由操作员来分批运行程序,一次只运行一个。此时操作系统只是库
超越库:保护
系统调用
:不是将操作系统作为库,而是添加特殊的硬件指令和硬件状态,使得用户程序到操作系统的过渡更加正式、可控- 系统调用和过程调用的关键区别:系统调用将控制转移给OS时,提高了硬件的特权级别
- 应用程序以
用户模式
运行,限制硬件的功能。发起系统调用时陷入陷阱,硬件将控制转移给陷阱处理程序并将特权级别提升到内核模式
,可完全访问硬件。完成系统调用后从陷阱中返回,将控制权交还给用户并将特权级别降低到用户模式
多道程序时代
多道程序
:OS一次不止运行一项作业,而是将大量作业加载进内存并在它们之间快速切换,提高cpu利用率,因为等待IO很慢- 处理多道程序时,产生内存保护、并发等问题
摩登时代
- unix和linux
小结
略