并发编程从操作系统底层工作整体认识开始
文章插图
作者公众号:一角钱技术(org_yijiaoqian)
前言在多线程、多处理器、分布式环境的编程时代 , 并发是一个不可回避的问题 。 既然并发问题摆在面前一个到无法回避的坎 , 倒不如拥抱它 , 把它搞清楚 , 花一定的时间从操作系统底层原理到Java的基础编程再到分布式环境等几个方面深入探索并发问题 。 先就从原理开始吧 。
计算机系统层次结构早期计算机系统的层次最早的计算机用机器语言编程 , 机器语言称为第一代程序设计语言
文章插图
汇编语言编程汇编语言编程
文章插图
现代(传统)计算机系统的层次现代计算机用高级语言编程
- 第三代程序设计语言(3GL)为过程式 语言 , 编码时需要描述实现过程 , 即“ 如何做” 。
- 第四代程序设计语言(4GL) 为非过程 化语言 , 编码时只需说明“做什么” ,不需要描述具体的算法实现细节 。
文章插图语言处理系统包括:各种语言处理程序(如编译、汇编、 链接)、运行时系统(如库函数 , 调试、优化等功能)
操作系统包括人机交互界面、 提供服务功能的内核例程
可以看出:语言的发展是一 个不断“抽象”的过程 , 因而 , 相应的计算机系统也不断有新的层次出现 。
计算机系统抽象层的转换
文章插图功能转换:上层是下层的抽象 , 下层是上层的实现 底层为上层提供支撑环境!
计算机系统的不同用户
- 最终用户工作在由应用程序提供的最上面的抽象层
- 系统管理员工作在由操作系统提供的抽象层
- 应用程序员工作在由语言处理系统(主要有编译器和汇编器)的抽象层
- 语言处理系统建立在操作系统之上
- 系统程序员(实现系统软件)工作在ISA层次 , 必须对ISA非常了解
操作系统通过指令直接对硬件进行编程控制ISA处于软件和硬件的交界面(接口)
文章插图ISA是对硬件的抽象所有软件功能都建立在ISA之上
指令集体系结构(ISA)ISA指 Instruction Set Architecture , 即指令集体系结构 , 有时简称为指令系统
- ISA是一种规约(Specification) , 它规定了如何使用硬件可执行的指令的集合 , 包括指令格式、操作种类以及每种操作对应的 操作数的相应规定;指令可以接受的操作数的类型;操作数所能存放的寄存器组的结构 , 包括每个寄存器的名称、编号、 长度和用途;操作数所能存放的存储空间的大小和编址方式;操作数在存储空间存放时按照大端还是小端方式存放;指令获取操作数的方式 , 即寻址方式;指令执行过程的控制方式 , 包括程序计数器(PC)、条件码定义等 。
- ISA在通用计算机系统中是必不可少的一个抽象层 , 没有它 , 软件无法使用计算机硬件!没有它 , 一台计算机不能称为“通用计算机”
- 如 , IA-32、MIPS、ARM等 计算机组成必须能够实现ISA规定的功能
- 如提供GPR、标志、运算电路等 同一种ISA可以有不同的计算机组成
- 如乘法指令可用ALU或乘法器实现
1946年 , 普林斯顿高等研究院(the Institute for Advance Study at Princeton , IAS )开始设计“存储程序”计算机 , 被称为IAS计算机.
- 冯·诺依曼结构最重要的思想是“存储程序(Stored-program)”
- 工作方式:任何要计算机完成的工作都要先被编写成程序 , 然后将程序和原始数据送入主存并启动执行 。 一旦程序被启动 , 计算机应能在不需操作人员干预下 , 自动完成逐条取出指令和执行指令的任务 。 冯·诺依曼结构计算机也称为冯·诺依曼机器(Von Neumann Machine) 。 几乎现代所有的通用计算机大都采用冯·诺依曼结构 , 因此 , IAS计算机是现代计算机的原型机 。
- 王文鉴|从工人到千亿掌门人,征服华为三星,只因他36年只坚持做一件事
- 精英|业务流程图怎么绘制?销售精英的经验之谈
- 走向|电商,从货架陈列走向内容驱动
- 权属|从数据悖论到权属确认,数据共享进路所在
- 高配版|从4599元跌至3699元,256GB+65W,12GB旗舰加速退场
- 科技|联咏科技将从明年下半年开始为iPad提供LCD驱动芯片
- 不确定性|从虾米看文娱,如何从内容不确定性寻找确定性?
- 换头像|从不换“头像”的人,多半都是这几张原因,你是哪一种?
- 添加|手机:小米手机如何添加门禁卡?
- 这场|这场顶级盛会,15位全球设计行业组织主席@烟台:中国创新经验从这里影响世界
