计算机操作系统概述OS
计算机系统概述
OS是计算机系统最基础的系统软件,管理软硬件资源,控制程序资源,改善人机界面,合理组织计算机工作流程,为用户使用计算机提供良好的运行环境。
操作系统:
换句话来说:
操作系统是方便用户、管理和控制计算机软硬件资源的系统程序集合。
从用户角度看:OS管理计算机系统的各种资源,扩充硬件的功能,控制程序的执行。
从人机交互看:OS是用户与机器的接口,提供良好的人机界面,方便用户使用计算机
从系统角度来看:OS是一个大型软件系统,其功能复杂,体系庞大,采用层次式、模块化的程序结构。
操作系统组成:
- 进程调度子系统
- 进程通信子系统
- 内存管理子系统
- 设备管理子系统
- 文件管理子系统
- 网络通信子系统
- 作业控制子系统
从控制方式来看操作系统
- 多道批处理操作系统,采用脱机控制方式
- 分时操作系统,采用交互控制方式
- 实时操作系统
从应用领域看操作系统
- 服务器操作系统、
- 并行操作系统
- 网络操作系统、
- 分布式操作系统
- 个人机操作系统、
- 手机操作系统
- 嵌入机操作系统、
- 传感器操作系统
资源管理的视角来看操作系统
其实主要是来了解计算机系统的资源问题
理解软硬件资源的管理
理解屏蔽资源底层的使用细节
理解资源的共享与分配
操作系统的资源
硬件资源:
处理器 主存 外设 等
信息资源:
数据 程序
管理计算机系统的软硬件资源
处理器资源:哪个程序占处理器运行
内存资源:程序、数据在内存中如何分布
设备管理:如何分配、去配合使用设备
信息资源管理:如何访问文件信息
信号量资源:如何管理进程之间的通信
程序设计的时候,也要屏蔽资源使用的底层细节:
驱动程序:最底层的、直接控制和监视各类硬件资源的部分
职责是隐藏底层硬件的具体细节,并向其他部分提供一个抽象的、通向的接口
如果有面向对象的思想,这就可以理解为抽象思维,可以理解为封装,我来隐藏具体的细节实现,你想要什么,我给你们什么,并且,我提供通用的接口,或者说我提供通用抽象接口,具体细节,由你们自己来实现,来进行操控。
比如说:打印一段文字或一个文件,既不需要知道文件信息存储在硬盘上的细节,也不必知道具体打印机类型和控制细节
很多时候,在程序设计的时候,要考虑的问题就是资源共享与分配的问题,这也是迫切需要解决的问题
资源的共享与分配方式:
资源共享方式:
- 独占使用方式
- 并发使用方式
资源分配策略:
- 静态分配策略
- 动态分配策略
- 资源抢占策略
控制程序执行的视角来看操作系统
多道程序同时计算
CPU速度与io速度不匹配的矛盾
只有让多道程序同时进入内存争抢CPU运行,才可以能够使得CPU和外围设备充分并行,从而提高计算机系统的使用效率
多道程序同时计算的宏观分析
独占计算机单道运行均需1小时,占用cpu时间约18分钟,CPU利用率为30%
按照多道程序设计方法同时运行,CPU利用率大约可以达到50%,由于提供36分钟的CPU时间,大约运行72分钟。考虑到os的调度开销,实际花费时间可能要长一些,这还是建立在两个程序的占用CPU有资源占用冲突的基础之上。因为整个程序在跑,并不是一直在使用cpu 资源,如果整个过程都在占用cpu 的资源的话,这种情况下,即使采用了多道程序设计思想,其实也并不是能绝对解决不匹配的问题,以及提升性能,但是对于有些对cpu占用冲突的时候,多道程序可能会出现对资源的抢占,谁抢到谁去执行,但是有些时间段并不涉及到cpu的抢占,所以说,有一线程可以执行,如果说使用单道的话,其实其他的未利用cpu资源的情况下,就属于是对资源的浪费,对处理程序的性能也存在很大的弊端。因为很多时候不使用cpu资源的情况下,可以让其他程序去使用,使得可以利用起来这个资源,但是可能对于单道的这套程序来讲,时间可能会延长,因为涉及到cpu的时间抢占,导致,1小时内,并没有把程序处理完,但是对于整体而言,平均时间肯定是大大提高,本来120分钟完成的事情,现在可能80分钟就完成。
多道程序设计及优点
多道程序设计: 指让多个程序同时进入计算机的主存储器进行计算
多道程序设计优点:
- Cpu与外部设备充分并行
- 外部设备之间充分并行
- 发挥cpu的使用效率
- 提高单位时间的算题量
多道程序系统的实现
为进入内存执行的程序建立管理实体:进程
OS应能管理与控制进程程序的执行
OS协调管理各类资源在进程间的使用
1.处理器的管理和调度
2.主存储的管理和调度
3.其他资源的管理和调度
多道程序系统的实现要点:
- 如何使用资源:调用操作系统提供的服务例程(如何陷入操作系统)
- 如何复用CPU:调度程序(在cpu空闲时让其他程序运行)
- 如何使用CPU与IO设备充分并行:设备控制器与通道(专用的io处理器)
- 如果让正在运行的程序让出cpu:中断(中断正在执行的程序,引入os处理)
操作控制的视角来看操作系统
计算机系统操作方式:
- Os规定了合理操作计算机的工作流程
- Os的操作接口—系统接口
- Os提供给用户的功能级接口,为用户提供的解决操作计算机和计算共性问题所有服务的集合
Os的两类作业级接口:
- 脱机作业控制方式
用户:编写作业说明书,确定作业加工控制步骤,并与程序数据一并提交
操作员:通过控制台输入作业
OS:通过作业控制程序自动控制作业的执行
Eg:
批处理os的作业控制方式,UNIX的shell程序 DOS的bat文件
- 联机作业控制方式
计算机:打开终端 键盘/显示器等
用户:登录系统
OS:提供命令解释程序
用户:联机出入命令,直接控制作业步骤的执行
Eg:分时os的交互控制方式
命令解释程序:
接收和执行一条用户提出的对作业的加工处理命令当一个新的批作业被启动,或新的交互型用户登录进系统时,系统就自动的执行命令解释程序,负责读入控制卡或命令行,做出相应的解释,并予以执行
会话语言:可编程的命令解释程序
图形化的命令控制方式
多通道的命令控制方式
无论通过哪种控制方式来进行的,其实对于命令解释程序处理过程而言,其实都是大同小异的
命令解释程序处理过程: