程序是怎么跑起来的? —— CPU 是什么?C/C++程序的运行
1. 概念初步
- 程序:计算机的程序,和做饭、运动会的程序一样,指的是“做事的先后次序”;
- 程序的组成:程序是指令(及物动词)和数据(宾语)的组合体;
- C 语言
printf("hello\n");
,这个简单的程序,printf
是指定,hello
是数据;
- C 语言
- 机器语言:CPU 能够直接识别和执行的只有机器语言。
- 使用C、C++、Java 等高级语言编写的程序最后都会转化为机器语言;
- 正在运行的程序存储在什么位置?
- 硬盘和磁盘等媒介上保存的程序被复制到内存(内存中是其副本)后才能运行;
- 内存地址:标记和指定命令和数据的场所;
- 地址由整数值表示;
- CPU 的作用:
- 根据程序的指令来进行数据运算,并控制整个计算机的设备;
2. CPU 是什么?
CPU 负责的就是解释和运行最终转换成机器语言的程序内容;
CPU 和 内存(memory)是由许多晶体管组成的电子部件,通常称为 IC(Integrated Circuit,集成电路);
CPU 的组成(各部分之间的电信号相互流通):
寄存器;
暂存指令,数据等处理对象;可将寄存器看做内存的一种;根据种类的不同,一个 CPU 内部会有 20~100 个寄存器;
控制器;
控制器负责把内存上的指令、数据等读入寄存器,并根据执行的结果来控制整个计算机。
运算器:运算器负责运算从内存读入寄存器的数据。
时钟:负责发出 CPU 开始计时的时钟信号;
- Pentium 2GHz 就表示时钟信号的频率为 2GHz
3. C++程序的运行
生成一个 C++ 程序共有三个步骤:
- ①预处理:代码在预处理器中运行,预处理器会处理代码中的元信息(meta-information)
- 预处理指令以 # 字符开始,
#include <iostream>
就是如此,本例中,include 指令是告诉预处理器,提取 iostream 头文件中的所有文件内容并提供给当前文件, - 当然头文件最常见的用途是声明在其他地方定义的函数;
- 预处理指令以 # 字符开始,
- ②编译:代码被编译为计算机可以识别的目标文件;
- ③链接:独立的目标文件链接在一起形成一个应用程序;
程序是怎么跑起来的? —— CPU 是什么?C/C++程序的运行相关推荐
- 程序是怎样跑起来的:第一章-对程序员来说CPU是什么
文章目录 一:CPU的内部结构解析 (1)CPU的作用 (2)CPU的构成 (3)简单了解内存 (4)程序运行的简单描述 二:CPU是寄存器的集合体 (1)CPU是寄存器的集合体 (2)寄存器的分类 ...
- 读《程序是怎样跑起来的》第一章有感
程序是怎样跑起来的,一听名字就特别吸引人注意,想要翻开书一探究竟. 首先,我学习了这本书的第一章,"对程序员来说CPU是什么",刚一看到这个标题,我只知道CPU是计算机的运算核心和 ...
- 《程序是怎样跑起来的》(上)
学习笔记 此书前言 无论任何事情,了解其本质非常重要.只有了解了本质才能提高利用效率.这样一来,即使有新技术出现,也能很容易的理解并掌握. 第1章 对程序员来说CPU是什么 本章提问 程序是什么? 程 ...
- Go 程序是怎样跑起来的
刚开始写这篇文章的时候,目标非常大,想要探索 Go 程序的一生:编码.编译.汇编.链接.运行.退出.它的每一步具体如何进行,力图弄清 Go 程序的这一生. 在这个过程中,我又复习了一遍<程序员的 ...
- go 二进制程序守护_图解 Go 程序是怎样跑起来的
Go语言中文网,致力于每日分享编码.开源等知识,欢迎关注我,会有意想不到的收获! 刚开始写这篇文章的时候,目标非常大,想要探索 Go 程序的一生:编码.编译.汇编.链接.运行.退出.它的每一步具体如何 ...
- linux指定cpu运行程序,进程/线程绑定到特定CPU核的linux实现(有代码有实例)
前言 现在计算机上的CPU大多都是多核的,有4核甚至是8核的.但是一个计算机启动之后其进程数是远远多于CPU核数的,因为操作系统会给自动调度这些进程在CPU核上轮流运行.但是对于应用程序或者进程,其性 ...
- 《程序是怎样跑起来的》读书笔记
2017-2-25 前段时间读完<程序是怎样跑起来的>,对程序的运行过程认识更深.书中前六章讲解了CPU.二进制.内存与磁盘.数据压缩,比较易于理解,读过之后也收益良多.后面章节涉及汇编语 ...
- LabVIEW用了多线程,程序是不是会跑的更快些
LabVIEW用了多线程,程序是不是会跑的更快些 这个取决于具体的应用程序.如果应用程序中的任务顺序执行,不会看到任何改善.比方说,程序打开文件,从文件中读取数据,然后关闭文件.多线程并不能使的应用程 ...
- 程序是怎样跑起来的-读书文摘
缘起 在几年的工作和学习中,发现计算机知识体系尤为重要,自己还有所欠缺,想要从头到尾好好的夯实一下计算整个体系的相关知识,搭建计算机知识体系架构.因此决定细致的重读阅读这些计算机经典书籍,该书是上本书 ...
最新文章
- nginx 集群部署_入门级实操教程!从概念到部署,全方位了解K8S Ingress!
- java lambda表达式_高性能的 Lambda 表达式,简洁优雅图文并茂
- MQTT再学习 -- 漫谈MQTT协议
- IE8开发人员工具资料
- Codeforces Round #632 (Div. 2) C. Eugene and an array 思维 + 前缀和
- 机器学习算法(5)——决策树(ID3、C4.5、CART)
- [转] css3变形属性transform
- pythonarp攻击_python通过scapy模块进行arp断网攻击
- 白话空间统计十六:增量空间自相关
- Linux 代码美化(二)
- 16行Python代码 批量采集 短视频音乐素材❤
- easyui的filebox过滤文件
- jupyter报错EnvironmentLocationNotFound: Not a conda environment: /root/anaconda3/envs/anaconda3
- 永恒之蓝(ms17-010)漏洞简介及复现
- linux下zip文件密码破解Fcrackzip
- 营销-营销方式:营销方式
- canvas制作钟表
- 【愚公系列】2022年10月 微信小程序-电商项目-小微商户支付后端功能实现(node版)
- ISO 14443 非接触式射频卡标准学习
- 01博弈三要素和囚徒困境
热门文章
- unity可以直接转h5吗_瞎折腾:用Unity撸纯HTML5移动游戏/应用
- node js并发加载页面缓慢_详解如何利用前端Node模块zlib开启gzip压缩使页面加载速度更快...
- hive中的lateral view的解析
- HUE与Mysql的集成
- python 中m op n运算_Python数字类型、数值运算操作符、数值运算函数
- c语言迷宫源码,C语言迷宫源代码
- Python版点菜订单
- 机器学习代码实战——朴素贝叶斯(实现垃圾邮件分类)
- OpenCV学习——绘制图像灰色直方图
- 男友升级为老公的时候