初识操作系统【一】
趁暑假把下学期内容学了 (为什么我不能上课好好听讲呢???)
操作系统是应用程序与硬件之间的桥梁。
操作系统的目标:
-
运行用户程序
(核心目标) - 更高效使用计算机(面向系统)
- 更方便使用计算机(面向用户)
现代计算机系统组成
- 一个或多个CPU(或核)和内存
- 若干通过总线相连的设备控制器和I/O设备
- 总线
每个控制器都有本地缓存,CPU可以在内存和控制器的本地缓冲之间产生数据。
而控制器可以在设备和设备的本地缓冲器器中传输数据。
一次完整的读磁盘操作:
-
CPU发送
i/o指令
,通过总线传输到磁盘控制器可以进行 - 此时
CPU可以进行其他指令
,而磁盘控制器在受到指令后执行命令。 - 磁盘把数据传输到控制器的本地缓冲区
- 磁盘控制器发出中断,通知CPU数据已经读好了
-
CPU
响应中断
并且把磁盘缓存区中的数据读入内存
此时的CPU和磁盘控制器可以并行。
多道程序设计和分时系统
单道程序设计:
简单批处理系统:最早的操作系统。实现了自动化作业调度,可以再无人工干预的条件下运行作业。【批处理:一批无需人工交互的作业批量运行】
- 需要操作系统介入
简单批处理系统的核心:一个常驻监控程序
- 控制作业传输
- 调度作业运行
- 自动从一个运行完的作业转换到下一个作业
绝大多数作业的运行都是CPU计算
和I/O操作
交替运行的,经过无数次交替运行才能运行完作业。
我们把每一段CPU运行时间称为CPU脉冲
,每段I/O运行时间称为I/O脉冲
如图,简单批处理系统在控制器执行I/O指令的时候,CPU空闲,反之亦然。
多道程序系统:
- 在管理程序控制下相互穿插运行
- 使得CPU和I/O操作可以并行
并行
:两个或者多个作业在同一时刻运行。并发
:两个或多个作业在同一时间间隔内依次运行。
分时系统:是多道程序设计的延伸时间片
:把一段CPU时间按照固定单位进行分割,每个分割得到的时间段称为一个时间片。
- 分时系统一般采用时间片轮转方法使一台计算机为多个用户服务。
- 在单位时间内,每个用户获得一个时间片并运行。
- 保证用户获得足够小的响应时间,并提供交互能力。
假如分时系统中有5个作业,设定时间片大小为2毫秒,每个进程在10毫秒内各自运行了2毫秒。那么,该系统平均的响应时间是?
平均响应时间就是每个作业的响应时间除以总的作业量,即(0+2+4+6+8)/5=4。每个作业的响应时间就是从时间片开始算起,从用户提交作业到作业第一次运行的时间。
操作系统类型
-
大型机系统
:简单批处理系统,多道程序系统,分时系统【系统效率】- IBM AIX,IBM z/OS,HP-Unix
-
桌面系统
:个人计算机(PC)【用户方便性,响应速度】含图形化界面(GUI),多数技术沿用大型机- Windows,Mac Os,Liunx
-
嵌入式系统
:完全嵌入受控器件内部,为特定应用而设计的专用计算机系统。【内核较小,专用性强,系统精简,高实时性】- 应用场景:工业控制,交通管理,信息家电,环境工程等
-
手持(移动)系统
:手持设备(资源有限),扩展功能:GPS导航,移动支付等- IOS,安卓
-
分布式系统
:支持分布式处理的软件系统。 -
虚拟系统
-
多处理系统
:有多个紧密通信的处理器的系统。多个处理器共享计算机总线,时间,内存和外设等。【增加吞吐量,增加可靠性,节省资金】
多核处理器:一个芯片多个核,一个核即一个处理器。
操作系统的操作和功能
双模式:为了解决软件错误或特定请求产生异常或陷阱,保证操作系统和其他程序不受故障程序的影响。
双模式需要CPU支持,如果CPU有模式位,则可以在操作系统中实现双模式。
允许OS保护自身和其他系统部件,引入特权指令:可能引起系统崩溃的指令,只能运行在内核模式(用户如果要用,则系统调用)
-
用户模式
:所有用户的应用程序只能在用户的应用模式下运行。 -
内核模式
:只能运行操作系统的程序
定时器:为了随时让操作系统获得对CPU的控制器,从而管理系统而引入的
操作系统的核心是运行程序,也就是如何管理CPU
。
一个运行中的程序被称为进程
。
CPU(进程)管理具体内容:
- 创建和删除用户和系统进程
- 暂停和恢复进程
- 提供进程同步机制
- 提供进程通信机制
- 提供死锁处理机制
除了CPU,程序运行还需要内存。
内存的主要工作:
- 内存分配
- 内存回收
- 地址转换
- 共享和保护
目的是:提高内存利用率和访问速度,从而提高计算机运行效率。
CPU(进程)管理
和内存管理
解决的都是程序运行问题,而文件管理
是信息在计算机中的存储问题。
文件管理内容:
- 文件系统
- 文件逻辑结构
- 文件物理结构
- 目录
- 文件检索方法
- 文件操作
- 空闲空间管理
- 存储设备管理
I/O管理系统用来管理种类繁多的各种i/o设备,解决计算机中的信息输入和输出问题。
主要工作:设备管理和设备驱动。