Linux学习(三)关于进程和线程概念

一、三大概念:

程序——编译好的二进制文件,不占用资源
进程——活跃着的程序,占用资源,是操作系统的基本单位。
线程——进程的执行单位,与进程共享资源


二、进程与程序关系:

用户角度:进程是程序的一个执行过程
操作系统角度:进程是系统分配的内存、CPU时间片等资源的基本单位


区别:(进程是戏剧,程序是剧本,戏剧根据剧本来)
程序是一个静态文件,存于磁盘中;
进程处于动态程序运行的系统资源管理实体;


三、编译的过程:(将代码转化为二进制)
预处理 - 编译 - 汇编 - 连接



四、CPU原理:

预取器:(预处理将指令从cashe缓冲区取出
    |分析
译码器(指令的作用)
    |计算
ALU 算数逻辑单元


mmu内存管理单元:1、虚拟内存(是不存在的,程序运行时产生,可用的地址空间为4G)
                                 2、物理内存
mmu功能:将虚拟内存和物理内存映射、对应,在实际过程之中不要手动转化,mmu自动转化即可。




虚拟地址4G内分为:.text(存放代码)、data数据区(变量)、heap堆区(空间)、stack栈(存放函数)、
                                   内核区(PCB进程控制)


五、Linux环境下的进程:

1、进程终止方式:
从main返回、调用exit、调用_exit、调用abort、由一个信号终止
2、进程间通信方式:管道、共享内存、消息队列
管道即是利用内核在两个进程间建立通信,特点是一端读一端写(类似文件)
共享内存:将内存中的一段地址,与多个进程间共享

消息队列:在内核中建一张链表,发送方按照标识将数据发送到内核,内核将其放入量表后,等待接收方的请求。接收方发送请求后,内核按照消息的标识,从内核中将消息从链表中摘下,传递给接收方。



猜你喜欢

转载自blog.csdn.net/u014252478/article/details/80638513