一、三大概念:
程序——编译好的二进制文件,不占用资源。进程——活跃着的程序,占用资源,是操作系统的基本单位。
线程——进程的执行单位,与进程共享资源
二、进程与程序关系:
用户角度:进程是程序的一个执行过程操作系统角度:进程是系统分配的内存、CPU时间片等资源的基本单位
区别:(进程是戏剧,程序是剧本,戏剧根据剧本来)
程序是一个静态文件,存于磁盘中;
进程处于动态程序运行的系统资源管理实体;
三、编译的过程:(将代码转化为二进制)
预处理 - 编译 - 汇编 - 连接
四、CPU原理:
预取器:(预处理将指令从cashe缓冲区取出)|分析
译码器(指令的作用)
|计算
ALU 算数逻辑单元
mmu内存管理单元:1、虚拟内存(是不存在的,程序运行时产生,可用的地址空间为4G)
2、物理内存
mmu功能:将虚拟内存和物理内存映射、对应,在实际过程之中不要手动转化,mmu自动转化即可。
虚拟地址4G内分为:.text(存放代码)、data数据区(变量)、heap堆区(空间)、stack栈(存放函数)、
内核区(PCB进程控制)
五、Linux环境下的进程:
1、进程终止方式:从main返回、调用exit、调用_exit、调用abort、由一个信号终止
2、进程间通信方式:管道、共享内存、消息队列
管道即是利用内核在两个进程间建立通信,特点是一端读一端写(类似文件)
共享内存:将内存中的一段地址,与多个进程间共享
消息队列:在内核中建一张链表,发送方按照标识将数据发送到内核,内核将其放入量表后,等待接收方的请求。接收方发送请求后,内核按照消息的标识,从内核中将消息从链表中摘下,传递给接收方。