操作系统
操作系统操作系统的功能
操作系统的组织
操作系统的体系结构
计算机系统结构
> 前言
很抱歉断更了半个月左右,因为马上面临找工作,学习方式以及学习资料必须要做出调整.接下来所有有关操作系统的文章,都是小编通过对一些英文文档,以及视频资料整理而来.再次做统一提醒
当然,如果你有能力阅读一些官网英文文档,我还是推荐直接
去阅读.
因为 一千个读者就有一千个哈姆雷特.所有翻译总结而来的中文文档都有出处,因为根据每个人的理解,经验不同.文章自然也不尽相同.
但是我相信,会给你一定的收获.同时你如果有更好的理解,欢迎留言评论.一起头脑风暴吧!
## 操作系统的功能
>什么是操作系统:在计算机用户和计算机硬件之间的中间件
> 操作系统的目标:
- 更好的使用计算机硬件
- 执行用户程序,更有效率
- 计算机系统使用更加方便
> 计算机可以分为四个部分:
- 硬件 (cpu, io devices(设备), memory(内存))
- 操作系统
- 应用程序(文字处理器,编辑器,,)
- 用户(人 ,机器 ,其它计算机)
> 操作系统的定义
资源分配程序
- 管理所有资源
- 在冲突的请求中做出确定,更有效的使用
控制程序
- 防止一些非法请求,和错误的资源调用
- 在操作系统中,永远运行这一个程序 kernel(内核)
## 操作系统的组织
> 电脑重启
引导程序加载在电源或者重启
- 通常存储在ROM或者EPROM(固件)中
- 初始化系统所有方面
- 加载系统内核kernel
> 计算机操作系统的操作
- cpu, disks(磁盘)控制器, USB( mouse keyboard printer),屏幕通过总线连接共同操作 内存(memory)
- cpu和io是可以并发执行的
- 每一个设备控制器控制一个特定的设备类型
- 每个设备都有一个本地缓冲器(local buffer)
- cpu将数据从主内存移动到local buffer中
- 设备控制器通过中断(interrupt,告诉cpu它已经完成
> 中断(interrupt) 的常用函数
- interrupt通过interrupt vector(中断向量)将包含所有程序的服务地址传递给中断程序(ISR)
- interrupt必须保留中断程序的地址
- 在处理一个interrupt的使用,另一个interrupt必须被禁止,以防止丢失
- 有些interrupt是由于用户的指令或者错误而引起的
- 操作系统(OS)就是interrupt来驱动的.
interrupt可以翻译为中断,但是更像是指令,它可以直接操作cpu. interrupt分为很多种,比如每敲击一下键盘keyboard或者移动一下mouse都会产生一个interrupt来驱动OS
产生的众多interrupt由interrupt Handler来统一调度和cpu沟通,这样就使得cpu只需要和一个interrupt Handler来沟通.
通时 和cpu沟通的interrupt Handler还可以再连接多个interrupt Handler,这样就可以管理众多的interrupt了
> (interrupt)中断向量
操作系统通过存储寄存器和程序计数器(pc)来保存cpu的状态
中断发生的类型:
polling 轮询
矢量中断系统
有专门的代码段对每种类型的interrupt采取不同的操作
不同的interrupt对应代码段长度不同
## 操作系统的体系结构
> IO 结构
从IO开始到结束之后,控制才会放回到用户程序
cpu在IO执行时,处于等待状态,知道有下一个interrupt中断出现
循环等待的方式, 就是抢占式内存调用
在同一个时间内一个资源只能有一个IO请求
> DMA 直接内存访问结构
能够以接近内存传输速度的IO访问设备DMA
设备控制器(device controller)可以将数据直接从缓冲寄存器传输到主存储器,不需要CPU的干预
每一个内存块生成一个interrupt,而不是每个字节生成一个interrupt
DMA也称为周期窃取,因为它窃取CPU的执行周期来传输数据块
cpu周期:
从内存中获取指令
从内存中获取数据
执行
> 存储结构
Main memory (主内存) 只有cpu可以直接访问的大型存储结构
Secondary storage 辅助存储-主内存的扩张 提供大的非易失性存储容量
Magnetic disks 磁盘
磁盘逻辑分为磁道,磁道又分为扇区
disks controller 磁盘控制器决定了设备与计算机之间的逻辑交互
> Storage Hierarchy 存储器层次结构
速度
成本
波动
缓存-- 将信息更快的复制到存储系统中,主内存可以看做最慢的缓存区
不同存储介质的读取速率
寄存器>缓存>主内存>电子磁盘>磁盘>光盘>磁带
> Caching 快取(超高速缓存)
可以在计算机的许多层次上执行,硬件,操作系统,软件
正在使用的数据,暂时从较慢的储存器复制到较快的存储器
缓存通常比正在缓存的内存要小
> 计算机的运作模式
cpu 和memory 和device 三者相互协作
cpu向memory获取指令 和数据 放到cpu的cache中运行.
同时 向device发出IO请求,以及数据交互, device向cpu发出interrupt指令
同时 memory和 divice又可以通过DMA 绕过cpu直接进行数据交互
## 计算机系统结构
大多数系统使用单一通用处理器(智能手机,平板电脑,,,)
网络处理器
图形处理器
浮点处理器
多核处理器(GPU) 也称为并行处理器和紧密耦合处理器
优势:
增加了吞吐量
规模经济
提高可靠性,优雅的降级或容错
GPU两种类型: 非对称处理器和对称处理器(相同的cpu cache)
> 集群系统
像多处理器系统,但是多个系统一同工作
通常通过储存区域网络(SAN)共享存储
提供高可用性服务
非对称集群有一台处于热备份模式的机器
对称集群有多个运行应用程序的节点,它们相互监视
一些集群用于高性能计算(HPC)
必须编写程序时使用并行化(存在多个节点执行程序)
> 计算机系统结构
为了提高效率 需要多路编程
单个程序或者用户不可以一直让CPU和IO处于繁忙状态 (在执行一段时间后仍然没有松开CPU就要将CPU强制拉回.避免出现死循环)
多道编程组织作业(代码和数据),让CPU总是有任务要去执行
尽量让cpu处于繁忙状态
系统中全部正在作业(job)的一个子集,执行一半而cpu因为各种原因而被拿走的程序 保存在内存中
通过(job scheduling)作业调度来执行一个作业(job)
当需要等待时,如需要调用IO,这个时候CPU就要处于等待状态,OS(操作系统)就要切换到另一个作业上执行(时CPU尽量的处于忙碌状态)
> 多程序系统的内存布局
cpu OSjob Scheduling
OS从 job Scheduling中取出多个job放到OS内存中等待cpu调度
cpu调用os排列好的job,当一个job执行完成,或者其它需要cpu等待的时候,cpu执行第二个job
下篇预告:
> 操作系统操作
>流程管理
>内存管理
> 存储管理
> 保护和安全
> 分布式系统
> 专用系统
>计算环境
>开源操作系统 看头像的居多 全程看图像去了,文章写了啥 这个好(懂得都懂) 我不想知道系统是怎么操作的,我就想知道你的头像是怎么操作的。 看不懂啊。。 解释得挺好的
页:
[1]