计算机基础知识

一、异步阻塞

同步异步关注的是: 消息通信机制

阻塞非阻塞关注的是: 程序在等待调用结果时的状态

烧水例子:

  • 同步阻塞: 我用普通水壶烧水,坐等水开
  • 异步阻塞: 我用响水壶烧水,坐等水开,但水开时水壶有提醒
  • 同步非阻塞: 我用普通水壶烧水,然后去干其他事,时不时看看水有没有开
  • 异步非阻塞: 我用响水壶烧水,然后去干其他事,水开时水壶有提醒

二、进程线程

1、进程: cpu资源分配的最小单位,计算机中已运行程序的实体,是线程的容器,单个CPU一次只能运行一个进程

2、线程: cpu独立调度的最小单位

3、工厂例子

  • 工厂是CPU,承担所有计算任务
  • 进程是车间,代表cpu所能处理的单个任务,单个CPU一次只能运行一个进程
  • 线程是车间工人,一个进程包括多个线程,多个线程协同完成一个任务
  • 有些进程的内存空间是共享的,每个线程都能使用共享内存
  • 互斥锁,防止多个线程同时读写某一内存区域
  • 信号量,保证多个线程不会互相冲突

4、软件例子: 开了QQ,开了一个进程。QQ里传输文字开了个线程,弹出对话框开了个线程。

三、编译器

1、编译器概念: 是一种计算机程序,将某种编程语言写成的源代码(原始语言),转换成另一种编程语言(目标语言)

2、工作流程

源代码 -> 预处理器 -> 编译器 -> 汇编程序 -> 目标代码 -> 链接器 -> 可执行文件
source code->preprocessor->compiler->assembler->object code->linker->executables

3、32位CPU和64位CPU

指令集合,操作数位数,寄存器名称,寄存器个数都不同
但intel的x86-64cpu和amd的amd64能兼容32软件环境

4、并发,并行,分布式计算

  • 并发计算: 将一个计算任务,分区成几个小部分,让它们同时被计算,之后再汇整计算结果,以完成任务。是一种程序计算的形式。
    计算单元间的通信:(1)共享内存通信:java,c#; (2)消息传递通信:
  • 并行计算: 并发计算的程序在机器平台上同时被运行的状况,因此是机器运算的形式
  • 分布式计算: 是并行计算的特例,采用计算机网络来进行同步。把工程数据分区成小块,由多台计算机分别计算,将结果统一合并得出数据结论。大型多人在线游戏,对等网络,面向服务的体系架构。

四、参考文档

  • 维基百科:编译器
  • 维基百科:并发计算

你可能感兴趣的:(计算机)