今天看了刘欣的CDSN:码农翻身 ,一个技术大牛写的博客文章;
大牛把计算机原理通过一个个小故事,让你明白工作的过程,个人感觉挺容易理解和接受的;
今天主要学到的几个点是:进程,线程,cpu,内存,硬盘,Linux操作系统几个概念,以及工作过程;
理解到计算机底层硬件之间的相互合作,各自负责不同的功能;
计算机的执行是根据程序代码一行一行执行的,自上而下,除非碰到循环判断,以及控制流程语句,会跳转执行;
1. cpu是整个计算机的核心,执行速度最快,处理单个任务,同一个时间只运行一个进程;
2. 内存存储了需要执行的代码,运行速度是cpu的百分之一;
3. 硬盘存储资料,断电也不会影响其数据,运行速度最慢,是cpu的千万份之一;
4. 进程,又叫process control block简称pcb,保留了一个程序的工作现场;
5. 线程:一个进程当资源容器,包含多个进程,共享进程的资源(地址空间,全局变量,文件资源);
6. 函数的调用,主要是参数和返回地址,用帧标记函数(一段连续的内存空间);ebp和esp在执行完函数之后会重新指向调用着的栈帧;
7.内存的分配过程比较复杂,涉及到栈(先进后出),内存地址的分配,以及寄存器的运算,
详细的可参考:CPU阿甘:函数调用的秘密
总的来说:
1.计算机的各种模式挺有意思的,为了解决具体一类问题而设计出来的;
2. 记得php的老师讲过,慢慢加深对内存的理解吧;