- 进程的定义
- 运行中的程序(必须是运行之中的程序)
- 不在运行之中的程序只能被称为可执行的程序文件
- 进程是操作系统资源调度的基本单位
- 线程是操作系统调度的基本单位
- 内存的最小单位 比特位(bit)
- 内存的最小管理单位 字节(byte)
资源: 内存 fd(文件描述符) cpu时间片 等等...
- 进程的组成
- 数据: 全局变量 静态变量(已初始化,未初始化) 只读变量
- 代码: 进程的源代码
- 堆栈: 普通变量 动态申请的内存
数据,代码,堆栈均由进程管理
- 进程的模式
用户模式: 应用程序正在运行
内核模式: 调用系统调用 系统中断
进程的运行
ps -aue命令(显示进程信息)
top命令(实时展现进程的动态信息)
创建一个进程源代码并手动执行:
#include <stdio.h>
#include <unistd.h>
#include <stdlib.h>
int main(){
int n = 0;
while(1){
printf("开始打印进程id:\n");
printf("pid: %d : %d",getpid(),n++);
sleep(1);
}
return 0;
}
运行结果:
kill命令
kill 2 进程id 干掉进程(2为信号)
- 进程的状态
运行 睡眠 挂起 等待 死亡 僵尸状态等...
- 多个进程运行时的轮循机制
当多个进程同时运行时,操作系统将CPU资源采用分时分片从而处理各个进程,因为运算速率较快,故而使用电脑时感受不到进程之间的切换