操作系统基础知识详解

前言

很抱歉断更了半个月左右,因为马上面临找工作,学习方式以及学习资料必须要做出调整.接下来所有有关操作系统的文章,都是小编通过对一些英文文档,以及视频资料整理而来.再次做统一提醒

当然,如果你有能力阅读一些官网英文文档,我还是推荐直接

去阅读.

因为 一千个读者就有一千个哈姆雷特.所有翻译总结而来的中文文档都有出处,因为根据每个人的理解,经验不同.文章自然也不尽相同.

但是我相信,会给你一定的收获.同时你如果有更好的理解,欢迎留言评论.一起头脑风暴吧!

操作系统的功能

什么是操作系统:在计算机用户和计算机硬件之间的中间件

操作系统的目标:

  • 更好的使用计算机硬件
  • 执行用户程序,更有效率
  • 计算机系统使用更加方便

计算机可以分为四个部分:

  • 硬件 (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 OS job Scheduling

OS从 job Scheduling中取出多个job放到OS内存中等待cpu调度

cpu调用os排列好的job,当一个job执行完成,或者其它需要cpu等待的时候,cpu执行第二个job

下篇预告:

操作系统操作

流程管理

内存管理

存储管理

保护和安全

分布式系统

专用系统

计算环境

开源操作系统

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

黑白极客

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值