1. 操作系统做了什么
C程序:Helloworld
#include <stdio.h>
int main(int argc, char *argv[])
{
puts("hello world");
return 0;
}
- 用户告诉操作系统执行helloworld程序
- 操作系统:找到helloworld程序的相关信息,检查其类型是否是可执行文件,并通过程序首部信息,确定代码和数据在可执行文件中的位置,并计算出对应的磁盘块地址
- 操作系统:创建一个新的进程,并将helloworld可执行文件映射到该进程结构,表示由该进程执行helloworld程序
- 为helloworld程序设置CPU上下文环境,并跳到程序开始处(假设调度程序选中它)
- 执行helloworld程序的第一条指令,发生缺页异常
- 操作系统:分配一页物理内存,并将代码从磁盘读入内存,然后继续执行helloworld程序
- helloworld程序执行puts函数(系统调用),在显示器上写一字符串
- 操作系统:找到要将字符串送往的显示设备,通常设备是由一个进程控制的,所以操作系统将要写的字符串送给该进程
- 操作系统:控制设备的进程告诉设备的窗口系统它要显示字符串,窗口系统确认这是一个合法的操作,然后将字符串转换成像素,将像素写入设备的存储映像区
- 视频硬件将像素转换成显示器可接收的一组控制/数据信号
- 显示器解释信号,激发液晶屏
- 我们在屏幕上看到了“hello world”
2. 操作系统的定义及作用
操作系统是计算机系统中的一个系统软件,是一些程序模块的集合:
- 它们能以尽量有效、合理的方式组织和管理计算机的软硬件资源
- 合理地组织计算机的工作流程,控制程序的执行,并向用户提供各种服务功能
- 使用户能够灵活、方便地使用计算机,使整个计算机系统高效率运行
操作系统的三个作用:
- 资源的管理者
→
有效
- 向用户提供各种服务
→
方便使用
- 对硬件机器的扩展
→
扩展能力
(1) 资源的管理者
- 跟踪记录资源的使用状况
- 确定资源分配策略——算法
静态分配策略
动态分配策略 - 实施资源的分配和回收
- 提高资源利用率
- 保护资源的使用
- 协调多个进程对资源请求的冲突
五大基本功能:
- 进程/线程管理(CPU管理)
进程线程状态、控制、同步互斥、通信、调度、… - 存储管理
分配/回收、地址转换、存储保护、内存扩充、… - 文件管理
文件目录、文件操作、磁盘空间、文件存取控制、… - 设备管理
设备驱动、分配回收、缓冲技术、… - 用户接口
系统命令、编程接口
(2) 向用户提供各种服务
操作系统为用户提供了一组功能强大、方便易用的命令或系统调用
包括:进程的创建、执行,文件和目录的操作,I/O设备的使用,各类统计信息,…
(3) 对硬件机器的扩展
操作系统在应用程序与硬件之间建立了一个等价的扩展机器(虚拟机)
对硬件抽象,提高可移植性,比底层硬件更容易编程
3. 操作系统的特征
(1) 并发
并发是指处理多个同时性活动的能力,对于单CPU
宏观上:这些程序同时在执行
微观上:任何时刻只有一个程序真正在执行,即这些程序在CPU上是轮流执行的
并行(parallel):与并发相似,但多指不同程序同时在多个硬件部件上执行
(2) 共享
共享是指操作系统与多个用户的程序共同使用计算机系统中的资源(共享有限的系统资源)
操作系统要对系统资源进行合理分配和使用
资源在一个时间段内交替被多个进程所用
- 互斥共享(如打印机)
- 同时共享(如可重入代码、磁盘文件)
(3) 虚拟
虚拟是指一个物理实体映射为若干个对应的逻辑实体——分时或分空间
虚拟是操作系统管理系统资源的重要手段,可提高资源利用率
(4) 随机
随机是指操作系统必须随时对以不可预测的次序发生的事件进行响应并处理
进程的运行速度不可预知:多个进程并发执行,走走停停,无法预知每个进程的运行推进的快慢
难以重现系统在某个时刻的状态(包括重现运行中的错误)
4. 典型操作系统的架构
(1) Windows
用户态:系统进程,服务进程,用户进程,环境子系统,动态链接库
内核态:系统服务分发器,内核态可调用接口,执行体,内核,设备驱动程序,硬件抽象层,图形与窗口
物理硬件:硬件
(2) Unix
(3) Linux
(4) Android
5. 操作系统分类
目标:充分利用硬件,提供更好的服务
大型机
→
个人计算机
→
网络
→
移动计算
→
云计算
→
泛在计算(物联网)
→
机器人
操作系统类型 | 目标 | 特点 |
---|---|---|
批处理操作系统 | 提高资源利用率,增加作业处理吞吐量 | 通常由若干个作业组成,用户提交作业后只能等待处理结果,不能干预自己作业的执行,通常采用SPOOLING技术(Simultaneous Peripheral Operation On-Line)实现 |
分时操作系统 | 及时响应 | 操作系统将CPU的时间划分成若干个片段,称为时间片,操作系统以时间片为单位,轮流为每个终端用户服务,每次服务一个时间片,与批处理系统结合组成通用操作系统,分时优先,批处理在后 |
实时操作系统 | 对外部请求在严格时间范围内作出响应,高可靠性 | 关键参数是时间,例如工业过程控制系统——汽车装配线,还包括银行交易、飞机订票等 |
个人计算机操作系统 | 界面友好,使用方便,丰富的应用软件 | 计算机在某一时间内为单用户服务 |
网络操作系统 | 相互通信,资源共享 | 基于计算机网络,在各种计算机操作系统上,按网络体系结构协议标准开发的软件,具备网络管理、通信、安全、资源共享和各种网络应用功能 |
分布式操作系统 | 处理能力强,速度快,可靠性强,具有透明性 | 允许若干个计算机可相互协作共同完成一项任务,自动实现全系统范围内的任务分配、自动调度、均衡各处理机的工作负载 |
嵌入式操作系统 | 对处理时间有较严格要求 | 运行在嵌入式系统环境中,对整个嵌入式系统以及它所操作、控制的各种部件装置等等资源进行统一协调、调度、指挥和控制的系统软件 |