目录
- 操作系统的概念
- 操作系统的三个作用
- 操作系统的主要特征
- 通过程序执行过程分析操作系统的工作
- 重要的操作系统技术
- SPOOLing技术
- 操作系统架构
- 操作系统分类
操作系统的概念
操作系统是计算机系统中的一个系统软件,是一些程序模块的集合——
- 以尽可能合理有效的方式组织和管理计算班级的软硬件资源
- 合理组织计算机的工作流程,控制程序的执行并向用户提供各种服务功能
- 使用户能够灵活方便地使用计算机,使计算机系统高效率运行
操作系统的三个作用
- 资源的管理者
操作系统管理的资源包括硬件资源(CPU、内存和设备)和软件资源(文件等),操作系统会跟踪记录自资源的使用状况,确定资源分配策略(静态分配策略和动态分配策略),并实施资源的分配和回收,协调多个进程对资源请求的冲突。尽量提高资源利用率。 - 向用户提供各种服务
操作系统为用户提供了很多命令和系统调用。典型的服务有:进程的创建与执行;文件和目录的操作;I/O设备的使用等。 - 对硬件机器的扩展
操作系统是硬件基础上的第一层软件,操作系统为应用程序的执行提供了很多用户接口和编程接口,这些组成了一个虚拟机器界面。 操作系统屏蔽了一些硬件的细节,用户程序不需要直接和硬件打交道,通过操作系统来控制这些硬件的执行
操作系统的主要特征
- 并发——处理多个同时性活动
- 共享——共享有限的系统资源
- 虚拟——一个物理实体映射为若干个对应的逻辑实体
- 随机——随时对以不可预测的次序发生的事件进行相应并处理
重要的操作系统技术
SPOOLing技术
将处理一个作业的完整过程,分成了几个阶段: 第一是将用户作业加载到系统中,放到磁盘上的一块叫输入井的空间上。第二是按照某种调度策略选择几个作业搭配得当,将它调入内存去执行。第三是控制作业的执行,输出结果放到输出井。
典型实例:将一台独享打印机改造为可供多个用户共享的打印机
系统对于用户的打印输出,并不真正把打印机分配给该用户进程,而是先在输出井中申请一个空闲盘块区,并将要打印的数据送入其中;然后为用户申请并填写请求打印表,将该表挂到请求打印队列上。若打印机空闲,输出程序从请求打印队首取表,将要打印的数据从输出井传送到内存缓冲区,再进行打印,直到打印队列为空。
通过程序执行过程分析操作系统的工作
通过一个helloWorld程序分析操作系统对这个程序的执行过程的支持。
#include<stdio.h>
int main()
{
puts(“Hello world!”); //输出一个字符串
return 0;
}
- 用户告诉操作系统执行helloworld程序
- 操作系统根据提供的文件名在磁盘上找到程序的相关信息
- 检查该文件类型是否是可执行文件
- 通过程序首部信息,确定代码和数据在可执行文件中的位置并计算出对应的磁盘块地址
- 操作系统创建一个新的进程,并将helloworld程序映射到该进程结构,表示由该进程执行helloworld程序
- 操作系统把控制权交给调度程序
- 当调度程序开始执行helloworld程序时,由操作系统为helloworld程序设置CPU上下文环境并跳到程序开始处
- 执行helloworld的第一条指令,发生缺页异常(因为程序在执行时先要把代码和数据读入内存,CPU才能执行;未读入内存时硬件机制会捕获缺页异常),此时调度程序把控制权交给操作系统
- 操作系统的内存管理模块会分配一页物理内存,根据计算出的磁盘块地址,寻址找到代码读入内存,开始执行helloworld程序。(如果分配的物理内存不够大,执行过程中会发生多次缺页异常)
- helloworld程序执行puts函数(puts函数是系统调用,控制权又交还给操作系统)
- 操作系统找到要将字符串送往的显示设备,设备是由一个进程控制的,所以操作系统将字符串送给该进程
- 操作系统控制设备的进程告诉设备的窗口系统它要显示字符串,窗口系统确定这是一个合法的操作,然后将字符串转换为像素,把像素写入设备的存储映像区
- 以下就是视频硬件的工作。视频硬件将像素转换成显示器可以接收的一组控制信号或数据信号,显示器去解释这个信号,激发液晶屏,屏幕上就显示出了字符串”hello world”
操作系统架构
是时候祭出这张图了
操作系统分类
- 批处理操作系统——成批处理,多道程序运行
- 分时操作系统——交互性强,多用户并发作业
- 实时操作系统——实时时钟管理(定时处理和延时处理),连续的人机对话,采取过载保护措施
- 网络操作系统——通过通信设施进行系统互连,在网络协议控制下交换信息共享资源
- 分布式操作系统——数据共享、设备共享、网络通信