程序和进程
程序
: 指编译好的二进制文件,在磁盘上,不占用系统资源(cpu、内存、打开的文件、设备、锁…)
进程
: 是一个抽象的概念;与操作系统原理紧密相连.进程是活跃的程序,占用系统资源,在内存中执行.(程序运行起来,产生一个进程)
并发
: 在操作系统中,一个时间段中有多个进程都处于已启动运行到运行完毕之间的状态;但,任何一个时刻点上仍只有一个进程在运行.(并行执行)
单道程序模型
: 一个程序占用cpu后,其余程序只能排队,等前面的程序执行完成后,在去占有cpu,然后执行.例DOS系统
多道程序模型
: 并行运行
时钟中断
: cpu强制把时间轮片收回,借助硬件手段完成
mmu
作用: 帮助我们完成物理内存和虚拟内存的映射,以及修改cpu的反问级别
进程控制块PCB
每个进程在内核中都有一个PCB来维护进程的相关信息,Linux内核的PCB是task_struct结构体
位置:/usr/src/linux-headers-3.16.0-30/include/linux/sched.h
PCB中保存的内容:
进程id: 系统中每个进程都有惟一id
进程状态: 初始化,就绪,运行,挂起(阻塞),停止
进程切换时需要保存和恢复的一些寄存器
描述虚拟地址空间信息
描述控制终端的信息
当前工作目录位置
umask掩码
文件描述符表,包含很多指向file结构体的指针
和信号相关的信息
用户id和用户组id
会话和进程组
进程可以使用的资源上限
环境变量
定义:在操作系统中用来指定操作系统运行环境的一些参数
IPC(进程间通信)
管道:
本质:伪文件
原理:实为内核使用环形队列机制,借助内核缓冲区(4K)实现
局限性:
1.数据自己读不能自己写
2.数据一旦被读走,管道中就不存在了,不能反复读取
3.由于管道采用半双工通信方式,因此,数据只能在一个方向上流动
4.只能在有公共祖先的进程间使用管道