操作系统原理
操作系统做了什么
以一个简单的C语言程序为例:
下面是操作系统对程序的运行过程:
操作系统是什么?
操作系统是计算机系统中的一个系统软件,是一些程序模块的集合-----
1) 它们能以尽量有效、合理的方式组合和管理计算机的软硬资源
2) 合理地组织计算机的工作流程,控制程序的执行并向用户提供各种服务功能
3) 使得用户能够灵活、方便地使用 计算机,使得整个计算机系统高效运行
有效:系统效率,资源利用率
CPU利用率充足与否?I/O设备是否忙碌?
合理:各种软硬件资源的管理是否公平合理
如果不公平、不合理、则可能产生问题
方便使用:
两种角度:用户界面 与 编程接口
从资源管理的角度———五大基本功能
1) 进程/线程管理(CPU)
进程线程状态、控制、同步互斥、通信、调度、……
2) 存储管理
分配/回收、地址转换、存储保护、内存扩充、……
3) 文件管理
文件目录、文件操作、磁盘空间、文件存取控制、……
4) 设备管理
设备驱动、分配回收、缓冲技术、……
5) 用户接口
系统命令、编程接口
OS对硬件机器的扩展
操作系统在应用程序与硬件之间建立了一个等价的扩展机器(虚拟机)
对硬件抽象,提高可移植性;比底层硬件更容易编程。
操作系统的特征
OS特征—并发
并发(concurrency):指处理多个同时性活动的能力
由于并发将会引发很多问题:
活动切换、保护、互相依赖的活动间的同步
在计算机系统中同时存在多个程序运行,单CPU上
宏观上:这些程序同时在执行
微观上:任何时刻只有一个程序真正在执行,即这些程序在CPU上是轮流执行的
并行(parallel):与并发相似,但多指不同程序同时在多个硬件部件上执行。
OS特征—共享
共享(sharing):
操作系统与与多个用户的程序共同使用计算机系统中的资源(共享有限的系统资源)
操作系统要对系统资源进行合理分配和使用资源在一个时间段内交替被多个进程所用
互斥共享(如打印机)
同时共享(如可重入代码、磁盘文件)
问题:资源分配难以达到最优化,如何保护资源?
OS特征—虚拟
虚拟(Virtual):
一个物理实体映射为若干个对应的逻辑实体—分时或空间
虚拟是操作系统管理系统资源的重要手段,可提高资源利用率
CPU—每个进程的“虚处理机”
存储器—每个进程都有独立的虚拟地址空间(代码+数据+堆栈)
显示设备—多窗口或虚拟终端
OS特征—随机
随机:操作系统必须随时对已不可预测的次序发生的事件进行响应并处理